sage: row 171 brief names cli.mjs (sage-1021, mos-0855), row 134 brief refreshed to 000730949 with owner Researcher, row 42 run log takes mos-0855's triggers (#1668)

This commit is contained in:
2026-10-19 13:34:05 -05:00
parent 0007309492
commit 7319bd8673
3 changed files with 43 additions and 9 deletions
@@ -94,3 +94,26 @@ Console. Notifier off: notify.json sets binding null, so it was off
before the restart too.
S7 piece 1 is Jason's next real Mosaic Stack request.
## 2026-10-19T18:33Z when pieces open (Mos mos-0855, on sage-1024)
Q111 (Jason): "time is irrelevant. We move through tasks with a "next..."
philosophy." So row 42 has no start date, pace or close date. I proposed
10-21 to 10-26 in sage-1024, and Mos turned the dates down and kept the
order. The rules from here:
a. Piece 1 opens once Window B (row 126, 3i) is verified live. If B can't
run, for example because row 169 lands first and B gets redrawn, piece 1
opens after whichever window runs next is verified, and I tell Mos.
b. Jason sends each piece when he's ready. Agents push no pace and set no
deadline.
c. No re-pin while a piece is open. The window past c216f47db goes between
pieces, with Jason's ok.
d. Before piece 1 opens, I check on the live pin which role takes a piece
and that a human message to it gets answered: either the role is
running, or launch.by is told and the role is in launch.instances
(row 152). The 8e7ea89a1 window found pm not running with launch.by =
chief. The result goes in this log.
Mos passes this to Jason when piece 1 opens, not before. Lead decisions 94,
114 and 115 stand.
@@ -2,6 +2,8 @@
Status: written by Sage, lead, from Researcher's row 132 build report
(sage-0355). It follows `docs/plans/BRIEF-TEMPLATE.md`. One row.
Refreshed 2026-10-19: line numbers are at origin/refactor 000730949, and
the owner is set.
## Organization revision read for a role holding organization.change
@@ -9,18 +11,22 @@ Status: written by Sage, lead, from Researcher's row 132 build report
Row 123 (#1617, 89fd2d6fe) added `organization.set` for a role whose file
lists `organization.change`, and row 132 (#1628) gives the chief a typed
`change_organization` tool for it. The verb requires `revision`
(`packages/bus/src/broker.mjs` line 99, `ORGANIZATION_KEYS`, and line 732).
The only verb that returns the current revision is `limits`, and it refuses
`change_organization` tool for it (`packages/harness/src/tools.mjs` line
176). The verb requires `revision` (`packages/bus/src/broker.mjs` line 138,
`ORGANIZATION_KEYS`, and line 1240). The reads that return the current
revision are `limits`, `plugins`, `instances` and `routes`, and each refuses
anyone but the human: `if (!role && !s.human) fail("human-required")` at
line 729. So a role session can call `organization.set` only with a
revision it got some other way. A wrong or stale one fails closed with
`revision-conflict` (`packages/business/src/organization.mjs` line 185),
so nothing is damaged. The tool just can't be used on its own.
line 1229. So a role session can call `organization.set` only with a
revision it got some other way. The tool's own description says so ("as the
human gave it to you"). A wrong or stale one fails closed with
`revision-conflict` (`packages/business/src/organization.mjs` line 185;
the broker passes the code on at `broker.mjs` line 1253), so nothing is
damaged. The tool just can't be used on its own.
### Owner and reviewer
- Owner: assigned by Sage when the row is briefed.
- Owner: Researcher, who built row 132 (Sage, 2026-10-19). Researcher has
no Gitea token, so Sage posts the review request.
- Reviewer: Filbert.
### Files owned
@@ -78,6 +78,11 @@ file.
- The `packages/bus`, `packages/cli`, `packages/webui` and `packages/plugins` suites and every `scripts/test-*.sh`
green on Sage's gate. The reviewer approves the candidate manifest.
- The diff touches only `broker.mjs`, `packages/cli/src/thread.mjs`, `packages/cli/src/project.mjs`,
`packages/webui/src/bus.mjs`, their tests, `channel-proof.test.mjs` and `packages/cli/README.md`.
`packages/cli/src/cli.mjs`, `packages/webui/src/bus.mjs`, their tests, `channel-proof.test.mjs` and
`packages/cli/README.md`.
- `cli.mjs` carries one change only (sage-1021, mos-0855). The caller `channelCallFor` returns carries the business
id that `callFor` already resolved with `businessFor`, so `resolveProject` can load that business file when no
`--business` is given. No other `cli.mjs` edit, and no new bus, system or host read. Row 170 also edits `cli.mjs`
(`talk` and `waitingLines`); whichever row lands second rebases and reruns every touched test file.
- The window plans keep reading `threads --business mosaic-stack --json` and expecting `[]` until this row lands and
reaches the live stack by a re-pin.