What went wrong,
on the record.
Every mistake we have made, how we found it, and where we disclosed it. We add to this list. We never remove from it. Most were caught by our own canary.
- 2026-09-29false-422 (`01M3Q896RH64XBABMKK8AXKNJ1`)`e30f6c7`Observation recorded `http_status` 422 that was fabricated by a poller bug (budget exhaustion misreported).
- 2026-09-29tree-sha listing (`docs/tree-sha-affected-observations.txt`)`07c049c` / note `ce469fd`Phase-1 listing used commit SHA as `tree_sha` (lightweight) or invent placeholders (annotated).
- 2026-09-29invented-placeholder-shas`b5e1b05` (skip) / note queued `ea8aefb`Same listing path invented `commit_sha=000…001` / `tree_sha=000…002`; not git objects.
- 2026-09-29gap-no-derive-2026-09-29`07c049c``once` stored observations but never ran classify→derive→append; no Move/Deletion/Recreation until the fix.
- 2026-10-01enrich / outage`b5e1b05` / `a367afc` / `ea8aefb`Polls from ~00:02Z aborted on enrich compare failure; Sep 30 unsealed; canary Move buffered in memory and lost until durable buffer + re-derive.
- 2026-10-01heads-line-rewrite-2026-10-01`fcaecb5`On `main`, commit `ff75e915` replaced the seq 42 heads line from `0800c1f5` (with `log_index` 3027764712) with a 409 error line via wholesale file publish. Head and signature bytes were identical in both; Rekor entry never lost; `93211084` re-appended the index. Both versions remain in git history.
- 2026-10-01batch-listing-only-priore3f3a7dCanary batch `v9.0.0/1/2` at 02:18Z: tips moved listing-only→listing-only; priority-peel required a peeled prior binding, so no Moves/Correlation.
- 2026-10-02tree-invariant-2026-10-022206c0bSeq 52 signed `content_change` / low for canary `refs/tags/v2` lightweight→annotated on commit `f77ccacd8e1ae035fba46dd24456469832ea7c36`. The `from` tree was that commit SHA. `rebuild_repo_state` classified archived Ok rows through `binding_from_ref`, which copied the observation field. Observation `01M3R8GXRYD65WM7MAW5NPZ1KR` (2026-09-30T04:17:49.805Z, poller 0.1.0) still carried the pre-fix listing value `tree_sha == commit_sha`. `needs_peel` only fires when both commit and tree are absent, so the invented tree was treated as peeled. The next Ok (`01M3RBCK…`, tree `2a568525155695c904bafd7cd982565935ca97f9`) did not refresh the tree because the target SHA was unchanged. The annotated move then compared that invented tree to the real one. Seq 53 (annotated→lightweight) was correct because its `from` tree was seq 52's `to` tree. The same invented tree sits on seq 40 (deletion) and seq 43 (recreation `from`).
- 30 SepDigest note, entry 39observation 01M3Q896RH64XBABMKK8AXKNJ1 (tj-actions/changed-files at 2026-09-29T18:53:44.590Z): recorded http_status 422 was fabricated by a poller bug (budget exhaustion misreported as network/422); fixed in e30f6c7; observation files published on the data branchDisclosed in the signed observation digest.
- 1 OctDigest note, entry 42docs/tree-sha-affected-observations.txt: 32 observations recorded incorrect tree_sha values due to a listing bug fixed in 07c049c; the observations are unchanged; their tree_sha fields should not be relied on; gap-no-derive-2026-09-29: from genesis until fix commit 07c049c the runner stored observations but appended no Move, Deletion or Recreation entries; replay of the archive found 0 ecosystem tag moves in that window; canary patterns 3 and 4 were not observable; ledger publish succeeded for 2026-09-29 seq 39 (retry after earlier failure)Disclosed in the signed observation digest.
- 2 OctDigest note, entry 54heads-line-rewrite-2026-10-01: on main, commit ff75e915 replaced the seq 42 line written in 0800c1f5 (which had log_index 3027764712) with a 409 error line; the head and signature bytes were identical in both; the Rekor entry was never lost; commit 93211084 re-appended the index; both versions remain in git history; publishing is now prefix-checked; invented-placeholder-shas: Sep 29 listing observations also carry invented commit_sha=000…001 and tree_sha=000…002 for unpeeled annotated tags (see docs/tree-sha-affected-observations.txt placeholder column); those values are not git objects and must not be relied on; ledger publish succeeded for 2026-09-30 seq 42 (retry after earlier failure)Disclosed in the signed observation digest.
- 3 OctDigest note, entry 69ledger publish succeeded for 2026-10-01 seq 54 (retry after earlier failure); tree-invariant-2026-10-02: seq 40, 43, 52 violate tree invariants (a Move whose commits match was not release_level_only, a tree_sha equalled its commit_sha, or a tree_sha disagreed with the object cache); Corrections were appended; entries were not editedDisclosed in the signed observation digest.