jason.woltje
3410df7c3b
morgana: row 275 r3 (duckworth-0166): B1 bob asks create only, open and send on alice's own thread; N1 thread B holds a message and the viewer read asserts its id
2026-10-22 12:46:09 -05:00
jason.woltje
1e3db53436
morgana: row 275 r2 (mos-1311): downgraded viewer keeps send and open refusals with nothing stored in the R3 test; BUILD.md lists each changed assertion, old and new, with design 4.3 lines
2026-10-22 12:46:09 -05:00
jason.woltje
4dd85c6716
morgana: row 275 (193b1b, #1780 ): viewer verbs and board refusals. VIEWER_VERBS at any grant level, collaborator for thread.create/open/send per verb, BOARD_VERBS exported and refused to users, user-side governance pin, mutants 6 and 10; FED R3 viewer-refused assertions reversed per design 4.3
2026-10-22 12:46:09 -05:00
jason.woltje
14e4600617
test(row253): assert direct query PID equals SID (mos-1298)
2026-10-22 10:53:16 -05:00
jason.woltje
362ec674c9
test(row253): expose peer failures and pin reasons (mos-1297)
...
The peer-output fixture execs isolated system Python to write its exact bytes
and exit with peer-status. This avoids masking parser/status faults behind the
supervisor session check. All17 faults assert an exact reason with a delimiter;
every existing assertion remains. No product change or timing delay.
Old packages/cli/tests/case1-accept.test.mjs💯
const PYTHON_STUB = `[ -f "$HC/peer-output" ] && { cat "$HC/peer-output"; exit "$(cat "$HC/peer-status")"; }
Diagnostic under sage-2752 found probe-inner-session for malformed output and
nonzero exit. Mos confirmed the fixture mask and authorized this repair.
No tests ran after the repair; Duckworth review and fresh whole gate follow.
2026-10-22 10:32:29 -05:00
jason.woltje
950cf47f3e
fix(row253): bound cleanup retries after initial inventory
2026-10-22 09:26:31 -05:00
jason.woltje
cca9367168
fix(row253): supervise socket queries across sudo sessions
2026-10-22 09:26:31 -05:00
jason.woltje
6f320b4b0c
docs: propose row253 C4 session supervisor and draft hop fake
2026-10-22 09:26:31 -05:00
jason.woltje
643d16528b
test: prepare row253 socket fixtures and fix gate collisions
2026-10-22 09:26:31 -05:00
jason.woltje
2cc34aef87
row 264a r13 ( #1769 ): threads.test :341 takes the 3l trigger's text, 'only to its session's holder' (delivery_same_session, 3k-3l.sql:153); BUILD.md raises the stack-release limit to 1800 s from the survey's 575 s and records the r10 and r11 reds and the r12 survey with M1 in Runs; test only (mos-1278, sage-2682)
2026-10-22 08:36:56 -05:00
jason.woltje
93f4af12bc
row 264a r12 ( #1769 ): sessions.test T2's refused() keeps every table but events equal and pins one action.refused {code: not-holder} event per refused call in call order; the old every-table check could never pass since request()'s catch (broker.mjs:4242) writes the refusal through #refused; BUILD.md records Mos's reading of sage-2257; test only (mos-1277, sage-2676)
2026-10-22 08:21:41 -05:00
jason.woltje
75f049ed23
row 264a r11 ( #1769 ): later3l in account-, gitea- and grant-migration names threads_id_not_session, the 3l trigger on threads (3k-3l.sql:104) the sqlite_master compares missed; test only (mos-1276 option A, sage-2672)
2026-10-22 08:14:15 -05:00
jason.woltje
c3f43960eb
row 264a r8 ( #1769 ): the six migration tests that compare a whole store with sqlite_sequence after the 3k-3l step leave out the sessions and session_defaults sequence rows and assert them exactly, so any other new row still fails; usage-migration reads sqlite_sequence by name (sage-2621, duckworth-0129); unrun
2026-10-22 08:07:43 -05:00
jason.woltje
f3e9b6512c
row 264a r7 ( #1769 ): thread.claims reads each session's latest claim, so a thread with two held sessions lists both (sage-2591, duckworth-0124 C4); thread-claims.test threads get their default session and its T5 message names it (C5), T6 two held sessions; unrun
2026-10-22 08:07:43 -05:00
jason.woltje
5baaaa447b
row 264a r5 ( #1769 ): build notes for the 3k-3l step on row 236 ( 8f51900b5, sage-2412): the renames, the merged pins and lists, gitea-migration reading both steps, and the in-memory dry run on 236's schema; README op value legacy-3l
2026-10-22 08:07:43 -05:00
jason.woltje
72fc5a330b
row 264a r2 ( #1769 ): generation fence for thread runs, a retired generation's approval, delivery and read refuse and write nothing (sage-2257); #route refuses an unknown session, README default-op note, Row 155 comment reworded, mutants M1-M3 in the build notes (duckworth-0107)
2026-10-22 08:07:43 -05:00
jason.woltje
d6301dffce
row 264a ( #1769 , T1 item 7): bus schema 3k to 3l, sessions below a thread
...
sessions and session_defaults are new and append-only. thread_claims, message_threads and
thread_opens are rebuilt in place with a session column, and thread_claims gains a generation
counted from claim rows. Each existing thread gets a default session with the thread's id; new
threads get a random one. Holder, per-run, release and delivery triggers key on the session,
and two id triggers keep session and thread ids apart (Duckworth checks 1-7, duckworth-0106).
The broker binds a thread run to a session (the default when the record names none), and
thread.open, thread.send and thread.messages take an optional session. New verbs session.list
and session.create (idempotent on op). Tests: sessions.test.mjs for T1 bus half, T2 and T7 with
a pinned 3k fixture; count, version and verb pins; hand-made test threads write the legacy
default session.
Built on row 236 (8f51900b5 ), which takes 3j-3k, so this step is 3k-3l by landing order
(row264 Q2, sage-2412). The op values are legacy-3l and migration-3l. gitea-migration.test reads
its store after both steps. Not run yet: every run waits for Sage's CLEAR.
2026-10-22 08:07:43 -05:00
jason.woltje
54ebc5d71c
row 281 b5: T14 pins that the human's no takes a declined host decision out of the set, after hosts.remove left it with no host (N1); M22 drops the closed check and T14 kills it; test only, not yet run (sage-2653, dewey-0844, #1786 )
2026-10-22 07:42:10 -05:00
jason.woltje
6b6eb533e8
row 281 b4: T6b pins step 0's four Gitea reads in order and says 'before any Gitea write'; M1-M21 all killed on b4a 3f29375a8 with the M1 exit check, table in the build notes (dewey-0839, sage-2627, sage-2643, #1786 )
2026-10-22 07:42:10 -05:00
jason.woltje
f9fcf5d7b3
row 281 b4a: the M1 hang was T6c's held web1:add loop, which only the fire's abort ends; setup's t.after clears held and failing, and T6c and T10 release their Gitea gate; test only, no code change (mos-1273, sage-2636, #1786 )
2026-10-22 07:42:10 -05:00
jason.woltje
c055dddf44
row 281 b3: the first base run's five red tests were test faults, no code change; T4b reads the manual's revoke id from its event, T5b expects gitea-left:<id>,tokens (N10), T6b allows step 0's GET checks, gitea T8 leaves the call log out, cli T10 makes the 0700 store root; rebase onto 980cec88c noted (sage-2605, sage-2615, #1786 )
2026-10-22 07:42:10 -05:00
jason.woltje
4982fa0adf
row 281 b2: T1-T13 tests (fire-revokes-grants, lifecycle-revoke T1, T8 tester refusals, cli T10 pass) and the test choices in the build notes ( #1786 )
2026-10-22 07:42:10 -05:00
jason.woltje
7c2c876319
row 281 b1: step G in the broker (fire and delete jobs, the grant set, the lock, boot's interrupted check) and build notes ( #1786 )
2026-10-22 07:42:10 -05:00
jason.woltje
9696d1fcb7
test(webui): supply empty thread claims in shell bus fixture
2026-10-22 07:17:46 -05:00
jason.woltje
964b6b1848
test(webui): export bus error in thread claims loader fake
2026-10-22 07:08:42 -05:00
jason.woltje
e7d21b91b8
feat(webui): show thread claims separately in Agents
2026-10-22 06:40:05 -05:00
rocko
407c8d7be2
test: harden processing failure diagnostics and cleanup
2026-10-22 06:24:27 -05:00
jason.woltje
62f53b1e07
morgana: row 277 ( #1782 ) r4: a thread.claims error with no bus code still throws and prints nothing (duckworth-0123 N1, M9); BUILD.md records the rebase onto 0165be266 and N2/N3
2026-10-22 06:01:09 -05:00
jason.woltje
bda4ee6138
morgana: row 277 ( #1782 ) r3: a refused thread.claims prints the role lines and the refusal code (N1), cli README agents usage (N2), per sage-2505
2026-10-22 06:01:09 -05:00
jason.woltje
3a5275a9ad
morgana: row 277 ( #1782 ) build r2: thread-claims test helper passes a run's capability through, T1 copies store rows before the strict compare (early look sage-2504)
2026-10-22 06:01:09 -05:00
jason.woltje
eccd6e276e
morgana: row 277 ( #1782 ) build: thread.claims bus verb for human and reader sessions (D1), mosaic agents adds thread lines without --tester or --json (C1/C2), message-filter pin moves to thread.claims (C3), tests T1-T8
2026-10-22 06:01:08 -05:00
jason.woltje
f12441d4fa
honker: row 256 ( #1761 ) b2: Webby's N1 (webby-0124): instance-settings.mjs:30 and agents.js:46 comments name the assistant, not the chief of staff; BUILD.md note; comment-only, unrun
2026-10-22 05:33:13 -05:00
jason.woltje
e617543b8d
honker: row 256 ( #1761 ) b1: the human deletes a creative instance and any other actor is refused organization-creative-human-only; protectedRefusal is the delete check and the listing's per-reader endProtected; actor threaded through planDelete/checkDelete/instances.check; fire unchanged; DEFERRED entry closed for delete; tests T1-T8, unrun
2026-10-22 05:33:13 -05:00
jason.woltje
4c485c63b9
morgana: FED R3 r6 (sage-2576): the collaborator-list test pins USER_VERBS as the ruled seven so M3x and M6x fail it, and its off-list set adds the grants, lifecycle, web and host verb lists; test only, unrun
2026-10-22 05:06:52 -05:00
jason.woltje
f58cfc3617
morgana: FED R3 r5 (sage-2566): covers, LEVELS and the all marker move into the business vocabulary so the broker keeps its sandbox import closure; access.mjs re-exports them, the pin test lists covers on the vocabulary line, RUNNER_FILES unchanged, M16 on the pin, the closure walk and the confined load; unrun
2026-10-22 04:48:41 -05:00
jason.woltje
cee3f25a37
morgana: FED R3 r4 (sage-2486, sage-2557): halt refuses a granted user's thread.send while thread.messages answers (test), row 194's hire refuses an instance named user at the broker and the writer (S1, one test each), the access argument check moves before the store read (S2, test), M12-M15; unrun
2026-10-22 04:48:22 -05:00
jason.woltje
618fe0f0b3
morgana: FED R3 r2 (dewey-0777): role key user refused at the broker load check and by the instance writer (N1, one test each), #threadFor user clause listed as an equivalent mutant, 193b1a filter mutant not applicable, M10/M11 and the M3x two-walls run in the kit; unrun
2026-10-22 04:48:22 -05:00
jason.woltje
d20c92bf65
morgana: FED R3 build ( #414 , sage-2292): user principal on the bus, bindUser with a per-request grant read, the collaborator verb list and its filters, user threads and the B6 reply path, runner user header; unrun
2026-10-22 04:48:22 -05:00
jason.woltje
bd5f11dedd
bus: row 236, a gitea grant raise on a broker with no Gitea path refuses gitea-not-configured (sage-2559, #1742 )
2026-10-22 03:59:40 -05:00
jason.woltje
e40b74bebc
bus: row 236, two out-of-manifest pins: gitea is a known grant method, and the broker imports giteaName and parseGiteaUrl (gate run sage-2554, #1742 )
2026-10-22 03:57:48 -05:00
jason.woltje
ce74477e14
bus: row 236, grants.status is a read under the kill switch, as hosts.status is (sage-2453, #1742 )
...
Row 191's #processingGate refuses agent verbs off its read list while
processing is halted. grants.status joins hosts.status on that list, per
the kill-switch plan (2026-10-20_kill-switch.md:16): reads still work.
An agent's grants.revoke stays refused while halted, as hosts.revoke is.
2026-10-22 03:42:05 -05:00
jason.woltje
4d9d62ae89
bus: row 236 r3, one N5 test per settle branch; README notes for a left admin token and a running executor (sage-2388, #1742 )
2026-10-22 03:42:05 -05:00
jason.woltje
5e5ba94b19
bus: row 236 r3, a revoke during a settle whoami ends revoked in the 401 and token-unknown branches (Dewey N5, #1742 )
2026-10-22 03:42:05 -05:00
jason.woltje
97bbe7fd30
bus: row 236 r2, a revoke during step 7 or a settle ends revoked; sweep fire retry checks the user id (Dewey B1, B2, #1742 )
2026-10-22 03:42:05 -05:00
jason.woltje
91f7029923
bus: row 236 gap test takes any HTTP status in a grant.result (debug run 2, #1742 )
2026-10-22 03:42:05 -05:00
jason.woltje
be11a1f7e6
bus: row 236 tests for the static mutant gaps M8, M9, M16, M28, M29, M37 ( #1742 )
2026-10-22 03:42:05 -05:00
jason.woltje
d87483d683
bus, cli: #436b Gitea grant path, schema 3j-3k (row 236, #1742 )
...
Gitea grant executor (steps 0-8, settle, restart, revoke and fire, sweep,
status), the grants.* verbs and mosaic grants, the 3j-3k migration with
gitea_users and gitea_grants, and the section 9 tests with a fake Gitea and
a scratch gitea/gitea:1.27.1 X-G3 test. Build notes in
agents/megavolt/work/queue-236/BUILD.md.
2026-10-22 03:42:05 -05:00
jason.woltje
fd6dd327c3
honker: row 194 b15 (b') (sage-2507): T15 drops the exited reviewer stand-in's registry entry by hand, the N6 convention, so the post-resume coder launch isn't refused on an entry with no provider/model; BUILD.md notes for (a) and (b')
2026-10-22 03:06:41 -05:00
jason.woltje
5fd178e44d
honker: row 194 b15 (a) (sage-2501): the Broker constructor's harnessOn, testerOn and roleFile type checks move ahead of the store reads, so a null store gets the argument error first (chief-of-staff T8b); 191's lines unchanged
2026-10-22 03:06:41 -05:00
jason.woltje
4f68485272
honker: row 194 b8 r2 (sage-2289): a fire stop stopRun can't confirm (unknown) reads as lifecycle.end.alive with reason unknown, never killed, and the Console flags it; cli T9a no-runtime-record test, bus T9a reason checks, M56; notes
2026-10-22 03:06:41 -05:00