{ "sourceReportSha256": "d94858e2b0cfd620c320524ac7b721fe1f83e71ce40416699809ff6c817fe898", "nativeToolUseId": "toolu_011jnHNnavxztPsNtrLL78PR", "finding": "### Findings registry\nEach finding is recorded once. Sections cross-reference by F#.\n\n| F# | Section | Finding and evidence | Selected remedy (auto-decided, recommended) | Residual risk | Verification |\n|---|---|---|---|---|---|\n| F1 | 1 (schedule in 4) | Original plan lines 31\u201334 disclaim any fill/write coordination. Schedule Diagram 2b: fill starts, write commits, write deletes (no-op), fill sets pre-commit v1, later read hits v1. Violates contract \"every read begun after that write completes must observe the committed version.\" Single-flight does not help: a later reader joins the stale fill. **CRITICAL GAP.** | D2 \u2192 B: `invalidated` flag on the single-flight record; write marks it on commit; invalidated fill skips `cache.set` and is not joinable; metric `cache.fill_skipped_stale`. (A: accept as-is rejected, weakens a stated requirement. C: row version rejected, schema.) | A fresh fill started after DB commit but before the write continuation is discarded needlessly; one extra miss, counted. | Ordering tests A, B, non-join test. |\n" }