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.
4.9 KiB
Row 145 round 1 review (Filbert): changes
Candidate: manifest sha256 c8272046c9a91311e72c0731feab54381ae00ef05e2f583491c328e108548a92 (48 paths, 193ae70c6..0308c1fde), packet agents/sage/work/queue-145/.
The five text resolutions are conflict resolution only. One finding blocks: 306's new test fails on the candidate, because row 121 changed the launch rule under it.
Rebuild
- A fresh worktree at 0308c1fde. Every manifest hash matched. The manifest's paths are exactly
git diff --name-only 193ae70c6 0308c1fde. - The chain is
193ae70c6-> 81860fa12 (306) -> e64f49d42 (295) -> 6f27e0ab6 (307) -> 54a456b4c (305) -> 0308c1fde (309). Eachdiffs/<task>-landed.diffis byte-equal togit show --stat --patchof its commit. - No commit from
193ae70c6to8eae4eae6touches a manifest path. - The added lines of the five commits have no dash, curly-quote or control characters.
same-blob and merged, recomputed
I wrote my own check from BUILD.md's definitions and ran it per task, with the source range from the table and the landed commit's parent as the base:
same-blobmeans the path is unchanged from FROM to the parent, and the landed blob equals the source blob.mergedmeans the +/- lines of the landed diff equal the source diff's, in order.
For every task, the landed commit's path set equals the source diff's.
| Task | Paths | same-blob | merged | Differs |
|---|---|---|---|---|
| 306 | 12 | 12 | 0 | 0 |
| 295 | 28 | 20 | 8 | 0 |
| 307 | 13 | 9 | 4 | 0 |
| 305 | 11 | 6 | 4 | 1, broker.mjs |
| 309 | 5 | 4 | 1 | 0 |
My check is a little stricter than "merged". The tools.mjs conflicts (295 and 307) and the searxng test conflict (305) still come out merged: each landed diff adds exactly the source's lines and removes nothing of the other side's. So both blocks, both constants and both tests are kept. Row 132's lines are untouched.
305 broker.mjs
Against the source diff, the only line that differs is the verb list. It's the union limits, limits.set, organization.set, plugins, plugins.set, and the removed line is row 123's list.
The source's keys line for limits.set was the literal ["revision", "limits", "models", "instances"]. The landed line uses ORGANIZATION_KEYS, which is that same list (broker.mjs:104).
For plugins and plugins.set:
roleis false, so a non-human getshuman-required.- The actor is
s.human. - The writer receives
request.verb. - The keys lines and the
invalid-plugins/unknown-plugincatch are 305's.
So both verbs behave as in 305. organization.set keeps row 123's path. The resolution adds no behavior beyond both sides.
Finding (blocks): 306's csuite-messaging test fails on the candidate
packages/bus/tests/csuite-messaging.test.mjs is a same-blob path in 306. On the candidate it gives pass 1, fail 15, every failure thread-required.
| Tree | Result |
|---|---|
| 3c80fea74, 306's source | 16/16 |
| 81860fa12, just after 306 lands | 1 pass, 15 fail |
The cause:
- 306 branched from
07c12b51b, before row 121. - Row 121 (
2c16d6b93, before this row's base) madeassistanta thread definition. Since then,bindLaunchrefuses an assistant run without a thread (broker.mjs:341-342). - The test's
setup()binds every role, the assistant included, with no thread.
There's no textual conflict, so every check above passes. It's a semantic conflict, and it isn't doc-only. BUILD.md's single-file runs don't include this file.
I probed a fixture-only fix in my scratch worktree and then deleted it. In setup(), the human creates a project and a thread, and the assistant's bindLaunch gets thread. With that, 16/16 pass, and no assertion or expected code changes. In particular, the assistant to C-suite refusal is still message-recipient-refused.
Whether that test change counts as conflict resolution (merging 306 with row 121) or needs Mos under the brief is Sage's call. I'd read a fixture-only change with the same assertions as merging both sides.
What I ran and what I took from receipts
I ran, as single files on the candidate with TMPDIR set and Docker disabled:
| Test file | Result |
|---|---|
| bus csuite-messaging | 1 pass, 15 fail |
| bus plugins-verb | 3/3 |
| bus web | 19/19 |
| bus broker | 16/16 |
| bus limits | 3/3 |
| bus chief-of-staff | 13/13 |
| business assistant | 11/11 |
| business csuite | 6/6 |
| business plugin-settings | 7/7 |
| business resolve | 10/10 |
| business role | 14/14 |
| business vars | 7/7 |
| business chief-of-staff | 10/10 |
| cli limits | 4/4 |
| harness bundle | 20/20 |
| harness tools | 17/17 |
| harness runner | 23/23 |
| plugins kinds | 5/5 |
| plugins loader | 16/16 |
| plugins searxng | 7/7 |
I also ran bus csuite-messaging at 3c80fea74 (16/16) and at 81860fa12 (1 pass, 15 fail).
From Sage's receipts, not rerun by me: the BUILD.md single-file counts for 305 and 309.
I didn't run the full suites. Other unchanged tests may also break the same way. The full gate will show that, and it's still Sage's. I took no slot.