This is a point-in-time record of the week of 2026-07-20 to 2026-07-26. It was written from the repository's history for that week and is not revised afterwards, so later pages may supersede what it says.

Week of 2026-07-20 to 2026-07-26

Window: 2026-07-20 00:00:00 to 2026-07-26 23:59:59, local author time Recapped: 2026-08-24 Commits in window: 30 (24 non-merge, 6 merges)

This is a backfill written 29 days after the window closed. The week's work was unusually concentrated: one production correctness defect was diagnosed, fixed, briefly reverted after an over-broad detector, reapplied safely and cleaned up; in parallel, the first production-scale Iceberg shadow build turned an apparent SQL failure into a carefully instrumented memory investigation.

What shipped

Plan 125 — production scale invalidates the easy explanation

Plan 125 aims to make Iceberg the canonical analytics layer rather than a sidecar export. Gate C's first VM-scale shadow build proved int_latest_observation on 258,374 rows but OOMed on the 38.6-million-row observation fingerprints; the subsequent SQL error was reproduced as damaged post-OOM session state, not a second dialect defect.

The week then built a scale harness, measured the snapshot and production data shapes, disproved its own first synthetic treatment as roughly four times too wide, and found that a shape-faithful 1 GiB run still passed. Production fan-out and duplicate rates were higher than the fixture, but bounded and not enough to explain the failure. An instrumented replay finally captured the OOM inside the listing-history window path and corrected a classifier that had mislabelled it as an Iceberg write failure. The twelve commits were 076344a, 1a2bc82, b4c5890, cd989e0, 23f2e36, 4485e9c, be58c0a, e3cb8e2, 92ff37e, 7a5c76c, c4cbe17 and b168668.

Plan 128 — challenge pages must not count as successful observations

Plan 128 began from live evidence that genuine Cloudflare challenge pages were parsed as active listings. That refreshed freshness, cleared the cooldown the scraper had just set, defeated exponential backoff and inflated cooldown gauges.

Phase 1 added challenge detection and Phase 2 added explicit cleared events. The first detector used a Cloudflare marker present on every valid page, so its merge was reverted and reapplied with a safety gate: real initial activity data always wins, and challenge detection is considered only when that data is absent. A real three-page corpus now holds the distinction.

Cleanup added stuck-processing reaping, delisted-cooldown eviction and cohort reconciliation. Production exposed two more misses—the dbt accepted-values test omitted cleared, and old processing rows whose events had already flushed were invisible—both fixed with fixture coverage. The final audit found at most 21 corrupted listings out of 52,884, all self-healing, so no destructive repair was justified. The twelve commits were a588ccf, da520ec, c043440, 34de1b8, 5943d9a, a360934, 1903e7c, aa8f5e1, e6b7bbc, 4b1cbf3, ec7ebed and 0fba488.

What moved between states

Three index revisions occurred. Only one net state changed:

Plan Before After
128 absent build order

Plan 125 stayed in build order while its evidence changed substantially.

What is still owed

Unattributed commits

None. All 24 non-merge commits name Plan 125 or Plan 128 in their own subject.

Merges

Six merges are named and not recapped as separate work.

Merge PR Branch
316cea7 #179 plan-128-false-block-detection
b09069a #180 plan-128-fix-challenge-detection
39b54f1 #181 plan-128-cleanup
603a66f #182 plan-128-cleanup-reap-fix
db22698 #183 plan-128-phase4-resolution
7bcd922 origin/master into feature/plan-125-portability-audit

Deferred to the next recap

211 commits sit after this window's end as of 2026-08-24.

git rev-list --count --all --since='2026-07-26 23:59:59'   # 211

That raw tail includes the already-covered weeks ending August 2, 9, 16 and 23. None of the following complete weeks is genuinely uncovered.