Unclaimed files left in the canonical checkout. Inventory: canonical-cleanup-inventory.md (commit-as-evidence groups). detect-secrets scan clean on 2026-11-02: hits are sha256 pins, git object ids, test sentinels already in tracked tests and unit-file lines.
1.7 KiB
1.7 KiB
Row 93 round 1: correction and follow-ups after Dewey's approval
Dewey approved round 1 on manifest
072abae8aa85ba442a3dabd20c337efc1ef33dedea2b98de72f5801cb96ee42e
(#1587 comment 28196, rev 939). This file sits outside the packet so
r1/build.md (b7ff8e06) keeps the hash Sage is reviewing.
Correction to r1/build.md
L170 says the git-socket loop test covers "the PM's close". It doesn't.
packages/cli/tests/git-socket.test.mjs has no task.close call. The
close check is tested in packages/bus/tests/review.test.mjs ("task.close
on a pushed task needs ...") and packages/tasks/tests/verbs.test.mjs ("a
task with pushed work closes only citing ..."). If there's a round 2, its
build.md fixes the line.
Follow-ups from Dewey's notes (none block)
- Untested refusals:
not-a-role,host-closing,git-busy,root-unreadable,unknown-project. Each is a one-call test. run()kills git with SIGKILL on timeout, so git never removes its lockfiles. A stalerefs/heads/<branch>.lockblocks later pushes until an operator removes it. It fails closed. Fix: SIGTERM, a grace period, then SIGKILL, or a stale-lock sweep under the repo lock.HAVE_MAX=32counts across all refs, not per ref. It works today becauseorigin/HEADsorts first.- The repo lock is in-process, so it assumes one launcher per dataRoot. A README line should say so.
recordPushchecks the project against the business, not against the task's own project. This goes with the assignee check already listed in build.md's Limits.- The timeout mismatch is already in build.md's Limits and the harness README.
If Sage's review asks for a round 2, items 1 and 4 are small enough to fold in. Items 2, 3 and 5 suit a follow-up row.