plan: region HA 1a, Astra plan round 4 findings (unedited)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1 file changed,
+20
−0
docs/superpowers/plans/CODEX-PLAN-REGION-HA-1A-R4.md+20 −0
diff --git a/docs/superpowers/plans/CODEX-PLAN-REGION-HA-1A-R4.md b/docs/superpowers/plans/CODEX-PLAN-REGION-HA-1A-R4.md| new file mode 100644 |
| index 000000000..b4f170ac3 |
| --- /dev/null |
| +++ b/docs/superpowers/plans/CODEX-PLAN-REGION-HA-1A-R4.md |
| @@ -0,0 +1,20 @@ |
| +Reviewed `6e13c775` against the working tree and spec. Static review only; proposed tests were not executed and no files changed. |
| + |
| +| Outstanding finding | Disposition | |
| +|---|---| |
| +| R2-3 — Retried deletion lacks durability barrier | **Resolved.** Tombstone ancestors enter `touched` even when the file is already absent; the retry test requires their syncs. | |
| +| R3-1 — Task 6 depends on Task 7 | **Resolved.** `publishOne` tests moved to Task 7; Task 6 retains independent coverage. | |
| +| R3-2 — Deep directory-to-file transition fails | **Resolved.** The sync loop checks surviving directory ancestors; `a/b/c → a` is tested. | |
| +| R3-3 — Held-open test does not require `IN_MODIFY` | **Resolved.** It now requires publication after a second write through the same open descriptor. | |
| +| R3-4 — Kernel-test selector misses repair-race test | **Resolved.** All seven real-inotify tests now match `Watcher`. | |
| + |
| +Checked all eleven task boundaries: no remaining reference to an identifier defined only by a later task was found. |
| + |
| +One new finding: |
| + |
| +1. **P2 — Task 8, Step 6: missing referenced wake data is silently treated as absent wake state.** |
| + At [plan:5615](/home/paulca/amadan.net/carlos/platform/.claude/worktrees/region-ha/docs/superpowers/plans/2026-10-05-region-ha-1a-foundations.md:5615), `LoadWake` converts every `os.ErrNotExist` into `found=false, err=nil`. But [fetch at plan:2855](/home/paulca/amadan.net/carlos/platform/.claude/worktrees/region-ha/docs/superpowers/plans/2026-10-05-region-ha-1a-foundations.md:2855) propagates that same error when the manifest **contains** `wake.json` but its referenced object is missing. The caller therefore cannot distinguish an optional absent entry from lost timer and wake data. |
| + |
| + **Fix:** return absence only when `m.Platform[WakeItem]` is absent. When the entry exists, propagate every fetch failure. Add a test that publishes wake state, removes its referenced object, and requires `LoadWake` to return an error; retain the existing absent-entry test. |
| + |
| +**Verdict: not ready.** |
| \ No newline at end of file |