diff --git a/BUILD-LOG.md b/BUILD-LOG.md index 28613ee6..b9c2e068 100644 --- a/BUILD-LOG.md +++ b/BUILD-LOG.md @@ -3824,3 +3824,7 @@ Before: Darkwing's round 1 asked for changes (#1523 comment 26995, rev 247). R1: After: the candidate is 42 files, +4679/−63, over base `915e00e5`, uncommitted. Packet `agents/filbert/work/s6/` at 779e9780, candidate manifest digest fd21bdc2…eb02. R1: each request carries an id, the broker echoes it, and a timeout, wrong id, missing id or unsolicited reply breaks the channel. Every waiting and later request then refuses `broker-channel-broken`, and the host exits 1. A new `packages/cli/tests/host.test.mjs` covers a SIGSTOPped broker whose reply arrives late, and the wrong-id and no-id cases. R3: `real()` walks with `lstat`, so a dangling link is refused at any depth; a real Pi write through one is tested. R2: `close()` destroys open connections. Each of R1a, R1b, R2, R3, N1, Mg, Mh, Mi, Mj and Mk was run as a mutant and fails its test. Darkwing's probes give the expected results; desync's second half ends with `kill ESRCH` because the host has already stopped. Gate at 8dd5ff00: green except test-task's two Docker-only recall checks, which the base fails identically; cli 82, harness 50. One README sentence (R2) was added after the gate; no suite reads that file. Correction: the first round 2 gate was stopped partway to add the R1 wrong-id test, and the final gate is a full rerun. Row 41 is in-review round 2: revs 253-254 in b887ee1e, request posted as #1523 comment 27004. Darkwing is the reviewer. Landing waits on Q14 (Sage's target 2026-10-13). No push. + +### 2026-10-10 — Filbert, row 41 slice 1 S6 round 3 started (#1523) + +Before: Darkwing's round 2 asked for changes (#1523 comment 27010, rev 259). R4: Pi's `read` tool opens a different spelling when the given path doesn't exist. It tries U+202F before AM/PM, then NFD, then a curly apostrophe, then curly NFD (`path-utils.js`, `resolveReadPathAsync`). The gate checks only the given name, so a read of `it's.txt` can open a link `it’s.txt` that points outside the workspace. Darkwing's probe read `SECRET-OUTSIDE-THE-WORKSPACE` that way through a real Pi session. Sage ruled R4 is fixed in round 3: fail closed, test each variant family with a real Pi-shaped read, add one case where the variant target is inside the workspace and is still allowed, and don't reopen R1 to R3. Row 41 is in-progress again (rev 261, e211d384). Plan: for `read` (and Claude Code's `Read`, which Darkwing's note 3 asks for), build Pi's candidate list from the resolved path and refuse if any variant that exists resolves outside the workspace or through a dangling link. The harness README pin note names `path-utils.js` for recheck on a Pi upgrade. Darkwing's notes on Mv (a per-test timeout for `launcher.test.mjs`) and Mr are optional. No push; landing waits on Q14.