| 1 | # Review brief: region HA plan 1a (foundations), round 3 |
| 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 3 |
| 8 | |
| 9 | This revision answers your round 2 (`CODEX-PLAN-REGION-HA-1A-R2.md`); the |
| 10 | plan's last section is its dispositions table. The fixes were dry-run |
| 11 | again: the host-files package and the home-map change were written into |
| 12 | the tree, built for linux, darwin and windows, and tested with the race |
| 13 | detector, then removed. The `internal/hostfiles` code blocks are those |
| 14 | files verbatim. |
| 15 | |
| 16 | First give a disposition for your seven round 2 findings and the four |
| 17 | round 1 residuals: resolved, partly resolved (say what is left), or not |
| 18 | resolved. Then report only new findings, including any the fixes |
| 19 | introduce. Look in particular at: |
| 20 | |
| 21 | - `dir_unix.go` and `walk_unix.go`: the descriptor traversal. Any |
| 22 | remaining way to follow a link, to block, to leak a descriptor, or to |
| 23 | mis-handle `Readdirnames` on a reused handle. `descend`'s ownership of |
| 24 | the handles it opens. Whether `readStable`'s five non-OK outcomes are |
| 25 | each handled correctly by both callers (`syncRoot` and `publishOne`). |
| 26 | - `Restore`'s directory syncs: is any directory whose entries changed |
| 27 | left unsynced, including a parent whose child directory was created or |
| 28 | whose obstructing file or symlink was removed? |
| 29 | - The watcher's `failures`/`repaired` counters, including a failure that |
| 30 | arrives between `Repair` reading `failures` and starting its walk. |
| 31 | - `tiedStamps` and whether `foldHomes`'s routing result is unchanged from |
| 32 | the tree's today for every unstamped input. |
| 33 | - Whether each new or rewritten test fails when its mechanism is |
| 34 | disabled. |
| 35 | |
| 36 | Do not re-raise anything you mark resolved. The author still cannot run |
| 37 | the seven real-inotify tests on the development machine and says so. |
| 38 | |
| 39 | ## Output |
| 40 | |
| 41 | As round 1. End with a verdict: ready to build, or not ready. |
| 42 | |