Files

10 lines
13 KiB
JSON

{
"command": [
"git",
"range-diff",
"c3d88840c..9e916c454",
"378a76b85..2f466464c"
],
"stdout": "1: d8d7c34a7 ! 1: 971681f29 gander: design tester socket migration for host scripts\n @@ Commit message\n \n ## BUILD-LOG.md ##\n @@ BUILD-LOG.md: Before: managed project/thread verbs had no Console conversation area. After: fi\n - 2026-10-20 19:34:28 UTC | Gander row 196 build paused at design mismatch | Before: approved design promised Unix tester cleanup only for the owned inode. After: scratch test shows Node/libuv close unlinks a replacement inode before JS close handlers. Evidence agents/gander/work/queue-196/evidence/tester-cleanup-blocker.txt. Sent Sage/Duckworth gander-0016/0017, recommending explicit same-uid residual with private 0700 parent retained. Interpreter, concurrent peer, principal, human, peer-transport, transport, tester and process single files passed. Partial code uncommitted, tester transport not wired. No suites, mutant batches or live actions.\n + 2026-10-21T22:30:20Z | Huey | T1 sessions design r3, scrooge-0007 R1, Vikunja 463 | Before: r2 e19e30df2 nested new session checkouts under the retained legacy instance workspace, allowing project-name collision or historical parent inspection to reach live siblings. After: exact path is dataRoot/session-workspaces/business/instance/session, outside the legacy root; canonicalized ancestor/descendant overlap refuses; T2 nesting mutant covers historical mount/inspection and a legacy project named sessions. All other r2 content retained as approved, revision label updated. Verification: old nested path absent, manual R1-only delta, whitespace and installed queue guard checked; no code/builds/suites/live changes/provider calls/credential reads.\n \n - 2026-10-21 18:45 UTC | Gander row 196 preservation before rebase | Sage-2051, Mos order mos-1193, explicitly authorizes commit and fast-forward push of the current build before deferred full verification. Product and evidence preserved together; prior focused checks and stopped gates are recorded in the row196 packet, with no claim of full acceptance. Next: rebase onto a36523713 on new gander/row196-r2, report range-diff/patch-id/conflicts, then await Sage's clear for M1-M29 and all requested suites. No live action, force push, branch deletion or tests during hold.\n -+\n + 2026-10-22T00:18:12Z | Sage (Opus 5.5) | row 254 landing (#1759), library.sync human timeout | Before: the human transport gave library.sync the 5-second default, so a sync longer than that reported outcome-unknown, and six library-* codes reached the Console as 502. After: 331597709 lands Megavolt's candidate (7 paths, tree d49e4626f, manifest digest be63cfbe recomputed and matched). human-cli.mjs waits 130 s for library.sync, past the server's 120 s hold, and 5 s for other verbs. webui bus.mjs maps library-sync-busy, library-diverged and library-accept-stale to 409, library-accept-invalid to 400, and library-credential-missing and library-fetch-failed to 503. channel-proof re-pinned. Merged-tree gate on the landing commit: library 77/0, bus 628/0, webui 305/0 (1 skip), cli 749/0 (23:44:33-23:55:11Z). eb9672c91 adds the README request-timeout sentence (Dewey N1) and a DEFERRED entry for the four library codes still at 502 (Dewey N2, binds the Console library routes row). Overlap sweep before push: 268 rebased to r2 ecd9b35eb (README only, approval carried webby-0096), 194 rebased to b7. Done rev 3072, #1759 closed.\n +2026-10-21 21:24:47 UTC | Gander row253 #1758 design r1 | Investigation began21:12Z under sage-2162; recorded now. Before: case2 installer still renders tester TCP and case1 acceptance requires it. After: proposed design covers socket marker migration, actual configured dataRoot within unchanged hardening, target-uid metadata queries, kernel-peer acceptance observation and explicit same-uid residual. Initial inventory saved; no passing final static-check claim, product edit, test, host or live action. Duckworth design review precedes code.\n \n ## agents/gander/work/queue-253/BASE-PORT-INVENTORY.json (new) ##\n2: 8a8df4171 = 2: 43f17b9af test: prepare row253 socket fixtures and fix gate collisions\n3: 968db0bcd = 3: f9b9112b9 docs: propose row253 C4 session supervisor and draft hop fake\n4: 144a7bf7c = 4: 70e6bb161 docs(row253): freeze C4 repair for static review\n5: b64aa316a = 5: bef1bd886 docs(row253): store repair patch without context whitespace\n6: aa81ca390 ! 6: ecb15d1de fix(row253): supervise socket queries across sudo sessions\n @@ Commit message\n \n ## BUILD-LOG.md ##\n @@ BUILD-LOG.md: Before: managed project/thread verbs had no Console conversation area. After: fi\n - 2026-10-21 18:45 UTC | Gander row 196 preservation before rebase | Sage-2051, Mos order mos-1193, explicitly authorizes commit and fast-forward push of the current build before deferred full verification. Product and evidence preserved together; prior focused checks and stopped gates are recorded in the row196 packet, with no claim of full acceptance. Next: rebase onto a36523713 on new gander/row196-r2, report range-diff/patch-id/conflicts, then await Sage's clear for M1-M29 and all requested suites. No live action, force push, branch deletion or tests during hold.\n \n + 2026-10-22T00:18:12Z | Sage (Opus 5.5) | row 254 landing (#1759), library.sync human timeout | Before: the human transport gave library.sync the 5-second default, so a sync longer than that reported outcome-unknown, and six library-* codes reached the Console as 502. After: 331597709 lands Megavolt's candidate (7 paths, tree d49e4626f, manifest digest be63cfbe recomputed and matched). human-cli.mjs waits 130 s for library.sync, past the server's 120 s hold, and 5 s for other verbs. webui bus.mjs maps library-sync-busy, library-diverged and library-accept-stale to 409, library-accept-invalid to 400, and library-credential-missing and library-fetch-failed to 503. channel-proof re-pinned. Merged-tree gate on the landing commit: library 77/0, bus 628/0, webui 305/0 (1 skip), cli 749/0 (23:44:33-23:55:11Z). eb9672c91 adds the README request-timeout sentence (Dewey N1) and a DEFERRED entry for the four library codes still at 502 (Dewey N2, binds the Console library routes row). Overlap sweep before push: 268 rebased to r2 ecd9b35eb (README only, approval carried webby-0096), 194 rebased to b7. Done rev 3072, #1759 closed.\n 2026-10-21 21:24:47 UTC | Gander row253 #1758 design r1 | Investigation began21:12Z under sage-2162; recorded now. Before: case2 installer still renders tester TCP and case1 acceptance requires it. After: proposed design covers socket marker migration, actual configured dataRoot within unchanged hardening, target-uid metadata queries, kernel-peer acceptance observation and explicit same-uid residual. Initial inventory saved; no passing final static-check claim, product edit, test, host or live action. Duckworth design review precedes code.\n +\n +### 2026-10-21 row253 implementation prepared, gate pending\n @@ agents/gander/work/queue-253/MANIFEST.sha256 (new)\n +3ec41265b47770f70d60640a786b4f547ffb0157512fd8477ea7712e91a724fe scripts/case2-unit.sh\n \n ## docs/plans/DEFERRED.md ##\n -@@ docs/plans/DEFERRED.md: at every gate. Started 2026-09-12 during the control board MVP.\n - (`:1538`, `:1689`, `:1691`). For a later row that edits\n - `stack-release.sh`. Webby N1 on row 238 r1 (REVIEW-r1.md, 433a95292,\n - #1744). (2026-10-21)\n --- **Gate runs mount the host's pi auth file.** `compose.yaml:43` mounts\n -- `${PI_AUTH_FILE:-/home/jwoltje/.pi/agent/auth.json}` read-only into\n -- the agent container. No suite sets `PI_AUTH_FILE`, so the\n -- `test-task.sh` cases that call `scripts/run-task.sh`, and\n -- `test-release.sh` through `release.sh` `health_check` (`:41-54`), run\n -- Compose with the host file. Row 197's lane `cleanEnv`\n -- (`scripts/testing/gate-lane.mjs:109`) keeps the default too: it neither\n -- sets nor passes `PI_AUTH_FILE`. The mount is read-only, and the legacy\n -- gate already worked this way before row 197. `test-auth.sh` uses its\n -- own fixtures but calls `auth.sh`, not Compose. The fix: a fixture\n -- `PI_AUTH_FILE` for the Compose-reaching cases, set by the suites or by\n -- the lane's `cleanEnv`, and a test that no gate step mounts the host\n -- default. It needs its own row. Webby N4 on the row 197 proof driver\n -- (bba870ee9), traced by Herb (herb-0051). (2026-10-21)\n - - **Lane image prep inspects a base that BuildKit never tagged.**\n - (N7 of the row 197 proof.) After the Compose build,\n - `scripts/testing/lane-image.mjs:41` (`prepareImage`) runs\n -@@ docs/plans/DEFERRED.md: at every gate. Started 2026-09-12 during the control board MVP.\n - do nothing yet. The row that adds the Console library routes decides\n - whether the tester listener gets `library.sync`. Duckworth's view is\n - that it shouldn't, because sync is a human write. (2026-10-21)\n -+- **Console library routes: four library codes still map to 502.**\n -+ (Dewey N2 on the row 254 manifest, #1759 comment 30173.) Row 254\n -+ gave six library codes a STATUS entry in `packages/webui/src/bus.mjs`.\n -+ `library-mapping-invalid`, `library-remote-invalid`,\n -+ `library-state-invalid` and `library-git` still fall through\n -+ `busStatus` to 502. The row that adds the Console library routes\n -+ decides their statuses and gives its `humanCall` for `library.sync`\n -+ a timeout over 130 seconds. (2026-10-21)\n -+- **T27 sweep test leaves two `sleep 60` children running.**\n -+ (Darkwing row 251 slot, darkwing-0113 and darkwing-0117; Dewey on\n -+ r2, comment 30168.) The sweep test spawns two detached shells,\n -+ `planted` at `host-run.test.mjs:528` and `decoy` at `:536`, each\n -+ running `sleep 60; :` with the run dir as `$0`. `sweepRunDir` kills\n -+ the planted shell by pid (`host-run.mjs:238`), and `t.after` kills\n -+ only the decoy shell. Neither kill reaches the `sleep` child, so each\n -+ one lives for up to 60 s after the test and trips any busy check that\n -+ follows. The fix is to kill the process group in both `t.after`\n -+ hooks: `process.kill(-pid, 'SIGKILL')`. Each shell is spawned\n -+ detached, so it leads its own group. `exec sleep 60` doesn't work.\n -+ The sweep matches the run dir in `/proc/<pid>/cmdline`\n -+ (`host-run.mjs:236`), and exec drops the `$0` that carries it, so the\n -+ planted process would survive and the \"planted process killed\" assert\n -+ would fail. This binds the next row that touches\n -+ `packages/bus/tests/host-run.test.mjs`. (2026-10-21)\n -+- **Real-model suite cases run outside the gate.** Row 244 moved\n -+ `test-task.sh` fork recall (M11) and user recall (M16) behind\n -+ `MOSAIC_LIVE_PROVIDER=1`, and `test-release.sh` activations to the mock\n -+ adapter. Before any re-pin whose tree changes `packages/harness` or the\n -+ session fork code (`scripts/mosaic-task.mjs` session and\n -+ `sessionForkFrom` handling, the pi adapter), an operator runs\n -+ `MOSAIC_LIVE_PROVIDER=1 bash scripts/test-task.sh` with the real pi\n -+ credential and a real `release.sh activate`, and records both results on\n -+ the re-pin row. Morgana's wording (row 244 BUILD.md), Webby N2 on row 244\n -+ r1 (#1757). (2026-10-21)\n - \n - ## Queue\n - \n @@ docs/plans/DEFERRED.md: Moved to `docs/plans/QUEUE.md` on 2026-09-13. This file holds only gaps.\n - at a time (Filbert F2; Darkwing and Filbert T1 on #1522;\n - flows.test.mjs).\n - The frozen-cgroup test (Filbert F1) stays open above.\n -+- Gate runs mount the host's pi auth file (Webby N4 on the row 197 proof\n -+ driver, 059577886): closed by row 244 (#1757), landing e69260a3c. The\n -+ suites and the lane's `cleanEnv` export a 0600 fixture `PI_AUTH_FILE`,\n -+ `guardDocker` refuses a Compose run without one, and\n -+ `packages/cli/tests/gate-lane-auth.test.mjs` proves no gate step mounts\n -+ the host default. The real-model cases this moved off the gate are open\n -+ above.\n + `packages/cli/tests/gate-lane-auth.test.mjs` proves no gate step mounts\n + the host default. The real-model cases this moved off the gate are open\n + above.\n +\n +## Row253 F5: legacy Case AS_USER supervision\n +\n7: 761893dac = 7: 39b98a26e fix(row253): bound cleanup retries after initial inventory\n8: 9e916c454 = 8: 2f466464c docs(row253): record static approval and pre-confirmation residual\n"
}