Files

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). Each diffs/<task>-landed.diff is byte-equal to git show --stat --patch of its commit.
  • No commit from 193ae70c6 to 8eae4eae6 touches 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-blob means the path is unchanged from FROM to the parent, and the landed blob equals the source blob.
  • merged means 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:

  • role is false, so a non-human gets human-required.
  • The actor is s.human.
  • The writer receives request.verb.
  • The keys lines and the invalid-plugins / unknown-plugin catch 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) made assistant a thread definition. Since then, bindLaunch refuses 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.