1.9 KiB
status, trigger, created, updated
| status | trigger | created | updated |
|---|---|---|---|
| resolved | I already did that execute 9 like 3 times and gsd-progress still talks about it, wtf | 2026-09-28T00:00:00+02:00 | 2026-10-05T15:08:52Z |
DEBUG: Phase 9 verification stale loop
Discovered: 2026-09-28 during $gsd-progress
Status: resolved
Goal: stop gsd-progress routing back to Phase 9 after execute-phase 09
Symptoms
$gsd-progresskept routing to$gsd-execute-phase 09withverification.status=stale- execute-phase 09 had already been run several times
- No separate error; the progress report simply named Phase 9 again
Root Cause (two layers)
Layer 1 (2026-09-28, fixed in 1a878b3): Phase 10.2 commit 5e50b16 moved 42 Phase 9-covered files under modules/. 09-VERIFICATION.md still listed the old top-level paths, so computeCoveredDigest returned null and status was always stale.
Layer 2 (2026-10-05, the remaining loop): After the paths were corrected and the report passed at HEAD ba1aaef (9692315), Phases 12.1, 12.2, 13 and 14 edited 25 of those same files (+3294/-217). The fingerprint then mismatched current bytes. That is GSD working as designed — later work on shared modules re-stales an earlier phase — not a missing-path bug. Progress always routes to the lowest-numbered incomplete phase, so 09 stayed in front of the later-phase queue.
Fix
- Confirmed every declared
covered_filespath exists (0 missing). - Ran
scripts/check-phase9.sh --allat summercms.go104a1c9/ fonoteka.go93b8b75— passed. - Recomputed
covered_digesttov2:sha256:c2f48f6ce04a5eed4788d745da45b1c1555a769df4feebfe88b9bbf671b634fband recorded the re-verification in09-VERIFICATION.md.
Verification
gsd_run query verification.status on the Phase 9 directory returns passed.
Note
Phases 10, 10.1, 10.2, 11, 11.1, 11.2 and 12 can still read stale for the same digest-drift reason. Closing 09 only unblocks the first slot of that cascade.