Commit Graph
2945 Commits
Author SHA1 Message Date
jason.woltje 9014f9f728 sessions: Sage row 65 build, Mos decision 123 go (mos-0841) and in-review 2026-10-19 10:41:03 -05:00
jason.woltje 4c66494548 queue: row 65 in review, round 1 on #1558 with candidate ccdbc2232, request 29133 (sage revs 1945-1946) 2026-10-19 10:40:51 -05:00
jason.woltje 1d5897024d sage: row 65 packet, candidate ccdbc2232 manifest, diff, public/ diff, build notes, gate and mutants (#1558) 2026-10-19 10:36:42 -05:00
jason.woltje d8336daef2 queue: row 65 brief re-pinned for the human-only routes.set verb (sage rev 1944) 2026-10-19 08:36:54 -05:00
jason.woltje 841e0b0a2a brief: row 65 routing table saves through a human-only routes.set verb, outside ORGANIZATION_KEYS 2026-10-19 08:35:48 -05:00
jason.woltje 4d856a0cdd queue: row 65 brief re-pinned to 54cbf1a2 for the Console routing table, and its gate names Mos's decision 123 check (sage revs 1942-1943) 2026-10-19 08:33:55 -05:00
jason.woltje d3af6db973 brief: row 65 adds a Console routing table for harness, model, thinking and fallback (mos-0840), and refuses thinking a harness can't apply 2026-10-19 08:32:07 -05:00
jason.woltje b65e6d5fe9 sessions: Sage row 168 landing, row 65 brief amendment (decision 151), row 7 posts 2026-10-19 08:29:32 -05:00
jason.woltje e1bfc2cd45 queue: row 65 in progress and brief re-pinned to 802e046c with its gate, row 168 approved by Dewey and done (sage revs 1937, 1939-1941; dewey rev 1938) 2026-10-19 08:26:01 -05:00
jason.woltje 8e2cbb5558 brief: row 65 keeps the instance vars as its one source, adds fallback vars and the full harness list (decision 151, #1558) 2026-10-19 08:24:25 -05:00
jason.woltje efb51169de ledger: count only stack issue numbers, a tracker-name skip and a --first-issue floor (#1665) 2026-10-19 08:24:06 -05:00
jason.woltje 54786df03a sessions: Dewey row 168 review round 1, approve (29121) 2026-10-19 08:10:16 -05:00
jason.woltje c34deedf92 sessions: Sage row 168 build and review request, P19 371 rulings 2026-10-19 08:06:53 -05:00
jason.woltje 3bf16114a1 queue: row 168 in review round 1, manifest candidate, request 29120 (sage, revs 1935-1936) 2026-10-19 08:06:31 -05:00
jason.woltje 6da8fdaa98 sage: row 168 packet, candidate f3a966ea4 manifest, diff, build notes and gate (#1665) 2026-10-19 08:04:58 -05:00
jason.woltje e2ad3aa10d queue: row 168 in progress, brief re-pinned to 52ac1975 and piece updated (sage, revs 1932-1934) 2026-10-19 07:54:31 -05:00
jason.woltje 03586947af docs: row 168 brief amended before build, floor moves to a --first-issue option (#1665); window-plan: mos-0838 rulings in the 3i draft 2026-10-19 07:52:47 -05:00
jason.woltje e69e646b40 window-plan: P19 371 3i window draft for Mos, one or two windows and the restore caveat 2026-10-19 07:49:00 -05:00
jason.woltje c16ba2f0c4 queue: row 168 ledger stack refs added and briefed, #1665 (sage) 2026-10-19 07:46:55 -05:00
jason.woltje a1572a8f7d docs: brief for the ledger counting only stack issue numbers (#1665, P19 372, row 7 follow-up) 2026-10-19 07:45:35 -05:00
jason.woltje 15357b4ba7 sessions: Sage AM standup and row 7 week 10-11 ledger rerun record 2026-10-19 07:43:41 -05:00
jason.woltje b90d944c8c queue: row 7 note, 10-11..10-17 ledger rerun 29089 (sage) 2026-10-19 07:43:27 -05:00
jason.woltje 296972652a queue: row 126 Filbert r2 approve and done (sage) 2026-10-18 20:37:38 -05:00
jason.woltje a267a64b19 sessions: Sage row 126 landing, P19 371 and 372, row 7 week ledger; Dewey queue-126 packet 2026-10-18 20:36:53 -05:00
jason.woltje ca15d73e9f limits: a daily token quota for the account the stack uses, and bus schema 3h to 3i (row 126, #1620)
The business file can name the account claude-code launches use,
`launch.account` = {name, credential}. `name` is an identifier and
`credential` names one login set's environment variables, never a value.
`launch.limits.tokens.daily.<account>` = {limit, since, reset, timeZone}
sets a daily quota for that account. A daily key that isn't the account's
name refuses the business read.

The new plug-in limit-check/daily-quota (interface 2, pure) starts a day at
the first instant at or after `reset` on that local date in `timeZone`. Across
DST that makes a 23- or 25-hour day, and a reset in a skipped hour starts at
the gap's end. It counts the account's known records of all four kinds since
the later of the day start and `since`, and counts unknown turns apart.

The launcher refuses account-credential-missing, account-credential-ambiguous
and account-is-credential (an account name equal to a session credential's
value). Messages name variables, never values. The account rides mayLaunch,
bindLaunch, the usage records, mustStop and the launch record. A pi launch
has no account, records NULL, and no daily quota covers it. `mosaic limits`
and the Console's Settings show one fixed line when a daily row shows:
"Daily quotas count only this stack's own use of the account, not its use
anywhere else."

Bus schema 3h to 3i: 3h reserved usage_records.account as
CHECK (account IS NULL). The new step 3h-3i.sql rebuilds the table in one
transaction, keeping every row's seq and the sqlite_sequence value, and
recreates the three append-only triggers. All of sqlite_master equals 3h's
apart from the account line. A 3h engine refuses a 3i store.
packages/bus/tests/account-migration.test.mjs covers all three, with a
step that fails partway and leaves 3h intact. 3i goes live only through
`stack-release.sh activate ... --migrate` with Jason present (P19 371); the
activate path takes the pre-migrate backup, and the way back is restoring
it (agents/dewey/work/queue-126/MIGRATION.md).

Mos's go mos-0835, six conditions: (1) one transaction, account-migration
test 2 and mutant D29; (2) sqlite_master against 3h, test 1 and mutant D28;
(3) account is never a credential, the launcher's account-is-credential
refusal (launch-account.test.mjs) and the business name pattern
(token-limit-settings.test.mjs); (4) MIGRATION.md, accepted by Mos in
mos-0837; (5) the packet's DESIGN.md "no schema change" line corrected;
(6) the public/ digest below.

The public/ change in bus.js (the daily line under the token-limit table)
carries Mos's decision 123 go mos-0833 on the +/- digest 03e6d9da...ba78,
unchanged at landing.

Owner Dewey, brief docs/plans/2026-10-14_prd-1.2-build.md, "Daily quota for
the credential the stack uses today". Review round 2 rebases the round 4
build onto 1df04f52f (row 167). Reviewer: Filbert approve 29068 on round 1
(manifest d18314f7...8e65); Filbert approve 29080 on
round 2 (manifest f332db76...6fa6).
Seat run on round 2: touched 158/0, singles 1388/0 with 1 esbuild skip,
test-land-work.sh 86/0, 30/30 mutants killed.
Sage gate on 54319f552: GATE_PASSED, 2474+422/0, all 15 packages, the queue
suite and 10 script selftests.

Nothing live.
2026-10-18 20:35:02 -05:00
jason.woltje 54319f5521 sessions: Filbert row 126 r2 review, approve 2026-10-18 20:27:32 -05:00
jason.woltje 4c385db45e sessions: Dewey row 126 round 4 build and review rounds 1-2 2026-10-18 20:27:16 -05:00
jason.woltje 2124cfa761 queue: row 126 Filbert r1 approve, brief re-pin for 3h to 3i, row 7 week note, round 2 in-review (sage) 2026-10-18 20:26:41 -05:00
jason.woltje e264db51ba plans: row 126 brief names the 3h to 3i step and the account guard (#1620)
Filbert's r1 note (a): the scope line didn't name the 3i rebuild or the
account-is-credential guard, which sage-0970 and mos-0835 authorize.
Item 6 describes both. The acceptance list gains the mos-0835 tests, and
the scope bullet now covers the migration step, the version bump and the
guard.
2026-10-18 20:14:03 -05:00
jason.woltje 1df04f52f7 sessions: Filbert row 126 r1 review, approve 2026-10-18 20:09:59 -05:00
jason.woltje 9e2b268660 queue: row 167 Filbert approve and done, row 126 round 1 in-review (sage) 2026-10-18 20:09:07 -05:00
jason.woltje 640a1ee978 sessions: Sage row 167 landing and row 126 3i ruling 2026-10-18 20:08:26 -05:00
jason.woltje 5fa9cc8f2c webui: one settings snapshot and a names read that rethrows a refusal (row 167, #1664)
The Settings page held the launch settings twice, one copy for the launch form and the
token-limit reset and one for the Assistant section. A save in one form left the other with
the old revision, so its next save was refused with revision-conflict. Now one snapshot
serves both. Every successful save or reset sets it from the answer, a read replaces it only
while no form has a draft, and reload clears it.

The names read now rethrows a 403 or signed-out like the usage, instances and limits reads,
so a refusal gives the refused page instead of an empty name field.

Tests: the names refusal, one per snapshot path (launch save, assistant save, reset), and a
null body on /api/name and /api/assistant-stop. limits-browser.test.mjs:54 now expects the
reset's revision on the following save.

Owner Darkwing, brief docs/plans/2026-10-18_settings-reads-after-q169.md.
Mos's decision 123 go mos-0836 on the public/ +/- digest
82a8a810...e984. Mos's F1 and Filbert's notes 1-2 are P19 370.
Reviewer on candidate manifest dba38330...59cc: Filbert approve 29062.
Seat run: 231/0 on all 38 webui files singly, 8/8 mutants killed.
Sage gate on ee3f1fb3f: 2443 package tests and 422 script selftests, 0 failed,
GATE_PASSED 01:06:56Z.

Nothing live.
2026-10-18 20:07:31 -05:00
jason.woltje ee3f1fb3f6 sessions: Filbert row 167 r1 review, approve 2026-10-18 19:37:26 -05:00
jason.woltje 0434ecfef0 sessions: Darkwing lines from 2026-10-16 to 2026-10-19 (rows 137, 141, 150, 87, 155, 162, 165, 166) 2026-10-18 19:12:47 -05:00
jason.woltje 81f26551b4 queue: row 165 r3 in-review, approvals and done, row 166 r2 in-review and Filbert approve (sage) 2026-10-18 19:11:54 -05:00
jason.woltje cff5f31eda sessions: Sage row 165 landing 2026-10-18 19:11:13 -05:00
jason.woltje 9466f3e5ed business: the human adds and changes role instances from the CLI and the Console (row 165, Q171, #1662)
`mosaic business instances BUSINESS` reads the role instances, and
`mosaic business instance add|set` writes one add or change through the
broker's new human-only `instances` and `instances.set` verbs. The writer is
packages/business/src/instance-settings.mjs. It takes the caller's revision,
validates the next document, refuses a definition that declares credentials
(organization-credentials-out-of-scope), keeps protected instances as they
are, logs the human as the actor, and says when the running bus needs a
restart. Neither command restarts the bus.

The writer refuses the instance ids human and tester with invalid-request,
because the broker refuses a business whose roles use either name when the
bus starts.

The Console's Settings view shows the instances and, under --send only,
posts to POST /api/instances with the exact Origin and same-origin Fetch
Metadata. A refusal keeps the draft. An answer without the view's shape is
outcome-unknown (503). The page's public/ diff carries the decision 123 go
in mos-0832.

Neither verb is in ORGANIZATION_KEYS, so no agent tool reaches them.

Owner Darkwing, brief in row 165 (#1662). Round 3 rebases round 2 onto
4f45cadc0 (row 156). The public/ +/- digest is 939ecd28...9444, unchanged
at landing. Reviewers on candidate manifest e30b54da...f580: Dewey
approve 29052, Filbert approve 29053. Seat run on 4f45cadc0: 1436/0
singles, 37/37 mutants killed. Sage gate on e8b09735a: GATE_PASSED 25/25,
packages 2282/0, queue node 156/0, script selftests 422/0, 23:59:13Z to
00:05:35Z. Rebased onto 50a57e454 over two SESSIONS-only commits.

Nothing live.
2026-10-18 19:10:20 -05:00
jason.woltje 50a57e454b sessions: Filbert row 166 r2 review, approve 2026-10-18 19:09:30 -05:00
jason.woltje 7f9b976c97 sessions: Filbert row 165 r3 review, approve 2026-10-18 19:07:43 -05:00
jason.woltje e8b09735a5 sessions: Sage row 156 landing 2026-10-18 18:43:21 -05:00
jason.woltje d6a008ad21 agents/dewey: row 156 packet, round 2 (#1651) 2026-10-18 18:43:13 -05:00
jason.woltje 1cf77e4663 queue: row 156 done, row 165 r2 in-review and approvals, row 166 r1 in-review and Filbert approve (sage) 2026-10-18 18:41:30 -05:00
jason.woltje 4f45cadc09 bus, cli, harness: the host starts the landing run once a merge decision is approved (row 156, #1651)
Until now a landing ran only when the chief of staff or merge-gate
followed row 149's manual steps. The host now does it.

Broker. landHolders(business) lists the approved merge decisions each
instance holds, sharing the #held generator with landHeld.
landRelease(record) releases a run's claim with by='land-relaunch'.
Delivered and unread messages keep the run, and a run that hasn't had
its first message.receive answers {released:false, landing:true}
(#received, round 2), so a landing turn in progress is never cut. A
run that never reaches its first receive, a hung landing turn or a
broker restart, keeps the release closed, and the decision falls back
to row 149's path.
usage.begin accepts a decision id that landHolders lists for the run.
The bus process answers both ops from their own launchOp lines and
refuses any op it doesn't name.

Launcher. start() reads landHolders once for a non-thread instance and
takes land_work and the session's landing list from that one answer.
landPass() runs after threadPass() on each tick.

Runner. One turn per landing entry before the message loop, with a
usage bracket on the decision id.

Docs. A "Landing runs" section in the cli README and docs/TOOLS.md.
roles/merge-gate.md, cto.md and chief-of-staff.md say the host starts
the run, and row 149's steps are the fallback.

Owner Dewey, brief docs/plans/2026-10-18_landing-run-launch.md, design
DESIGN.md in the packet (sage-0808). Round 2 answers Filbert's F1-F3
(29033, rulings sage-0942). Reviewer on candidate manifest
72a5c1b6...b700: Filbert approve 29039. Seat run 4: 290/290 singles,
36/36 mutants killed. Sage gate on a618528b2 (candidate 524bfcc80): GATE_PASSED 25/25. Package tests 2258 plus queue 156, script selftests 422, 23:30:07Z to 23:38:04Z. Run 1 stopped at pkg-webui on board-held.test.mjs:163, the P19 366 timeout, 220/1. Run 2 resumed at pkg-webui on the same tree: webui 221/0 and every scripts/test-*.sh green.

Nothing live.
2026-10-18 18:38:57 -05:00
jason.woltje 4d92151bcf sessions: Filbert row 166 r1 review, approve 2026-10-18 18:38:50 -05:00
jason.woltje c9c8c14d41 sessions: Filbert row 165 r2 review, approve 2026-10-18 18:35:00 -05:00
jason.woltje a618528b26 sessions: Filbert row 156 r2 review, approve 2026-10-18 18:14:28 -05:00
jason.woltje 37dbf08620 sessions: Dewey rows 156 r2 accepted, 165 r1 review, 126 packet and Mos go request 2026-10-18 18:13:57 -05:00
jason.woltje c3cd273454 queue: row 165 r1 in-review and Filbert approve, row 156 round 2 in-review (sage) 2026-10-18 18:12:22 -05:00
jason.woltje de34256c66 sessions: Filbert row 165 r1 review, approve 2026-10-18 17:57:13 -05:00