| 1 | # Review brief: region HA plan 1a (foundations), round 2 |
| 2 | |
| 3 | Read `CODEX-PLAN-REGION-HA-1A-BRIEF-1.md` first: its "Fixed: do not |
| 4 | re-argue" and "What to check" sections still apply, to the plan at the |
| 5 | commit named in the prompt. |
| 6 | |
| 7 | ## Round 2 |
| 8 | |
| 9 | This revision answers your round 1 (`CODEX-PLAN-REGION-HA-1A-R1.md`); the |
| 10 | plan ends with a dispositions table. Since round 1 the plan's code was |
| 11 | dry-run by its author: every new package and both patch tasks were |
| 12 | written into the tree, built, cross-built for darwin and windows and |
| 13 | tested, then removed. The code blocks for `internal/boxid`, |
| 14 | `internal/hostfiles`, `internal/termfence`, `internal/activator/installed*` |
| 15 | and `internal/console/boxchoice*` are those files verbatim. So a |
| 16 | "would not compile" finding should be rare: if you raise one, quote the |
| 17 | line and say exactly what is undefined. |
| 18 | |
| 19 | First give a disposition table for your nineteen round 1 findings: |
| 20 | resolved, partly resolved (say what is left), or not resolved. Then |
| 21 | report only new findings, including any the fixes introduce. In |
| 22 | particular look at: |
| 23 | |
| 24 | - `readStable`, `syncRoot`, `Restore`, `removeInside`, `writeInside` and |
| 25 | their use of `os.Root` (Go 1.26): any remaining way out of the root, |
| 26 | any way to block, any path where a tombstone or a write is skipped |
| 27 | that should not be, or the reverse. |
| 28 | - The run loop's degraded, repair and dead-watcher handling, and whether |
| 29 | each test can pass with its mechanism disabled. |
| 30 | - `edgesFileWrite`'s `refresh` and the seeded gate. |
| 31 | - `foldHomes`'s tie reporting and `dialBeats` against every existing |
| 32 | home-map rule. |
| 33 | - The SQS queue policy's Deny: does it block the EventBridge rule's own |
| 34 | delivery, or anything else that must work? |
| 35 | - The plan's claim that an alert on two unstamped home entries would be |
| 36 | wrong today. Check it against `edgesFilePass` and `everywhereClass`. |
| 37 | |
| 38 | Two things the author could not run and says so: the six real-inotify |
| 39 | tests in `watch_linux_test.go` (read `watch_linux.go` with extra care) |
| 40 | and the IMDS signature check. |
| 41 | |
| 42 | Do not re-raise anything you mark resolved. |
| 43 | |
| 44 | ## Output |
| 45 | |
| 46 | As round 1. End with a verdict: ready to build, or not ready. |
| 47 | |