BUGS
bugs/silent-flatline/record.md
sha256 f95183d89f1dc068 · 3528 bytes ·
original held in the private archive
---
title: The Silent Flatline
status: SEALED
repo: archive
observed: 2026-07-20
caught_by: a human noticing — no machine was watching
one_line: The growth collector silently dropped the newest point, and the chart went on looking perfectly healthy.
guard_location: museum/generate.mjs · growthCurrency() · line ~1427
verified: the notice is pinned to a release, so it can mean exactly one thing — a release shipped and nobody regenerated
exhibited: true
lesson: The most dangerous defect is the one that looks fine; a build that can be quietly wrong needs a check that makes it loudly wrong.
provenance:
- museum/generate.mjs growthCurrency() and its header comment (lines ~140, ~1420)
- mockup museum/design/2026-07-identity-pass/04-bug-museum-records.html (specimen 04)
---
## What happened
When the application retired its test-count rule and removed one marker from the
changelog, the growth collector **silently dropped the newest point entirely** — its
date, files and lines included. The chart went back to ending ten days earlier **and
looked perfectly healthy doing it**, while every other page of the museum stayed current.
Nothing in the build complained. This is the defect class the whole museum is designed
against: authoritative, and quietly wrong.
## How it was caught
By a human noticing — **and that is the whole problem: no machine was looking.** At the
moment the point was dropped, no check existed that compared the chart against anything;
the currency guard below is precisely the check that was added in response. The mockup
attributes the catch to *the owner's eye*; the primary sources confirm the load-bearing
fact — that the defect was invisible to every automated gate — but do not independently
name the specific person, so this record claims only what it can source. (See Provenance.)
## The guard
A currency check now runs at every build: the newest charted point must **be** the
pinned release, and no release may exist newer than the pin. Either failure renders a
loud **GROWTH EXHIBIT — NOT CURRENT** notice on the exhibit itself — written by the check,
never by hand, and it removes itself when the cause is fixed. Pinning to a *release*
(never to `dev`) is what gives the notice a single unambiguous meaning; against a moving
branch the check could not exist, because there is no such thing as being "behind" a ref
that moves every commit.
## What the guard costs
A warning pathway that must itself stay correct forever — and a museum that will
sometimes **publicly announce its own staleness** rather than quietly look fine. The
project accepts looking un-current over looking wrong.
## Containment
The notice is generated by the check, not by hand, and is pinned to a release. Between
releases the museum is current by definition, so the notice fires only when a release
shipped and nobody regenerated — rare and actionable. The guarding logic lives in
`growthCurrency()`; its failure text is rendered by `currencyNotice()`.
## Provenance
`museum/generate.mjs` — the `growthCurrency()` function and the design-rationale comment
block above it (the collector "silently dropping the newest point while the chart went on
looking perfectly healthy" is quoted from that comment). The *owner's eye* attribution is
from mockup specimen 04 and is **not independently corroborated** in a primary source;
this record therefore states the sourced fact (no machine guard existed) and flags the
attribution as unconfirmed rather than asserting it as canonical.
STAMP · generated for RELEASE v2.8.5 commit 06e5180 (06e51801b38a) · archive input-tree hash c07fbfbdd2e1ddeb · 754 files · no wall-clock timestamp (regenerates identically when nothing changed).