Files
booth/persistent-memory.d/2026-09-23-dates-and-the-guess-wearing-a-facts-clothes.md
T
vh 37d859c0fd memory: snapshot for context clear — the arc mid-flight, and the one thing that blocks
In-flight rewritten to what is actually live: design-dev's blur merge is HELD
at 5ded5ff awaiting his explicit 'merge it' ping (both panels dispatched 17:53,
unfolded), the redesign and thumbnails and dates are shipped, and the browser
suite is flaky under load and NOT fixed.

Two detail files added. The dates one is the reusable lesson: three plausible
proxies for a creation date were considered and one was nearly built, and the
real answer was a syscall away — the system already recorded what looked
unavailable. One of the rejected proxies was write-on-read, a shape this repo
had finished paying for hours earlier.

The flake entry is written as OPEN with its limits stated: three tests, two
real defects fixed, neither proven causal, and n=3 cannot show an improvement.

Recent decisions and Tried and abandoned preserved intact (49->51 by addition,
7 unchanged); the index is back under the soft cap at 141 lines from 285, all
of the reduction from settled history leaving the volatile section.
2026-09-23 17:56:50 -07:00

2.1 KiB

Creation dates, and three guesses wearing a fact's clothes

2026-09-23 · booth

The operator asked for creation and update dates on booths. Update was already there — landed_at, the newest mtime among CONTENT excluding our own machinery. Creation had no honest source, and the interesting part is the three wrong answers.

Only 18 of 30 booths could state a creation time

.booth.json carries a declared created, but it exists only for booths posted through the CLI since U5. Twelve live booths had nothing.

⚠ Every convenient substitute was a GUESS PRESENTED AS A FACT

  • Oldest content mtime — wrong the moment an agent copies files with timestamps preserved (cp -p, rsync -a), which is common. It would report the SOURCE material's age as the booth's.
  • Directory mtime — that is "last thing added", i.e. landed_at under a second name. Two fields, one meaning, displayed as if they were different.
  • Stamp a first-seen marker on read — and this is the one worth flagging, because it is the same write-on-read shape that had already cost this service an hour that same day when the thumbnail cache aged the booth it cached (2026-09-23-the-cache-that-aged-the-thing-it-cached). A fix whose shape you just finished paying for is not a fix.

The answer was a fact the disk already held

ext4 records a real birth time. CPython does not expose st_birthtime on Linux, but statx(2) does and glibc has wrapped it since 2.28, so booth/birthtime.py reads it through ctypes. Verified against stat(1) on live booths: 6 of 6 exact, including every booth with no manifest.

One rule for all thirty, which is what invariant 6 asks of anything statable in a line. None when the filesystem cannot say (tmpfs, NFS, an old kernel), and None renders as nothing — a blank is the honest output when nobody knows, and better than a plausible number.

The generalisable bit: when a fact seems unavailable, check whether the system already records it before reaching for a proxy. Three plausible proxies were considered and one was nearly built; the real answer was a syscall away.