Commit Graph
4729 Commits
Author SHA1 Message Date
jason.woltjeandClaude Opus 5.5 c2f16240c0 docs: row 156 owner dewey, after row 125 (landing run brief)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 11:41:30 -05:00
jason.woltjeandClaude Opus 5.5 03bbd2c981 roles, harness: security-reviewer and merge-gate roles, proactive contracts (row 149, #1643)
New roles:
- roles/security-reviewer.json and .md: read tools only, review.verdict
  within its role, no cross-role grant and no credentials, one verdict per
  request.
- roles/merge-gate.json and .md: read tools only, cross-role
  git.merge.protected only. It raises with domain technical and the task
  ref, and lands with land_work once the decision resolves, the verdicts
  approve and the gate passes. The chief of staff messages the relaunched
  instance with the task ref and decision id (round 3 finding 28913).

Contracts:
- All 13 roles/*.md carry the proactive line in their Authority section.
- pm and chief-of-staff carry the REQ-DEC-2 routing paragraph. Its eight
  hard waits are pinned to GATED_ONLY by a test.

Harness: raise_decision takes an optional domain, technical or delivery,
defaulting to delivery. The tool description says where each kind of raise
goes. end_run is unchanged (row 155).

Tests are new files only: business and bus workflow-roles tests and
harness raise-domain. Builder Dewey; Filbert approved round 4 (comment
28929) on manifest 6b4af9c2685b, base 0f715a054 plus build.patch
df0fec543dba.

Gate on 806ab89df plus the candidate, 16:34:57Z to 16:39:43Z: 2027
package tests and 422 script selftests (plus the queue suite's 156 node
tests), 0 failed. Doc-only follow-ups: business README:194-196 and the
launch.instances doc line.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 11:40:05 -05:00
jason.woltjeandClaude Opus 5.5 c682d5f7ad docs: row 164 owner rocko, design packet before the claim (channel kind brief)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 11:35:03 -05:00
jason.woltjeandClaude Opus 5.5 806ab89df4 sessions: Filbert row 149 r4 review (approve, comment 28929)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 11:34:13 -05:00
jason.woltje 23f86feda6 logs: Rocko row 129 build, verification and review handoff (own lines via temporary index) 2026-10-18 11:32:40 -05:00
jason.woltjeandClaude Opus 5.5 0f715a0542 docs: lead decision 150, limit-check interface 2 with report (row 125, dewey-0593)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 11:21:22 -05:00
jason.woltjeandClaude Opus 5.5 25eb9e9768 sessions: Sage row 124 landing, rows 125-126 sequencing, row 162 rulings
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 11:13:47 -05:00
jason.woltjeandClaude Opus 5.5 5b203b614b docs: row 125 to dewey, row 126 after step 8 (PRD 1.2 build brief)
Row 126's daily quota is a second limit check with no launcher or bus
change, so it needs row 125's launcher and bus calls. Its after listed only
row 124. Row 125 moves from researcher, who is on row 154, to dewey, so the
two limit-check rows run in order with one owner.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 11:11:13 -05:00
jason.woltjeandClaude Opus 5.5 70504d23a4 bus, cli, webui: token accounting per run, schema 3h usage_records (row 124, #1618)
Rocko's round 2 candidate e09313aba4d155a1c5af7bfb227ec397e96c0d57444782cd0b48593102bcc684
(38 paths, base 23533625d), approved by Dewey in #1618 comment 28923 (queue rev 1757).
Packet: agents/rocko/work/queue-124/r2/.

- Schema 3g to 3h: packages/bus/src/migrations/3g-3h.sql adds an append-only
  usage_records table; nothing earlier changes. usage_records is in timedTables.
- The transcript usage-source module reads token counts from Pi and Claude
  Code session transcripts and follows no symlink.
- `mosaic usage` in the CLI and a read-only usage section in the Console's
  Settings (one GET route; 400 on a query string).

Decision 123 go: Mos, mos-0737. Activation (3g to 3h) is a migrating run
with Jason present, in Mos's combined re-pin; landing changes nothing live.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 11:08:17 -05:00
jason.woltjeandClaude Opus 5.5 d523272292 sessions: Dewey row 124 round 2 review, approve (comment 28923, rev 1757)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 10:57:50 -05:00
jason.woltjeandClaude Opus 5.5 7a13129be2 queue: revs 1731-1756, row 124 round 1 changes and round 2 in review (Rocko, Dewey 1738), row 129 claimed (1737), rows 157-161 re-pinned for the I4 checks, D1/D2 re-pinned, row 162 briefed to darkwing, row 164 channel kind added (decision 149)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 10:54:32 -05:00
jason.woltje cbe071125c logs: Rocko row 124 round 2 (own lines via temporary index) 2026-10-18 10:53:19 -05:00
jason.woltjeandClaude Opus 5.5 810d1a1917 sessions: Sage mos-0716 answers, D1 decision 96 conditions, decision 149 and row 164
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 10:50:21 -05:00
jason.woltjeandClaude Opus 5.5 c742ecec2e docs: lead decision 149 and the channel kind brief, after row 129 (Q156 item 4, Mos mos-0726, #1661)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 10:49:07 -05:00
jason.woltjeandClaude Opus 5.5 cd9c071ae6 plans: D1 owner is darkwing
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 10:45:35 -05:00
jason.woltjeandClaude Opus 5.5 d503552eab plans: D1 brief carries decision 96's four conditions and records the claude pin and Console flags in the pointer (Mos mos-0716, Darkwing survey)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 10:44:59 -05:00
jason.woltjeandClaude Opus 5.5 23533625d4 sessions: Dewey row 124 round 1 review, changes (comment 28920, rev 1738)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 10:42:18 -05:00
jason.woltjeandClaude Opus 5.5 e51d8f2042 plans: row 159 I4 tests add the container-address and network-membership checks (Mos, mos-0716)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 10:42:08 -05:00
jason.woltje 5e0437659b logs: Rocko row 129 design and row 124 count correction (own lines) 2026-10-18 10:39:25 -05:00
jason.woltje 1f3208d4eb logs: Rocko row 124 build and verification (own lines via temp index) 2026-10-18 10:28:43 -05:00
jason.woltjeandClaude Opus 5.5 640f4cef5b sessions: Sage row 155 ruling, D1/D2 rows 162-163, row 154 phase 1 to Mos, queue revs 1722-1730
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 10:27:35 -05:00
jason.woltjeandClaude Opus 5.5 6a2409f214 queue: revs 1722-1730, row 134 after 155, row 149 round 4 in review (Dewey 1723-1724), D1 and D2 rows 162-163 with P19 notes, row 157 after 163, row 154 brief re-pin
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 10:27:18 -05:00
jason.woltjeandClaude Opus 5.5 2b5c76eeb4 plans: row 154 brief owns two serve.mjs static routes and round-trips the goals review (Researcher phase 1)
Researcher's phase 1 report needs /editor.js and /editor.css route
entries in serve.mjs, and spec/north-star.md doesn't exist. The brief
now owns those two entries only and names
docs/plans/2026-09-27_goals-review.md for the round-trip test.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 10:23:35 -05:00
jason.woltjeandClaude Opus 5.5 0df05f2c5c plans: D1 and D2 brief, health-gated stack activate and rollback and the scratch-root rehearsal (#1659, #1660)
Decision 96 D track. D1 turns the de352dfaf window scripts and the
release.sh pointer-and-log shape into stack-release.sh adopt, activate,
rollback and status. D2 adds rehearse on a scratch root with launches
disabled and no model calls. A standing staging stack is left to Jason.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 10:13:48 -05:00
jason.woltjeandClaude Opus 5.5 e270538675 sessions: Dewey row 149 round 4 in review (revs 1721-1724, comment 28916)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 10:10:54 -05:00
jason.woltjeandClaude Opus 5.5 7dfda51829 sessions: Sage P19 334-335, queue revs 1713-1721, row 156 brief wake gap, row 149 round 4
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 10:04:54 -05:00
jason.woltjeandClaude Opus 5.5 9cc0ba0e15 plans: row 156 brief takes Filbert's three edits (task ref in landHolders, land and landing from one read, decision-consumed in flight)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 10:04:32 -05:00
jason.woltjeandClaude Opus 5.5 957fbfd410 plans: row 156 brief wakes the landing run with a landing turn (Filbert, comment 28913)
A relaunched merge-gate run has land_work but no message to turn on: the
raising run's poll consumes the approval DECISION. The host writes the
instance's landHolders entries into session.json as landing, and the
runner takes one fixed-template turn per entry before its receive loop.
Row 149's chief-of-staff message stays as the fallback; a second land
gets decision-consumed.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 10:03:28 -05:00
jason.woltjeandClaude Opus 5.5 a132b46058 queue: revisions 1713-1720 (rows 124, 154, 155 briefed and 124, 155 re-pinned by Sage; rocko 124 and darkwing 155 claims; filbert row 149 round 3 changes)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 10:03:16 -05:00
jason.woltjeandClaude Opus 5.5 a3c56343ac sessions: Filbert row 149 r3 review (changes, comment 28913)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 10:00:14 -05:00
jason.woltjeandClaude Opus 5.5 9098c33f7f sessions: Sage row 87 rounds 5-8 and done, row 149 rulings, row 156, I2-I6, row 128 landing
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 09:52:31 -05:00
jason.woltjeandClaude Opus 5.5 6f85a55189 queue: revisions 1675-1712 (row 87 rounds 5-8 and done, I2-I6 as rows 157-161, row 156 added, row 128 round 1 and done, row 149 round 3 in review)
Other seats' revisions in this sweep: Darkwing 1675, 1680, 1685, 1691,
1699 (row 87 verdicts); Filbert 1678 (row 149 r2), 1681, 1686, 1690,
1701 (row 87), 1702 (row 128 r1); Researcher 1692-1693 (row 128
in-review); Dewey 1709-1711 (row 149 round 3 in review).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 09:50:42 -05:00
jason.woltjeandClaude Opus 5.5 ade628c8b5 cli: mosaic makes projects and threads and talks in a named thread (row 128, #1622)
Row 128 round 1, Researcher's candidate (agents/researcher/work/queue-128/,
row128.patch, manifest 9eed6a78, 8 paths, base 0f3eb25ea). Filbert
approved round 1 (comment 28895).

`mosaic project create` and `project list` call project.create and
project.list; `init` and `check` keep their arguments and refusals.
`mosaic threads`, `thread create`, `thread open` and `thread read` cover
the thread verbs, and `mosaic talk --thread` sends thread.send as a
REQUEST and prints only the reply to the sent message. `mosaic follow
--thread` is the same loop without the send. A thread reference is its
id, an id prefix of 8 or more characters, or <project>/<name>; unknown,
short and ambiguous references refuse with exit 2 before any send. Every
verb refuses inside an agent run. There is no default thread, so a plain
`talk assistant` still meets thread-required-use-thread-send.
Acceptance 314 step 1 now creates the project and the assistant thread.
New: packages/cli/src/thread.mjs, packages/cli/tests/thread-cli.test.mjs.

Sage's landing gate ran on 77b1a6e8a plus the candidate: 25 steps, all
rc 0 (15 packages, 10 script suites), 14:44:02Z to 14:48:42Z, network
sage-r128_default removed. The commit sits on 7de8b7270, which adds one
docs/SESSIONS.md line that no test reads.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 09:49:14 -05:00
jason.woltjeandClaude Opus 5.5 7de8b7270a sessions: Dewey row 149 round 3 build, slot runs and review request (comment 28902)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 09:45:03 -05:00
jason.woltjeandClaude Opus 5.5 77b1a6e8a9 plans: row 87 follow-ups on the start limit, and decisions 147 (B1) and 148 (B2) (#1581)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 09:41:43 -05:00
jason.woltjeandClaude Opus 5.5 db1519637b sessions: Filbert row 87 r8 and row 128 r1 reviews (approve, comments 28894 and 28895)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 09:40:24 -05:00
jason.woltjeandClaude Opus 5.5 bb0766826d plans: brief for the host starting the landing run once a merge decision is approved (#1651)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 09:35:56 -05:00
jason.woltjeandClaude Opus 5.5 917ef55e18 plans: row 87 round 8 counts a stop's no-such-container as gone, bounds each wait per container and gives I6 the unit comment (#1581)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 09:33:41 -05:00
jason.woltjeandClaude Opus 5.5 3fd0b387f3 sessions: Filbert row 87 r7 review (approve, comment 28889)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 09:30:59 -05:00
jason.woltjeandClaude Opus 5.5 4c1fee85a5 plans: row 87 round 7 makes the leftover rule wait by id until each core container is gone and names the start order (#1581)
Answers Darkwing's round 6 review (28884) and Filbert's doc-only
follow-up (28883).

- After docker stop, the rule waits for "no such container" by id,
  bounded by the core stop timeout, then rm -f and the same wait; a
  container still there refuses exit 1, which the unit retries.
- A name conflict is now only a hand-made container without the store's
  labels; it stays exit 3, which the unit does not retry.
- Start order: host.lock, store path, rootless check, leftover rule,
  docker run.
- I6 gains two tests: run straight after a stop boots, and a leftover
  never removed refuses exit 1.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 09:28:56 -05:00
jason.woltjeandClaude Opus 5.5 e1f13a54d2 sessions: Filbert row 87 r6 review (approve, comment 28883)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 09:25:57 -05:00
jason.woltjeandClaude Opus 5.5 80ebe2afc4 plans: row 87 round 6 gives the store one real-path spelling, starts each core fork on its first line and states the name-conflict refusal (#1581)
Answers Darkwing's round 5 review (28880) and Filbert's doc-only
follow-ups (28881).

- connected follows the channel from the wrapper's creation, as a forked
  child's does; the entry starts the broker on boot and the notifier on
  start, so host.mjs:217 and :244 never wait on a pid line.
- Bus start makes <dataRoot>/bus at 0700 and takes its real path; the
  bind source, mosaic.store label, leftover filter and hostStatus all use
  it.
- A name conflict refuses with exit 3, names the container and the
  client's exit code, gives host.lock back, and removes nothing.
- The host.pids test list names what each test does with the pid.
- I6 gains four lifecycle tests for these.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 09:23:53 -05:00
jason.woltjeandClaude Opus 5.5 b04014e592 sessions: Filbert row 87 r5 review (approve, comment 28881)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 09:20:16 -05:00
jason.woltjeandClaude Opus 5.5 75b4af0bcc sessions: Filbert row 149 r2 review (changes, comment 28878)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 09:17:24 -05:00
jason.woltjeandClaude Opus 5.5 232e054499 plans: row 87 round 5 keys the core container on the store, sets the stop timeout to cover both close waits, and defines connected and host.pids (#1581)
Answers Darkwing's round 4 review (comment 28877) and Filbert's
doc-only follow-up (28876).

- P: the core container's name is mosaic-core-<16 hex of SHA-256 of the
  real path of <dataRoot>/bus>, keyed on the store like writer.lock, so
  two data roots with the same business don't collide.
- Q: close() waits CLOSE_TIMEOUT_MS twice (host.mjs:30, 343, 347). The
  host passes MOSAIC_CLOSE_TIMEOUT_MS to the entry; the core stop
  timeout is two close timeouts plus 5 s (45 s today), used by the
  leftover rule's docker stop -t.
- R: {from, pid} start line; connected turns false on the exit line,
  client stdout close or exit, or a failed stdin write; host.pids is
  null for both forks in containerized mode and adds container; the
  pid-signalling host tests stay local, I6 uses docker exec kill.
- Nit: firstReply (129) and ended (148) cited apart from watchChildren
  (159-165).
- I6 tests and design section 9 add the slow-notifier leftover, two data
  roots, the missing-timeout refusal and connected.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 09:16:30 -05:00
jason.woltjeandClaude Opus 5.5 bf7d09c6cd sessions: Sage row 87 rounds 3-4, row 128 brief, queue sweep
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 09:13:22 -05:00
jason.woltjeandClaude Opus 5.5 c95c437cb6 queue: revs 1659-1674, row 87 rounds 3 and 4 (round 4 approved by Filbert), row 128 assigned to Researcher, row 149 round 2
Sage: 1659-1661 (row 87 round 3 to in-review, comment 28868), 1667-1669
(row 128 assigned to researcher, brief re-pinned, briefed), 1671-1673
(row 87 round 4 to in-review on e5dbcf626, comment 28874).

Other seats' revs, swept in by the snapshot: Filbert 1662 (row 87 r3
changes, 28870) and 1674 (row 87 r4 approve, 28876), Dewey 1663, 1665, 1666 (row 149 round 2 in-review, 28872),
Darkwing 1664 (row 87 r3 changes, 28871), Researcher 1670 (row 128
in-progress).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 09:12:46 -05:00
jason.woltjeandClaude Opus 5.5 125531d5fc sessions: Filbert row 87 r4 review (approve, comment 28876)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 09:11:37 -05:00
jason.woltjeandClaude Opus 5.5 e5dbcf6264 plans: row 87 round 4 adds the core container's lifecycle and bus status liveness, answering Darkwing's and Filbert's round 3 reviews (#1581)
Design section 3 gains "The core container's lifecycle": the fixed name,
labels and --rm; tagged fork lines that carry each fork's replies, kills
and exit codes, so the host's per-child stop, start-failure kill and
watchChildren keep their logic; what the entry does when one fork exits;
the client ending first; SIGTERM; the host dying without closing stdin
(not spiked, I6 measures it); the leftover removal at bus start; and
bus status liveness from the engine instead of the lock's container pid.
B2 now names caps on the entry's engine-relayed stdout. Section 9 and
I6's files and tests carry the new rules. Broker cites move to
0f3eb25ea after row 143; LAUNCH_OPS is process.mjs:5-20.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 09:08:45 -05:00
jason.woltjeandClaude Opus 5.5 d5025c8f2e sessions: Dewey row 149 round 2, rebase onto ac55e84fe
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 09:05:13 -05:00