Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7cbd025596 |
No files matched your search
-174
@@ -5411,177 +5411,3 @@ Row 299 (573, #1806, Gander, Filbert): before, the P10 band test timed a fault r
|
||||
2026-10-23T17:29:46Z | Gyro Vikunja571 sage-3542 Connections amendment | Branch gyro/editor-connections-design cut exactly from landed PRD1.17 30e6bb680; read REQ-LIB-5 in that PRD. Replaced stale J-b waits in parent and W4. Proposed W8 owns current authorized Markdown/DOCX links/backlinks list, labels, versioned refresh, leakage refusals and fixture tests. Build order under mos-1470/comment961 is W7 closed routing candidate, W8 landing, then W7 human first-real-import opening. No REQ-LIB-8 condition or acceptance change. Q234/mos-1363/S0 M1-M14 and post-10-27/MVP priority fixed. Static diff, twelve brief sections and append-only checks pass. No repo Node, tests, build, browser, queue mutation or live action. Fenton reviews after authorized docs branch push; Sage lands on approval.
|
||||
|
||||
2026-10-23T17:32:37Z | Gyro sage-3544 fenton-0016 N1/N2 delta | Before: W7 Gate/final real-conversion list omit the W8 build-order cross-reference and W8 human-view filtering cites agent settings. After: both locations explicitly put W8 landing before human opening as mos-1470 build order, not acceptance; comment/tracked-deletion links are not current story links and never appear in the human Connections view regardless of agent settings. New commit atop approved 5af060fb5, no amend. Static diff and append-only checks pass. Docs only, no repo Node/tests/live action. Fenton checks only this delta.
|
||||
|
||||
2026-10-23 | Gladstone | Gitea #1816 / Vikunja 614 hostcheck item 5 and bundle verification | Before: dpkg's correct 750 form falsely fails item 5, and two run-sheet bundle verifies require a missing repository. Draft after: exact root/mosaic/path with octal 0750 equivalence; stat/output unchanged; both verifies use cleaned-up bare scratch repos. Three additive-only test blocks, two planned mutants. Untested under Sage-3738; Sage-3740 authorizes untested branch push for static review. Queue row pending; Sage owns gate and landing.
|
||||
|
||||
2026-10-23 | Gladstone | #1816 / Vikunja 614 scope amendment mos-1534, sage-3741 | F1 narrowed to exact 750/0750 and single spaces; F3 allows @ in absolute unit paths with unsafe-character refusals retained; F4 moves copy_tree to / after path resolution. AS_USER audit found git -C and stack-release's existing checkout cd cover the other steps. Added new unit and unreadable-cwd copy tests only. Untested under Sage's no-Node hold; no live action.
|
||||
|
||||
2026-10-23 | Gladstone | #1816 / Vikunja 614 F5 draft (mos-1536) | Before: the run sheet omits the explicit notify decision and precheck misses a bus-start refusal. After: section 9a creates a private null-binding decision as mosaic; precheck directly reuses readNotifyConfig and private_dir, and new tests cover accepted and refused decisions. Existing fixture setup additions await Mos approval through Sage; installer unchanged. Untested under no-Node hold.
|
||||
|
||||
2026-10-23 | Gladstone | #1816 / Vikunja 614 fixture ruling mos-1537 | Added only three setup lines each to host(t)/world(t) for the explicit null notifier decision. Existing assertions/fakes/lines intact. New install test checks decision bytes/mode preserved and missing decision remains absent. F5 missing-file fault removes the setup file. Untested under Sage's hold; separate follow-up atop 33950cf9b.
|
||||
|
||||
2026-10-23 | Gladstone | #1816 / Vikunja 614 F6 and notify parent (mos-1537) | Before: the run sheet's copy check lacks its required CLI wrapper; mkdir -p -m does not guarantee the notify parent mode. After: a separately Mos-gated wrapper --create step follows install and precedes check, as mosaic from cwd /; section 9a explicitly creates both notify directories at 0700. Docs only, no live action; Node/tests still held.
|
||||
|
||||
2026-10-23 | Gladstone | Row320 / #1816 first review CHANGES (morgana-0217) | Reviewer run: hostcheck19/19, unit47/47, install24/24, copy17/18; seven of eight mutants killed, M4 survived because both base/mutant failed only cleanup. Fixed this row's F4 test to enter cwd then chmod000, assert no read/search, pass an absolute outside bundle, and restore0700 in finally. Existing tests/setup and production scripts unchanged. Correction untested locally pending Morgana's focused rerun; no acceptance claim.
|
||||
|
||||
2026-10-23 | Boyd | Row 298 (#1804, Q228), before implementation completion | Took over Megavolt 7a141269c on boyd/row298 at 45dca69f6 under mos-1496/1502. Approved D1-D6 govern human-only grants.scope.set, empty fallback, in-scope close/evidence and spend recheck. All inherited code UNTESTED; no Node/tests until Sage CLEAR. Plan and static gaps recorded in agents/boyd/work/queue-298/BUILD.md; no live grant or credential access.
|
||||
|
||||
2026-10-23 | Boyd | Row 298 (#1804, Q228), targeted verification | On sage-3642 T1 lane B, five whole files serial: business scope 7/0, bus scope 14/0, scope runtime 1/0, CLI scope 4/0, project runtime 3/0 (29/0, no skips). Initial bus fixture typo recorded and corrected. M1-M10 killed by named assertions, source restored and final files green. Dewey dewey-0933 positive control and notes addressed; manifest and evidence in agents/boyd/work/queue-298/BUILD.md. Full package/script gate remains Sage's. No live scope set.
|
||||
|
||||
2026-10-23T22:41:07Z | Boyd | Row 298 (#1804), rebase after row 239 | Rebased onto 833ec1cc8d7c11842efb82e57c1a0b256c8d22d7 on boyd/row298-r2 without altering published boyd/row298. Only append-log conflicts; upstream bytes preserved and Boyd suffixes appended. Product merges automatic; row 239 writer-lock revoke and post-revoke error handling preserved, organization.mjs unchanged from new base. Static checks only; UNTESTED on new base pending Sage CLEAR. Details in Boyd BUILD.md.
|
||||
|
||||
2026-10-23 | Goldie | Row 322 / #1818 F8/F9 before | The library installer runs the clone importer, whose yaml dependency is absent on fresh clones, and tail -n 1 hides uncaught errors behind Node's version banner. Plan: run the same-commit copy importer, include it in COPY_PATHS, keep the first error line with last-line fallback, append isolated regression coverage. Mos-1550 approves setup-only world(t) additions and the one-path copy-file pin addition. No tests run yet; Sage slot required.
|
||||
|
||||
2026-10-23 | Goldie | Row 322 / #1818 F8/F9 after | Importer now runs from the same-commit dependency-equipped copy; COPY_PATHS includes it. One-line refusal selects an actual Error/ERR_ line, avoiding Node's source excerpt/banner, with last-line fallback. Mos-1550-approved fixture setup and one-file pin changes; two append-only regression tests. Under sage-3808 CLEAR, serialized timeout -k 10 runs in /mnt/storage/scratch/tmp/goldieuQ2664: install26/26, copy18/18, pinned-copy10/10; new tests2/2 first run and restored; N installer expected-red2/2, F8 and F9 mutants killed, installer SHA256 restored each time. No unexpected red. Evidence and exact old-test changes in agents/goldie/work/queue-322/BUILD.md; full gate and Morgana review belong to Sage.
|
||||
|
||||
2026-10-23 | Goldie | Row 324 / #1820 before (Q247, mos-1555) | New branch goldie/row324 at row298 approved860afc2b6. Design/readers audit in agents/goldie/work/queue-324/BUILD.md: normalize omitted tracker to null, preserve present validation, guard sync readers/adapter config; runtime/instance-settings/broker checks already optional. Existing business.test.mjs98 explicitly requires tracker, so implementation held for Mos approval of removing that one list entry; no old test or product edit, no tests run.
|
||||
|
||||
2026-10-23 | Goldie | Row 324 / #1820 draft built (sage-3836, mos-1556) | Claim rev3759. Omitted tracker normalizes null; present including null/malformed stays validated. Loader, business validate, bootConfig trackerFor and Console sync reader handle absence. Row298's guarded runtime/instance-settings/broker paths preserved. Two new test files (9 planned tests); sole old-test edit drops tracker from required-key list under mos-1556. node --check6/6 and diff check pass. No tests run: untested branch push expressly ordered before CLEAR; Duckworth review and Sage gate pending.
|
||||
|
||||
2026-10-23 | Goldie | Row 324 / #1820 rebased verification (sage-3850) | Rebased onto3569bf54f as7e59ba8b3; only append-log conflicts, eight manifest files byte-equal. Serialized timeout-k10 scratch TMPDIR goldieOdgIjr: new business5/5, new CLI4/4 (includes Console absent read), existing business21/21; presence mutant killed, bytes restored, new files rerun5/5 and4/4. No unexpected red. Published rebased branch goldie/row324-r2 preserves original remote draft without force-push. Evidence/mutant diff/reader list in BUILD.md; review/full gate pending.
|
||||
|
||||
2026-10-23 | Goldie | Row 323 / #1819 before | Case 1 lacks a committed business file. Brief requires actual .53 values and refuses guessing. New branch goldie/row323 from local refactor da537e7d1; source review shows project root, literal human id, tracker sync identity/reference metadata and launch model values absent from DESIGN, plus nonempty launch.instances requires another role. Asked Sage (goldie-0008); no config or test written, no test run. Details agents/goldie/work/queue-323/BUILD.md.
|
||||
|
||||
2026-10-23 | Goldie | Row 323 / #1819 static blocker (sage-3823) | Mos-1554 requires no bot and an absent, never-created tracker token path. Static tracing confirms this refuses install validation (business cli84-97, credentials78-83) and bus boot (runtime131/157, bus credentials225-228), even without tracker.baseUrl; unset env also refuses at bus credentials278. Reported Sage goldie-0009; no JSON/test/credential written, no tests. Accepted source values/role and refusal-test rulings are recorded in BUILD.md; waiting for product-boundary resolution.
|
||||
|
||||
2026-10-24 | Goldie | Row 323 / #1819 resumed draft (sage-3859) | Rebasing prior notes onto Q247 landing dd6cb5872 resolved only append logs. Added trackerless .53 factory JSON: jason, approved project root, chief+assistant for required nonempty launch.instances, claude-code/Opus5.5/high, tester on. No credentials or token placeholder. Seven new tests prepare exact-doc loading plus scratch real validate/install/boot and three refusal paths; one restoring tester-switch mutant prepared. No old test edits; no tests before Sage CLEAR. Source choices/rulings in BUILD.md.
|
||||
|
||||
2026-10-24 | Goldie | Row 323 / #1819 pre-test commit (sage-3861 CLEAR) | Sage explicitly requests commit before runs; JSON/new7-case test/restoring mutant and field provenance committed untested before slot work. Exact sources distinguish mos-1554 human/no-bot intent, sage-3820 roles, sage-3822 project/model, and Q247 tracker omission. No old test edits. Next runs: new file, business whole, CLI whole, mutant/restored file, serialized scratch TMPDIR timeout-k10.
|
||||
|
||||
2026-10-24 | Goldie | Row 323 / #1819 first slot STOP (sage-3861) | On committed571376c30: new file7/7 and business261/261 green; whole CLI hit unchanged revoke-window.test.mjs170 (test579, row306 R4), no RESULT after20.1s at ask167/Promise.all194. Stopped suite on observing red, cleaned only positively identified own scratch fixture. Partial631 pass/1 fail before termination, not full-suite green. No mutant/restored run, no old-test edit/rerun. Manifest unchanged; Sage notified goldie-0016 and slot returned. Evidence local under queue-323, awaits ruling.
|
||||
|
||||
2026-10-24 | Goldie | Row 323 / #1819 second red STOP (mos-1560, sage-3864) | Isolated revoke-window whole-file run1 on unchanged571376c30 failed0/1 after20.126s, same no RESULT at ask167/test194. Start00:24:22Z, load1.46/1.68/2.70, busyhelperCLEAR, fresh scratch goldieBObDQ9. No run2/3/CLI retry/mutant/restored run; no source/old-test edit. Sage goldie-0018 has log/load/error; slot returned, awaits base-dd6cb5872 root cause. Remote remains unverified571.
|
||||
|
||||
2026-10-24 | Goldie | Row 323 / #1819 accepted evidence (mos-1561, sage-3869) | Sage traced revoke-window reds to37-byte TMPDIR making109-byte tools.sock >107 limit (session.mjs278), not Codex. Fresh31-byte /scratch/tmp/XXXXXX confirmation passes1/1 in0.84s. On unchanged571376c30 serialized timeout-k10: business261/261, new7/7, tester-switch mutant killed/restored SHA85e6b9ac, restored new7/7. Every log starts UTC/load/helperCLEAR; all positive runs0 fail/skip/cancel. CLI whole acceptance comes from Sage gate under mos-1561; no local CLI rerun. Evidence-only notes/log commit follows, no old test/source changes.
|
||||
|
||||
2026-10-24 | Goldie | Row325 / #1821 before (mos-1563/1564) | Real .mosaic/project.json idstack disagrees with Case1 project's mosaic-stack key; row323 scratch fixture omitted project file and only warned. New goldie/row325 at99930362e changes only that JSON key and expressly authorized old assertion key; new real-byte project-copy validation tests require valid and reject old key. Mutant prepared; no tests before Sage CLEAR, no queue writes/host actions.
|
||||
|
||||
2026-10-24 | Goldie | Row325 / #1821 after (sage-3882 CLEAR) | Only Case1 projects key becomesstack; only old test70 expected key updated under mos-1564. New3-case test copies real .mosaic/project.json bytes, requires CLI project valid, rejects old key. Serialized shortTMP timeout-k10: new3/3, business264/264, old-key mutant killed/restored SHA9e43bfef, restored new3/3; all positive0 fail/skip/cancel. Manifest4/4 verifies including unchanged project document. Logs/load lines and mutant diff in BUILD.md; no queue writes/host action, Gladstone review/Sage gate pending.
|
||||
|
||||
2026-10-24 — Poe, row 208 / 193d (#1706), before: building Console shared list,
|
||||
share controls and per-grant viewer read-only against approved design e2d161e2e.
|
||||
Base ec86f2c84. Isolated tests and UI-guard mutants pending Sage CLEAR; no live action.
|
||||
|
||||
2026-10-24 — Poe, row 208 / 193d (#1706), after: Console shared list, share/unshare
|
||||
controls and live per-grant viewer UI implemented. Webui 418/418 and plugins
|
||||
119/119 green under sage-3925 CLEAR; four UI guard mutants killed with viewer
|
||||
bus bypass refusals. Prior old-test draft regression fixed under sage-3918;
|
||||
missing root oauth4webapi corrected by pinned npm ci under sage-3924. Evidence:
|
||||
agents/poe/work/queue-208/BUILD.md. Independent reviews and Sage's global gate
|
||||
remain; no live state, schema or bus policy change.
|
||||
|
||||
2026-10-24 | Goldie | Row265 / #1770 before, recorded during authorized verification | C2-09b has no project room verbs. On goldie/row265 at ec86f2c84, add only room.open/send/read, pure exported leading-tag parser, README verb rows and new bus tests. Sage-3921 fixes EOF-tag and message-only timestamp readings; tester list/helpers/schema stay unchanged. Claim rev3814; Sage-3932 CLEAR for serialized new files, whole bus and twelve refusal mutants. No old-test edits authorized; stop rules apply.
|
||||
|
||||
2026-10-24 | Goldie | Row265 / #1770 first slot STOP (sage-3932) | New parser14/14, rooms18/18 green; serialized bus stops at old project-runtime.test.mjs:14 import-closure pin, partial619 ok/1 not ok. New pure address.mjs import is absent from expected imports. Static trace also needs address.mjs in seat RUNNER_FILES. No old-test/product correction, no mutant/restored run, no green commit/push; old-pin and out-of-owned-files mount change sent to Sage for ruling. Audit prose missed the direct source pin despite raw grep hit; correction recorded in BUILD.md.
|
||||
|
||||
2026-10-24 | Goldie | Row265 / #1770 verified (mos-1567, sage-3942) | Approved correction adds solely address import pin + Row265 comment to project-runtime.test and one pure-source RUNNER_FILES mount; new block checks parser has no imports. Serialized fresh-short-TMP timeout-k10: unchanged sandbox10/10, parser15/15, rooms18/18, full bus957/957, twelve named refusal mutants killed (each Node1, driver0), restored parser15/15 + rooms18/18. All positives zero fail/skip/cancel; every mutation restored full broker SHA71b32ee4. Old first-red evidence retained, no other old-test change. Slot returned goldie-0034; Boyd packet explicitly includes mount-list review, candidate push next.
|
||||
2026-10-24T07:18:53Z | Sage | Row 327 (#1825, Bradford, Poe and Dewey) LANDED 68c08b4e7. Before: refactor at 94d9e90a6; the push guard was a scratch script with no reviewed-binary check. After: scripts/push-check.sh and scripts/test-push-check.sh on refactor, 3 commits cherry-picked onto 6a5e12511 with blobs equal to the round 3 tip d858c9f8b, plus doc commits 76f84465f and 68c08b4e7. Binaries are found by numstat or a NUL in the first 8000 committed bytes, regardless of attributes; each needs its sha256 and path in an approved latest-round candidate; an unconfirmed queue tail exits 2. Reviews: Poe c31525 rev 3882, Dewey c31526 rev 3883. Gate: 1st run 06:57Z RED, not the candidate: canonical node_modules was empty from 05:45:15Z (sage-4023). Rerun with its own root npm ci GREEN 07:15:49Z: 17 package suites 0 failures (cli 986, plugins 119, webui 418), 11 scripts exit 0, push-check 6 mutants KILLED; skips are the queue canonical-root check and the row 244 live provider cases. The landed push-check.sh passed its own push (NO_BINARY, NO_ATTRIBUTION, PUSH_READY). mos-1575: gates install their own node_modules; canonical restored with npm ci (128 packages).
|
||||
|
||||
## 2026-10-23 — Lena, row 296 / #1802 FED R7 start
|
||||
|
||||
Before: R4 and R6 landed in base 45dca69f6; no scratch two-instance acceptance script.
|
||||
Plan: preserve Quackerjack handoff c6ab9bdc9, add isolated script/CLI test harness with real
|
||||
Console proof in transient user services, map assertions and two mutants for Filbert.
|
||||
Untested: all Node/tests and shared gate wait for Sage CLEAR; no production or live state changes.
|
||||
|
||||
## 2026-10-24 — Lena, row 296 / #1802 scoped acceptance verified
|
||||
|
||||
After: lena/row296-r2 rebased onto e0c6142f3 with both append logs preserved and row source
|
||||
unchanged. Own root/webui npm ci (128/2 packages), canonical dependencies untouched. Sage-4035
|
||||
slot: plain acceptance 1/1, killed-driver cleanup expected exit1 with cleanup verified, M1/M2
|
||||
both killed by named assertions with product hashes restored, whole new file intentionally
|
||||
skips outside its script. No unexpected first-run red, no old test change, no full/shared gate
|
||||
claim. Receipts and limitations in agents/lena/work/queue-296/BUILD.md and run-r2/.
|
||||
2026-10-23 | Beakley (88b97f65) | Row 217 #1718 takeover, before implementation | Clean base 45dca69f6 on beakley/row217. Recovering Launchpad handoff for citation guard, live settings, page store and runner retry. Acceptance is C2-06/design 5.2 plus sage-3595/3599/3602. Tracking agents/beakley/work/queue-217/BUILD.md; no product changes or Node/tests; Sage CLEAR required.
|
||||
|
||||
2026-10-23 | Beakley (88b97f65) | Row 217 #1718 untested draft checkpoint | Continued Launchpad e25ef0373; added runner retry/text/note implementation, pure protocol constants and sage-3640 approved single read-only mount, CLI documentation and new acceptance test files. Static checks caught missing projects compatibility, async request mutation and Git pathspec matching; bounded fixes and regression tests authored. git diff --check clean. No Node/test/mutant executed; Sage holds CLEAR. 283/216/285 dependency checks and all acceptance execution remain open. Packet agents/beakley/work/queue-217/MANIFEST.md.
|
||||
|
||||
2026-10-23 | Beakley (88b97f65) | Row 217 early-look follow-up, Untested | Webby 0939c0682 E1 adds ordinary mallory human-swap test; E2 adds stored trailer-derived agent/file event evidence; E6 creative-sender matrix and E7 runtime readRaw tests authored. Sage-3668/3670 accepts direct writer substitution because setter keys exclude replyLimits (organization.set exists, correcting review premise), and requires distinct availability refusal for E4. Real held-lock/socket and runner-reason regressions plus M5 authored before that production fix; expected RED awaits Sage CLEAR. No Node/tests/mutants, no old-test edits, no green claim.
|
||||
|
||||
2026-10-24 | Beakley (88b97f65) | Row 217 round 2, sage-4037 | Rebased published dde5b8496 onto e0c6142f3 on new beakley/row217-r2; both append-log histories retained. Conflicts preserve landed grant dispatch, revocation hook and lookup exports. Added E4 citation-unavailable product path and real supporting-scope/index comparison tests after row283 8d2856ee3. Untested: no Node/npm/tests/mutants/build; ready for Sage CLEAR after Lena296. Full range-diff and honest discarded local rebase correction in agents/beakley/work/queue-217/BUILD.md.
|
||||
|
||||
2026-10-24T10:21Z | Beakley (88b97f65) | Row 217 round2 slot verified, sage-4042/4043 | Source 2d274a5b6: touched57/57, whole library142/142 business270/270 bus974/974 cli988/988 harness172/172 seat218/218, all zero fail/skip/cancel. M1-M5 killed, controls/restored controls green, product hashes restored after each; E4 RED stand-in observed. Only first-red was new runtime fixture invalid-authority, corrected and retained in receipts; no old test failed/edited. Local root/webui npm ci, short TMPDIR, timeout-k10; no canonical npm/rm or module link. Full evidence agents/beakley/work/queue-217/run-r2; Sage owns scripts landing gate and formal review.
|
||||
2026-10-24T11:15:29Z | Sage | Rows 296 (#1802, Lena, Filbert) and 217 (#1718, Beakley, Webby) LANDED d0a6a87cd. Before: refactor at e0c6142f3 (local 98235fdb3). After: 296's 5 commits (range-diff 5 =, blobs equal b43156fd9 on 28 paths) and 217's 9 commits (5 = and 4 !, the ! are BUILD-LOG/SESSIONS append conflicts kept both sides; blobs equal 96659ccf4 on 79 paths) on 98235fdb3, with doc commits b19ffa04f and 98235fdb3. Reviews: Filbert c31547 rev 3896, Webby c31549 rev 3901. Gate: 1st run 10:57:16Z RED on one rule only, the gate's "cli skipped 0": 296's FED R7 test skips in the cli suite by design and runs only through scripts/test-federation-acceptance.sh, which passed 1/1 in the same run. Mos ruled that a RED gate doesn't land (mos-1583). The gate now allows a cli skip only from an explicit list (test file, test name, runner script) whose runner ran in the same gate with rc 0, at least 1 pass, 0 skipped and the named test passed; any unlisted skip stays RED; checked against a wrong-file and a runner-skip control, both RED. Rerun GREEN 11:14:53Z with its own npm ci: 17 package suites 0 failures (cli 989/988 pass, the allowed FED R7 skip; plugins 119; webui 418), every scripts/test-*.sh rc 0, federation-acceptance cleanup line present; skips otherwise are the queue canonical-root check and the row 244 live provider cases. push-check SECRETS_CLEAN, NO_ATTRIBUTION, PUSH_READY. #1802 closed c31557, #1718 closed c31559, Vikunja 533 comment 1054 (design task, left open for Q29). Row 286's approved manifest shares broker.mjs, runtime.mjs and library/src/index.mjs with 217, so 286 needs a rebase round before its gate. Brief template gains the skip-list rule.
|
||||
2026-10-24T10:02Z | Magica | Row 285 / #1790 r3 before/after (sage-4039, mos-1542) | Before: assigned magica/row285-r3 at b19ffa04f, Scrooge r2 untested at 53db6b7ca. After: seven commits cherry-picked through 644bcaa16; five named overlaps auto-merge preserving newer base changes. Range-diff six '=', one context-only '!'; six patch IDs identical, fixture patch ID differs with upstream import context, exact test added/removed-line comparison identical for all changed tests. business.mjs equals base; Scrooge BUILD equals r2. CREATIVE_KINDS absent in packages/roles/scripts; no 64-hex changed-path pin; 291 conservative reader candidates recorded. No npm or tests before Sage CLEAR; N1 remains follow-up. Own-branch evidence push next, not accepted/green or landed.
|
||||
|
||||
2026-10-24T09:58:36Z | Magica | Row 285 timestamp correction | The preceding Magica entry marked 10:02Z used an incorrect timestamp; replay/evidence commit 87b7547f8 occurred before the measured 09:58:22Z push start. Technical evidence is unchanged.
|
||||
|
||||
2026-10-24T10:32:02Z | Magica | Row285 / #1790 gate STOP (sage-4048) | Before: pushed66a800e15, no tests. After: own root/webui npm ci, short scratch TMPDIR, whole files serial timeout-k10; bus958/958 green (108 files), business partial80pass/4fail, first red old row323 case1-business-file tests57/86/95/105 because committed Case1 chief lacks required gitea ref. No more tests/mutants or source edits. Static diagnosis also finds old empty-credential assertions81/112/114, requiring a specific owner ruling. Sage notified magica-0002. No in-review move or green claim.
|
||||
|
||||
2026-10-24T10:42:28Z | Magica | Row285 / #1790 Amendment1 before/after | Before: unconditional chief gitea broke row323. After: chief-only library conditional plus named required-reference refusal, checkCredentialMap unchanged; new three-case test file; own helper/resolve fixture hunks restored to base, own chief/business/identity hunks reconciled under sage-4060. Case1 doc/test byte-identical. M10 planned against new no-library positive and old Case1 doc test. No tests run under held slot; not green/accepted. Residual base library fixture references need authority alignment before re-CLEAR.
|
||||
|
||||
2026-10-24T10:59:43Z | Magica | Row285 / #1790 B1 before/after | Before: Amendment1 candidatebabae6adc with missing refs in base library/creative fixtures. After: 26 data-only credential insertions across13 direct-reader files; original callback lines preserved, one expressly allowed credentials?.vikunja setup guard. Every other byte reconstructs prior candidate exactly; no base assertion edits. Base and candidate put role set is pm,cto,coder,reviewer; chief lacks vikunja. Literal e0c6142f3 word diffs and known preexisting r2 hunks recorded. No tests, green claim or queue move; next whole gate +M10 waits for Sage CLEAR.
|
||||
|
||||
2026-10-24T11:24:17Z | Magica | Row285 / #1790 r4 before/after | Before: r3 eee8ad776 on b19ffa04f, gate unverified after amendments. After: new r4 from landed296+217 base d0a6a87cd, twelve commits replayed; only append logs conflicted, complete base prefixes preserved. Product/test patch lines identical across assigned bases; tests byte-equal r3; replyLimits and broker citation work retained. Regenerated range-diff and e0c6142f3 base word/line diffs. No npm/tests or queue moves; own-branch push explicitly authorized by sage-4078.
|
||||
|
||||
2026-10-24T12:09:17Z | Magica | Row285 / #1790 r4 C1 diagnostic result | Before: valid landed-base candidate0f6cdc861; first old citation-runtime red. After: mos-1584/sage-4086 full unchanged collection, six suites2950 tests2937pass/12fail/1skip/0cancel; WebUI418 and plugins119 green, all12 script suites exit0, dedicated federation1/1. CLI release300s runner cap interrupted; retained and resolved via unchanged1800s retry224/224 in599.6s. Failures: citation-runtime1, instance-settings2, lifecycle-settings1, launcher1, harnesscreative7. Static root causes/fix classes and r3 parity in agents/magica/work/queue-285/BUILD.md. No source/test edits or fix round/mutants; no final manifest or in-review; owner ruling required.
|
||||
|
||||
2026-10-24T13:02:03Z | Magica | Row285 / #1790 r4 VERIFIED | Before: C1 collection12 failures. After: approved three data corrections, actual-bound-ref guard, duplicate-before-eligibility hire, data-derived creative equal-service retention/listing with validator first; no old assertion edits. Own fresh128/2 installs, editor-required shortTMP serialized final gate: bus975/975 business282/282 cli988pass/1expectedskip webui418/418 harness172/172 plugins119/119, all12 scripts exit0.13 mutations14 independent checks killed; each SHA256/Git blob restored; restored controls136/136. Case1 doc/test/helper base-identical; N1 deferred. Own r4 candidate for Poe/Webby review, no landing/live action.
|
||||
|
||||
2026-10-24T13:33:42Z | Sage | Row 285 (#1790, C2-08b, Magica on Codex, Poe and Webby) LANDED 1f3d0350f. Before: refactor at 25874bc86. After: r4 candidate 2e4503dc7's 14 commits cherry-picked onto 25874bc86. The one conflict (9f7adb03e, BUILD-LOG.md and SESSIONS.md) is append-only and kept both sides, with 0 lines removed against either parent. Apart from the logs, the tree equals the candidate except on the 7 paths 25874bc86 and 4c6190645 had changed. Reviews: Poe first review c31568 rev 3919, Webby landing review c31569 rev 3920, both static. Sage posted both because neither seat has a token. Gate GREEN 13:28:46Z with its own root and webui npm ci (mos-1575): 17 package suites, 4236 tests, 0 fail, 1 skip, which is the allowed FED R7 entry whose runner passed 1/1 (mos-1583). All 12 scripts/test-*.sh rc 0. The other skips are the queue canonical-root check and the row 244 live provider cases. Brief gate: no CREATIVE_KINDS in packages, roles or scripts; no test or script pins the old or new sha256 or blob of a changed role file (positive control found chief-of-staff.json readers); role JSONs match mos-1309 item 5 design 4, with gitea scopes added (read for the chief, read:user and write:repository for the creative roles). Before the push, the in-review overlap sweep found only row 286 (broker.mjs), which rebases as r5. push-check FF_OK, NO_BINARY, SECRETS_CLEAN, NO_ATTRIBUTION. #1790 closed with c31580, Vikunja 546 c1056 (already done). Queue note rev 3921, done rev 3922. Correction to my own rulings: sage-2921 (285's #giteaRole refuses the chief) and sage-2947 (286's T7/T9 mint the chief's grant through the real raise, no SQL staging) conflict now that 285 has landed (rockerduck-0008). sage-4100 keeps the refusal and has T7/T9 seed a read-only chief grant as labeled fixture data, with an assertion that the real path refuses and with revoke and fire still on the real verbs. The tradeoff is that the chief mint goes untested until C2-21 (row 287), whose brief now replaces the seeds. Dewey confirms in 286's round-2 delta. Brief template gains the mos-1584 businessDoc library chief-ref line. The C2-02 brief gains webby-0282 N1 (tool names match the creative contracts). Follow-up webby-0282 N3: business.mjs uses the literal "chief-of-staff" instead of STAFF_TO. The live stack is not re-pinned.
|
||||
- 2026-10-24 (rockerduck, row 286 / #1791, r3 before gate): transplanted Ludwig 45dca69f6..573fa0be0 onto b19ffa04f, preserved newer exports in sole index.mjs conflict; plain-text range-diff, patch IDs and reader/pin drift inventory in agents/rockerduck/work/queue-286/BUILD.md. UNTESTED by sage-4040: no setup or tests until CLEAR.
|
||||
|
||||
- 2026-10-24 (rockerduck, row 286 / #1791, r3 after sage-4054 CLEAR): own-worktree installs; library 140/140 and bus 963/963; M1 forced-refspec and M2 missing-inode-compare killed at semantic assertions, restored before final suites; all gate-output fixture searches zero. Four first-run reds only in new credential test; setup corrections and intermediate findings recorded in agents/rockerduck/work/queue-286/BUILD.md. No old test edited during gate; shell/CLI suites remain Sage landing gate.
|
||||
|
||||
- 2026-10-24 (rockerduck, row286 / #1791, r4 before gate, sage-4079): all 15 r3 commits transplanted to d0a6a87cd on new rockerduck/row286-r4. Three product overlaps auto-merged with row217 preserved; two append-log conflicts retain both histories. Range-diff and adjacent hunk evidence in agents/rockerduck/work/queue-286/BUILD.md. UNTESTED r4: Git-only until own-branch push, library/bus rerun waits for CLEAR after row285.
|
||||
|
||||
- 2026-10-24 (rockerduck, row286 / #1791, r5 before gate, sage-4097/4100): transplanted r4 onto 1f3d0350f; kept row285 library.write routing and chief write-grant refusal plus both append-log histories. Chief fixture refs added; T7/T9 mint setup now pins real refusal then seeds read-only fixture as explicitly ruled, keeping real revoke/fire assertions. Scratch role declaration mutation removed; range-diff/drift evidence recorded. No r5 tests yet; CLEAR starts after own-branch push.
|
||||
|
||||
- 2026-10-24 (rockerduck, row286 / #1791 r5 gate, sage-4097/4100): own-worktree installs; touched credential6/6 and sync24/24; whole library151/151 and bus981/981, zero fail/skip/cancel. P1 forced refspec, P2 missing inode compare and B285-M1 chief write-grant guard each killed on ERR_ASSERTION with green before/after controls and exact restoration hashes. All gate-output fixture searches zero. No normal red; source unchanged after pre-gate push045eec61a. Plain text evidence in agents/rockerduck/work/queue-286/BUILD.md and gate-r5; round2 candidate push follows.
|
||||
|
||||
- 2026-10-24 (rockerduck, row286 / #1791 r6, sage-4112 / #1825): corrected only two fixture constants to unique19-character values after the landing secrets check refused r5. No waiver/guard/assertion/product change. Added-package-lines secrets grep empty; touched6/6+24/24, library151/151, bus981/981 on fresh shortTMP timeout-k10; both exact new values absent from all four outputs. Mutants not rerun as directed. Plain evidence in agents/rockerduck/work/queue-286/BUILD.md and gate-r6; new manifest/push and round3 follow.
|
||||
|
||||
2026-10-24T14:37:02Z | Sage | Row 286 (#1791, C2-03b, Rockerduck on Codex, Boyd and Dewey) LANDED 5d7801dc1. Before: refactor at d55944edb. After: r6 candidate 75f6d56b1's 19 commits cherry-picked onto d55944edb. The one conflict (64f1ff950, BUILD-LOG.md and SESSIONS.md) is append-only and kept both sides, with 0 lines removed against either parent. Apart from the logs, the tree equals the candidate except on the 6 paths of my doc commit d55944edb. Reviews: round 2 (r5 ec8cb10c0) Boyd c31584 rev 3928, Dewey c31585 rev 3929; round 3 (r6) Boyd c31587 rev 3942, Dewey c31588 rev 3943. Sage posted the requests (c31583, c31586) because Rockerduck has no token. Gate GREEN on r5's tree e9c73ab96 at 14:14:11Z, then the push stopped at push-check STOP secrets. The guard came in today with #1825. Two added fixture constants (SLOT_TOKEN in library-credential.test.mjs, SEAT_TOKEN in sync.test.mjs) were 31 characters and matched its token-assignment pattern. sage-4112: no waiver (mos-1570) and no guard edit; r6 shortened only those two values to 19 characters, with reviewers confirming the delta. Gate GREEN again on 5d7801dc1 at 14:36:42Z with its own npm ci: 17 package suites, 4251 tests, 0 fail, 1 skip, which is the allowed FED R7 entry whose runner passed 1/1. All 12 scripts/test-*.sh rc 0. Neither old nor new fixture values appear in any of the 29 run outputs. Mutants: Rockerduck killed P1, P2 and B285-M1 (gitea-grant X-G1). For Dewey's N1 I also ran B285-M1 against library-credential.test.mjs; T7 and T9 failed (4/6) and passed after the restore. sage-4100 (chief grant seeded as fixture until C2-21) is recorded in the 285 entry. Overlap sweep found no in-review row on the 9 code paths. push-check FF_OK, NO_BINARY, SECRETS_CLEAN, NO_ATTRIBUTION. #1791 closed with c31591. No P19 task names row 286, so there is no Vikunja task to close. Brief template gains a sage-4112 line: test credentials stay under 24 characters. The live stack is not re-pinned.
|
||||
|
||||
2026-10-24T14:55:11Z | Sage | Row 290 (#1795, C2-12b, the setup sheet rewrite, Louie on Codex, Webby) LANDED 3d7dff345. Before: refactor at 18334d713. After: Louie's r2 candidate 22510988d (four doc commits on 963303403) cherry-picked onto 18334d713. The commits match by patch-id and range-diff, and docs/case2/SETUP-SHEET.md is blob 37b451c6, the text Webby approved in rounds 2-3 (42b75e484) and again on the rebase (round 4, webby/reviews 0006f03f4). Sage posted the request (c31595, revs 3952-3953) because Louie has no token; Webby's verdict is c31596, recorded at rev 3954. Gate from the brief, doc only: a grep of packages/*/tests, scripts/test-*.sh and tests/ for SETUP-SHEET finds nothing, and a positive-control grep does find matches. Louie checked that the sheet's two setting names match broker.mjs:5341. No suite ran: no test reads the file (decision 137), so the mos-1455 all-suites gate, which covers code rows, doesn't apply, and Fethry's slot for row 225 stays untouched. push-check FF_OK, SECRETS_CLEAN, NO_ATTRIBUTION. #1795 closed with c31597. No P19 task names row 290. The live stack is not re-pinned.
|
||||
2026-10-23 | Fethry | Row 225 C2-10b (#1726), handoff recovery. Before: Morgana's untested candidate 9a131e956 replaces renderItems with renderReply and adds Console citation/notice/status rendering and status/revert routes. Continuing that exact history on fethry/row225; preserving A1-A5 and the accepted file deviations. Remaining: confirm limits contract, review/test candidate under Sage CLEAR, obtain Mos OK through Sage for inherited old-test changes, manifest and Dewey review. No Node/tests run in this session and no green claim.
|
||||
|
||||
2026-10-23 | Fethry | Row 225 T1 lane A (sage-3641/3647). Before: nested replyLimits fallback/problem omitted, wrong-project revert receipt accepted, invalid library mapping hidden. After RED: these three local behaviors corrected; three assertions in the new handoff test files corrected against existing route/mapping/Boolean behavior, each explained in BUILD.md. Whole-file GREEN: renderer 9/0, routes 13/0, browser 9/0; full library 81/0, channel-proof 2/0. Approved old-test numstats remain 80/66 and 3/1. Full webui/build and full integration gate have not run. Isolated mutants next within the authorized 19:38Z hard stop; no completion claim.
|
||||
|
||||
2026-10-23 | Fethry | Row 225 T1 expanded evidence complete (sage-3647). Full library81/0 and channel-proof2/0; final targeted renderer9/0, routes13/0, browser9/0. Isolated kit14/14 assertion kills on507901277, every target restored/hash-checked, candidate hashes unchanged. First attempt stopped at a wait-based failure, recorded as not killed; corrected the new test's repaint wait, baseline9/0, and reran the whole kit. No processes left; lane A returned around19:29Z. Source manifest for Dewey prepared; full webui/build and Sage's integration/scripts gate still pending. Raw logs preserved in scratch, normalized display copies and raw SHA256 provenance in agent evidence.
|
||||
|
||||
2026-10-23 | Fethry | Row225 review follow-up (dewey-0937/0939, sage-3669). Before: a notice-shaped checked agent body could misrepresent another agent's real commit/path, and a403 owner-only lacking sent looked uncertain. Regression browser cases and two isolated mutants authored first; corrected own BUILD.md's forgery explanation and stated Sage's accepted pre217 no-check residual. No production change or Node/test run yet. Existing renderer tests, including the unchecked notice case, stay exactly at Mos1510's80/66; channel-proof stays3/1. RED/GREEN and full webui wait for explicit T3 CLEAR after217; no broker marker or row288 change.
|
||||
|
||||
2026-10-24 | Fethry | Row225 round2 resumed under sage4119/4120. Before: reviewed source94128f73f had blocking checked-message notice forgery and a misleading owner-only refusal; prepared tests7590cf633 awaited the slot. Rebased onto963303403 on new fethry/row225-r2 preserving sharing/chatGrants, upstream exports and both log histories; approved test deltas remain80/66 and3/1 with the combined bus pin. Queue start rev3946; local root/webui npm ci, no canonical dependency links. New browser RED8/3 then GREEN11/0 after only B1/N1 fixes. Editor build unchanged; whole webui442/0 and library149/0 (no skip/cancel); bus gate in progress. No old-test edit or second RED; full results and isolated-mutant evidence follow.
|
||||
|
||||
2026-10-24 | Fethry | Row225 round2 worktree gate and review correction complete on sourcec010dfd85 over963303403. B1/N1 RED8/3→GREEN11/0. Local editor build unchanged; webui442/0, library149/0, bus981/0, whole channel-proof2/0, all zero skips/cancels. Isolated16 unique clean assertion kills (14 originals+B1+N1); one M3 missing-file attempt timed out during a status after-hook, was not counted, was reported to Sage before any change, and passed unchanged retry with the remaining9.17 attempts total, timeout retained. Per-mutant restored hashes and final13 pins verified; scratch Node/Chromium sweep zero, no signals. New fethry/row225-r2 preserves original published branch, approved old tests80/66 and3/1, all landed sharing/exports/log histories. MANIFEST.r2.md and manifest.r2.sha256 to Dewey; source review/lead integration remain separate, no live action.
|
||||
- 2026-10-24 — steelbeak — #1792 / row 287 C2-21 before: library grants still fork; creative and chief grants refuse. Recovered Megavolt's binding design on 18334d713 and documented current-code delta in agents/steelbeak/work/queue-287/BUILD.md. No tests or implementation yet; Sage holds test clearance, scope delta reported in steelbeak-0001.
|
||||
|
||||
- 2026-10-24 — steelbeak — #1792 / row 287 C2-21 after: library grants use admin collaborator PUT, creative write/chief read levels, definition scopes, exact publish-wide reach and kind/level binding; business fence and chief install identity/publish updated; T7/T9 seeds replaced by real minting. Scratch Gitea F-A/F-B pass, F-C owner control negative recorded, F-D normal/force control positive. Verified bus 998, business 283, CLI 989 plus dedicated FED 1 (one expected CLI skip), Docker 2, install 27, all 12 shell gates, M1-M11 killed and restored; token audit hits0 and owned-process/container cleanup clean. Test fixture corrections approved under mos-1590/sage-4139; non-executable land-work launcher rc126 resolved by sage-4141 bash invocation. Evidence and manifest at agents/steelbeak/work/queue-287/; handing off to Boyd, then Dewey, with no live change or landing.
|
||||
|
||||
- 2026-10-24 — steelbeak — #1792 / row 287 first-review correction, boyd-0034: frozen candidate c2338ed58 approved, no blocking code findings. Product/test diff-check is clean; the full committed diff has trailing whitespace in preserved raw RED/mutant logs, correcting the earlier unqualified claim. Added verified old-test numstats in BUILD.md as a separate doc-only follow-up under lead137. Queue round1 opened at rev3963; automatic request failed at rev3964 for missing Steelbeak credential, reported to Sage without workaround. No product edits, tests or slot use.
|
||||
|
||||
2026-10-24T15:55:22Z | Sage | Row 225 (#1726, C2-10b, Fethry on Codex, Dewey) LANDED 9b6345466. Before: refactor at c63801959. After: Fethry's r2 candidate c1f9dfd3c (11 commits on 963303403) cherry-picked onto c63801959. 8 commits are equal by range-diff; the other 3 differ only in the append-only log hunks, kept both sides with 0 lines removed against either parent. All 13 manifest paths match manifest.r2.sha256 (517af41b). Dewey APPROVE c31599 rev 3960; request c31600 revs 3961-3962, posted by Sage because Fethry has no token. Sage gate GREEN 15:54:58Z with its own npm ci and MOSAIC_REQUIRE_EDITOR_BUILD=1: every package suite except queue 0 fail (webui 442, library 149, bus 981, cli 988 plus the allow-listed FED R7 skip, whose runner passed 1/1), all 12 scripts rc 0. The excluded M3 timeout attempt was not counted; the unchanged retry killed cleanly. Dewey N1-N3 non-blocking: the Discord relay must pass check once it calls renderReply; the M3 hang was in the new status test's after-hook teardown; the pre-217 residual stands under sage-3669. #1726 closed c31604. Not re-pinned.
|
||||
|
||||
2026-10-24T16:12:35Z | Sage | Row 287 (#1792, C2-21, Steelbeak on Codex, Boyd and Dewey) LANDED 0e935776e. Before: refactor at 9b6345466. After: Steelbeak's c2338ed58 and doc follow-up a5370b198 cherry-picked onto 9b6345466. One commit equal by range-diff, the other differs only in log hunks, kept both sides. 56 manifest paths match 3683b40a. Boyd APPROVE c31602 rev 3967, Dewey APPROVE c31603 rev 3968; request c31601 revs 3965-3966 posted by Sage. Sage gate GREEN 16:11:38Z: bus 998 (Gitea Docker F-A/F-B and X-G3, minted 4, hits 0), business 283, webui 442, cli 989 plus the allowed FED R7 skip, every other suite 0 fail, all 12 scripts rc 0; fixture credential values in 0 of 29 run files with a positive control. Rulings applied: sage-4125 (library grants mint declared scopes, chief read), mos-1590 (new-test fixture fixes are the lead's call when no production code or old test changes and every fail-closed refusal keeps its own test), sage-4139 (fixture fixes) and sage-4141 (test-land-work.sh is mode 100644, run via bash). Follow-up: F-C negative, a protected Story/** rule refuses the owner too; binds the first row that needs owner pushes to a protected branch. Dewey N1-N3 non-blocking: the block's last line "can write every repository this user can write" contradicts the chief's read grant; a collaborator entry outlives a failed step 5, which still fails closed; #publishFacts would accept a library project, unreachable today. Closes Dewey's 286 r2 N2 (T7/T9 real mint). #1792 closed c31606. Not re-pinned.
|
||||
|
||||
2026-10-24 | Fethry | Row266 C2-10c start (#1771), sage4154/4156. Before: Console seam/plugin only expose thread verbs; room.read omits check/last needed by225. New isolated worktree on487500a16, amended pin85e6fe2ecfc5. Plan: three fixed room calls, strict room HTTP, merged room UI and leading-@ completion, shared broker check hydration/last only under amendment1. No old tests or out-of-scope production edits; local installs/no canonical links; RED-first and serialized full webui/plugins/bus/scripts plus mutants under CLEAR. Detailed design/acceptance in agent BUILD.md.
|
||||
|
||||
2026-10-24 | Fethry | Row266 implementation verified before candidate commit. Six owned production paths plus four new tests, no old tests edited. RED history and fixture corrections recorded before action. Editor build, webui458/0, plugins120/0, bus1000/0 and all12 scripts exit0. Initial bus999/1 hit old T9 50ms timer race; sage4158 authorized three unchanged credential-file6/0 reruns and whole bus1000/0 rerun, all green. Raw/normalized TAP provenance retained. Candidate/mutants/review next; no landing claim.
|
||||
|
||||
2026-10-24 | Fethry | Row266 final verification: candidate3095d6ea5, manifest5f816042 (10 package paths, no old-test edit). All16 isolated mutants killed by assertions with restored hashes and unchanged candidate. Initial M01 uncaught plugin refusal excluded, strengthened only new doesNotReject assertion and full plugins120/0 rerun. Final cwd node/Chromium sweep empty, killpg cleanup recorded. Full webui458/0, plugins120/0, bus1000/0, all12 scripts0; earlier T9 race plus four unchanged green reruns retained. Push/review packet next; Sage gate and two reviews remain.
|
||||
|
||||
2026-10-24 | Fethry | Row328 (#1826/Vikunja622, mos-1594, sage4190) prepared UNTESTED on fethry/row328 from2ce476d54. Before: second T9 start keeps50ms periodic timer, causing old bus999/1 race in266. After: only T9 helper accepts interval default50 and second start uses2147483647 TIMEOUT_MAX; assertions/product unchanged, approved test +4/-3. Stress runner prepared for50 M1-50, optional50 M1-1,50 fixed, whole file; per-run TMPDIR/TAP/load, hash restoration and killpg cleanup. No tests before Sage CLEAR; explicit untested push requested.
|
||||
|
||||
2026-10-24 | Fethry | Row328 sage4205 stress stopped at required no-reproduction boundary. M1-50 passed50/50; fallbackM1-1 passed50/50, zero library-sync-busy assertions, no skips/cancels. Fixed50 and whole-file NOT RUN. Absolute19 initial priority then host drift recorded. All100 fresh shell gXXX TMPDIRs29bytes; both mutants restore exact test hash and empty diff/stat+porcelain. No test/assertion/product changes. Receipts/nice/load/plain-text BUILD pushed; slot returned fethry0043. Await Sage/Mos ruling; no in-review/acceptance claim.
|
||||
|
||||
2026-10-24 | Fethry | Row328 sage4214/Mos1599 option A GREEN on06c57a7db:8x50 M1-50 produced374 passes/26 expected library-sync-busy assertion failures, exact restore/full diff+porcelain clean, same8x50 fixed400/400, whole library-credential6/6, no skips/cancels or unexpected errors/reruns. Node nice16/19 observed after absolute19; loads and801 receipts retained. Old test staysapproved+4/-3, assertions/product unchanged. Own process sweep empty. Evidence push/slot return and owner review move next; Boyd/Dewey then Sage full bus/scripts gate pending.
|
||||
|
||||
2026-10-24T19:44:50Z | Sage | Row 257 (#1762, Q198 S1 pressure parser and rules evaluator, Morgana, Filbert) LANDED 73692e1bb, pushed 17:41:58Z 10-24. Before: refactor at 487500a16. After: Morgana's four commits cherry-picked onto 487500a16 with unchanged patches; the 9 packages/supervisor paths match Filbert's round 2 manifest b176a88f. Filbert r1 c30188 (N1/N2 fixed in r2), r2 APPROVE c30190 rev 3037, request c30189 posted by Sage. Slot result on 1261fa2d8: three files whole 15/0, 29/0, 1/0, supervisor 45/0, M1-M8 killed by assertion. Sage gate: first run RED 17:20:42Z, webui 441/1 on the old row278 sign-out test (timeout at load about 8.5, the row touches no webui path); the webui-only rerun 442/0 was not counted; the full rerun was GREEN 17:41:11Z: bus 998/0, business 283/0, webui 442/0, supervisor 45/0, cli 989 plus the allowed FED R7 skip, all 12 scripts rc 0. Correction: the row278 timing red is an old test, so any change to it goes to Mos (mos-1272). Follow-up: Morgana's carry (sage-3003, CLEAR_HELD entry and a clear-path hold test) binds the row that wires a Q198 hold into a launch refusal. Not re-pinned.
|
||||
|
||||
2026-10-24T19:44:50Z | Sage | Row 266 (#1771, C2-10c Console room view, Fethry on Codex, Boyd and Dewey) LANDED 3e5041b43, pushed 18:00:49Z 10-24. Before: refactor at 73692e1bb. After: Fethry's four commits cherry-picked, every patch-id equal to the seat branch; tree is manifest 5f816042 with no other change. Boyd APPROVE c31609 rev 3983, Dewey APPROVE c31610 rev 3985 (N1-N3 non-blocking), request c31608 posted by Sage. Sage gate GREEN first run 18:00:08Z: bus 1000/0, business 283/0, webui 458/0, supervisor 45/0, cli 989 plus the allowed FED R7 skip, all 12 scripts rc 0. Dewey's N2, the old T9 library-sync-busy race, went to Mos and became row 328. Not re-pinned.
|
||||
|
||||
2026-10-24T19:44:50Z | Sage | Row 224 (#1725, C2-05b, Della on Codex, Dewey) LANDED 5e77cdd09, pushed 19:18Z 10-24. Before: refactor at 7fe32d722. After: Della's 13 commits cherry-picked onto 7fe32d722. Sage gate GREEN 19:16:37Z on 27624aa66 (base 06f507dbc): bus 1011/0, business 283/0, harness 176/0, cli 990/0 plus the allowed FED R7 skip, webui 458/0, all scripts rc 0. Drift between the gated base and 7fe32d722 is only docs/plans/2026-10-24_model-proxy-rows.md, which no test reads (mos-1601 condition); manifest-r9 952482b4 matches the landed tree. Dewey APPROVE c31619 rev 3999. #1725 closed c31623; note rev 4015, done rev 4016. Correction: the first done move passed --evidence and was refused (rc 2, the round closes on its recorded verdicts); rerun without it. Follow-up: Dewey's N3, the old ask helper can't serve a library business, goes to a later row. Not re-pinned.
|
||||
|
||||
2026-10-24T19:44:50Z | Sage | Row 328 (#1826, Vikunja 622, old T9 timer race, Fethry on Codex, Boyd and Dewey) LANDED 8bb5b3c73, pushed 19:40Z 10-24. Before: refactor at 5e77cdd09. After: Fethry's 8 commits cherry-picked onto 5e77cdd09 (same patches); T9's second start passes intervalMs 2147483647 (mos-1594), test-only. Under 8x50 concurrent loops M1 (50 ms back) gave 26 expected failures and the fix 400/400. Boyd APPROVE c31621 rev 4002, Dewey APPROVE c31622 rev 4003. Sage gate GREEN 19:38:54Z on 8bb5b3c73 itself, no drift: bus 1011/0, business 283/0, harness 176/0, cli 990/0 plus the allowed FED R7 skip, webui 458/0, every scripts/test-*.sh rc 0 (Dewey N1). Manifest 1e010468. #1826 closed c31625, Vikunja 622 done (comment 1071), note rev 4019, done rev 4020. Not re-pinned.
|
||||
|
||||
2026-10-24 — Magica row329 P1 (#1827, Vikunja237): beginning pinned model-proxy fetch/init/client/unit build at 7fe32d722, under mos-1600/1601. Acceptance uses only fresh temp roots and unshare -rn; live instance and host proxy excluded. Evidence agents/magica/work/queue-329/BUILD.md.
|
||||
|
||||
2026-10-24 — Magica row329 P1 (#1827): final builder checks green: model-proxy61/61, bus1018/1018, CLI999pass+1listed federation skip, pinned-copy10/10, config55/55 and federation runner1/1. Final unit-config fix verified by two new tests and all direct CLI readers. Original F7 red, Mos1604 diagnostic and Mos1605 unchanged rerun are preserved; cause unknown, landing independent. Q250 drops the panel forward; PIN8.0.42/panel1.26.7 unchanged. Evidence agents/magica/work/queue-329/BUILD.md.
|
||||
|
||||
2026-10-24 — Magica row329 round2 (#1827): Boyd B1 tightens management keys to printable non-space ASCII before init creates state; new whole-tree refusal cases first reproduced the defect. Header check retained, no old assertions edited. N1 outer Docker count correction, N3 stale-lock recovery and N4 34-code coverage docs included. Cleared dependency-reader gate running; two stand-in over-selections disclosed and removed from the plan per sage-4277, F7 cause unknown. Evidence agents/magica/work/queue-329/BUILD.md.
|
||||
|
||||
2026-10-24 — Magica row329 R2 (#1827): B1 ASCII-only management key fix verified with complete-tree refusals and positive auth control; package66/66,30bus readers261/261,49CLI readers726/726,config55/55, no required skip/failure. N1 corrects R1 bus total to1019; N3 stale-lock guidance and N4 34-code inventory corrected. Two over-selected file runs are recorded separately, with no F7 inference; cause unknown/Vikunja625. Old502 test/helper files byte-identical, slot returned to Sage. Evidence agents/magica/work/queue-329/BUILD.md.
|
||||
2026-10-24T23:37:46Z | Sage | Row 329 (#1827, P1 pinned model proxy, Magica) LANDED 61ebf2c34, pushed 23:31:27Z 10-24. Before: refactor at 669cdf42c. After: Magica's 4 commits (94cde633e, c65fb34ee, d1f6f2b19, 61ebf2c34) cherry-picked onto 669cdf42c, diff vs the gated tree limited to drift paths, range-diff in scratch. Gate: one unchanged full landing gate in /mnt/storage/scratch/sage-r329l/wt (gate.sh 8b4978887 c8a9bcf94), started 23:08:12Z at load 14.35, GATE GREEN 23:29:14Z at load 8.67, no rerun, no test or timeout edit (mos-1634). Host note: two Codex workers cleaned T3 worktrees from about 23:14Z (mos-1639, Vikunja 632). Approvals: Dewey r2 c31643 rev 4047, Boyd r2 c31642 rev 4048. #1827 comment 31650, closed. Vikunja 237 comment 1109 (stays open for P2-P7); C4 P10 red filed as Vikunja 631. Queue: note rev 4063, done rev 4064, committed b24d917ec. DEFERRED: N2 and R2-N1 bound to row 331, N1 bound to P7. Overlap: row 284 (packages/bus/src/broker.mjs) and row 157 (scripts/mosaic-config.mjs) rebase onto 61ebf2c34 before their gates.
|
||||
2026-10-25T00:15:48Z | Sage | Row 284 (#1789, C2-05c library.get scope, Della) LANDED ce0b6ed41, pushed 00:09:52Z 10-25. Before: refactor at 9e2689dff (row 329 landing docs). After: fast-forward to Della's 7 rebased commits 78b932feb..ce0b6ed41; 8 paths, manifest-r4 de505cfd matches the landed tree. Gate: one unchanged full landing gate in /mnt/storage/scratch/sage-r284l/wt (the 329 gate.sh with D and the compose project renamed), started 23:51:19Z at load 1.62, GATE GREEN 00:09:04Z at load 5.20, no rerun, no test or timeout edit. Counts: bus 1020/0, business 283/0, cli 999 pass 1 allowed skip (FED R7), harness 177/0, library 156/0, seat 218/0, webui 458/0, every scripts/test-*.sh rc 0; queue 34 and task 87/93 skips are the standing ones. Della's whole-file runs on ce0b6ed41: library-lookups 12/0, library-tools 5/0, query 34/0. Approval: Webby round 2 delta c31654 rev 4070 (round 1 rev 4062). Overlap sweep: rows 13, 157, 309, gyro/row310 and fethry/row332-p1 clean. #1789 comment 31655, closed. No Vikunja task for the row. Queue: note rev 4071, done rev 4072, committed 7c8dc2033. DEFERRED: Webby N1 (whole-tree listing per get) bound to the next library read-path row; N2 needs nothing; N3 is this gate.
|
||||
2026-10-25T00:18:35Z | Sage | Follow-up tasks for mos-1647 item 3 (Q109): Vikunja 633 (P7 cutover, CLIProxyAPI 8.0.42 startup Grok-npm and antigravity version refreshes, from row 332 isolated runs) and 634 (row 284 Webby N1, library get lists the whole tree). DEFERRED gains the 633 entry and the 634 number for row 284 N1. Filing script and receipt in agents/sage/work/vikunja-setup/.
|
||||
@@ -1,11 +0,0 @@
|
||||
# Beakley
|
||||
|
||||
Builder seat, Codex gpt-6.1-sol, started by Mos under Q245 (mos-1506). Owns row 217 (C2-06, handed over from Launchpad).
|
||||
|
||||
No launcher in this directory. The seat runs as a T3 thread (thread 88b97f65) and works in its own worktree. It has no
|
||||
credentials of its own; it pushes only its own `beakley/*` branches through the repository credential helper (mos-0981),
|
||||
never `refactor`, `main` or another seat's branch. Claude seats orchestrate and review (Q245). Registered by Sage on
|
||||
2026-10-23 so the queue can name the seat as row owner (store.mjs isSeatDir).
|
||||
|
||||
Reports go to Sage's T3 thread (1ef1e4f8-3ead-4208-beca-38f9f1add079) and the next seat's, per the brief's Handoffs.
|
||||
Mos's thread gets a copy only when Mos has a step (mos-1579, 2026-10-24).
|
||||
@@ -1,314 +0,0 @@
|
||||
# Row 217 — C2-06 citation guard, page store and runner retry
|
||||
|
||||
Owner: Beakley (88b97f65-97db-4f05-8c6e-081f92bc3501), assigned by Mos Q245.
|
||||
Issue: #1718. Reviewer: Webby. Current branch: `beakley/row217-r2` (original `beakley/row217` preserved).
|
||||
Brief: `docs/plans/2026-10-20_case2-rows.md`, C2-06.
|
||||
Status: six whole suites green and M1–M5 killed under sage-4042/4043; ready for formal review. Landing scripts and integration remain Sage's.
|
||||
|
||||
## Plan and boundaries
|
||||
|
||||
Continue Launchpad's implementation from its handed-off ref. Complete the guard,
|
||||
live reply limits and M11 writer fence, broker page store and check evidence,
|
||||
CLI setter and runner retry/note behavior against the brief and design 5.2.
|
||||
Supply acceptance tests and mutants, then request Sage's test slot and Webby's
|
||||
review. Sage owns queue movement, gate and landing. Push only `beakley/*`, add
|
||||
commits without amend/force or attribution lines. No credential reads.
|
||||
|
||||
## Standing rulings received from Sage (sage-3610)
|
||||
|
||||
- sage-3595: stub supporting scope until row 283 lands, then rebase onto it and
|
||||
add real-fixture tests. Landing follows 283. `runtime.mjs` wiring approved.
|
||||
- Check evidence belongs in an `action.allowed` event in the same transaction
|
||||
as message insertion; no new event kind. Read the library at the cited commit.
|
||||
- In library businesses only, JSON over 32,768 characters gets the
|
||||
`request-too-large` retry. `role.claim` adds `library` only for a library business.
|
||||
- Store `check.citations` entries with `scope`, `agent`, and `file` (the file's
|
||||
last commit at the cited commit). On `thread.messages`, add `last` at the served
|
||||
tip, one git call per distinct path per read. Scope/agent are broker evidence.
|
||||
- sage-3599: optional `BusError.reason`, guard refusals only, capped at 300
|
||||
characters. Add bus server/client to manifest. Reasonless envelopes stay
|
||||
byte-identical.
|
||||
- `render.mjs` obsolete notice hits belong to row 225.
|
||||
- Node and tests require Sage CLEAR (sage-3610 supersedes the initial permission
|
||||
for targeted new tests). Full suites, webui builds and gate require shared slot.
|
||||
- Existing test edits require Mos GO through Sage; list every file and numstat
|
||||
below before seeking that approval.
|
||||
|
||||
## Recovery and coordination
|
||||
|
||||
Initial base `45dca69f6`, clean. `scripts/mosaic queue next beakley` refused:
|
||||
linked worktrees cannot run the queue. Reported to Sage/Mos in beakley-0001;
|
||||
Sage will change ownership at a queue gap. No queue files changed.
|
||||
Read AGENTS.md, agents/README.md, C2-06 brief, design 5.2 and the row 225 BUILD
|
||||
contract. Requested Launchpad handoff in beakley-0002. Its header timestamp was
|
||||
mistakenly typed ahead of the actual clock; sequence key identifies the message.
|
||||
|
||||
## Existing test changes
|
||||
|
||||
None yet. No tests or Node commands run.
|
||||
|
||||
|
||||
## Handoff adopted and independent work (2026-10-23)
|
||||
|
||||
Fast-forwarded `beakley/row217` to Launchpad `e25ef0373` on `45dca69f6`.
|
||||
The full original handoff/rulings remain at
|
||||
`agents/launchpad/work/queue-217/BUILD.md`. No handoff code was rebuilt from scratch.
|
||||
|
||||
Implemented the runner path: role.claim library switch; exact fixed texts; note
|
||||
inside JSON text with citations retained and no JSON clip; fixed texts defer
|
||||
notes; one same-session retry for guard codes and both existing size caps;
|
||||
retry fallback chosen from the second refusal; separate usage turn id for retry.
|
||||
Outside library businesses the existing send path remains intact.
|
||||
|
||||
Added the CLI README usage paragraph. New acceptance tests cover library parsing,
|
||||
real Git reachability/quotes/scope/origin, settings fallback, M11 direct writer
|
||||
and serialization, CLI dispatch, broker insert/check atomicity, live settings,
|
||||
page bounds/lifecycle, socket reasons, per-path last reads, request snapshots,
|
||||
and runner RESULT/typed send_message, fixed texts, long JSON and unslop behavior.
|
||||
These are authored evidence only: none has executed.
|
||||
|
||||
Static defects corrected locally: a missing projects object now means no library;
|
||||
the guard sends its captured request arguments after the asynchronous check;
|
||||
origin/last Git logs use literal pathspecs; a web quote can match any retained
|
||||
fetch of the cited URL. Each has new-file regression coverage.
|
||||
|
||||
## Scope additions and cross-row contract
|
||||
|
||||
- `packages/library/src/reply-protocol.mjs`: shared GUARD_CODES/FIXED_TEXTS,
|
||||
import-free, so runner imports do not reach host Git modules. guard.mjs
|
||||
reexports them to preserve Launchpad's API. Fethry confirmed no renderer import
|
||||
is needed when the renderer simply displays fixed texts as ordinary text.
|
||||
- `packages/seat/src/sandbox.mjs`: one RUNNER_FILES entry for that pure file,
|
||||
approved by sage-3640. No other mount change. The existing sandbox.test.mjs
|
||||
import-closure test must pass unchanged; seat joins the gate list.
|
||||
- Runtime hunks remain exactly Launchpad's import and library guard/limits/last
|
||||
adapters, plus library.limits.set dispatch. Drift checks wait on 216 and 285.
|
||||
- Status contract confirmed with Fethry (beakley-0004, fethry-0009): nested
|
||||
`replyLimits: {requireCitation, citationsPerReply, fallback: [keys],
|
||||
problem: "reply-limits-unreadable" | null}`. Check entries remain ordered
|
||||
`scope/agent/file`, plus `last` on reads; no changed boolean.
|
||||
|
||||
## Verification and remaining acceptance
|
||||
|
||||
- Static `git diff --check`: clean so far. No Node, suite, test or mutant run.
|
||||
- Existing test file edits: none (numstat 0/0 for every pre-existing test).
|
||||
All new test files are listed in manifest.r1.sha256; no Mos approval requested.
|
||||
- `mutants.py` is authored for isolated HEAD archives with green controls:
|
||||
M1 remove both writer fences; M2 compare incoming human; M3 split evidence
|
||||
from insert; M4 drop client reason. Not executed.
|
||||
- Still required: Sage CLEAR for targeted runs; fix first-run failures; supporting
|
||||
scope acceptance against row 283; 216 index/readLibrary fixture comparison;
|
||||
285/runtime drift check; full library/business/bus/cli/harness/seat suites and
|
||||
every scripts/test-*.sh on Sage's gate; mutant execution; Webby approval.
|
||||
- Before in-review, perform brief's obsolete-code/key search and report outside
|
||||
ownership hits to Sage. render.mjs/render.test.mjs hits belong to 225.
|
||||
- No queue changes, protected branch pushes, gate claims or acceptance claims.
|
||||
|
||||
Static obsolete-code/key search completed: only packages/library/src/render.mjs:6 and packages/library/tests/render.test.mjs:58 match no-cited-answer; both belong to row 225 per standing ruling. No owned-path hit. Repeat before in-review after dependency changes.
|
||||
|
||||
|
||||
## Webby early look 0939c0682 / webby-0249 and sage-3668/3670
|
||||
|
||||
This remains an untested draft. The follow-up adds tests only; production E4
|
||||
changes wait for the held-lock regression's first RED under Sage CLEAR.
|
||||
|
||||
- E1: added an ordinary actor `mallory` that sets both `human` to itself and
|
||||
`replyLimits`. The existing role/tester actors did not distinguish M2 because
|
||||
the actor-shape exclusions rejected them independently of the human comparison.
|
||||
M2 is still unrun; no kill claimed.
|
||||
- E2: added a real bus event assertion for `agent: "acme/scribe"` from a file's
|
||||
Mosaic-Agent trailer. The cited tip includes a later unrelated commit, so the
|
||||
event must store the file commit rather than the library tip. thread.messages
|
||||
must show `last === file` for that unchanged path. Supporting scope still waits
|
||||
for row 283's real fixture, as ruled.
|
||||
- E3: sage-3668 accepts direct writer.write tests under chief and tester actors
|
||||
as substitutes for the brief's setter cases (brief lines 483-491 at base
|
||||
45dca69f6). Correction to the early-look premise: organization.set DOES exist,
|
||||
broker.mjs:4701/4709, but ORGANIZATION_KEYS excludes replyLimits; instances.set
|
||||
also cannot carry it. Direct writes exercise the shared M11 boundary those
|
||||
setters cannot reach with that input. Sage confirmed the accurate reason in
|
||||
sage-3670; the unrelated actor case remains required.
|
||||
- E4: traced readSyncState -> withLibraryLock -> library-sync-busy after five
|
||||
seconds -> servedMirror catch-all -> null served -> misleading citation-invalid.
|
||||
New real-flock/socket test first proves the cite valid, holds the lock, asserts
|
||||
the exact citation-unavailable reason the agent receives, verifies no insert,
|
||||
and checks fixed fallback delivery and recovery after unlock. Additional tests
|
||||
distinguish malformed sync state from absent/new mirrors, and assert that the
|
||||
actual runner retry request contains that reason. These tests are expected RED
|
||||
until the fix. Planned production change: only an absent mirror or legitimate
|
||||
empty state yields null; other failures become GuardError citation-unavailable;
|
||||
bodies without path cites do not require the mirror lock. Add the code to
|
||||
GUARD_CODES so the runner sends the agent that reason on its one retry. Per
|
||||
sage-3670, existing four fallback bodies can remain only if that delivery is
|
||||
verified. M5 restores catch-all behavior; authored, not run.
|
||||
- E5: first-library-project selection is a Launchpad handoff implementation
|
||||
choice, not a validated rule that a business can only have one library.
|
||||
Cites into another library remain a limitation. No mapping/schema rule added.
|
||||
- E6: the broker's full guard table now runs as both coder and research.
|
||||
- E7: new citation-runtime.test.mjs starts the real runtime, reads limits from
|
||||
the real organization file, then changes, corrupts and removes that fixture
|
||||
file and checks library.status without replacing the library adapter.
|
||||
|
||||
No Node, tests or mutants ran. No test that predated row 217 changed.
|
||||
|
||||
|
||||
## Webby follow-up 192049c98 / webby-0258
|
||||
|
||||
E1, E2, E6 and E7 closed statically; no executed acceptance claimed. E3 correction and E5 limitation accepted. E4 tests accepted statically; real RED then production fix/green remain on hold for Sage CLEAR, with supporting scope waiting on 283. F1: citation-helpers status now uses its mutable served value, matching guard/last after setServed instead of reporting the original fixture commit. Test-only fixture correction, unrun. manifest.r3.sha256 records the updated helper; no production or old-test changes.
|
||||
|
||||
|
||||
## Round 2 / sage-4037 — 2026-10-24, Untested
|
||||
|
||||
New branch `beakley/row217-r2` from published `dde5b8496`, rebased exactly onto
|
||||
`origin/refactor` at `e0c6142f3` (109 upstream commits since `45dca69f6`). The
|
||||
published original branch is unchanged; no amend or force-push. The replayed
|
||||
four commits are b9ef816ff, 7400509ba, a447880cb, 2655ec010. Full range-diff:
|
||||
`rebase-r2.range-diff.txt`. Last commit is `=`, the first three are `!` from
|
||||
conflict context/indentation and append-log placement described below.
|
||||
|
||||
Conflict resolutions:
|
||||
- broker.mjs: retained landed grants.scope/grants.scope.set dispatch and added
|
||||
library.limits.set to the organization verb dispatch; neither path removed.
|
||||
- runtime.mjs: retained grants.scope.set and added library.limits.set alongside
|
||||
it; retained query/sync wiring and all new base lifecycle behavior.
|
||||
- organization.mjs: retained row 239's beforeWrite/revoked wrapper, placing both
|
||||
M11 fences before validations/revocation as on the old candidate. A refused
|
||||
reply-limit write cannot invoke beforeWrite.
|
||||
- library/index.mjs: retained C2-05a buildIndex/query exports and added the guard
|
||||
and reply-limits exports.
|
||||
- BUILD-LOG.md and docs/SESSIONS.md: retained upstream appends followed by all
|
||||
Beakley appends. Static byte-prefix checks prove the entire e0c6142f3 log
|
||||
histories survive; all original Beakley entries also survive.
|
||||
- business.mjs, cli README and sandbox.mjs auto-merged. Static diff against the
|
||||
target confirms only this row's TOP_KEYS addition, README paragraph and one
|
||||
import-free protocol mount; landed supporting scope and room-address mount
|
||||
remain intact. runtime diff contains only the approved import, injected
|
||||
guard/limits/last adapters and setter dispatch, now beside grants.scope.set.
|
||||
|
||||
Correction recorded honestly: the first unpublished rebase attempt used an
|
||||
unbounded marker regex that removed code after a conflict. The diff stat caught
|
||||
it immediately; aborted the rebase and repeated with bounded markers. No result
|
||||
from that discarded attempt was pushed. The successful first replay matches the
|
||||
original 589 insertions/20 deletions; no broad deletions remain.
|
||||
|
||||
Implemented E4 under sage-4037's explicit direction to make the product fix
|
||||
while keeping all tests unrun. This supersedes the earlier planned RED-first
|
||||
execution order; no RED or green has been observed. The existing regression
|
||||
cases predate the fix. GUARD_CODES now includes citation-unavailable. Only a
|
||||
mirror confirmed absent by lstat, or readSyncState's legitimate empty state,
|
||||
yields no served commit. Other read/lock/metadata errors give the fixed safe
|
||||
reason: "The library is busy or unavailable. Retry the answer when the library
|
||||
is available." The runner receives it through BusError.reason and includes it
|
||||
in its one retry request. The existing four fallback bodies remain. Plain,
|
||||
web-only and fixed replies require no mirror read, so a busy mirror cannot
|
||||
block the runner's fixed fallback. M5's real production anchor now exists.
|
||||
|
||||
Supporting scope after row 283 (`8d2856ee3`): added two broker tests using real
|
||||
mapping/reader classification, not a scope stub. A path in both supporting and
|
||||
playground refuses as canon; an agent-committed supporting path stores
|
||||
scope=supporting, agent=acme/scribe and its file commit in message.checked.
|
||||
|
||||
C2-05a comparison: index-build.mjs builds its file map directly from readLibrary
|
||||
files; indexFor calls that same reader at the requested commit. Added a real
|
||||
fixture test comparing the index set, readLibrary set and libraryReader.lines
|
||||
admission, including supporting, unmapped Markdown and .canvas. This comparison
|
||||
is authored and statically traced, not executed; numerical results wait on CLEAR.
|
||||
|
||||
Current packet: manifest.r4.sha256, relative to e0c6142f3. No test file already
|
||||
present at that base was edited. No Node, npm, tests, mutants or webui build run.
|
||||
Ready for CLEAR after Lena's row 296. On CLEAR, install with npm ci
|
||||
--ignore-scripts --no-audit --no-fund in THIS worktree root and packages/webui;
|
||||
never link to canonical node_modules or run npm/rm in the canonical checkout.
|
||||
Use short mktemp TMPDIR and timeout -k 10. Any old-test red goes to Sage before
|
||||
an edit. Full green gate, mutants and Webby verdict remain outstanding.
|
||||
|
||||
Range-diff receipt rendering trims trailing whitespace on diff separator lines; no substantive range-diff content changed. This removes whitespace warnings caused by embedding raw diff output in a tracked text file.
|
||||
|
||||
Final base-to-candidate whitespace check found a trailing blank line inherited from Launchpad in limits.mjs; removed it without behavior changes. manifest.r5.sha256 supersedes r4 for the exact candidate file hashes.
|
||||
|
||||
|
||||
## CLEAR sage-4042/4043 — execution started 2026-10-24
|
||||
|
||||
Queue beakley-217-start initially refused Lena's review-outcome lock twice;
|
||||
same-op retry succeeded at rev3894 (briefed→in-progress). No queue bypass.
|
||||
Short TMPDIR /mnt/storage/scratch/tmp/tNoueZ. Worktree-local npm ci at root
|
||||
(128 packages) and packages/webui (2) completed; neither path was a symlink.
|
||||
No npm/rm command ran in canonical. All test commands use timeout -k 10.
|
||||
|
||||
E4 current file: 3 pass/0 fail/0 skip. M5 isolated pre-fix stand-in: 1 pass,
|
||||
2 expected assertion failures (citation-invalid instead of citation-unavailable),
|
||||
exit1. Restored product bytes and checkout product hashes, then E4 restored
|
||||
control 3/3. Receipts under run-r2/m5-red. M1 six-space anchors both match
|
||||
exactly once on the eight-space lines.
|
||||
|
||||
Touched test files first run: 56 pass/1 fail, zero skip/cancel. The sole first-red
|
||||
was NEW citation-runtime.test.mjs invalid-authority at Broker.checkBusiness:
|
||||
validator output has unresolved roles and is not the host's broker projection.
|
||||
Adjusted that new fixture only, following limits-runtime.test.mjs: minimal
|
||||
empty-authority coder, validated real project mappings, real organization adapter
|
||||
and systemFor(root). Single rerun 1/1, then all touched files 57/57. No base test
|
||||
failure or edit. First log retained as run-r2/touched-first.log and reported to
|
||||
Sage in beakley-0014. No production change was required.
|
||||
|
||||
The isolated mutant driver now wraps each node run in timeout -k 10, refuses a
|
||||
symlinked root node_modules, restores mutated files in finally, verifies original
|
||||
checkout product hashes after every mutant and reruns the restored control.
|
||||
Optional name filters allow the E4 M5 RED before the full mutant pass. No
|
||||
canonical dependency link is used; isolated copies link only this worktree's
|
||||
own dependency install.
|
||||
|
||||
|
||||
## Final slot results / 2026-10-24 10:21Z
|
||||
|
||||
All requested runs completed serially under sage-4042/4043 on source revision
|
||||
`2d274a5b6`. Final receipt commits change only tracking and logs, not packages.
|
||||
|
||||
| Whole suite | Pass | Fail / skip / cancel |
|
||||
| --- | ---: | --- |
|
||||
| library | 142 | 0 / 0 / 0 |
|
||||
| business | 270 | 0 / 0 / 0 |
|
||||
| bus | 974 | 0 / 0 / 0 |
|
||||
| cli | 988 | 0 / 0 / 0 |
|
||||
| harness | 172 | 0 / 0 / 0 |
|
||||
| seat | 218 | 0 / 0 / 0 |
|
||||
|
||||
Total 2,764 whole-suite tests. Touched files rerun 57/57. The unchanged
|
||||
RUNNER_FILES import-closure test passed in seat (seat-suite.log:153). The only
|
||||
first-run failure was the NEW runtime fixture already recorded above; no old
|
||||
test failed and no test present at e0c6142f3 was edited.
|
||||
|
||||
M1–M5 all killed by the intended assertion, each with Node exit1, a green
|
||||
control and green restored control. Driver exit0. M1 catches missing writer
|
||||
refusals; M2 is killed by mallory's human swap; M3 detects one message left
|
||||
behind after evidence failure; M4 detects the missing reason; M5 detects
|
||||
citation-invalid in place of citation-unavailable on contention and bad state.
|
||||
Every mutation was in a disposable HEAD archive. Each changed file was restored,
|
||||
checkout product hashes checked after every mutant, and the restored control
|
||||
rerun. All five final restored.sha256 certificates match current product files.
|
||||
M5 also ran separately before the whole suites as the authorized pre-fix RED
|
||||
stand-in; its held-lock and malformed-state assertions failed, then restored
|
||||
E4 passed 3/3. Full raw controls/negatives/restores are retained.
|
||||
|
||||
Receipts: run-r2/summary.json and summary.txt; *-suite.log; touched-first.log,
|
||||
touched-rerun.log; availability-green.log; runtime-fixture-retry.log; npm-root.log
|
||||
and npm-webui.log; m1-anchors.txt; m5-red/ and mutants/. All are text, no binary
|
||||
artifact added. All Node/mutant/npm runs used the short TMPDIR and timeout -k 10.
|
||||
Both node_modules trees are local npm ci installs. No canonical npm/rm or
|
||||
canonical dependency link. No further runtime/source changes after the tests.
|
||||
|
||||
Acceptance formerly waiting on dependencies is executed: real row283 supporting
|
||||
canon refusal and supporting/agent event pass; the C2-05a readLibrary/index set
|
||||
comparison passes; runtime readRaw live/corrupt/missing-file test passes; runner
|
||||
retry request carries the E4 availability reason. The repeat obsolete-name
|
||||
search finds only render.mjs:6 and render.test.mjs:58, owned by row225; no owned
|
||||
hit. First-library selection remains the accepted E5 limitation. Webby-0274 N1
|
||||
is a nonblocking wording limitation: configuration faults share the safe
|
||||
busy-or-unavailable retry text. No policy/schema restriction was invented.
|
||||
|
||||
Current complete changed-file manifest over e0c6142f3..candidate is
|
||||
candidate-manifest.sha256, excluding itself to avoid a circular hash. It includes
|
||||
source, tests, records and evidence. Earlier numbered manifests are historical.
|
||||
Formal Webby verdict and all scripts/test-*.sh at landing remain Sage's steps;
|
||||
this is verified for review, not an integration/deployment claim.
|
||||
|
||||
Exact negative-test logs retain Node's whitespace-only diagnostic lines. Whole diff --check reports those 12 blank-line padding warnings in run-r2 logs; source/docs diff --check excluding captured run-r2 evidence is clean. No source whitespace problem or test failure is hidden by that exclusion.
|
||||
@@ -1,61 +0,0 @@
|
||||
# Row 217 round 2 — verified for review
|
||||
|
||||
Issue #1718, C2-06. Base e0c6142f3; branch beakley/row217-r2. Continued
|
||||
Launchpad e25ef0373 through the preserved original dde5b8496 branch. Range-diff,
|
||||
conflict resolutions and acceptance receipts are in BUILD.md. Tested source
|
||||
revision: 2d274a5b6; the final commits add records/evidence only.
|
||||
|
||||
The broker checks agent-to-human citations before insertion, stores trusted
|
||||
scope/agent/file evidence atomically with the message, and supplies per-path last
|
||||
on thread reads. It keeps session-local fetched pages and reads reply settings
|
||||
live through the M11 human-only writer. The runner preserves cited JSON, defers
|
||||
notes on fixed replies, and retries once with the refusal code and safe reason.
|
||||
E4 adds citation-unavailable for mirror/state/lock faults; uncited/web-only/fixed
|
||||
bodies do not need the mirror lock. Supporting scope uses landed row283 code.
|
||||
|
||||
## Product and test scope
|
||||
|
||||
The package paths listed in candidate-manifest.sha256 are exactly this row's
|
||||
base-to-candidate changes. Fourteen product paths cover library guard/limits/
|
||||
protocol/exports; business validation/writer; bus broker/runtime/server/client;
|
||||
CLI command/README; runner; and the single approved pure-protocol sandbox mount.
|
||||
Nine test/helper/fixture paths are additions. No existing test is modified.
|
||||
The mounted protocol stays import-free. Runtime retains the landed grant/query/
|
||||
sync behavior; the writer retains beforeWrite/revoked handling and fences before
|
||||
revocation. No SQL schema, event kind, role authority or credential change.
|
||||
|
||||
## Executed evidence
|
||||
|
||||
| Whole suite | Pass | Fail / skip / cancel |
|
||||
| --- | ---: | --- |
|
||||
| library | 142 | 0 / 0 / 0 |
|
||||
| business | 270 | 0 / 0 / 0 |
|
||||
| bus | 974 | 0 / 0 / 0 |
|
||||
| cli | 988 | 0 / 0 / 0 |
|
||||
| harness | 172 | 0 / 0 / 0 |
|
||||
| seat | 218 | 0 / 0 / 0 |
|
||||
|
||||
Touched files 57/57; total whole suites 2,764. First run was 56/57 due solely
|
||||
to a new runtime fixture missing the broker's resolved authority shape. Only
|
||||
that new fixture changed; single and full touched reruns passed. No old test
|
||||
failed. First-red evidence remains in run-r2/touched-first.log.
|
||||
|
||||
M1–M5 killed: missing M11 fences, incoming-human trust, split check transaction,
|
||||
dropped client reason, and hidden library availability. Every negative run has
|
||||
green control/restored runs and matching restored product certificates. M5 is
|
||||
also the authorized E4 pre-fix RED stand-in. Supporting canon refusal, stored
|
||||
supporting/agent evidence, the C2-05a index comparison, runtime raw settings and
|
||||
agent-visible E4 retry reason all pass. The unchanged sandbox closure test passes.
|
||||
|
||||
Commands ran serially under Sage CLEAR with short TMPDIR and timeout -k 10.
|
||||
Root/webui dependencies came from local npm ci, never canonical links. Full logs,
|
||||
summary.json and mutant certificates are in run-r2/. The complete changed-file
|
||||
manifest candidate-manifest.sha256 covers e0c6142f3..candidate, excluding itself;
|
||||
its SHA256 is supplied with the pushed tip. Historical manifests stay untouched.
|
||||
|
||||
## Remaining boundaries
|
||||
|
||||
Sage runs every scripts/test-*.sh at landing and posts the formal Webby review
|
||||
request. No merge/deployment performed. First-library selection remains the
|
||||
accepted limitation; configuration faults share the safe unavailable reason
|
||||
(Webby N1, nonblocking). Obsolete-name search hits only row225's render files.
|
||||
@@ -1,80 +0,0 @@
|
||||
74398edcedf16a3d856ab9e7ea900eb61a4df7f726f04b74b2ff123e7536e9c1 BUILD-LOG.md
|
||||
87880c30c2be0180e6eec4dbe203f86e93ae2b1b4be44031b6a4903c6245a0ec agents/beakley/work/queue-217/BUILD.md
|
||||
e7ecf624ccb2b918efb08001ae9da36380fe918f8c27db704860809b6792e6f2 agents/beakley/work/queue-217/MANIFEST.md
|
||||
f4a042b5d6d393d2be62b107d7157ae51dd8fbf36f4360f5cd8cf07c03c74251 agents/beakley/work/queue-217/manifest.r1.sha256
|
||||
53f051a4e416a34181ad9bcc7687f0d686274542b06d9758e2db7eb81e848811 agents/beakley/work/queue-217/manifest.r2.sha256
|
||||
f96fccc566d01d70db32188574d0b5331ef3c90bce66558449a51b3f21da1b29 agents/beakley/work/queue-217/manifest.r3.sha256
|
||||
faf8ec3e0ab458fe95120345ec93e077b0dcad9458c0f2683a20effb6ce3ed93 agents/beakley/work/queue-217/manifest.r4.sha256
|
||||
a58f0e273b60508b95c833cbace26799d7aa935117fd1f9a27812fba65b93d54 agents/beakley/work/queue-217/manifest.r5.sha256
|
||||
120b15db5eb75897095fe3d0759553e482365d58061d763beba7754a6e0d0734 agents/beakley/work/queue-217/manifest.r6.sha256
|
||||
04a9d0585b5ae4818d87d67ac27f838355f1a6f586625a16cf01d91d7bb6d4a0 agents/beakley/work/queue-217/mutants.py
|
||||
4a5f7b3373fd3ff46e2d6a5f7ee7106ad76a71c9034ca5a44b9e7340f0cc4cff agents/beakley/work/queue-217/rebase-r2.range-diff.txt
|
||||
630070b0d682120ba64b382ab3b47b3fa3e8f0bcfc695ca09432d01d705fbcb3 agents/beakley/work/queue-217/run-r2/README.md
|
||||
c4245272d5fc89c5fd3a9ea979e7d65727ea76e24364190af57556c59ad2fe34 agents/beakley/work/queue-217/run-r2/availability-green.log
|
||||
700fff38b0a99ffdb44863f13015673cb459e5e645c5df46580eafbc407c95c8 agents/beakley/work/queue-217/run-r2/bus-suite.log
|
||||
ef216d0af325c2b6647eb8405e5de70ebb5a0e7a28bb3d8fe3abc6a289a8d3d2 agents/beakley/work/queue-217/run-r2/business-suite.log
|
||||
af173117f83359ebba62c5c00eadc749bb179551a8e290bcf55bbe39b1e7272c agents/beakley/work/queue-217/run-r2/cli-suite.log
|
||||
a615f69ba60859e9d7817f3353b0d7c71e6c12eecc3ecf0f630d473be21e5fef agents/beakley/work/queue-217/run-r2/harness-suite.log
|
||||
acaa08001101fd69a12cae377984e0d469c2cedc2affb5ccf9af426a72549dcc agents/beakley/work/queue-217/run-r2/library-suite.log
|
||||
5414ce5b94e7ac7918ed64f62e5fd2b921d49c7e93cf73042b9187d014069934 agents/beakley/work/queue-217/run-r2/m1-anchors.txt
|
||||
7d7138b25568adb98932bbe180a337fe6798c3eddcd7134ce7278c24fea48818 agents/beakley/work/queue-217/run-r2/m5-driver.log
|
||||
de7dd716d3981fd9fa1d114882e60f9a83736cdb8f8e2096c3913c9f8620238a agents/beakley/work/queue-217/run-r2/m5-red/M5-hide-library-unavailable-control.log
|
||||
6b98d3943d04d99f3ef212f11901d2257422410c477abec27ed3100a0d20dad9 agents/beakley/work/queue-217/run-r2/m5-red/M5-hide-library-unavailable-restored-green.log
|
||||
a58f0e273b60508b95c833cbace26799d7aa935117fd1f9a27812fba65b93d54 agents/beakley/work/queue-217/run-r2/m5-red/M5-hide-library-unavailable-restored.sha256
|
||||
d852a464fd624ce12d8d6bdc9800402639bb500a6d40c628cb836ca1bcf1e326 agents/beakley/work/queue-217/run-r2/m5-red/M5-hide-library-unavailable.log
|
||||
7d7138b25568adb98932bbe180a337fe6798c3eddcd7134ce7278c24fea48818 agents/beakley/work/queue-217/run-r2/m5-red/summary.txt
|
||||
1c405f1f15d2ce2db37b5809cdf5eaff68f18c99c5621e1c43262a289c5e35c4 agents/beakley/work/queue-217/run-r2/mutants-driver.log
|
||||
c96487e87c1ae9e34a7222b04701c5efcce25fe201f03a0213b989f7cde2c376 agents/beakley/work/queue-217/run-r2/mutants/M1-writer-fence-control.log
|
||||
8b294ecc057ad64ace7f520a1785b54df7df5a9eddf962813c3e5f8fa723ffd4 agents/beakley/work/queue-217/run-r2/mutants/M1-writer-fence-restored-green.log
|
||||
120b15db5eb75897095fe3d0759553e482365d58061d763beba7754a6e0d0734 agents/beakley/work/queue-217/run-r2/mutants/M1-writer-fence-restored.sha256
|
||||
be749486956e85a71f08107139613e09b62c53b58e8cc10e0fbe807e95d079a6 agents/beakley/work/queue-217/run-r2/mutants/M1-writer-fence.log
|
||||
525da1cc780dfea1a66f95739d444516bd16271c7ec539d615012ec9c8e7c139 agents/beakley/work/queue-217/run-r2/mutants/M2-incoming-human-control.log
|
||||
3546705980bb4a73295f16e42ab55f38c6adca9a5c53252264ae4ef66c595dfc agents/beakley/work/queue-217/run-r2/mutants/M2-incoming-human-restored-green.log
|
||||
120b15db5eb75897095fe3d0759553e482365d58061d763beba7754a6e0d0734 agents/beakley/work/queue-217/run-r2/mutants/M2-incoming-human-restored.sha256
|
||||
77352c22c459c516ff47ff1caa42fe9763fe201a04079646b0ccc0da6a145804 agents/beakley/work/queue-217/run-r2/mutants/M2-incoming-human.log
|
||||
58de145ec0384de4f560b28dcfa76e98c384be5c771d6561fb1054f07ea8166b agents/beakley/work/queue-217/run-r2/mutants/M3-split-check-transaction-control.log
|
||||
6a4cd0ef36b0d2318ef71c941ce300d215b6d2f87d0b4328c461ba53d812434c agents/beakley/work/queue-217/run-r2/mutants/M3-split-check-transaction-restored-green.log
|
||||
120b15db5eb75897095fe3d0759553e482365d58061d763beba7754a6e0d0734 agents/beakley/work/queue-217/run-r2/mutants/M3-split-check-transaction-restored.sha256
|
||||
2deb72f2d442f413fd06e205093f6fa3f955ec6ef707b7ca65b86be8c8883f9b agents/beakley/work/queue-217/run-r2/mutants/M3-split-check-transaction.log
|
||||
31cac91f43c8b7ebe0431f27a038b0fcd554a12b232592747f3972213cfa192b agents/beakley/work/queue-217/run-r2/mutants/M4-drop-client-reason-control.log
|
||||
e06c1da8dcd9e7eb013a4597b14369e296e21b812476bd6d88c7a7aa040d4065 agents/beakley/work/queue-217/run-r2/mutants/M4-drop-client-reason-restored-green.log
|
||||
120b15db5eb75897095fe3d0759553e482365d58061d763beba7754a6e0d0734 agents/beakley/work/queue-217/run-r2/mutants/M4-drop-client-reason-restored.sha256
|
||||
66d8f72df3bc0428624dab437cb04923ecab42055d29c6ffde43af98d47f32ae agents/beakley/work/queue-217/run-r2/mutants/M4-drop-client-reason.log
|
||||
3f74fbd3b4297868b9bb637a7924739363470964873a4bd3dc2f5daf2d0e9c8a agents/beakley/work/queue-217/run-r2/mutants/M5-hide-library-unavailable-control.log
|
||||
96d95a45d5326e614328531a7dadebce5d3ce70e40ec23dd49a66c1a676b45be agents/beakley/work/queue-217/run-r2/mutants/M5-hide-library-unavailable-restored-green.log
|
||||
120b15db5eb75897095fe3d0759553e482365d58061d763beba7754a6e0d0734 agents/beakley/work/queue-217/run-r2/mutants/M5-hide-library-unavailable-restored.sha256
|
||||
fa57189e9de99c4a76be27da3b857c07fc76706f7d0ee7409ba4efd43c3642b7 agents/beakley/work/queue-217/run-r2/mutants/M5-hide-library-unavailable.log
|
||||
1c405f1f15d2ce2db37b5809cdf5eaff68f18c99c5621e1c43262a289c5e35c4 agents/beakley/work/queue-217/run-r2/mutants/summary.txt
|
||||
862418d3d4124871ca5fcaf35e16c318a04e2888da83836751ddfea110efeb06 agents/beakley/work/queue-217/run-r2/npm-root.log
|
||||
38b75d8bddacf8d227883a29dd8a10f87a7f02d8a95f3f8809cb966fc9c8cf7a agents/beakley/work/queue-217/run-r2/npm-webui.log
|
||||
7f29b5a328fd6be61ebc4110a048305b50856810ab97a7798cd427924d74e8c9 agents/beakley/work/queue-217/run-r2/runtime-fixture-retry.log
|
||||
3bd51fe222a61412e8285eb522a2f7b5c1b0b035f7dca0e9ff66190bd53e6706 agents/beakley/work/queue-217/run-r2/seat-suite.log
|
||||
8b98c6ba76de46ddd858b4b95bae7bce2d1bf969edb85901ad8819e1280869a1 agents/beakley/work/queue-217/run-r2/summary.json
|
||||
e374cb7ab28a46dd560b267b0fe6691b11c0c2fabd00087c4e49a02ab1bf8086 agents/beakley/work/queue-217/run-r2/summary.txt
|
||||
ad2022c7ccdfa151e029eed92cd309369a97f197d9304775f6d2be3dc5f11080 agents/beakley/work/queue-217/run-r2/touched-first.log
|
||||
e1fe5ebae1a36f196470848bf27b99c21d316c9236a1d1328d7bcaca0ee4d3e9 agents/beakley/work/queue-217/run-r2/touched-rerun.log
|
||||
0c1b1f079b4b993e8d1aeb730d743e28696413eae8be6dd79731d749d1d45d0b agents/launchpad/work/queue-217/BUILD.md
|
||||
76b0a5785f134c09cda677e8f5fb3e7454b39883c4a6f55360d9d277476fcd2c docs/SESSIONS.md
|
||||
eeca81ab965f9e94f930ee5f51d16f019af6368bc6c3994895e204f7a54ec8d2 packages/bus/src/broker.mjs
|
||||
ad3c686a089f67f3c89610937c6fc9b32367cea5d9735125d89bef042082d4e8 packages/bus/src/client.mjs
|
||||
36b05dd3119e5929211aa1cc5d45c5043f5a1c34567ddc7cac8f002835d44abe packages/bus/src/runtime.mjs
|
||||
66b26d131a19f4f411686427274936850c1ff0aed11e9b281ae4aadcf4b289fc packages/bus/src/server.mjs
|
||||
cdd0304ec25ef1ad3e31c52502fa46f2c80bd77c8d3c2e13f8ed4b5328f342c9 packages/bus/tests/citation-availability.test.mjs
|
||||
2e05074cd9d15d810103658af3858161cee2af78b0a2e1ba910222fab3e84401 packages/bus/tests/citation-guard.test.mjs
|
||||
2c7a2102e2e0244876e41b664f4f706baefe3375100b956655551db1230f5da3 packages/bus/tests/citation-helpers.mjs
|
||||
9768b6dc5ae078c5cc4f76473097287b74c5bc5853d39e1f57f153e646f861af packages/bus/tests/citation-runtime.test.mjs
|
||||
abaeac64f2c3bf8ba83c9a4488edd9105c4707a6564560c5333d5421445653af packages/business/src/business.mjs
|
||||
3a6044de5d1ca2cc35c5285b460c3e402b4274837e5d88b97f489797f6004903 packages/business/src/organization.mjs
|
||||
4d2eb11beaa80175e524af1b95c81e7164990fba1d3e1754f5ba06eee390a14f packages/business/tests/reply-limits.test.mjs
|
||||
a2bb98734bcc2556f8b2168f0faf8a89f7064c3f0aa49feb7d1975d596192f09 packages/cli/README.md
|
||||
2f291a71f490f2741edada7a3e3788500f8976a08eb8ab1411f6c5982f778260 packages/cli/src/limits.mjs
|
||||
f38af2d46d5f5f6388f599912507b94b87a0bf9dcc2104bb2187c38ee35118d5 packages/cli/tests/reply-limits.test.mjs
|
||||
6ad72b4245e0a66e32725941900c1ece64c2e5de2fb73d65c8e042b4f3a691a6 packages/harness/src/runner.mjs
|
||||
a5ef1b65230239a7baf6d0e8f2b8a51c0516348c7c4339a55b3f0a1a6ff531ba packages/harness/tests/citation-runner.test.mjs
|
||||
330bc71bf6c7e64d3ddb70440903d2d9acf7878d44a49d7e30c2352ee4c807ec packages/harness/tests/fixtures/citation-adapter.mjs
|
||||
f710d9600a17f6e2989a289cfe84e58f161d86c7306605946ce05fa71b364eb2 packages/library/src/guard.mjs
|
||||
c0d630798914e300e461c247340533328e97119e54909c6a9406340e61fed8b7 packages/library/src/index.mjs
|
||||
98ef45ed61144aaea44d8aea1ac43082b6d340297e46846d01772da38728e530 packages/library/src/limits.mjs
|
||||
7b46f47b5e9d6b554b5d39bce2cd95c4610f5f35b8ab8fdc5a2864b3214be809 packages/library/src/reply-protocol.mjs
|
||||
406146ebbce3710f308243b684a1c17e7626c1b65a4468489364317e31537a48 packages/library/tests/guard.test.mjs
|
||||
39c8e6c8250a13fa43015fb2c407195e30ee642f729a9f6a644c38b4ea758a72 packages/seat/src/sandbox.mjs
|
||||
@@ -1,21 +0,0 @@
|
||||
68c05644d29188b897e2d4695d8e7025e143d424d69a91bc07bc950f589d34bf packages/bus/src/broker.mjs
|
||||
ad3c686a089f67f3c89610937c6fc9b32367cea5d9735125d89bef042082d4e8 packages/bus/src/client.mjs
|
||||
49e01e5e73cc3e830ad48a1b6b13fe4d06a38950f17847dc049b75209d6d3f0a packages/bus/src/runtime.mjs
|
||||
66b26d131a19f4f411686427274936850c1ff0aed11e9b281ae4aadcf4b289fc packages/bus/src/server.mjs
|
||||
29114051a9bc5271e48978a9552d64b51b0ac4810f94a1f98940bf617b148df8 packages/bus/tests/citation-guard.test.mjs
|
||||
dc2d5836f10f591fc174aaf9587a3bff793b24ac29efe9ab68c6a9243d1d1c2c packages/bus/tests/citation-helpers.mjs
|
||||
825da818ba3cf45a4837f0f15a9c2cdba55a3d0bbb4479d55236f35799427c6f packages/business/src/business.mjs
|
||||
dbd79a4dfc926620d034b540f98f39336d81e4c79f214424c3cf19250c1d1f8d packages/business/src/organization.mjs
|
||||
bec04a894bc2af000548283ed7719e4de1c6d56688f42238a113390e9b2d3fbe packages/business/tests/reply-limits.test.mjs
|
||||
1f1bea250f694a2aae9b9dc856b3c3424ceca153ccf826c99ccb98e6ea9cd394 packages/cli/README.md
|
||||
2f291a71f490f2741edada7a3e3788500f8976a08eb8ab1411f6c5982f778260 packages/cli/src/limits.mjs
|
||||
f38af2d46d5f5f6388f599912507b94b87a0bf9dcc2104bb2187c38ee35118d5 packages/cli/tests/reply-limits.test.mjs
|
||||
6ad72b4245e0a66e32725941900c1ece64c2e5de2fb73d65c8e042b4f3a691a6 packages/harness/src/runner.mjs
|
||||
ec7ef0cbf493217eb9229895cae2fe7ef603f41913840e59a73220df387c81ca packages/harness/tests/citation-runner.test.mjs
|
||||
330bc71bf6c7e64d3ddb70440903d2d9acf7878d44a49d7e30c2352ee4c807ec packages/harness/tests/fixtures/citation-adapter.mjs
|
||||
0365114cf5773cbaa9fba196fbd1e773b2ec5ad2300c40231c357ca58884b9e3 packages/library/src/guard.mjs
|
||||
aaa8f7ba60a729a88a6ef57b3d5ff5a69bcf0e17b60e7db51a8dc5a697627b6c packages/library/src/index.mjs
|
||||
3e04fa25a64334d33ffbec704205b32cd01992f2d341e908f933a345199beee0 packages/library/src/limits.mjs
|
||||
c9e682eff87e822647921288d7fce0ebdc7b09f0a6dfdd6528f10249ae26e81b packages/library/src/reply-protocol.mjs
|
||||
dd056409712113eb9c1b70e29b21022f5b30df6ffbfb2658e293edd6ec7195c7 packages/library/tests/guard.test.mjs
|
||||
2f3ec99129d16394d4458e252b9cba4e38ff66cd9393e3889f8afc3140e15a8e packages/seat/src/sandbox.mjs
|
||||
@@ -1,23 +0,0 @@
|
||||
68c05644d29188b897e2d4695d8e7025e143d424d69a91bc07bc950f589d34bf packages/bus/src/broker.mjs
|
||||
ad3c686a089f67f3c89610937c6fc9b32367cea5d9735125d89bef042082d4e8 packages/bus/src/client.mjs
|
||||
49e01e5e73cc3e830ad48a1b6b13fe4d06a38950f17847dc049b75209d6d3f0a packages/bus/src/runtime.mjs
|
||||
66b26d131a19f4f411686427274936850c1ff0aed11e9b281ae4aadcf4b289fc packages/bus/src/server.mjs
|
||||
cdd0304ec25ef1ad3e31c52502fa46f2c80bd77c8d3c2e13f8ed4b5328f342c9 packages/bus/tests/citation-availability.test.mjs
|
||||
8dc344b8a905c58d544b031ca84adb7eb869d9de88eb8e6b0fc1d9190702a38a packages/bus/tests/citation-guard.test.mjs
|
||||
62d8a55945d4b700e22c8c49b6420a5e25719d266901a2ad20c72514735e65e9 packages/bus/tests/citation-helpers.mjs
|
||||
168dcac99d9bfdfdf5ff0eaa2c0fff91595b351b4d0092dc299532c9c32869f0 packages/bus/tests/citation-runtime.test.mjs
|
||||
825da818ba3cf45a4837f0f15a9c2cdba55a3d0bbb4479d55236f35799427c6f packages/business/src/business.mjs
|
||||
dbd79a4dfc926620d034b540f98f39336d81e4c79f214424c3cf19250c1d1f8d packages/business/src/organization.mjs
|
||||
4d2eb11beaa80175e524af1b95c81e7164990fba1d3e1754f5ba06eee390a14f packages/business/tests/reply-limits.test.mjs
|
||||
1f1bea250f694a2aae9b9dc856b3c3424ceca153ccf826c99ccb98e6ea9cd394 packages/cli/README.md
|
||||
2f291a71f490f2741edada7a3e3788500f8976a08eb8ab1411f6c5982f778260 packages/cli/src/limits.mjs
|
||||
f38af2d46d5f5f6388f599912507b94b87a0bf9dcc2104bb2187c38ee35118d5 packages/cli/tests/reply-limits.test.mjs
|
||||
6ad72b4245e0a66e32725941900c1ece64c2e5de2fb73d65c8e042b4f3a691a6 packages/harness/src/runner.mjs
|
||||
a5ef1b65230239a7baf6d0e8f2b8a51c0516348c7c4339a55b3f0a1a6ff531ba packages/harness/tests/citation-runner.test.mjs
|
||||
330bc71bf6c7e64d3ddb70440903d2d9acf7878d44a49d7e30c2352ee4c807ec packages/harness/tests/fixtures/citation-adapter.mjs
|
||||
0365114cf5773cbaa9fba196fbd1e773b2ec5ad2300c40231c357ca58884b9e3 packages/library/src/guard.mjs
|
||||
aaa8f7ba60a729a88a6ef57b3d5ff5a69bcf0e17b60e7db51a8dc5a697627b6c packages/library/src/index.mjs
|
||||
3e04fa25a64334d33ffbec704205b32cd01992f2d341e908f933a345199beee0 packages/library/src/limits.mjs
|
||||
c9e682eff87e822647921288d7fce0ebdc7b09f0a6dfdd6528f10249ae26e81b packages/library/src/reply-protocol.mjs
|
||||
dd056409712113eb9c1b70e29b21022f5b30df6ffbfb2658e293edd6ec7195c7 packages/library/tests/guard.test.mjs
|
||||
2f3ec99129d16394d4458e252b9cba4e38ff66cd9393e3889f8afc3140e15a8e packages/seat/src/sandbox.mjs
|
||||
@@ -1,23 +0,0 @@
|
||||
68c05644d29188b897e2d4695d8e7025e143d424d69a91bc07bc950f589d34bf packages/bus/src/broker.mjs
|
||||
ad3c686a089f67f3c89610937c6fc9b32367cea5d9735125d89bef042082d4e8 packages/bus/src/client.mjs
|
||||
49e01e5e73cc3e830ad48a1b6b13fe4d06a38950f17847dc049b75209d6d3f0a packages/bus/src/runtime.mjs
|
||||
66b26d131a19f4f411686427274936850c1ff0aed11e9b281ae4aadcf4b289fc packages/bus/src/server.mjs
|
||||
cdd0304ec25ef1ad3e31c52502fa46f2c80bd77c8d3c2e13f8ed4b5328f342c9 packages/bus/tests/citation-availability.test.mjs
|
||||
8dc344b8a905c58d544b031ca84adb7eb869d9de88eb8e6b0fc1d9190702a38a packages/bus/tests/citation-guard.test.mjs
|
||||
8a2d4b636f8d4f926c484254c33ecf7b7e4722acef3250d2730593984d5ac06b packages/bus/tests/citation-helpers.mjs
|
||||
168dcac99d9bfdfdf5ff0eaa2c0fff91595b351b4d0092dc299532c9c32869f0 packages/bus/tests/citation-runtime.test.mjs
|
||||
825da818ba3cf45a4837f0f15a9c2cdba55a3d0bbb4479d55236f35799427c6f packages/business/src/business.mjs
|
||||
dbd79a4dfc926620d034b540f98f39336d81e4c79f214424c3cf19250c1d1f8d packages/business/src/organization.mjs
|
||||
4d2eb11beaa80175e524af1b95c81e7164990fba1d3e1754f5ba06eee390a14f packages/business/tests/reply-limits.test.mjs
|
||||
1f1bea250f694a2aae9b9dc856b3c3424ceca153ccf826c99ccb98e6ea9cd394 packages/cli/README.md
|
||||
2f291a71f490f2741edada7a3e3788500f8976a08eb8ab1411f6c5982f778260 packages/cli/src/limits.mjs
|
||||
f38af2d46d5f5f6388f599912507b94b87a0bf9dcc2104bb2187c38ee35118d5 packages/cli/tests/reply-limits.test.mjs
|
||||
6ad72b4245e0a66e32725941900c1ece64c2e5de2fb73d65c8e042b4f3a691a6 packages/harness/src/runner.mjs
|
||||
a5ef1b65230239a7baf6d0e8f2b8a51c0516348c7c4339a55b3f0a1a6ff531ba packages/harness/tests/citation-runner.test.mjs
|
||||
330bc71bf6c7e64d3ddb70440903d2d9acf7878d44a49d7e30c2352ee4c807ec packages/harness/tests/fixtures/citation-adapter.mjs
|
||||
0365114cf5773cbaa9fba196fbd1e773b2ec5ad2300c40231c357ca58884b9e3 packages/library/src/guard.mjs
|
||||
aaa8f7ba60a729a88a6ef57b3d5ff5a69bcf0e17b60e7db51a8dc5a697627b6c packages/library/src/index.mjs
|
||||
3e04fa25a64334d33ffbec704205b32cd01992f2d341e908f933a345199beee0 packages/library/src/limits.mjs
|
||||
c9e682eff87e822647921288d7fce0ebdc7b09f0a6dfdd6528f10249ae26e81b packages/library/src/reply-protocol.mjs
|
||||
dd056409712113eb9c1b70e29b21022f5b30df6ffbfb2658e293edd6ec7195c7 packages/library/tests/guard.test.mjs
|
||||
2f3ec99129d16394d4458e252b9cba4e38ff66cd9393e3889f8afc3140e15a8e packages/seat/src/sandbox.mjs
|
||||
@@ -1,23 +0,0 @@
|
||||
eeca81ab965f9e94f930ee5f51d16f019af6368bc6c3994895e204f7a54ec8d2 packages/bus/src/broker.mjs
|
||||
ad3c686a089f67f3c89610937c6fc9b32367cea5d9735125d89bef042082d4e8 packages/bus/src/client.mjs
|
||||
36b05dd3119e5929211aa1cc5d45c5043f5a1c34567ddc7cac8f002835d44abe packages/bus/src/runtime.mjs
|
||||
66b26d131a19f4f411686427274936850c1ff0aed11e9b281ae4aadcf4b289fc packages/bus/src/server.mjs
|
||||
cdd0304ec25ef1ad3e31c52502fa46f2c80bd77c8d3c2e13f8ed4b5328f342c9 packages/bus/tests/citation-availability.test.mjs
|
||||
2e05074cd9d15d810103658af3858161cee2af78b0a2e1ba910222fab3e84401 packages/bus/tests/citation-guard.test.mjs
|
||||
2c7a2102e2e0244876e41b664f4f706baefe3375100b956655551db1230f5da3 packages/bus/tests/citation-helpers.mjs
|
||||
168dcac99d9bfdfdf5ff0eaa2c0fff91595b351b4d0092dc299532c9c32869f0 packages/bus/tests/citation-runtime.test.mjs
|
||||
abaeac64f2c3bf8ba83c9a4488edd9105c4707a6564560c5333d5421445653af packages/business/src/business.mjs
|
||||
3a6044de5d1ca2cc35c5285b460c3e402b4274837e5d88b97f489797f6004903 packages/business/src/organization.mjs
|
||||
4d2eb11beaa80175e524af1b95c81e7164990fba1d3e1754f5ba06eee390a14f packages/business/tests/reply-limits.test.mjs
|
||||
a2bb98734bcc2556f8b2168f0faf8a89f7064c3f0aa49feb7d1975d596192f09 packages/cli/README.md
|
||||
2f291a71f490f2741edada7a3e3788500f8976a08eb8ab1411f6c5982f778260 packages/cli/src/limits.mjs
|
||||
f38af2d46d5f5f6388f599912507b94b87a0bf9dcc2104bb2187c38ee35118d5 packages/cli/tests/reply-limits.test.mjs
|
||||
6ad72b4245e0a66e32725941900c1ece64c2e5de2fb73d65c8e042b4f3a691a6 packages/harness/src/runner.mjs
|
||||
a5ef1b65230239a7baf6d0e8f2b8a51c0516348c7c4339a55b3f0a1a6ff531ba packages/harness/tests/citation-runner.test.mjs
|
||||
330bc71bf6c7e64d3ddb70440903d2d9acf7878d44a49d7e30c2352ee4c807ec packages/harness/tests/fixtures/citation-adapter.mjs
|
||||
f710d9600a17f6e2989a289cfe84e58f161d86c7306605946ce05fa71b364eb2 packages/library/src/guard.mjs
|
||||
c0d630798914e300e461c247340533328e97119e54909c6a9406340e61fed8b7 packages/library/src/index.mjs
|
||||
3e04fa25a64334d33ffbec704205b32cd01992f2d341e908f933a345199beee0 packages/library/src/limits.mjs
|
||||
7b46f47b5e9d6b554b5d39bce2cd95c4610f5f35b8ab8fdc5a2864b3214be809 packages/library/src/reply-protocol.mjs
|
||||
406146ebbce3710f308243b684a1c17e7626c1b65a4468489364317e31537a48 packages/library/tests/guard.test.mjs
|
||||
39c8e6c8250a13fa43015fb2c407195e30ee642f729a9f6a644c38b4ea758a72 packages/seat/src/sandbox.mjs
|
||||
@@ -1,23 +0,0 @@
|
||||
eeca81ab965f9e94f930ee5f51d16f019af6368bc6c3994895e204f7a54ec8d2 packages/bus/src/broker.mjs
|
||||
ad3c686a089f67f3c89610937c6fc9b32367cea5d9735125d89bef042082d4e8 packages/bus/src/client.mjs
|
||||
36b05dd3119e5929211aa1cc5d45c5043f5a1c34567ddc7cac8f002835d44abe packages/bus/src/runtime.mjs
|
||||
66b26d131a19f4f411686427274936850c1ff0aed11e9b281ae4aadcf4b289fc packages/bus/src/server.mjs
|
||||
cdd0304ec25ef1ad3e31c52502fa46f2c80bd77c8d3c2e13f8ed4b5328f342c9 packages/bus/tests/citation-availability.test.mjs
|
||||
2e05074cd9d15d810103658af3858161cee2af78b0a2e1ba910222fab3e84401 packages/bus/tests/citation-guard.test.mjs
|
||||
2c7a2102e2e0244876e41b664f4f706baefe3375100b956655551db1230f5da3 packages/bus/tests/citation-helpers.mjs
|
||||
168dcac99d9bfdfdf5ff0eaa2c0fff91595b351b4d0092dc299532c9c32869f0 packages/bus/tests/citation-runtime.test.mjs
|
||||
abaeac64f2c3bf8ba83c9a4488edd9105c4707a6564560c5333d5421445653af packages/business/src/business.mjs
|
||||
3a6044de5d1ca2cc35c5285b460c3e402b4274837e5d88b97f489797f6004903 packages/business/src/organization.mjs
|
||||
4d2eb11beaa80175e524af1b95c81e7164990fba1d3e1754f5ba06eee390a14f packages/business/tests/reply-limits.test.mjs
|
||||
a2bb98734bcc2556f8b2168f0faf8a89f7064c3f0aa49feb7d1975d596192f09 packages/cli/README.md
|
||||
2f291a71f490f2741edada7a3e3788500f8976a08eb8ab1411f6c5982f778260 packages/cli/src/limits.mjs
|
||||
f38af2d46d5f5f6388f599912507b94b87a0bf9dcc2104bb2187c38ee35118d5 packages/cli/tests/reply-limits.test.mjs
|
||||
6ad72b4245e0a66e32725941900c1ece64c2e5de2fb73d65c8e042b4f3a691a6 packages/harness/src/runner.mjs
|
||||
a5ef1b65230239a7baf6d0e8f2b8a51c0516348c7c4339a55b3f0a1a6ff531ba packages/harness/tests/citation-runner.test.mjs
|
||||
330bc71bf6c7e64d3ddb70440903d2d9acf7878d44a49d7e30c2352ee4c807ec packages/harness/tests/fixtures/citation-adapter.mjs
|
||||
f710d9600a17f6e2989a289cfe84e58f161d86c7306605946ce05fa71b364eb2 packages/library/src/guard.mjs
|
||||
c0d630798914e300e461c247340533328e97119e54909c6a9406340e61fed8b7 packages/library/src/index.mjs
|
||||
98ef45ed61144aaea44d8aea1ac43082b6d340297e46846d01772da38728e530 packages/library/src/limits.mjs
|
||||
7b46f47b5e9d6b554b5d39bce2cd95c4610f5f35b8ab8fdc5a2864b3214be809 packages/library/src/reply-protocol.mjs
|
||||
406146ebbce3710f308243b684a1c17e7626c1b65a4468489364317e31537a48 packages/library/tests/guard.test.mjs
|
||||
39c8e6c8250a13fa43015fb2c407195e30ee642f729a9f6a644c38b4ea758a72 packages/seat/src/sandbox.mjs
|
||||
@@ -1,23 +0,0 @@
|
||||
eeca81ab965f9e94f930ee5f51d16f019af6368bc6c3994895e204f7a54ec8d2 packages/bus/src/broker.mjs
|
||||
ad3c686a089f67f3c89610937c6fc9b32367cea5d9735125d89bef042082d4e8 packages/bus/src/client.mjs
|
||||
36b05dd3119e5929211aa1cc5d45c5043f5a1c34567ddc7cac8f002835d44abe packages/bus/src/runtime.mjs
|
||||
66b26d131a19f4f411686427274936850c1ff0aed11e9b281ae4aadcf4b289fc packages/bus/src/server.mjs
|
||||
cdd0304ec25ef1ad3e31c52502fa46f2c80bd77c8d3c2e13f8ed4b5328f342c9 packages/bus/tests/citation-availability.test.mjs
|
||||
2e05074cd9d15d810103658af3858161cee2af78b0a2e1ba910222fab3e84401 packages/bus/tests/citation-guard.test.mjs
|
||||
2c7a2102e2e0244876e41b664f4f706baefe3375100b956655551db1230f5da3 packages/bus/tests/citation-helpers.mjs
|
||||
9768b6dc5ae078c5cc4f76473097287b74c5bc5853d39e1f57f153e646f861af packages/bus/tests/citation-runtime.test.mjs
|
||||
abaeac64f2c3bf8ba83c9a4488edd9105c4707a6564560c5333d5421445653af packages/business/src/business.mjs
|
||||
3a6044de5d1ca2cc35c5285b460c3e402b4274837e5d88b97f489797f6004903 packages/business/src/organization.mjs
|
||||
4d2eb11beaa80175e524af1b95c81e7164990fba1d3e1754f5ba06eee390a14f packages/business/tests/reply-limits.test.mjs
|
||||
a2bb98734bcc2556f8b2168f0faf8a89f7064c3f0aa49feb7d1975d596192f09 packages/cli/README.md
|
||||
2f291a71f490f2741edada7a3e3788500f8976a08eb8ab1411f6c5982f778260 packages/cli/src/limits.mjs
|
||||
f38af2d46d5f5f6388f599912507b94b87a0bf9dcc2104bb2187c38ee35118d5 packages/cli/tests/reply-limits.test.mjs
|
||||
6ad72b4245e0a66e32725941900c1ece64c2e5de2fb73d65c8e042b4f3a691a6 packages/harness/src/runner.mjs
|
||||
a5ef1b65230239a7baf6d0e8f2b8a51c0516348c7c4339a55b3f0a1a6ff531ba packages/harness/tests/citation-runner.test.mjs
|
||||
330bc71bf6c7e64d3ddb70440903d2d9acf7878d44a49d7e30c2352ee4c807ec packages/harness/tests/fixtures/citation-adapter.mjs
|
||||
f710d9600a17f6e2989a289cfe84e58f161d86c7306605946ce05fa71b364eb2 packages/library/src/guard.mjs
|
||||
c0d630798914e300e461c247340533328e97119e54909c6a9406340e61fed8b7 packages/library/src/index.mjs
|
||||
98ef45ed61144aaea44d8aea1ac43082b6d340297e46846d01772da38728e530 packages/library/src/limits.mjs
|
||||
7b46f47b5e9d6b554b5d39bce2cd95c4610f5f35b8ab8fdc5a2864b3214be809 packages/library/src/reply-protocol.mjs
|
||||
406146ebbce3710f308243b684a1c17e7626c1b65a4468489364317e31537a48 packages/library/tests/guard.test.mjs
|
||||
39c8e6c8250a13fa43015fb2c407195e30ee642f729a9f6a644c38b4ea758a72 packages/seat/src/sandbox.mjs
|
||||
@@ -1,90 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Run only on Sage CLEAR. Mutate isolated HEAD archives; never edit the checkout.
|
||||
|
||||
A green control run is required before each negative result counts as a kill.
|
||||
Usage: python3 agents/beakley/work/queue-217/mutants.py OUTPUT_DIRECTORY
|
||||
"""
|
||||
from pathlib import Path
|
||||
import io
|
||||
import hashlib
|
||||
import os
|
||||
import subprocess
|
||||
import sys
|
||||
import tarfile
|
||||
import tempfile
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[4]
|
||||
OUT = Path(sys.argv[1]).resolve()
|
||||
OUT.mkdir(parents=True, exist_ok=True)
|
||||
WRITER = "packages/business/src/organization.mjs"
|
||||
BROKER = "packages/bus/src/broker.mjs"
|
||||
CLIENT = "packages/bus/src/client.mjs"
|
||||
ATOMIC = "if (check) this.#event(s, 'action.allowed', { action: 'message.checked', message: mid, check }, mid, checkEventId(mid));"
|
||||
REENTER = "return this.#reenter(cap, s, { verb: 'message.send', args }, check);"
|
||||
SPLIT = """const result = this.#reenter(cap, s, { verb: 'message.send', args }, check);
|
||||
if (check) this.#store.transaction(() => this.#event(s, 'action.allowed', { action: 'message.checked', message: result.id, check }, result.id, checkEventId(result.id)));
|
||||
return result;"""
|
||||
MUTANTS = [
|
||||
("M1-writer-fence", [(WRITER, " replyLimitsFence(old, document, actor);", ""),
|
||||
(WRITER, " replyLimitsFence(old, written, actor);", "")],
|
||||
["packages/business/tests/reply-limits.test.mjs"]),
|
||||
("M2-incoming-human", [(WRITER, "actor === old.human", "actor === document.human")],
|
||||
["packages/business/tests/reply-limits.test.mjs"]),
|
||||
("M3-split-check-transaction", [(BROKER, ATOMIC, ""), (BROKER, REENTER, SPLIT)],
|
||||
["packages/bus/tests/citation-guard.test.mjs"]),
|
||||
("M5-hide-library-unavailable", [("packages/library/src/guard.mjs",
|
||||
"refuse('citation-unavailable', 'The library is busy or unavailable. Retry the answer when the library is available.');",
|
||||
"served = null;")], ["packages/bus/tests/citation-availability.test.mjs"]),
|
||||
("M4-drop-client-reason", [(CLIENT, "new BusError(r.error, typeof r.reason === 'string' ? r.reason.slice(0, 300) : undefined)", "new BusError(r.error)")],
|
||||
["packages/bus/tests/citation-guard.test.mjs"]),
|
||||
]
|
||||
|
||||
archive = subprocess.check_output(["git", "archive", "HEAD", "packages", "roles", "scripts", "tools", "docs", "package.json", "RELEASE"], cwd=ROOT)
|
||||
summary = []
|
||||
selected = set(sys.argv[2:])
|
||||
product_files = [line.split(' ', 1)[1] for line in (ROOT / 'agents/beakley/work/queue-217/manifest.r5.sha256').read_text().splitlines()]
|
||||
def hashes(base, files):
|
||||
return {file: hashlib.sha256((base / file).read_bytes()).hexdigest() for file in files}
|
||||
original_products = hashes(ROOT, product_files)
|
||||
for name, changes, tests in MUTANTS:
|
||||
if selected and name not in selected:
|
||||
continue
|
||||
with tempfile.TemporaryDirectory(prefix="row217-mutant-") as directory:
|
||||
work = Path(directory)
|
||||
with tarfile.open(fileobj=io.BytesIO(archive)) as source:
|
||||
source.extractall(work, filter="data")
|
||||
modules = ROOT / "node_modules"
|
||||
if modules.is_symlink():
|
||||
raise SystemExit('root node_modules must be a local install, never a canonical link')
|
||||
if modules.exists():
|
||||
os.symlink(modules.resolve(), work / "node_modules", target_is_directory=True)
|
||||
cmd = ["timeout", "-k", "10", "120", "node", "--test", *tests]
|
||||
with (OUT / f"{name}-control.log").open("w") as log:
|
||||
control = subprocess.run(cmd, cwd=work, stdout=log, stderr=subprocess.STDOUT, timeout=120)
|
||||
if control.returncode:
|
||||
raise SystemExit(f"{name}: control RED, no mutant result claimed")
|
||||
originals = {file: (work / file).read_bytes() for file, _, _ in changes}
|
||||
try:
|
||||
for file, before, after in changes:
|
||||
path = work / file
|
||||
text = path.read_text()
|
||||
if text.count(before) != 1:
|
||||
raise SystemExit(f"{name}: expected exactly one mutation anchor in {file}")
|
||||
path.write_text(text.replace(before, after))
|
||||
with (OUT / f"{name}.log").open("w") as log:
|
||||
mutant = subprocess.run(cmd, cwd=work, stdout=log, stderr=subprocess.STDOUT, timeout=140)
|
||||
if mutant.returncode != 1:
|
||||
raise SystemExit(f"{name}: expected assertion failure exit 1, got {mutant.returncode}")
|
||||
finally:
|
||||
for file, content in originals.items():
|
||||
(work / file).write_bytes(content)
|
||||
assert all((work / file).read_bytes() == content for file, content in originals.items())
|
||||
assert hashes(ROOT, product_files) == original_products, 'checkout product hashes changed'
|
||||
(OUT / f"{name}-restored.sha256").write_text(''.join(f'{digest} {file}\n' for file, digest in sorted(original_products.items())))
|
||||
with (OUT / f"{name}-restored-green.log").open("w") as log:
|
||||
restored = subprocess.run(cmd, cwd=work, stdout=log, stderr=subprocess.STDOUT, timeout=140)
|
||||
if restored.returncode:
|
||||
raise SystemExit(f"{name}: restored control RED")
|
||||
summary.append(f"{name}: killed (control green, mutant exit {mutant.returncode}, hashes restored, restored green)")
|
||||
(OUT / "summary.txt").write_text("\n".join(summary) + "\n")
|
||||
print(summary[-1], flush=True)
|
||||
@@ -1,112 +0,0 @@
|
||||
1: e25ef0373 ! 1: b9ef816ff launchpad: row 217 C2-06 work in progress, UNTESTED, handed to Beakley (mos-1500)
|
||||
@@ packages/bus/src/broker.mjs: export class Broker {
|
||||
if (CREDENTIAL_VERBS.includes(request.verb)) return this.#requestCredential(s, request.verb, structuredClone(args));
|
||||
if (request.verb === 'instance.hire' || request.verb === 'instance.fire')
|
||||
return this.#chiefLifecycle(s, request.verb, structuredClone(args));
|
||||
+ if (request.verb === 'grants.scope' || request.verb === 'grants.scope.set')
|
||||
+ return this.#grantScopeVerb(s, request.verb, structuredClone(args));
|
||||
- if (["limits", "limits.set", "organization.set", "organization.revision", "plugins", "plugins.set", "instances", "instances.set", "routes", "routes.set", "veto.set"].includes(request.verb)) {
|
||||
+ if (["limits", "limits.set", "organization.set", "organization.revision", "plugins", "plugins.set", "instances", "instances.set", "routes", "routes.set", "veto.set", "library.limits.set"].includes(request.verb)) {
|
||||
// Row 123 (#1617, REQ-COS-1, REQ-LIMIT-1): organization.set is limits.set for a role whose
|
||||
@@ packages/bus/src/runtime.mjs: export async function startBroker({
|
||||
project: {
|
||||
readSpec: context => projectModule.readSpec({ ...context, dataRoot }),
|
||||
@@ packages/bus/src/runtime.mjs: export async function startBroker({
|
||||
- else if(verb==='plugins.set')result=plugins.set(id,args,actor);
|
||||
- // Row 194 (#1692, V6): the human's keep and noHire lists, through the instance writer.
|
||||
else if(verb==='veto.set')result=instances.veto(id,args,actor);
|
||||
+ // Row 298: the human's grant scope, through the instance writer.
|
||||
+ else if(verb==='grants.scope.set')result=instances.grantScope(id,args,actor);
|
||||
+ // C2-06 M11: the human's replyLimits, through the organization writer's fence.
|
||||
+ else if(verb==='library.limits.set')result=setReplyLimits(organizationWriter({dir:organization.dir,rolesDir:organization.rolesDir}),id,args,actor);
|
||||
// Row 194 (D2.1, D2.2): the chief's hire and fire, with the reason in the change context.
|
||||
@@ packages/business/src/organization.mjs: export function organizationWriter({ dir
|
||||
const parent = join(dir, "businesses");
|
||||
directory(evidence);
|
||||
@@ packages/business/src/organization.mjs: export function organizationWriter({ dir, rolesDir, barrier = () => {} }) {
|
||||
- // mapping, including library playgrounds and hybrid universes.
|
||||
- if (canonicalJson(document?.projects) !== canonicalJson(old.projects))
|
||||
- fail('organization-projects-protected');
|
||||
-+ replyLimitsFence(old, document, actor);
|
||||
- validateBusinessDocument(document, file, { rolesDir });
|
||||
- const bytes = JSON.stringify(document, null, 2) + "\n";
|
||||
- // Check and log exactly what lands on disk, for every setter: a value JSON
|
||||
+ // mapping, including library playgrounds and hybrid universes.
|
||||
+ if (canonicalJson(document?.projects) !== canonicalJson(old.projects))
|
||||
+ fail('organization-projects-protected');
|
||||
++ replyLimitsFence(old, document, actor);
|
||||
+ validateBusinessDocument(document, file, { rolesDir });
|
||||
+ const bytes = JSON.stringify(document, null, 2) + "\n";
|
||||
+ // Check and log exactly what lands on disk, for every setter: a value JSON
|
||||
@@ packages/business/src/organization.mjs: export function organizationWriter({ dir, rolesDir, barrier = () => {} }) {
|
||||
- const written = JSON.parse(bytes);
|
||||
- if (canonicalJson(written.projects) !== canonicalJson(old.projects))
|
||||
- fail('organization-projects-protected');
|
||||
-+ replyLimitsFence(old, written, actor);
|
||||
- validateBusinessDocument(written, file, { rolesDir });
|
||||
- const after = sha256(bytes);
|
||||
- const transaction = randomUUID();
|
||||
+ const written = JSON.parse(bytes);
|
||||
+ if (canonicalJson(written.projects) !== canonicalJson(old.projects))
|
||||
+ fail('organization-projects-protected');
|
||||
++ replyLimitsFence(old, written, actor);
|
||||
+ validateBusinessDocument(written, file, { rolesDir });
|
||||
+ if (beforeWrite) {
|
||||
+ beforeWrite();
|
||||
@@ packages/business/src/organization.mjs: export function organizationWriter({ dir, rolesDir, barrier = () => {} }) {
|
||||
});
|
||||
}
|
||||
@@ packages/library/src/guard.mjs (new)
|
||||
+}
|
||||
|
||||
## packages/library/src/index.mjs ##
|
||||
-@@ packages/library/src/index.mjs: export { renderItems, KINDS, NOTICES, UNREADABLE } from './render.mjs';
|
||||
- export { survey, formatSurvey, surveyMain } from './survey.mjs';
|
||||
- export { SYNC_STATE_FILE, mirrorPath, ensureMirror, withLibraryLock, servedCommit, readSyncState, libraryStatus, readLibraryFile } from './mirror.mjs';
|
||||
+@@ packages/library/src/index.mjs: export { SYNC_STATE_FILE, mirrorPath, ensureMirror, withLibraryLock, servedCommi
|
||||
export { syncCommand, sync, ASKPASS, SLOT, SYNC_INTERVAL_MS } from './sync.mjs';
|
||||
+ export { buildIndex, indexFor, clearIndexCache, indexCacheSize } from './index-build.mjs';
|
||||
+ export { sees, find, get, search, manuscript, universeInfo, QUERY_REPLY_CAP, LOOKUP_LIMIT, MANUSCRIPT_LINES } from './query.mjs';
|
||||
+export { REPLY_LIMITS, resolveReplyLimits, checkReplyLimits } from './limits.mjs';
|
||||
+export { GUARD_CODES, FIXED_TEXTS, WEB_CITE_DEFINITIONS, REASON_MAX, GuardError, parseReply, checkReply, libraryReader, guardReply, lastCommits } from './guard.mjs';
|
||||
|
||||
2: c25f5b8da ! 2: 7400509ba row 217: citation runner retry and acceptance draft (Untested)
|
||||
@@ Commit message
|
||||
row 217: citation runner retry and acceptance draft (Untested)
|
||||
|
||||
## BUILD-LOG.md ##
|
||||
-@@ BUILD-LOG.md: Row 299 (573, #1806, Gander, Filbert): before, the P10 band test timed a fault r
|
||||
- 2026-10-23T17:29:46Z | Gyro Vikunja571 sage-3542 Connections amendment | Branch gyro/editor-connections-design cut exactly from landed PRD1.17 30e6bb680; read REQ-LIB-5 in that PRD. Replaced stale J-b waits in parent and W4. Proposed W8 owns current authorized Markdown/DOCX links/backlinks list, labels, versioned refresh, leakage refusals and fixture tests. Build order under mos-1470/comment961 is W7 closed routing candidate, W8 landing, then W7 human first-real-import opening. No REQ-LIB-8 condition or acceptance change. Q234/mos-1363/S0 M1-M14 and post-10-27/MVP priority fixed. Static diff, twelve brief sections and append-only checks pass. No repo Node, tests, build, browser, queue mutation or live action. Fenton reviews after authorized docs branch push; Sage lands on approval.
|
||||
+@@ BUILD-LOG.md: remain; no live state, schema or bus policy change.
|
||||
|
||||
- 2026-10-23T17:32:37Z | Gyro sage-3544 fenton-0016 N1/N2 delta | Before: W7 Gate/final real-conversion list omit the W8 build-order cross-reference and W8 human-view filtering cites agent settings. After: both locations explicitly put W8 landing before human opening as mos-1470 build order, not acceptance; comment/tracked-deletion links are not current story links and never appear in the human Connections view regardless of agent settings. New commit atop approved 5af060fb5, no amend. Static diff and append-only checks pass. Docs only, no repo Node/tests/live action. Fenton checks only this delta.
|
||||
-+
|
||||
+ 2026-10-24 | Goldie | Row265 / #1770 verified (mos-1567, sage-3942) | Approved correction adds solely address import pin + Row265 comment to project-runtime.test and one pure-source RUNNER_FILES mount; new block checks parser has no imports. Serialized fresh-short-TMP timeout-k10: unchanged sandbox10/10, parser15/15, rooms18/18, full bus957/957, twelve named refusal mutants killed (each Node1, driver0), restored parser15/15 + rooms18/18. All positives zero fail/skip/cancel; every mutation restored full broker SHA71b32ee4. Old first-red evidence retained, no other old-test change. Slot returned goldie-0034; Boyd packet explicitly includes mount-list review, candidate push next.
|
||||
+ 2026-10-24T07:18:53Z | Sage | Row 327 (#1825, Bradford, Poe and Dewey) LANDED 68c08b4e7. Before: refactor at 94d9e90a6; the push guard was a scratch script with no reviewed-binary check. After: scripts/push-check.sh and scripts/test-push-check.sh on refactor, 3 commits cherry-picked onto 6a5e12511 with blobs equal to the round 3 tip d858c9f8b, plus doc commits 76f84465f and 68c08b4e7. Binaries are found by numstat or a NUL in the first 8000 committed bytes, regardless of attributes; each needs its sha256 and path in an approved latest-round candidate; an unconfirmed queue tail exits 2. Reviews: Poe c31525 rev 3882, Dewey c31526 rev 3883. Gate: 1st run 06:57Z RED, not the candidate: canonical node_modules was empty from 05:45:15Z (sage-4023). Rerun with its own root npm ci GREEN 07:15:49Z: 17 package suites 0 failures (cli 986, plugins 119, webui 418), 11 scripts exit 0, push-check 6 mutants KILLED; skips are the queue canonical-root check and the row 244 live provider cases. The landed push-check.sh passed its own push (NO_BINARY, NO_ATTRIBUTION, PUSH_READY). mos-1575: gates install their own node_modules; canonical restored with npm ci (128 packages).
|
||||
+2026-10-23 | Beakley (88b97f65) | Row 217 #1718 takeover, before implementation | Clean base 45dca69f6 on beakley/row217. Recovering Launchpad handoff for citation guard, live settings, page store and runner retry. Acceptance is C2-06/design 5.2 plus sage-3595/3599/3602. Tracking agents/beakley/work/queue-217/BUILD.md; no product changes or Node/tests; Sage CLEAR required.
|
||||
+
|
||||
+2026-10-23 | Beakley (88b97f65) | Row 217 #1718 untested draft checkpoint | Continued Launchpad e25ef0373; added runner retry/text/note implementation, pure protocol constants and sage-3640 approved single read-only mount, CLI documentation and new acceptance test files. Static checks caught missing projects compatibility, async request mutation and Git pathspec matching; bounded fixes and regression tests authored. git diff --check clean. No Node/test/mutant executed; Sage holds CLEAR. 283/216/285 dependency checks and all acceptance execution remain open. Packet agents/beakley/work/queue-217/MANIFEST.md.
|
||||
@@ agents/beakley/work/queue-217/mutants.py (new)
|
||||
|
||||
## docs/SESSIONS.md ##
|
||||
@@ docs/SESSIONS.md: are never rewritten or removed; corrections are new entries.
|
||||
- 2026-10-23T17:48:43Z | Scrooge (629b6cd3) | Row 252 Console inbox Approve and Deny (#1753) | Rebased onto 306 landing as 580037105 (range-diff all =), slot run bus 907/0 webui 410/0 cli 943/0, in-review revs 3608/3609, Webby r1 APPROVE, J1-J19 specs to Sage; Sage landed 45ea3fa0d (done rev 3616). Part 1 mutant results were never in BUILD.md; they went to Sage by T3 (scrooge-0252-mutant-specs).
|
||||
- 2026-10-23 | Sage (1ef1e4f8) | Rows 308 and 252 landings, 571 Connections design amendment, Vikunja 597 | 308 (PRD 1.17, #1815) landed 30e6bb680 and 252 (#1753) landed 45ea3fa0d (replay of 580037105 onto 30e6bb680, range-diff all =), each after a full gate on the landed tree (252 also J1-J19, J11c and J18 equivalent); Gyro's 571 amendment (Fenton APPROVE) landed e8bb13df8; Vikunja 570, 435 and 597 done, canonical webui esbuild 0.28.2; queue revs 3589-3616 committed 59f013247
|
||||
- 2026-10-23 | Sage (1ef1e4f8) | Vikunja 571 W build rows; rows 13, 42, 257 and 289 check | Filed the design's ten W rows as queue rows 309-318 (revs 3617-3626, owners set to unassigned 3627-3636, queue commit 293b42fee pushed); Vikunja 571 done (comment 994). Row 13's candidate fd72d2689 is on refactor, gate is Monday's row 7 ledger run; 42 paused under mos-1184; 257 post-v1; 289 waits on 214 and 288. Slot released 17:56Z.
|
||||
+ 2026-10-24T04:27Z | Goldie (a13dd6d5-5e73-4b7d-8318-02abeff24940) | Row265 / #1770 C2-09b rooms | Goldie owns build, Boyd reviews under sage-3915. New goldie/row265 worktree at ec86f2c84, claim rev3814; room verbs/parser/new tests prepared, no old tests changed. Sage-3932 slot: new parser14/14 and rooms18/18 passed; whole bus in progress before refusal mutants, stop rule active.
|
||||
+ 2026-10-24T04:35Z | Goldie (a13dd6d5-5e73-4b7d-8318-02abeff24940) | Row265 / #1770 verified | First slot stopped at project-runtime import pin. mos-1567 narrowly authorizes pin and pure-source mount correction. sage-3942 rerun: sandbox10/10, parser15/15, rooms18/18, bus957/957, twelve refusal mutants killed/restored SHA71b32ee4, parser15/15 + rooms18/18 again. Slot returned goldie-0034; no further test runs. Boyd reviews RUNNER_FILES alongside rooms; own-branch push/claimant in-review next.
|
||||
+ 2026-10-24T07:18:53Z | Sage (1ef1e4f8) | Row 327 / #1825 push guard landed (mos-1572 option A, mos-1575) | Gate went red 06:57Z on an empty canonical node_modules (Glomgold's webui npm ci through a link to canonical, glomgold-0011); rerun with its own npm ci GREEN 07:15:49Z on 1bd214e38; pushed 68c08b4e7 07:18:03Z; #1825 closed c31530; canonical restored (128 packages); brief template rule 4db23a51f | landed
|
||||
+
|
||||
+2026-10-23 | Beakley (88b97f65, Codex gpt-6.1-sol) | Row 217 #1718 takeover under Q245 | Registered beakley/row217; read brief/design and standing Sage rulings; awaiting Launchpad ref before implementation. Queue next refused linked worktree; reported to Sage. Untested, no Node/test run pending CLEAR.
|
||||
|
||||
3: b6c3129d2 ! 3: a447880cb row 217: early-review coverage and availability RED cases (Untested)
|
||||
@@ Commit message
|
||||
row 217: early-review coverage and availability RED cases (Untested)
|
||||
|
||||
## BUILD-LOG.md ##
|
||||
-@@ BUILD-LOG.md: Row 299 (573, #1806, Gander, Filbert): before, the P10 band test timed a fault r
|
||||
+@@ BUILD-LOG.md: remain; no live state, schema or bus policy change.
|
||||
2026-10-23 | Beakley (88b97f65) | Row 217 #1718 takeover, before implementation | Clean base 45dca69f6 on beakley/row217. Recovering Launchpad handoff for citation guard, live settings, page store and runner retry. Acceptance is C2-06/design 5.2 plus sage-3595/3599/3602. Tracking agents/beakley/work/queue-217/BUILD.md; no product changes or Node/tests; Sage CLEAR required.
|
||||
|
||||
2026-10-23 | Beakley (88b97f65) | Row 217 #1718 untested draft checkpoint | Continued Launchpad e25ef0373; added runner retry/text/note implementation, pure protocol constants and sage-3640 approved single read-only mount, CLI documentation and new acceptance test files. Static checks caught missing projects compatibility, async request mutation and Git pathspec matching; bounded fixes and regression tests authored. git diff --check clean. No Node/test/mutant executed; Sage holds CLEAR. 283/216/285 dependency checks and all acceptance execution remain open. Packet agents/beakley/work/queue-217/MANIFEST.md.
|
||||
4: dde5b8496 = 4: 2655ec010 row 217: keep fixture status on its current served tip (Untested)
|
||||
@@ -1,30 +0,0 @@
|
||||
# Row217 round2 test receipts
|
||||
|
||||
Sage CLEAR sage-4042/4043, 2026-10-24. Source revision 2d274a5b6. All runs
|
||||
serialized; source files stayed unchanged through the whole-suite and mutant pass.
|
||||
Commands used TMPDIR=/mnt/storage/scratch/tmp/tNoueZ and timeout -k 10.
|
||||
|
||||
- npm ci --ignore-scripts --no-audit --no-fund at the worktree root (300s bound),
|
||||
then packages/webui (300s). Actual directories, no canonical links.
|
||||
- node --test packages/bus/tests/citation-availability.test.mjs (180s).
|
||||
- python3 agents/beakley/work/queue-217/mutants.py <m5-red> M5-hide-library-unavailable
|
||||
(420s). Green control, the authorized pre-fix RED stand-in, restore+green.
|
||||
- node --test --test-concurrency=1 with the seven new test files (900s):
|
||||
library/guard, business/reply-limits, cli/reply-limits, bus/citation-availability,
|
||||
bus/citation-guard, bus/citation-runtime and harness/citation-runner. Whole files.
|
||||
- First attempt 56/57: new runtime fixture invalid-authority. Only that fixture
|
||||
was corrected to the established broker projection. runtime-fixture-retry.log
|
||||
is its 1/1 rerun (180s); touched-rerun.log is the whole-file 57/57 rerun.
|
||||
- npm test in packages/library, then business (900s each), bus and cli (1200s
|
||||
each), harness and seat (900s each). Never overlapped package runs.
|
||||
- python3 agents/beakley/work/queue-217/mutants.py <mutants> (900s).
|
||||
The driver wraps each Node run in timeout -k 10 120. Each negative exits1,
|
||||
is preceded by a green control, restores its product bytes/hashes and then
|
||||
reruns the restored control green. No checkout product file is mutated.
|
||||
|
||||
summary.json holds complete counts; summary.txt is the short version. M1 anchors
|
||||
are recorded in m1-anchors.txt. The five *-restored.sha256 files match current
|
||||
product files. Full outputs are retained, including the first new-test failure.
|
||||
Negative logs intentionally keep Node's whitespace-only diagnostic padding;
|
||||
standard git diff --check flags that padding, not source code. No binary logs.
|
||||
No old test failed or was edited. Sage runs scripts/test-*.sh at landing.
|
||||
@@ -1,11 +0,0 @@
|
||||
✔ C2-06 held library lock gives the agent citation-unavailable and its retry reason (5142.976705ms)
|
||||
✔ C2-06 malformed sync state is availability failure, never a fabricated invalid cite (33.874404ms)
|
||||
✔ C2-06 no mirror or freshly initialized empty mirror still means no served citation (33.746516ms)
|
||||
ℹ tests 3
|
||||
ℹ suites 0
|
||||
ℹ pass 3
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 5307.376982
|
||||
File diff suppressed because it is too large.
Load diff
@@ -1,280 +0,0 @@
|
||||
npm notice run @mosaic/[email protected] test
|
||||
npm notice run node --test tests/
|
||||
✔ a grant's level is collaborator or viewer (2.351697ms)
|
||||
✔ any other level refuses with the key path named (1.505284ms)
|
||||
✔ covers tells a viewer grant from a collaborator grant (0.605812ms)
|
||||
✔ covers refuses a call with no level, so a viewer grant can't slip past a collaborator check (0.247487ms)
|
||||
✔ a viewer grant still needs its business, project, instance and expiry to cover (0.247397ms)
|
||||
✔ a valid document passes and comes back frozen (4.146183ms)
|
||||
✔ checkAccess does not freeze or alias the caller's document (0.552481ms)
|
||||
✔ LEVELS is the single allowed level set, collaborator and viewer (row 193a) (0.259109ms)
|
||||
✔ accessFilePath is access.json in the config directory (0.495701ms)
|
||||
✔ top level: object, unknown keys, accessVersion, revision, arrays (2.131141ms)
|
||||
✔ users: unknown keys and the id rule (0.609866ms)
|
||||
✔ users: human, tester and any business's human are refused (0.455944ms)
|
||||
✔ users: home is a given peer or local (0.372673ms)
|
||||
✔ users: subjects, provider, sub, uniqueness and owner subjects (2.126611ms)
|
||||
✔ grants: unknown keys, id, user and business (0.897075ms)
|
||||
✔ grants: projects is ["*"] or distinct lowercase UUIDs (1.199677ms)
|
||||
✔ grants: instances is ["*"] or distinct declared instances of that business (0.889396ms)
|
||||
✔ grants: any level other than collaborator or viewer refuses, naming grants[i].level (1.13158ms)
|
||||
✔ grants: expires is optional ISO time, and a past expiry is not refused (0.979808ms)
|
||||
✔ the context is required and checked (1.713394ms)
|
||||
✔ loadAccess reads a valid file and checks it (0.755936ms)
|
||||
✔ loadAccess refuses a missing file, a symlink and a directory with exit 4 (0.519376ms)
|
||||
✔ loadAccess refuses another owner and group or other write (0.581157ms)
|
||||
✔ loadAccess refuses bad JSON and a bad document with exit 2 (1.841309ms)
|
||||
✔ covers: * and listed ids match (0.340508ms)
|
||||
✔ covers: an unlisted project, instance or business doesn't match (0.20254ms)
|
||||
✔ covers: an expired grant doesn't match, at and after the instant (0.698261ms)
|
||||
✔ covers: level is the least level asked for (row 193a) (0.213107ms)
|
||||
✔ covers: a missing or unknown level throws (row 193a, N1) (0.385188ms)
|
||||
✔ covers: a grant with an unknown level covers nothing (row 193a) (0.191435ms)
|
||||
✔ covers: now must be a valid Date (0.21008ms)
|
||||
✔ today's files load unchanged: identity, publish and remote are optional (11.61814ms)
|
||||
✔ a granted agent loads with its identity, grant and the project's upstream (4.906248ms)
|
||||
✔ N10: publish needs identity and a gitea definition, and the error names the grant (9.522958ms)
|
||||
✔ publish names declared projects that have a remote, each once (7.911234ms)
|
||||
✔ identity fields are checked (14.073433ms)
|
||||
✔ D9c: the upstream must be its own normalized form, exactly /OWNER/REPO (29.451403ms)
|
||||
✔ D9c: one .git is stripped, and the fork is built from the stripped name (1.733511ms)
|
||||
✔ D9c: gitea.url names the instance only (10.698646ms)
|
||||
✔ the upstream's host and port must be the agent's Gitea's (4.064711ms)
|
||||
✔ remote-not-fork: an upstream the agent's own user owns, compared without case (10.115713ms)
|
||||
✔ store references: own path only (design D1, D3a) (0.50611ms)
|
||||
✔ the role file loads and resolves through loadBusiness (18.165733ms)
|
||||
✔ the shipped file is exactly the approved list (1.392044ms)
|
||||
✔ the assistant's authority is message.send and record.write within role (4.312182ms)
|
||||
✔ the assistant talks to the user and the chief of staff only, and no other shipped role is limited (0.978023ms)
|
||||
✔ a business grant through limits does not widen the role (6.715605ms)
|
||||
✔ a launch block whose by is the assistant is refused (3.553443ms)
|
||||
✔ the instance takes no credential references and no tracker (9.975785ms)
|
||||
✔ an arbiter whose role definition declares messaging lists is refused, for each kind (8.992963ms)
|
||||
✔ an arbiter without messaging lists is accepted beside the limited assistant (3.104416ms)
|
||||
✔ the contract passes work to the chief of staff and directs no one (0.788753ms)
|
||||
✔ REQ-HARN-2: the assistant, companion and research hold the web grant, and no other role file does (1.683056ms)
|
||||
✔ C2-04: library mappings load without roots, remain frozen, and retain mapping refusals (31.538067ms)
|
||||
✔ C2-04: an otherwise valid publish grant cannot name a library repo (4.356759ms)
|
||||
✔ config directory and file path follow MOSAIC_CONFIG (0.467526ms)
|
||||
✔ the fixture business validates and comes back frozen (4.106001ms)
|
||||
✔ two instances may share a definition (2.097865ms)
|
||||
✔ top-level refusals (6.537312ms)
|
||||
✔ arbiters and projects (24.968268ms)
|
||||
✔ role instances (9.057417ms)
|
||||
✔ Vikunja bots (29.820456ms)
|
||||
✔ a role without Vikunja takes no tracker block (9.629575ms)
|
||||
✔ credential references match the definition's services (11.680645ms)
|
||||
✔ launch (31.945766ms)
|
||||
✔ REQ-THREAD-2 REQ-LAUNCH-1 launch.threadIdleSeconds: absent is the default, a positive integer is used, anything else refuses (34.141496ms)
|
||||
✔ loadBusiness: file checks (12.995702ms)
|
||||
✔ loadBusiness: not a regular file (111.510997ms)
|
||||
✔ loading writes nothing (1.787307ms)
|
||||
✔ names that are Object.prototype properties don't count as declared (5.786433ms)
|
||||
✔ the shipped example refuses as written and validates once filled in (2.551686ms)
|
||||
✔ persona vars: agent layer, creative definition only, both or neither (26.121282ms)
|
||||
✔ row 194 keep, noHire and retired validate, and a file without them loads as before (4.607715ms)
|
||||
✔ row 194 each bad keep, noHire or retired entry refuses (19.966409ms)
|
||||
✔ row 323: committed Case 1 document loads unchanged through the business loader (10.685638ms)
|
||||
✔ row 323: real business validate accepts the Case 1 fixture without tracker credentials (226.106251ms)
|
||||
✔ row 323: real factory install accepts the document's scratch input and writes it unchanged (294.937207ms)
|
||||
✔ row 323: the Case 1 business boots without a tracker or @sync credential (60.850375ms)
|
||||
✔ row 323: factory install refuses bus.tester false before writing (39.485453ms)
|
||||
✔ row 323: literal library key refuses through final business validation (176.986326ms)
|
||||
✔ row 323: a library project refuses through the factory profile plan (36.685902ms)
|
||||
✔ row 325: the Case 1 project's sole key matches the repository project id (7.063988ms)
|
||||
✔ row 325: real business validate reports the copied repository project valid (203.591785ms)
|
||||
✔ row 325: the old mosaic-stack project key refuses against those same project bytes (227.47487ms)
|
||||
✔ the role file loads and resolves through loadBusiness (22.21166ms)
|
||||
✔ the shipped file is exactly the approved list (0.355811ms)
|
||||
✔ the resolved record matches the approved list, so a widened file fails (4.433743ms)
|
||||
✔ the chief of staff holds role.launch, message.send, role.end, organization.change, record.write, instance.name, role.hire and role.fire; every other action is gated (6.025087ms)
|
||||
✔ the pm does not hold role.launch (7.814194ms)
|
||||
✔ a business grant of a gated action through limits does not widen the role (5.309288ms)
|
||||
✔ a limit that drops role.launch leaves the chief of staff with no launch block (5.488981ms)
|
||||
✔ a launch block whose by is the pm instance is refused (4.031539ms)
|
||||
✔ the contract names no duty to talk to the human and the pm contract no launch (1.077581ms)
|
||||
✔ the instance takes no credential references and no tracker (7.111256ms)
|
||||
✔ C2-04: business validate and resolve skip a library before code projects and credential checks (581.819531ms)
|
||||
✔ usage errors exit 4 (330.347677ms)
|
||||
✔ validate: a good business exits 0 and prints instance digests (80.712835ms)
|
||||
✔ validate: project files (358.68705ms)
|
||||
✔ validate: missing files and a broken system config (272.747082ms)
|
||||
✔ validate: credential reference problems exit 2 and name each one (75.47514ms)
|
||||
✔ validate: a not-issued store agent dated today passes, and an issued one with a past expiry fails (152.378642ms)
|
||||
✔ validate: a token file inside the repository is refused (76.459487ms)
|
||||
✔ validate: role definitions come from MOSAIC_ROLES_DIR (210.323656ms)
|
||||
✔ resolve: prints one instance's record (260.543734ms)
|
||||
✔ resolve: refusals (375.881441ms)
|
||||
✔ parse: exactly one of file or env, plus the service's date (3.551882ms)
|
||||
✔ check: a good file has no problems (1.2198ms)
|
||||
✔ check never opens the file: a write-only token passes (0.477268ms)
|
||||
✔ check: file problems (1.60977ms)
|
||||
✔ check: token files can't live in the repository or dataRoot, even through a linked directory (1.508979ms)
|
||||
✔ check: dates and environment references (0.686041ms)
|
||||
✔ each definition loads, with a contract file, and is exactly the approved list (4.83466ms)
|
||||
✔ an organization file that declares them passes, and each resolves to least privilege (10.307081ms)
|
||||
✔ the chief of staff launches each one; no other role does (11.082937ms)
|
||||
✔ a C-suite role can't be made the launcher: launch.by must hold role.launch (5.052598ms)
|
||||
✔ limits can narrow a C-suite role but never widen it (4.524289ms)
|
||||
✔ any unknown key, tool, action or version in a role file is refused (4.904699ms)
|
||||
✔ row 298: checkGrantScope takes the D2 shape and refuses anything else (2.752624ms)
|
||||
✔ row 298: a missing scope is empty and a bad one falls back to empty, which covers nothing (0.482721ms)
|
||||
✔ row 298: a Gitea grant is in scope only when its agent and every project are listed (0.341447ms)
|
||||
✔ row 298 (sage-3594 Q2): host commands match whole argv tokens, and enrollment is never in scope (0.467524ms)
|
||||
✔ row 298: a bad grantScope in the file still loads, and the read shows the fallback (18.355754ms)
|
||||
✔ row 298: the writer checks the scope, logs the change and removes the key for {} (142.313501ms)
|
||||
✔ row 298 (sage-3594 Q1): the general writers can't write grantScope (25.353249ms)
|
||||
✔ REQ-WAIT-1: GATED_ONLY is exactly the hard waits; the new actions are in the vocabulary (1.86466ms)
|
||||
✔ REQ-ROLE-2: END_PROTECTED includes the assistant's thread definition (0.234237ms)
|
||||
✔ REQ-COS-3: role.hire and role.fire are routed, not hard waits (0.300439ms)
|
||||
✔ REQ-WAIT-3: every action is routed or a hard wait, never both, and the routed list names only actions (0.967731ms)
|
||||
✔ REQ-WAIT-3: instance.name is routed under REQ-MSG-2 (1.5), not a hard wait (row 141, sage-0589) (1.313696ms)
|
||||
✔ REQ-WAIT-2: a role listing a hard wait at either class is refused; the actions that left can be granted (5.343386ms)
|
||||
✔ S1: the business file refuses hosts at the top level and in a role, and host.<id> references (56.500208ms)
|
||||
✔ T1: address, user and host key checks, which the enrollment raise uses (11.374442ms)
|
||||
✔ T26: no wildcard and no shell, runner or interpreter as a prefix (2.722004ms)
|
||||
✔ D6: argv shape and the literal prefix match (0.922698ms)
|
||||
✔ C2-04: instance settings skip a library while checking a later code project (98.596648ms)
|
||||
✔ row 165 read lists each instance and the definitions add accepts (16.615936ms)
|
||||
✔ row 165 add: two instances join, validate exits 0, the log names the human, and the writer asks for no restart (row 194, D3) (308.207149ms)
|
||||
✔ row 165 change: definition, vars and launch membership log before and after; none asks for a restart, the bus reloads (row 194, D3) (180.35178ms)
|
||||
✔ row 165 refuses each validation failure and leaves the file's bytes alone (44.040709ms)
|
||||
✔ T19 add of a credentialed definition writes store references dated today, names its bot, and validate exits 0 (101.60641ms)
|
||||
✔ T19 add of a definition that declares host writes references for its token services only (12.273146ms)
|
||||
✔ row 165 refuses a definition change to or from one that declares credentials (6.011439ms)
|
||||
✔ row 165 a vars or launch change on an instance with its binding succeeds and keeps the binding (87.081633ms)
|
||||
✔ row 165 refuses an END_PROTECTED definition and every change to a protected instance (9.425714ms)
|
||||
✔ row 165 refuses while a project file doesn't resolve, as validate would (21.508015ms)
|
||||
✔ row 165 refuses a stale revision and leaves the file's bytes alone (13.794117ms)
|
||||
✔ row 65 an instance write refuses harness-off, thinking-unsupported, an unknown model and a partial fallback (38.79158ms)
|
||||
✔ row 213 a creative instance is the human's: add, vars and definition changes, persona digest only (105.47603ms)
|
||||
✔ row 256 T1-T3, T5 the human deletes a creative instance, no other actor does, and the assistant stays (106.119319ms)
|
||||
✔ row 256 T4 the human's delete of the only listed instance, a creative one, is the last-listed refusal (3.635722ms)
|
||||
✔ REQ-LIMIT-1 schema: every scope unset or zero, adjustable above four, bad values and unknown models refuse (27.767213ms)
|
||||
✔ REQ-LIMIT-1 counts each exact scope at/over limit, unlimited and old tuple after model reassignment (1.218782ms)
|
||||
✔ REQ-ROLE-3 writer: atomic validated revision, immutable previous bytes and authenticated actor/old/new receipt (65.935591ms)
|
||||
✔ REQ-ROLE-3 writer: pre-rename fault leaves old file, post-rename recovery records commit, conflicting recovery refuses (42.79247ms)
|
||||
✔ REQ-LIMIT-1 / decision145 migration prints only, preserves values, rejects ambiguity, and is idempotent (20.740471ms)
|
||||
✔ REQ-LIMIT-1 shared settings validates the complete proposed selection and logs exact actor (73.013224ms)
|
||||
✔ REQ-LIMIT-1 provider is table data: another provider routes separately and aliases share exact counts (5.530215ms)
|
||||
✔ REQ-ROLE-3 refuses live writer locks, symlink targets and uncertain recovery without changing bytes (31.489428ms)
|
||||
✔ Q169 assistants: vars and definition change and log the actor; tracker null leaves no tracker (74.510885ms)
|
||||
✔ Q169 assistants: refuses other instances, other definitions, holder and credentials, empty entries, a tracker the definition has no credential for and a stale revision (46.648048ms)
|
||||
✔ Q169 assistants: a definition with a vikunja credential takes a tracker change and refuses its removal or a used bot (28.59175ms)
|
||||
✔ row 65 routes lists every instance with harness, model, thinking and fallback, the switched-on harnesses, the model keys and each harness's levels (4.496203ms)
|
||||
✔ row 65 setRoutes saves a harness, model, thinking and whole fallback, reads each back from the file, logs the actor, and a null fallback clears all three (28.880486ms)
|
||||
✔ row 65 setRoutes refuses a partial fallback, a switched-off harness, a level the harness doesn't apply, an unloaded module, an unknown model or instance, a malformed route, no change and a stale revision, with the file unchanged (33.617502ms)
|
||||
✔ row 65 a file with harness vars and no plugins.harness loads and its views read; a model change still saves, and a route change refuses harness-off (15.471063ms)
|
||||
✔ B7 kept instance: the models keys it names and the instances key are the human's (32.512862ms)
|
||||
✔ B7 kept instance: its route is the human's (13.733689ms)
|
||||
✔ M10 creative instance: models keys it names, the instances key and its route are the human's (41.972839ms)
|
||||
✔ C2-04 M9: changed playground and hybrid entries leave business and changes.jsonl byte-identical (75.744651ms)
|
||||
✔ C2-04 M9: code projects, additions, deletions and array changes are protected too (73.935851ms)
|
||||
✔ C2-04 M9: canonical key order is allowed and a non-project setter still records its change (53.997154ms)
|
||||
✔ C2-04 M9: a serialization hook cannot change projects after the canonical comparison (29.857522ms)
|
||||
✔ M7/M8: library seats come from library businesses, creative seats from their creative definitions (20.881147ms)
|
||||
✔ M8: a business with no library project puts no seat in either set (19.190367ms)
|
||||
✔ M7/M8: a business file that is not valid JSON throws; no empty set (7.135915ms)
|
||||
✔ M7/M8: an absent businesses directory gives empty sets (1.688414ms)
|
||||
✔ M7/M8: a businesses path that is not a directory throws; no empty set (4.583153ms)
|
||||
✔ M7/M8: a businesses symlink to a missing target throws; no empty set (2.208552ms)
|
||||
✔ M7/M8: a config directory under a regular file throws (lstat fails with ENOTDIR); no empty set (0.601986ms)
|
||||
✔ M7/M8: a business file that can't be read throws; no empty set (12.318486ms)
|
||||
✔ T6 delete refuses in the design's order and leaves the file's bytes alone (104.896221ms)
|
||||
✔ T6 delete refuses the last listed instance (7.490182ms)
|
||||
✔ T6 a clean delete removes the entry and its own references, adds retired, and the name can't come back (213.690055ms)
|
||||
✔ T7 veto: keep, unkeep, nohire and hire each write once, a repeat is no change, and the log names the human (171.894178ms)
|
||||
✔ T7 veto refuses an unknown or END_PROTECTED keep, a bad request, a stale revision and a business without launch (26.238526ms)
|
||||
✔ D2.2 hire adds and lists a new instance, logs the chief's context, and sets only model and limits (92.062371ms)
|
||||
✔ D2.2 hire refuses noHire, a kept name and a listed name, and re-lists a fired one only as it was (29.586421ms)
|
||||
✔ D2.2 fire delists and keeps the entry, a repeat is done with no write, and each refusal holds (88.451593ms)
|
||||
✔ row 256 checkDelete passes the human's creative delete and refuses another actor's; fire still refuses (5.294872ms)
|
||||
✔ row 239 T1 a fire on a revision that goes stale before the writer's lock refuses there and revokes nothing (5.756058ms)
|
||||
✔ row 239 T2 a write after the revoke refused before publication carries revoked, and the file keeps the edit (7.753057ms)
|
||||
✔ row 239 T3 any error after the revoke carries revoked, for a fire and a delete; a revoke that throws carries nothing (32.403692ms)
|
||||
✔ Q247: omitting tracker loads as null and preserves independent role bots (10.793015ms)
|
||||
✔ Q247: real business validate passes without a sync credential reference or file (168.186763ms)
|
||||
✔ Q247: present tracker retains its values and validation without mutating the input (9.372029ms)
|
||||
✔ Q247: present null, undefined and malformed trackers still refuse (18.314895ms)
|
||||
✔ Q247: absent business tracker does not waive a role's Vikunja bot requirement (2.859494ms)
|
||||
✔ REQ-PLUG-1 schema: plugins is optional, names known kinds and checked module names (40.546579ms)
|
||||
✔ REQ-PLUG-1 REQ-ROLE-3 the setter writes plugins through the organization writer and logs old and new names (92.751615ms)
|
||||
✔ vikunja:19/309 a patch changes only the kinds it names; null removes one kind, explicitly and in the trail (100.494327ms)
|
||||
✔ vikunja:19/309 an unknown kind (set or removed), a bad module, an empty patch and null on the wrong shape are refused, nothing written (9.927988ms)
|
||||
✔ REQ-PLUG-1 REQ-ROLE-3 the writer checks the bytes it writes: a Date in plugins is refused there too (19.985103ms)
|
||||
✔ REQ-PLUG-1 REQ-ROLE-3 a refused setter write throws a code, changes nothing and logs nothing (4.143331ms)
|
||||
✔ vikunja:19/305 with an exists check, the setter refuses a module no tree file answers to, before anything is written (18.273494ms)
|
||||
✔ optional project repo is preserved and must be a normalized absolute path (32.895793ms)
|
||||
✔ loaded business project repo cannot be nested in any declared code checkout (6.807091ms)
|
||||
✔ path and load (3.706713ms)
|
||||
✔ refusals (1.897981ms)
|
||||
✔ record.write is within-role for the eleven approved v2 agents, never gated-only (3.85853ms)
|
||||
✔ C2-06 M11 human replacement works; omitted settings return to defaults (98.331729ms)
|
||||
✔ C2-06 M11 agents and tester cannot change settings, including by changing human (55.766765ms)
|
||||
✔ C2-06 M11 serialization cannot replace settings after the first fence (17.47904ms)
|
||||
✔ C2-06 M11 an unrelated actor cannot appoint itself human and change reply limits (16.039248ms)
|
||||
✔ C2-06 invalid setter values preserve the business and changes.jsonl (17.259974ms)
|
||||
✔ C2-06 validator accepts hand-edited settings; raw reader fails closed on invalid files (19.048524ms)
|
||||
✔ C2-04: a library first in projects does not hide a later project layer (21.880181ms)
|
||||
✔ systemVars flattens the validated config (1.820728ms)
|
||||
✔ precedence: system, business, project, project role, agent (10.989776ms)
|
||||
✔ limits narrow the definition and never widen it (8.400306ms)
|
||||
✔ role.launch stays within-role only for the instance the launch block names (18.468852ms)
|
||||
✔ limits.authority without role.launch leaves the launcher with no launch block (13.185333ms)
|
||||
✔ limits.authority narrows cross-role actions too (2.699689ms)
|
||||
✔ classify (6.249491ms)
|
||||
✔ the record carries what the broker and launcher need (4.7922ms)
|
||||
✔ digest: key order doesn't matter, any value change does (12.395981ms)
|
||||
✔ refusals (3.790542ms)
|
||||
✔ the four shipped version 2 roles load (5.229965ms)
|
||||
✔ shipped role scopes match addendum B section 2 and the SR runbook (2.178782ms)
|
||||
✔ shipped authority follows the note's table (13.291498ms)
|
||||
✔ every role file in roles/ loads through the validator, and a v2 contract exists (2.100731ms)
|
||||
✔ version 1 files keep loading with no authority (1.521097ms)
|
||||
✔ the conductor policy isn't a role (0.302424ms)
|
||||
✔ a missing role file is exit 4, a symbolic link too (0.564721ms)
|
||||
✔ version 2 refusals (3.788273ms)
|
||||
✔ authority: closed vocabulary, no gated-only action, no overlap (3.881951ms)
|
||||
✔ messaging: optional, role definitions and human, never the tester (1.949889ms)
|
||||
✔ row 64 skills: optional, distinct skill directory names, none on version 1 (2.255987ms)
|
||||
✔ credentials: Gitea scopes (1.343013ms)
|
||||
✔ credentials: Vikunja scopes are a group-to-verbs map from the grantable list (1.709889ms)
|
||||
✔ credentials: services (0.759517ms)
|
||||
✔ contract: a non-empty regular Markdown file beside the role file (0.838905ms)
|
||||
✔ the six creative roles load: read tools, message.send only, messaging with the human only (0.693212ms)
|
||||
✔ M1: a creative role file wider than read and answer is refused (1.897832ms)
|
||||
✔ hireable: HIRE_ALLOWED is exactly the six plain work actions, and every one is routed (0.173708ms)
|
||||
✔ hireable: a list naming a definition that holds any refused action refuses at load, one case per action (18.133668ms)
|
||||
✔ hireable: a mixed definition refuses, a clean list loads, and the named file's own hireable isn't read (1.146869ms)
|
||||
✔ hireable: a missing, version 1, duplicate or badly named entry refuses, and the key is optional (3.734122ms)
|
||||
✔ the pm and the cto check a saved spec against settled decisions and work in flight, and answer with a BLOCK or an accept (11.616694ms)
|
||||
✔ the chief of staff relays a BLOCK or an accept to the assistant as a reply to the message that carried it (1.277302ms)
|
||||
✔ the assistant summarizes a spec review in its own words and doesn't repeat the chief of staff's text (0.70976ms)
|
||||
✔ REQ-LIMIT-3 schema: each subject kind, limit 0 and no ceiling are accepted; bad limits, times, keys and undeclared instances refuse (49.216064ms)
|
||||
✔ REQ-LIMIT-3 the writer stamps since: a new limit gets now, a changed one keeps its time, a different time is refused (85.0223ms)
|
||||
✔ REQ-LIMIT-3 only tokens.* at schema depth holds token limits: agent limits named `limit` save as sent, and a token limit named `limit` is stamped and reset (67.775561ms)
|
||||
✔ REQ-LIMIT-3 a reset moves since to now, is logged with its actor, and refuses a path that is not a limit (34.296428ms)
|
||||
✔ REQ-LIMIT-2 schema: launch.account names a credential set; a daily quota needs a reset and an IANA zone and names the account (33.871693ms)
|
||||
✔ REQ-LIMIT-2 the writer stamps a daily quota's since, keeps its reset and zone, and a reset moves since (33.845575ms)
|
||||
✔ every key names known layers and a merge rule (1.726458ms)
|
||||
✔ unknown keys and wrong layers refuse (1.084085ms)
|
||||
✔ types (3.275461ms)
|
||||
✔ merge: defaults, then the most specific layer wins (0.419589ms)
|
||||
✔ merge: limits only narrow, and provenance lists each source (0.757115ms)
|
||||
✔ merge doesn't change its inputs (0.206627ms)
|
||||
✔ web.searxng takes https anywhere and http on loopback, so Jason's 127.0.0.1:8888 passes (0.262745ms)
|
||||
✔ both definitions load, with a contract file, and are exactly the approved lists (5.013658ms)
|
||||
✔ security-reviewer has no write or shell tool and classifies only the verdict as its own (9.066819ms)
|
||||
✔ merge-gate's only grant is git.merge.protected cross-role, and it has no write tool (3.470869ms)
|
||||
✔ neither role can be an arbiter: its messaging lists refuse the business file (row 133) (8.498658ms)
|
||||
✔ every role contract carries the proactive line in its Authority section (1.099286ms)
|
||||
✔ pm and chief-of-staff say where a raise goes under REQ-DEC-2 (0.851681ms)
|
||||
✔ the merge landing takes two runs: merge-gate, cto and chief-of-staff each say their part (0.660442ms)
|
||||
ℹ tests 270
|
||||
ℹ suites 0
|
||||
ℹ pass 270
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 2873.146579
|
||||
File diff suppressed because it is too large.
Load diff
@@ -1,182 +0,0 @@
|
||||
npm notice run test
|
||||
npm notice run node --test tests/*.test.mjs
|
||||
✔ sessionModel: the route is the instance's own vars, and a missing one refuses no-route by name (37.340888ms)
|
||||
✔ a pi bundle: prompt, policy, tools and manifest, 0600 in a 0700 directory (10.573131ms)
|
||||
✔ a chief-of-staff bundle lists launch among the bus tools and the manifest's typed tools (4.412373ms)
|
||||
✔ a chief-of-staff bundle lists end_run, change_organization and set_name as typed and nothing untyped, for either harness (8.193363ms)
|
||||
✔ the stop line names end_run for a role.end holder, and every other role keeps today's text (13.648406ms)
|
||||
✔ a claude-code bundle adds the wrapped gate hook and the MCP config (7.875641ms)
|
||||
✔ the prompt's built-in tools line is the harness's own names, as the manifest lists them (22.548582ms)
|
||||
✔ the prompt names the project clones in the workspace, and none when there are none (13.290253ms)
|
||||
✔ the prompt explains the review loop to a role with push_working, and reviews to one with fetch_review (15.420914ms)
|
||||
✔ the prompt explains landing to a role with land_work, and to no other (9.918107ms)
|
||||
✔ the prompt tells the pm to ask the chief of staff for sessions, and no other role (18.356673ms)
|
||||
✔ a bundle is written once: an existing file refuses (3.135889ms)
|
||||
✔ a path with a single quote can't go into the hook command (3.86973ms)
|
||||
✔ web grant on pi: the bundle has web_search and web_fetch, and no built-in web tool (4.927453ms)
|
||||
✔ no web grant on pi: no web tool in the bundle, and the gate blocks a web call (4.535472ms)
|
||||
✔ web grant on claude-code: the bundle has web_search and web_fetch, and no built-in web tool (4.409455ms)
|
||||
✔ no web grant on claude-code: no web tool in the bundle, and the gate blocks a web call (7.034483ms)
|
||||
✔ a granted session's gate lets the typed web tools through and still blocks the built-ins (6.471178ms)
|
||||
✔ search-source searxng-url: a granted role gets the typed broker tools and no harness web tool; an ungranted role gets nothing (12.185523ms)
|
||||
✔ search-source searxng-bundled: a granted role gets the typed broker tools and no harness web tool; an ungranted role gets nothing (11.958441ms)
|
||||
✔ search-source harness-builtin: claude-code gets WebSearch and WebFetch and no typed web tool, only when granted (12.933659ms)
|
||||
✔ search-source harness-builtin is refused for a granted pi role, which has no built-in web tool (4.064682ms)
|
||||
✔ C2-06 RESULT reply-invalid retries once, delivers only the valid answer and names reason (351.396996ms)
|
||||
✔ C2-06 RESULT citation-missing retries once, delivers only the valid answer and names reason (256.673143ms)
|
||||
✔ C2-06 RESULT citations-over-limit retries once, delivers only the valid answer and names reason (222.852677ms)
|
||||
✔ C2-06 RESULT citation-invalid retries once, delivers only the valid answer and names reason (261.389143ms)
|
||||
✔ C2-06 RESULT playground-cited-as-canon retries once, delivers only the valid answer and names reason (268.849657ms)
|
||||
✔ C2-06 RESULT citation-cross-universe retries once, delivers only the valid answer and names reason (231.674929ms)
|
||||
✔ C2-06 RESULT citation-unfetched retries once, delivers only the valid answer and names reason (216.064282ms)
|
||||
✔ C2-06 RESULT two guard refusals use the citation fixed text and exactly one retry (188.874138ms)
|
||||
✔ C2-06 RESULT JSON 34000 characters retries with a shorter valid answer (236.68605ms)
|
||||
✔ C2-06 RESULT JSON 70000 characters retries with a shorter valid answer (234.722358ms)
|
||||
✔ C2-06 RESULT two oversized JSON bodies use the length fixed text with citations required (193.029509ms)
|
||||
✔ C2-06 multibyte plain bodies also receive the one request-size retry (223.988818ms)
|
||||
✔ C2-06 two multibyte plain bodies use the length fallback (205.649902ms)
|
||||
✔ C2-06 RESULT a length refusal then citation refusal shares one retry and citation fallback (206.128944ms)
|
||||
✔ C2-06 fixed empty/failed replies defer unslop note until the next cited reply (295.722008ms)
|
||||
✔ C2-06 cited JSON above the old 32000 clip retains its citations and text (189.724785ms)
|
||||
✔ C2-06 a flagged cited answer keeps the note inside text and citations whole (192.59344ms)
|
||||
✔ C2-06 send_message typed tool runs every guard code before the valid RESULT (262.703841ms)
|
||||
✔ C2-06 outside library the old failed text, clip and unslop behavior hold (208.584382ms)
|
||||
✔ C2-06 outside library a refused send keeps the existing no-retry behavior (159.048751ms)
|
||||
✔ C2-06 the retry turn delivers citation-unavailable reason to the agent (190.203749ms)
|
||||
✔ allow exits 0, a deny exits 2 with the reason on stderr (211.158287ms)
|
||||
✔ a missing or wrong policy, or a bad event, exits 2 (113.877105ms)
|
||||
✔ the bundle's wrapped command: a missing gate or node still blocks (1104.288151ms)
|
||||
✔ claude: typed tools through MCP, the hook blocks, builtins outside --tools don't exist (1070.940549ms)
|
||||
✔ claude: the hook alone blocks a path outside the workspace (568.174554ms)
|
||||
✔ claude: a second turn resumes the first turn's session (940.097062ms)
|
||||
✔ claude adapter: --restricted is always passed (6.108878ms)
|
||||
✔ claude adapter: MOSAIC_CLAUDE_BIN wins over PATH and must be an absolute executable (19.555633ms)
|
||||
✔ claude adapter: a directory pin exits 2 before it runs; a pin with a space runs (6.450898ms)
|
||||
✔ claude: CLAUDE.md files and auto-memory don't reach the model; without --restricted they do (912.426727ms)
|
||||
✔ claude: a missing hook or MCP file refuses before claude starts (8.255308ms)
|
||||
✔ claude: row 66 a reply with a tell gets the correction notice on the next turn, a clean reply gets none, and the counts read after (1813.719749ms)
|
||||
✔ claude: row 66 a broken lists.json gives no clean verdict, the operator is told once, and the session still answers (861.243377ms)
|
||||
✔ M2: the gate refuses write, edit and bash to every creative role on pi and claude-code (58.57362ms)
|
||||
✔ M6: no creative session gets raise_decision; the assistant and the chief of staff keep it (27.01682ms)
|
||||
✔ web: research and companion get the broker's typed web tools, and a harness-builtin source refuses web-source-not-allowed (34.87358ms)
|
||||
✔ persona: the block sits between the contract and ## This session, fenced, with the name and digest (10.05189ms)
|
||||
✔ persona: each unsafe or unpinned file refuses before the bundle directory is made (30.976676ms)
|
||||
✔ adapters pass the prompt file's absolute path; the persona and the prompt text never sit in argv (48.053085ms)
|
||||
✔ the pi adapter refuses a missing, unreadable or directory prompt file before pi starts (13.20329ms)
|
||||
✔ pi: policy tools and typed tools pass, anything else is blocked (4.524582ms)
|
||||
✔ claude: builtins map from pi names, typed tools need the mcp prefix (1.1263ms)
|
||||
✔ file tool paths must resolve inside the workspace (4.02957ms)
|
||||
✔ pi's own path normalisation can't be used to step out (1.586245ms)
|
||||
✔ a symlink inside the workspace that points out is outside (1.300474ms)
|
||||
✔ a dangling symlink is refused at any depth, in both harnesses (5.091178ms)
|
||||
✔ read is checked under every spelling pi's read would open, in both harnesses (29.6566ms)
|
||||
✔ other spellings cover directories, dangling links and pi's cwd (2.651598ms)
|
||||
✔ a relative path climbs from the workspace's real path, in both harnesses (9.557314ms)
|
||||
✔ claude path fields per tool (1.146391ms)
|
||||
✔ glob patterns stay inside the workspace (1.220629ms)
|
||||
✔ a path that can't be checked is blocked (0.713439ms)
|
||||
✔ fetch_review's have lists the working refs before origin's, and no more than HAVE_MAX (358.466429ms)
|
||||
✔ fetch_review's have orders the working refs newest first within each clone, one clone after another (177.220281ms)
|
||||
✔ a runner git past its time: SIGTERM reaches its process group, and SIGKILL follows after the grace period (1810.093816ms)
|
||||
✔ once a signalled runner git has closed, its group gets SIGKILL, so a process that ignored SIGTERM dies too (303.717292ms)
|
||||
✔ land_work sends one land line and resolves the host's started answer (3.694332ms)
|
||||
✔ initialize, ping and tools/list (73.055562ms)
|
||||
✔ tools/call goes through the tool socket; a refusal is an isError result (66.566638ms)
|
||||
✔ replies are compact JSON; over the cap a tool error names the size and the cap (60.558157ms)
|
||||
✔ unknown tools and methods are JSON-RPC errors and never reach the socket (52.967178ms)
|
||||
✔ a missing argument is a usage error (35.244954ms)
|
||||
✔ pi: typed tools reach the socket, the gate blocks, agent_end writes the marker (676.072372ms)
|
||||
✔ pi: a reply over the cap is a tool error naming the size and the cap; list_tasks asks for open tasks (532.762084ms)
|
||||
✔ pi: a write through a dangling symlink is blocked, and nothing appears outside (479.264215ms)
|
||||
✔ pi: a read is refused when pi would open another spelling outside (479.008336ms)
|
||||
✔ pi: a relative path climbs from the real path of a workspace behind a symlink (495.496517ms)
|
||||
✔ pi: a relative path climbs from the real path of a dataRoot behind a symlink (458.873867ms)
|
||||
✔ pi: a missing extension refuses before any model call (6.358156ms)
|
||||
✔ pi: an extension without its configuration fails pi's start (380.653357ms)
|
||||
✔ pi: row 66 a reply with a tell gets the correction notice on the next turn, a clean reply gets none, and the counts read after (1353.463628ms)
|
||||
✔ pi: row 66 a broken lists.json gives no clean verdict, the operator is told once, and the session still answers (748.010347ms)
|
||||
✔ raise_decision offers domain as technical or delivery only, optional, and says where a raise goes (23.00088ms)
|
||||
✔ raise_decision forwards domain to decision.raise, and a call without it sends none (100.23044ms)
|
||||
✔ founderCheck: founder variables, then a needed service without a usable token (3.039179ms)
|
||||
✔ turnRequest names the sender, class, reply and decision (0.355597ms)
|
||||
✔ turnRequest says a tester's message is a test and never Jason's instruction (0.317095ms)
|
||||
✔ turnRequest says a user's message is a granted user's and never the owner's instruction (0.277911ms)
|
||||
✔ turnRequest shows the message's own sent time, a day old as well as new (0.227187ms)
|
||||
✔ stateBlock names the launch state with its time and event, and the open tasks with the cap (0.334368ms)
|
||||
✔ a message becomes a turn, the answer goes back as a RESULT, SIGTERM releases and exits 0 (257.255462ms)
|
||||
✔ launches revoked and then restored: the turn's block reads allowed and gives the restore time (272.592717ms)
|
||||
✔ a task closed on the tracker is missing from the next turn's open list (239.571073ms)
|
||||
✔ a message read a day after it was sent shows the time it was sent (148.998515ms)
|
||||
✔ a decision the human resolves becomes a turn citing the decision and the answer (196.043584ms)
|
||||
✔ a failed state read fails the turn: no adapter runs, the sender hears why, the message is read (103.372577ms)
|
||||
✔ a SIGTERM before the claim stops the runner with exit 0 and no claim (91.622163ms)
|
||||
✔ typed tools carry the runner's capability; launch goes to the host's launch socket (336.226718ms)
|
||||
✔ end_run, organization_revision and change_organization reach the broker with the tool's arguments, and refusals keep their codes (429.635331ms)
|
||||
✔ set_name reaches the broker's name.set with the tool's arguments, and refusals keep their codes (182.337097ms)
|
||||
✔ a RESULT gets no automatic reply; failed turns reply with the reason (1269.003752ms)
|
||||
✔ the bus's launch notice is one turn with no reply, and is not taken again (269.091562ms)
|
||||
✔ SIGTERM during a turn kills the turn's process group and still exits 0 (122.399792ms)
|
||||
✔ founder credentials stop before the claim (20) (162.909348ms)
|
||||
✔ a refused claim exits 21; an ended run's capability exits 22 (165.231771ms)
|
||||
✔ the launch ending under a running session exits 22 (134.851141ms)
|
||||
✔ a broker that stays unreachable exits 23 after brokerRetries polls (234.508622ms)
|
||||
✔ a broker that is down at the claim exits 23, not 21 (78.168597ms)
|
||||
✔ no capability, or a malformed one, on stdin exits 2 (194.303544ms)
|
||||
✔ a missing or malformed policy exits 2 before the claim (120.576748ms)
|
||||
✔ REQ-LIMIT-4 runner brackets its actual harness turn before the reply and read receipt (194.53726ms)
|
||||
✔ REQ-LIMIT-4 a runner at its limit stops at the end of its turn: RESULT and read first, then exit 22 and a limit-check revoke (168.261307ms)
|
||||
✔ landingRequest is the fixed template, with the decision and task ref and nothing else (0.147237ms)
|
||||
✔ each landing entry is one turn before any message, with the state block and the fixed request; it sends nothing and reads nothing (226.715761ms)
|
||||
✔ an empty landing takes no landing turn: the message is turn 1 (195.475495ms)
|
||||
✔ a run in a landing turn isn't released for a second held decision until its landing turns end and it has read its messages (596.516739ms)
|
||||
✔ a malformed landing exits 2 before the claim, with no turn (568.856934ms)
|
||||
✔ row 65 a session.json without a turnEnd of marker or exit, or a harnessEnv of strings, exits 2 before the claim (269.597797ms)
|
||||
✔ row 65 harnessEnv reaches the adapter, and an exit harness needs no turn marker (141.169295ms)
|
||||
✔ row 66 the adapter gets the run's unslop log, and a flagged reply's note rides that reply's RESULT, once (300.426996ms)
|
||||
✔ row 66 a turn with no reply holds its note for the next reply; a broken check is told once (345.164969ms)
|
||||
✔ row 66 unslopNotes keeps a note until sent(), reads only whole lines, and unslopCounts reads a log after the session (1.68702ms)
|
||||
✔ row 66 a clipped answer with both note parts stays under the bus's body limit, and the note under 600 (161.518813ms)
|
||||
✔ row 66 a refused send keeps the note: it rides the next RESULT the session sends (264.81696ms)
|
||||
✔ each repo role's prompt carries exactly its listed skills, each file as the bundle copy and the source (69.791416ms)
|
||||
✔ a skill's files go into the prompt in sorted path order, sub-directories included (9.238961ms)
|
||||
✔ a role with no skills gets no Skills section, no skills directory and an empty manifest list (11.39746ms)
|
||||
✔ an enabled skill the role doesn't list stays out of the prompt (8.706347ms)
|
||||
✔ the bundle copy outlives the source: deactivating a skill after the build leaves the run's copy (4.473957ms)
|
||||
✔ a listed skill that isn't enabled refuses skill-not-enabled, naming the activate command (9.541232ms)
|
||||
✔ a skill directory that isn't plain refuses: a symlinked skill, SKILL.md or sub-file, or a non-file entry (2.643822ms)
|
||||
✔ a skill file that can't go into the prompt refuses: a bad name, non-UTF-8 bytes, or the end marker (3.518581ms)
|
||||
✔ a role's skills over SKILL_BYTES together refuse, naming the skill that crossed it (10.193929ms)
|
||||
✔ each adapter passes the skills only in the prompt file, with skill discovery off (59.00799ms)
|
||||
✔ every role sees read_spec, record writer follows its grant, citation schemas stay strict (25.138022ms)
|
||||
✔ typed socket forwards read content/history and agent record writes, and cannot write a spec (172.529974ms)
|
||||
✔ the PM gets its task verbs and the reads, and no launch (11.972118ms)
|
||||
✔ send_message offers the BLOCK class, beside the classes it already had (3.837774ms)
|
||||
✔ the chief of staff gets launch, send_message, end_run, hire, fire, change_organization and set_name, and no task verbs (4.871494ms)
|
||||
✔ hire and fire send instance.hire and instance.fire under role.hire and role.fire, only for a holder of the grant (22.751702ms)
|
||||
✔ request_staff is the pm's alone: staff.request over message.send, roles and counts bounded (15.291362ms)
|
||||
✔ end_run sends role and reason, no decision; change_organization sends revision and the organization keys (2.689052ms)
|
||||
✔ set_name sends instance and name to name.set under instance.name, only for a holder of that grant (12.695737ms)
|
||||
✔ the organization keys change_organization takes are the broker's ORGANIZATION_KEYS and the settings' SETTINGS_KEYS (0.178758ms)
|
||||
✔ a role without role.end or organization.change gets none of the three tools, and each follows its own grant (12.115972ms)
|
||||
✔ no role's tools send instances or instances.set, and change_organization takes no instance write keys (10.7825ms)
|
||||
✔ the assistant gets send_message, the reads and the web tools (it holds the web grant), no launch (2.17462ms)
|
||||
✔ list_requirements reads the requirement ids, for a task.create holder with a tracker (3.939398ms)
|
||||
✔ a coder gets no launch, no resolve_decision, and no task tools without a tracker (3.125698ms)
|
||||
✔ a coder with a tracker gets its own task tools and no task_reassign (2.258296ms)
|
||||
✔ launch only when the business's launch block names the instance as launcher (3.280204ms)
|
||||
✔ an action outside the instance's authority has no tool (1.994949ms)
|
||||
✔ the review loop: push_working and request_review for the coder, fetch_review and review_verdict for the reviewer, none for the PM (7.387015ms)
|
||||
✔ land_work is there only with land, after push_working, with the task and the decision (4.431191ms)
|
||||
✔ callTool: one JSON line out, the result back, a refusal rejects (16.610729ms)
|
||||
✔ list_tasks takes the broker's filters and pages; get_task takes a task_ref (4.144909ms)
|
||||
✔ callTool sends list_tasks done false unless the session names done; other tools as given (3.985977ms)
|
||||
✔ replyText: compact JSON up to the cap, an error naming the size and the cap over it (1.008682ms)
|
||||
✔ web_search's query maxLength is the web layer's SEARCH_MAX_QUERY_CHARS (4.810935ms)
|
||||
ℹ tests 172
|
||||
ℹ suites 0
|
||||
ℹ pass 172
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 12131.328093
|
||||
@@ -1,153 +0,0 @@
|
||||
npm notice run @mosaic/[email protected] test
|
||||
npm notice run node --test tests/*.test.mjs
|
||||
✔ C2-06 reply schema: free bodies, exact objects and safe refusal reasons (31.081491ms)
|
||||
✔ C2-06 citation setting and all four exact fixed texts (27.31137ms)
|
||||
✔ C2-06 default citation cap passes 20 and refuses 21, even with optional citations (144.940253ms)
|
||||
✔ C2-06 real Git citation scope, reachability, lines and normalized quotes (71.988432ms)
|
||||
✔ C2-06 playground cites pass but cannot state canon (42.141068ms)
|
||||
✔ C2-06 independent universes refuse; a hybrid and only its sources pass (69.134397ms)
|
||||
✔ C2-06 web cites require allowed definition, this session fetch and kept quote (17.090852ms)
|
||||
✔ C2-06 file origin is the path commit and trailer, while last follows served changes (51.160201ms)
|
||||
✔ C2-06 origin uses literal paths even when a filename contains a glob (35.841257ms)
|
||||
✔ C2-06 cited-commit guard reads exactly the C2-05a indexed file set with supporting scope (79.711572ms)
|
||||
✔ C2-06 reply limits fall back independently without coercion or inherited keys (0.78046ms)
|
||||
✔ the same commit, repo path and mapping return the same index, and only mapped files are in it (53.330474ms)
|
||||
✔ a different repo path, mapping or commit gets its own index (73.465944ms)
|
||||
✔ the cache holds at most eight indexes and evicts the least recently used (93.355098ms)
|
||||
✔ a failed read is not kept in the cache (19.15839ms)
|
||||
✔ a missing or unchecked mapping is refused before any read (18.591276ms)
|
||||
✔ a 3,000-file rebuild completes and its time is reported (3339.384537ms)
|
||||
ℹ 3,000-file index rebuild: 3093 ms
|
||||
✔ resolver step 1: a path from the repo root, with or without .md (2.003164ms)
|
||||
✔ resolver step 2: the same path with vaultPrefix/ stripped (0.323373ms)
|
||||
✔ resolver step 3: a path relative to the linking file, never above the repo root (0.278534ms)
|
||||
✔ resolver step 4: a base name that matches exactly one indexed file (0.322938ms)
|
||||
✔ a link into another of her repos resolves to nothing (0.213594ms)
|
||||
✔ wikilink forms, embeds, and links skipped inside code (1.24016ms)
|
||||
✔ only a body embed whose target has an extension other than .md, in any case, is an attachment (0.455416ms)
|
||||
✔ the fixture mapping checks and comes back frozen (2.830981ms)
|
||||
✔ C2-01c: a prefix inside or holding another entry's book refuses library-playground-other-universe (1.34922ms)
|
||||
✔ C2-01c: a prefix equal to a book folder, or holding its own, refuses library-mapping-invalid (0.74756ms)
|
||||
✔ C2-01c: universe-level prefixes lie outside every book, in a plain universe and in a hybrid with no books (1.203696ms)
|
||||
✔ C2-01c: a draft takes kind, name and playground only, and comes back frozen with books [] (1.782129ms)
|
||||
✔ C2-01d: supporting prefixes at book level, universe level, in a hybrid and in a draft, [] when absent (0.643444ms)
|
||||
✔ C2-01d: each supporting prefix rule refuses with its code (2.880363ms)
|
||||
✔ C2-01d: between the lists, a supporting prefix may equal its own playground, and a playground may hold its own supporting (0.978814ms)
|
||||
✔ C2-01d: editor is optional, kept when given, and refuses anything but a plain name and email (5.417269ms)
|
||||
✔ C2-01d: an accepted editor round-trips through a real git commit unchanged (22.81842ms)
|
||||
✔ no playground prefix holds another, and no book folder holds another (1.309845ms)
|
||||
✔ shape refusals: kind, remote, branch, unknown keys, types, manuscript, folder names (1.68793ms)
|
||||
✔ C2-03a sage-2021: user is optional, kept when given, and must be a plain account name (0.986251ms)
|
||||
✔ a hybrid universe is a shape the query code can take (1.4), with sources that must exist (1.600445ms)
|
||||
✔ a caller-supplied fail receives the code, as business file loading will pass it (C2-04) (0.396233ms)
|
||||
✔ scope comes from the path alone (design 1.2) (2.453311ms)
|
||||
✔ C2-04 mirror: exact default path, bare without checkout or remote, and idempotent initialization (82.599485ms)
|
||||
✔ C2-04 mirror: simultaneous creators publish one intact mirror and leave no staging paths (49.399699ms)
|
||||
✔ C2-04 mirror: skipped publication accepts both coreutils statuses without removing the winner (174.577156ms)
|
||||
✔ C2-04 mirror: preserve occupied directories and reject symlink ancestors and code overlaps (20.556264ms)
|
||||
✔ C2-04 mirror: existing metadata accepts only bare Git plus state and the precreated lock (34.414614ms)
|
||||
✔ C2-04 state: missing state is empty only while the served ref is absent (54.101069ms)
|
||||
✔ C2-04 state: valid problems and sync metadata return no content and change no state bytes (57.832223ms)
|
||||
✔ C2-04 state: strict keys, types, times, branch, commit and fixed R messages fail closed (158.515834ms)
|
||||
✔ C2-04 state: symlink, hardlink, non-private state and missing lock refuse without replacement (57.609887ms)
|
||||
✔ C2-04 file: served commit, not HEAD or a caller commit, owns the exact returned text (113.829438ms)
|
||||
✔ C2-04 file: R1, R2 and R7 exclusions and never-synced mirrors cannot return file bodies (124.255784ms)
|
||||
✔ C2-04 lock: a first-sync and fast-forward reader wait for a consistent pair across processes (314.221744ms)
|
||||
✔ C2-04 lock: same-process waits, timeout code, callback expiry and throw release (5038.833094ms)
|
||||
✔ C2-04 lock: owner death releases the kernel lock without replacing its file (54.543028ms)
|
||||
✔ C2-04 lock: a missing flock binary becomes a handled refusal (49.73045ms)
|
||||
✔ C2-04 lock: an unawaited scoped read drains before the lock is released (20.869629ms)
|
||||
✔ the query reply cap equals the harness reply cap (1.544541ms)
|
||||
✔ find is bound to its universe and refuses a call without one (70.281377ms)
|
||||
✔ every result carries its scope, and playground appears only when asked for (39.878964ms)
|
||||
✔ unmapped files never appear in any reply (35.123505ms)
|
||||
✔ a hybrid sees its sources canon, minus exclusions, and no playground (39.679182ms)
|
||||
✔ a hybrid gets a source file it can see, and not an excluded or foreign one (54.602693ms)
|
||||
✔ get lists visible links both ways and drops a target another universe cannot see (50.638492ms)
|
||||
✔ a long list pages by position, never cuts an item, and returns 50 per page (193.227492ms)
|
||||
✔ a page stays under the reply cap when items are large (91.885035ms)
|
||||
✔ a search line too long to fit alone comes back marked, with no excerpt, and the other hits still return (33.20163ms)
|
||||
✔ a find item that cannot fit alone is refused, not cut (46.447292ms)
|
||||
✔ get pages its lines, and the next line picks up where the page stopped (39.12526ms)
|
||||
✔ get refuses a file whose front matter alone is over the cap, and a line alone is over the cap (36.804238ms)
|
||||
✔ get pages the links of a hub note, every page carries the front matter, and the pages add up (1107.995321ms)
|
||||
✔ get rejects a bad links_from (34.377162ms)
|
||||
✔ search returns scoped line hits, case-insensitively, and refuses empty text (30.729667ms)
|
||||
✔ a manuscript call returns one chapter, at most 400 lines, and names its next line (47.791378ms)
|
||||
✔ a manuscript call without a chapter returns the first chapter in path order and names the next (26.366902ms)
|
||||
✔ a chapter name that matches two visible files is refused (25.448584ms)
|
||||
✔ a hybrid reads a source chapter through its declared sources only (39.969561ms)
|
||||
✔ universe info reports a hybrid sources, constraints and notes, and refuses an unknown universe (15.657923ms)
|
||||
✔ an exclusion hides what it names from a hybrid and from nothing else (39.404555ms)
|
||||
✔ PRD 1.14: a lookup that names a book leaves book-null files out (34.647951ms)
|
||||
✔ PRD 1.14: library_manuscript never reads a book-null file (32.637362ms)
|
||||
✔ PRD 1.14: a draft universe has no canon, so its lookups return files only with scope playground (32.338176ms)
|
||||
✔ PRD 1.14: library_universe on a draft returns its kind, name and prefixes (15.442774ms)
|
||||
✔ a hybrid gets a source playground file as null, while the source gets it with scope playground (42.674554ms)
|
||||
✔ the fixture reads clean: every resolver step, appears_in and relationships wikilinks indexed (63.033383ms)
|
||||
✔ R1: executables, symlinks, gitlinks, blobs over 1 MiB and non-UTF-8 text are not indexed (95.339567ms)
|
||||
✔ R2: unmapped paths are reported and not indexed (31.564751ms)
|
||||
✔ R3: front matter not fully parsed stays raw, with the line where parsing stopped (36.896696ms)
|
||||
✔ front matter forms the reader accepts and refuses (1.596508ms)
|
||||
✔ R4: a link to no file, to more than one, or into another repo is reported and not followed (35.504393ms)
|
||||
✔ a block list link carries its item line, a scalar or flow link its key line, and problems follow (37.229678ms)
|
||||
✔ an unresolved attachment embed gives no problem; a link or front matter value to one is R4; a note embed resolves (33.783255ms)
|
||||
✔ an indexed Dr.Quinn.md resolves as a body link, a block list link and an embed (33.230236ms)
|
||||
✔ R5: a canon file that refers into the playground is reported, and the link still goes by path (29.709099ms)
|
||||
✔ R6: a canon file that refers into another universe is reported; a hybrid may refer into its sources (30.970646ms)
|
||||
✔ R7: two paths that differ only in case are both left out (41.126208ms)
|
||||
✔ the reader reads the commit, never the working tree, and refuses a bad commit id (41.98282ms)
|
||||
✔ a bare mirror reads the same as the clone (53.445984ms)
|
||||
✔ renderItems snapshot: fact (1.786386ms)
|
||||
✔ renderItems snapshot: finding (0.299155ms)
|
||||
✔ renderItems snapshot: correction (0.259329ms)
|
||||
✔ renderItems snapshot: question (0.218182ms)
|
||||
✔ renderItems snapshot: idea (0.223821ms)
|
||||
✔ renderItems numbers several items and takes a parsed body as well as a string (1.090019ms)
|
||||
✔ without options a path cite has no badge and is never marked changed (0.280013ms)
|
||||
✔ renderItems snapshot: notice no-cited-answer (0.237711ms)
|
||||
✔ renderItems snapshot: notice no-answer (0.198705ms)
|
||||
✔ renderItems snapshot: notice turn-failed (0.337126ms)
|
||||
✔ a body without the reply shape shows a fixed line and none of its text (0.613863ms)
|
||||
✔ C2-01c: each level gives its universe, and its book or null (4.092943ms)
|
||||
✔ C2-01c: prefixes come first: in a book that holds a prefix, a file outside it is canon and one under it playground (0.607188ms)
|
||||
✔ C2-01c: a canon file linking into a draft gives R6, and into its own universe-level prefix gives R5 (65.023589ms)
|
||||
✔ C2-01d: each supporting level gives its universe, and its book or null (0.8244ms)
|
||||
✔ C2-01d: supporting comes before playground; a folder in both lists is supporting, one in the playground only stays playground (0.633065ms)
|
||||
✔ C2-01d: only .md files are supporting; a .canvas or .base under a supporting prefix is unmapped (0.517375ms)
|
||||
✔ C2-01d: a path passes at book level, universe level, in a draft and in a folder in both lists (2.312377ms)
|
||||
✔ C2-01d: a path of exactly 1024 bytes passes, and 1025 bytes made of multi-byte characters refuses (0.98988ms)
|
||||
✔ C2-01d: a path outside the universe's supporting folders refuses (0.763326ms)
|
||||
✔ C2-01d: malformed paths refuse by class, in order (0.710036ms)
|
||||
✔ C2-01d: a symlink or gitlink on the way, or at the path itself, refuses (0.383033ms)
|
||||
✔ C2-01d: a name that differs from a tree name only in case or Unicode form refuses, at the file or any folder (0.99427ms)
|
||||
✔ the survey prints folder names, counts, key sets and link-form counts, and never text (65.469359ms)
|
||||
✔ folder names print DEL, C1 and bidi controls, U+061C among them, as escapes (37.571162ms)
|
||||
✔ an embed of an attachment counts as an embed and as an attachment; a plain link to one does not (24.053267ms)
|
||||
✔ with --mapping the survey adds scope, resolver step and problem counts (51.551822ms)
|
||||
✔ C2-01d: with --mapping the survey counts supporting files (49.232972ms)
|
||||
✔ survey exit codes: usage 4, bad mapping 3, unreadable repo 2 (19.679523ms)
|
||||
✔ scripts/mosaic library survey reaches the survey (97.237921ms)
|
||||
✔ C2-03a argv: the fixed sequence, one https allow, no other protocol key (2.539459ms)
|
||||
✔ C2-03a argv: only an https URL with a plain host, no userinfo, and a plain user (1.147619ms)
|
||||
✔ C2-03a helper: answers only the exact prompts for the configured host and user (dewey-0765) (43.662638ms)
|
||||
✔ C2-03a first sync: served is the fetched tip, HEAD is served, the survey reads it, and the token stays in the slot (199.624214ms)
|
||||
✔ C2-03a fast-forward: served moves, problems are rebuilt, and a repeat changes only lastFetch (272.12795ms)
|
||||
✔ C2-03a Filbert N2: a read that took served before a sync still finds its objects after served moves (255.892244ms)
|
||||
✔ C2-03a overlap: a reader during a sync sees the old pair or the new one, never a mix (220.077465ms)
|
||||
✔ C2-03a diverged: a non-fast-forward keeps serving and holds until a human accepts the tip (511.485441ms)
|
||||
✔ C2-03a accept starts the record over, so a changed branch gets a fresh state (204.895458ms)
|
||||
✔ C2-03a fetch failure: a wrong token keeps serving and records the error, lastFetch unchanged (210.171392ms)
|
||||
✔ C2-03a a failed first fetch records the error with nothing served (57.52009ms)
|
||||
✔ C2-03a a 302 to another host fails the fetch and the other host sees nothing (68.211135ms)
|
||||
✔ C2-03a the slot: missing or unsafe refuses before git, and sync never opens it (65.636096ms)
|
||||
✔ C2-03a sage-2021: an entry with no user refuses library-remote-invalid and runs no git (34.004871ms)
|
||||
✔ C2-03a one sync per mirror: an overlapping call refuses library-sync-busy (129.134012ms)
|
||||
ℹ tests 142
|
||||
ℹ suites 0
|
||||
ℹ pass 142
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 6490.060843
|
||||
@@ -1,2 +0,0 @@
|
||||
1 match: replyLimitsFence(old, document, actor);
|
||||
1 match: replyLimitsFence(old, written, actor);
|
||||
@@ -1 +0,0 @@
|
||||
M5-hide-library-unavailable: killed (control green, mutant exit 1, hashes restored, restored green)
|
||||
@@ -1,11 +0,0 @@
|
||||
✔ C2-06 held library lock gives the agent citation-unavailable and its retry reason (5151.319291ms)
|
||||
✔ C2-06 malformed sync state is availability failure, never a fabricated invalid cite (37.53806ms)
|
||||
✔ C2-06 no mirror or freshly initialized empty mirror still means no served citation (35.257703ms)
|
||||
ℹ tests 3
|
||||
ℹ suites 0
|
||||
ℹ pass 3
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 5310.30031
|
||||
-11
@@ -1,11 +0,0 @@
|
||||
✔ C2-06 held library lock gives the agent citation-unavailable and its retry reason (5147.642347ms)
|
||||
✔ C2-06 malformed sync state is availability failure, never a fabricated invalid cite (32.256875ms)
|
||||
✔ C2-06 no mirror or freshly initialized empty mirror still means no served citation (31.701926ms)
|
||||
ℹ tests 3
|
||||
ℹ suites 0
|
||||
ℹ pass 3
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 5295.499085
|
||||
-23
@@ -1,23 +0,0 @@
|
||||
eeca81ab965f9e94f930ee5f51d16f019af6368bc6c3994895e204f7a54ec8d2 packages/bus/src/broker.mjs
|
||||
ad3c686a089f67f3c89610937c6fc9b32367cea5d9735125d89bef042082d4e8 packages/bus/src/client.mjs
|
||||
36b05dd3119e5929211aa1cc5d45c5043f5a1c34567ddc7cac8f002835d44abe packages/bus/src/runtime.mjs
|
||||
66b26d131a19f4f411686427274936850c1ff0aed11e9b281ae4aadcf4b289fc packages/bus/src/server.mjs
|
||||
cdd0304ec25ef1ad3e31c52502fa46f2c80bd77c8d3c2e13f8ed4b5328f342c9 packages/bus/tests/citation-availability.test.mjs
|
||||
2e05074cd9d15d810103658af3858161cee2af78b0a2e1ba910222fab3e84401 packages/bus/tests/citation-guard.test.mjs
|
||||
2c7a2102e2e0244876e41b664f4f706baefe3375100b956655551db1230f5da3 packages/bus/tests/citation-helpers.mjs
|
||||
168dcac99d9bfdfdf5ff0eaa2c0fff91595b351b4d0092dc299532c9c32869f0 packages/bus/tests/citation-runtime.test.mjs
|
||||
abaeac64f2c3bf8ba83c9a4488edd9105c4707a6564560c5333d5421445653af packages/business/src/business.mjs
|
||||
3a6044de5d1ca2cc35c5285b460c3e402b4274837e5d88b97f489797f6004903 packages/business/src/organization.mjs
|
||||
4d2eb11beaa80175e524af1b95c81e7164990fba1d3e1754f5ba06eee390a14f packages/business/tests/reply-limits.test.mjs
|
||||
a2bb98734bcc2556f8b2168f0faf8a89f7064c3f0aa49feb7d1975d596192f09 packages/cli/README.md
|
||||
2f291a71f490f2741edada7a3e3788500f8976a08eb8ab1411f6c5982f778260 packages/cli/src/limits.mjs
|
||||
f38af2d46d5f5f6388f599912507b94b87a0bf9dcc2104bb2187c38ee35118d5 packages/cli/tests/reply-limits.test.mjs
|
||||
6ad72b4245e0a66e32725941900c1ece64c2e5de2fb73d65c8e042b4f3a691a6 packages/harness/src/runner.mjs
|
||||
a5ef1b65230239a7baf6d0e8f2b8a51c0516348c7c4339a55b3f0a1a6ff531ba packages/harness/tests/citation-runner.test.mjs
|
||||
330bc71bf6c7e64d3ddb70440903d2d9acf7878d44a49d7e30c2352ee4c807ec packages/harness/tests/fixtures/citation-adapter.mjs
|
||||
f710d9600a17f6e2989a289cfe84e58f161d86c7306605946ce05fa71b364eb2 packages/library/src/guard.mjs
|
||||
c0d630798914e300e461c247340533328e97119e54909c6a9406340e61fed8b7 packages/library/src/index.mjs
|
||||
98ef45ed61144aaea44d8aea1ac43082b6d340297e46846d01772da38728e530 packages/library/src/limits.mjs
|
||||
7b46f47b5e9d6b554b5d39bce2cd95c4610f5f35b8ab8fdc5a2864b3214be809 packages/library/src/reply-protocol.mjs
|
||||
406146ebbce3710f308243b684a1c17e7626c1b65a4468489364317e31537a48 packages/library/tests/guard.test.mjs
|
||||
39c8e6c8250a13fa43015fb2c407195e30ee642f729a9f6a644c38b4ea758a72 packages/seat/src/sandbox.mjs
|
||||
@@ -1,68 +0,0 @@
|
||||
✖ C2-06 held library lock gives the agent citation-unavailable and its retry reason (5108.905478ms)
|
||||
✖ C2-06 malformed sync state is availability failure, never a fabricated invalid cite (40.518617ms)
|
||||
✔ C2-06 no mirror or freshly initialized empty mirror still means no served citation (37.68422ms)
|
||||
ℹ tests 3
|
||||
ℹ suites 0
|
||||
ℹ pass 1
|
||||
ℹ fail 2
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 5261.169843
|
||||
|
||||
✖ failing tests:
|
||||
|
||||
test at packages/bus/tests/citation-availability.test.mjs:13:1
|
||||
✖ C2-06 held library lock gives the agent citation-unavailable and its retry reason (5108.905478ms)
|
||||
AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:
|
||||
+ actual - expected
|
||||
|
||||
+ 'citation-invalid'
|
||||
- 'citation-unavailable'
|
||||
^
|
||||
|
||||
at Object.<anonymous> (file:///mnt/storage/scratch/tmp/tNoueZ/row217-mutant-pd3x2htc/packages/bus/tests/citation-availability.test.mjs:29:14)
|
||||
at expectedException (node:assert:547:17)
|
||||
at expectsError (node:assert:672:21)
|
||||
at strict.rejects (node:assert:738:3)
|
||||
at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
|
||||
at async file:///mnt/storage/scratch/tmp/tNoueZ/row217-mutant-pd3x2htc/packages/bus/tests/citation-availability.test.mjs:28:5
|
||||
at async withLibraryLock (file:///mnt/storage/scratch/tmp/tNoueZ/row217-mutant-pd3x2htc/packages/library/src/mirror.mjs:171:18)
|
||||
at async TestContext.<anonymous> (file:///mnt/storage/scratch/tmp/tNoueZ/row217-mutant-pd3x2htc/packages/bus/tests/citation-availability.test.mjs:27:3)
|
||||
at async Test.run (node:internal/test_runner/test:1409:7)
|
||||
at async startSubtestAfterBootstrap (node:internal/test_runner/harness:387:3) {
|
||||
generatedMessage: true,
|
||||
code: 'ERR_ASSERTION',
|
||||
actual: 'citation-invalid',
|
||||
expected: 'citation-unavailable',
|
||||
operator: 'strictEqual',
|
||||
diff: 'simple'
|
||||
}
|
||||
|
||||
test at packages/bus/tests/citation-availability.test.mjs:40:1
|
||||
✖ C2-06 malformed sync state is availability failure, never a fabricated invalid cite (40.518617ms)
|
||||
AssertionError [ERR_ASSERTION]: Expected values to be strictly deep-equal:
|
||||
+ actual - expected
|
||||
|
||||
Comparison {
|
||||
+ code: 'citation-invalid'
|
||||
- code: 'citation-unavailable'
|
||||
}
|
||||
|
||||
at async TestContext.<anonymous> (file:///mnt/storage/scratch/tmp/tNoueZ/row217-mutant-pd3x2htc/packages/bus/tests/citation-availability.test.mjs:45:3)
|
||||
at async Test.run (node:internal/test_runner/test:1409:7)
|
||||
at async Test.processPendingSubtests (node:internal/test_runner/test:974:7) {
|
||||
generatedMessage: true,
|
||||
code: 'ERR_ASSERTION',
|
||||
actual: Error: citation-invalid: citation 1 (Book One/Characters/Mara Vell.md) isn't an indexed file at a commit reachable from the served commit
|
||||
at refuse (file:///mnt/storage/scratch/tmp/tNoueZ/row217-mutant-pd3x2htc/packages/library/src/guard.mjs:24:42)
|
||||
at checkReply (file:///mnt/storage/scratch/tmp/tNoueZ/row217-mutant-pd3x2htc/packages/library/src/guard.mjs:80:25)
|
||||
at async waitForActual (node:assert:615:5)
|
||||
at async strict.rejects (node:assert:738:25)
|
||||
at async TestContext.<anonymous> (file:///mnt/storage/scratch/tmp/tNoueZ/row217-mutant-pd3x2htc/packages/bus/tests/citation-availability.test.mjs:45:3)
|
||||
at async Test.run (node:internal/test_runner/test:1409:7)
|
||||
at async Test.processPendingSubtests (node:internal/test_runner/test:974:7),
|
||||
expected: { code: 'citation-unavailable' },
|
||||
operator: 'rejects',
|
||||
diff: 'simple'
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
M5-hide-library-unavailable: killed (control green, mutant exit 1, hashes restored, restored green)
|
||||
@@ -1,5 +0,0 @@
|
||||
M1-writer-fence: killed (control green, mutant exit 1, hashes restored, restored green)
|
||||
M2-incoming-human: killed (control green, mutant exit 1, hashes restored, restored green)
|
||||
M3-split-check-transaction: killed (control green, mutant exit 1, hashes restored, restored green)
|
||||
M5-hide-library-unavailable: killed (control green, mutant exit 1, hashes restored, restored green)
|
||||
M4-drop-client-reason: killed (control green, mutant exit 1, hashes restored, restored green)
|
||||
@@ -1,14 +0,0 @@
|
||||
✔ C2-06 M11 human replacement works; omitted settings return to defaults (29.278355ms)
|
||||
✔ C2-06 M11 agents and tester cannot change settings, including by changing human (22.040025ms)
|
||||
✔ C2-06 M11 serialization cannot replace settings after the first fence (8.805323ms)
|
||||
✔ C2-06 M11 an unrelated actor cannot appoint itself human and change reply limits (8.829275ms)
|
||||
✔ C2-06 invalid setter values preserve the business and changes.jsonl (9.171416ms)
|
||||
✔ C2-06 validator accepts hand-edited settings; raw reader fails closed on invalid files (10.423621ms)
|
||||
ℹ tests 6
|
||||
ℹ suites 0
|
||||
ℹ pass 6
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 139.016448
|
||||
@@ -1,14 +0,0 @@
|
||||
✔ C2-06 M11 human replacement works; omitted settings return to defaults (27.397407ms)
|
||||
✔ C2-06 M11 agents and tester cannot change settings, including by changing human (23.565905ms)
|
||||
✔ C2-06 M11 serialization cannot replace settings after the first fence (8.312613ms)
|
||||
✔ C2-06 M11 an unrelated actor cannot appoint itself human and change reply limits (8.050944ms)
|
||||
✔ C2-06 invalid setter values preserve the business and changes.jsonl (8.746752ms)
|
||||
✔ C2-06 validator accepts hand-edited settings; raw reader fails closed on invalid files (11.061782ms)
|
||||
ℹ tests 6
|
||||
ℹ suites 0
|
||||
ℹ pass 6
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 137.787038
|
||||
@@ -1,23 +0,0 @@
|
||||
eeca81ab965f9e94f930ee5f51d16f019af6368bc6c3994895e204f7a54ec8d2 packages/bus/src/broker.mjs
|
||||
ad3c686a089f67f3c89610937c6fc9b32367cea5d9735125d89bef042082d4e8 packages/bus/src/client.mjs
|
||||
36b05dd3119e5929211aa1cc5d45c5043f5a1c34567ddc7cac8f002835d44abe packages/bus/src/runtime.mjs
|
||||
66b26d131a19f4f411686427274936850c1ff0aed11e9b281ae4aadcf4b289fc packages/bus/src/server.mjs
|
||||
cdd0304ec25ef1ad3e31c52502fa46f2c80bd77c8d3c2e13f8ed4b5328f342c9 packages/bus/tests/citation-availability.test.mjs
|
||||
2e05074cd9d15d810103658af3858161cee2af78b0a2e1ba910222fab3e84401 packages/bus/tests/citation-guard.test.mjs
|
||||
2c7a2102e2e0244876e41b664f4f706baefe3375100b956655551db1230f5da3 packages/bus/tests/citation-helpers.mjs
|
||||
9768b6dc5ae078c5cc4f76473097287b74c5bc5853d39e1f57f153e646f861af packages/bus/tests/citation-runtime.test.mjs
|
||||
abaeac64f2c3bf8ba83c9a4488edd9105c4707a6564560c5333d5421445653af packages/business/src/business.mjs
|
||||
3a6044de5d1ca2cc35c5285b460c3e402b4274837e5d88b97f489797f6004903 packages/business/src/organization.mjs
|
||||
4d2eb11beaa80175e524af1b95c81e7164990fba1d3e1754f5ba06eee390a14f packages/business/tests/reply-limits.test.mjs
|
||||
a2bb98734bcc2556f8b2168f0faf8a89f7064c3f0aa49feb7d1975d596192f09 packages/cli/README.md
|
||||
2f291a71f490f2741edada7a3e3788500f8976a08eb8ab1411f6c5982f778260 packages/cli/src/limits.mjs
|
||||
f38af2d46d5f5f6388f599912507b94b87a0bf9dcc2104bb2187c38ee35118d5 packages/cli/tests/reply-limits.test.mjs
|
||||
6ad72b4245e0a66e32725941900c1ece64c2e5de2fb73d65c8e042b4f3a691a6 packages/harness/src/runner.mjs
|
||||
a5ef1b65230239a7baf6d0e8f2b8a51c0516348c7c4339a55b3f0a1a6ff531ba packages/harness/tests/citation-runner.test.mjs
|
||||
330bc71bf6c7e64d3ddb70440903d2d9acf7878d44a49d7e30c2352ee4c807ec packages/harness/tests/fixtures/citation-adapter.mjs
|
||||
f710d9600a17f6e2989a289cfe84e58f161d86c7306605946ce05fa71b364eb2 packages/library/src/guard.mjs
|
||||
c0d630798914e300e461c247340533328e97119e54909c6a9406340e61fed8b7 packages/library/src/index.mjs
|
||||
98ef45ed61144aaea44d8aea1ac43082b6d340297e46846d01772da38728e530 packages/library/src/limits.mjs
|
||||
7b46f47b5e9d6b554b5d39bce2cd95c4610f5f35b8ab8fdc5a2864b3214be809 packages/library/src/reply-protocol.mjs
|
||||
406146ebbce3710f308243b684a1c17e7626c1b65a4468489364317e31537a48 packages/library/tests/guard.test.mjs
|
||||
39c8e6c8250a13fa43015fb2c407195e30ee642f729a9f6a644c38b4ea758a72 packages/seat/src/sandbox.mjs
|
||||
@@ -1,73 +0,0 @@
|
||||
✔ C2-06 M11 human replacement works; omitted settings return to defaults (26.703775ms)
|
||||
✖ C2-06 M11 agents and tester cannot change settings, including by changing human (12.156717ms)
|
||||
✖ C2-06 M11 serialization cannot replace settings after the first fence (11.431272ms)
|
||||
✖ C2-06 M11 an unrelated actor cannot appoint itself human and change reply limits (14.308135ms)
|
||||
✔ C2-06 invalid setter values preserve the business and changes.jsonl (9.043165ms)
|
||||
✔ C2-06 validator accepts hand-edited settings; raw reader fails closed on invalid files (9.576698ms)
|
||||
ℹ tests 6
|
||||
ℹ suites 0
|
||||
ℹ pass 3
|
||||
ℹ fail 3
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 131.91294
|
||||
|
||||
✖ failing tests:
|
||||
|
||||
test at packages/business/tests/reply-limits.test.mjs:34:1
|
||||
✖ C2-06 M11 agents and tester cannot change settings, including by changing human (12.156717ms)
|
||||
AssertionError [ERR_ASSERTION]: Missing expected exception.
|
||||
at refused (file:///mnt/storage/scratch/tmp/tNoueZ/row217-mutant-m6rnq3wd/packages/business/tests/reply-limits.test.mjs:22:10)
|
||||
at TestContext.<anonymous> (file:///mnt/storage/scratch/tmp/tNoueZ/row217-mutant-m6rnq3wd/packages/business/tests/reply-limits.test.mjs:37:5)
|
||||
at Test.runInAsyncScope (node:async_hooks:226:14)
|
||||
at Test.run (node:internal/test_runner/test:1402:25)
|
||||
at Test.processPendingSubtests (node:internal/test_runner/test:974:18)
|
||||
at Test.postRun (node:internal/test_runner/test:1542:19)
|
||||
at Test.run (node:internal/test_runner/test:1467:12)
|
||||
at async startSubtestAfterBootstrap (node:internal/test_runner/harness:387:3) {
|
||||
generatedMessage: false,
|
||||
code: 'ERR_ASSERTION',
|
||||
actual: undefined,
|
||||
expected: { code: 'organization-reply-limits-human-only' },
|
||||
operator: 'throws',
|
||||
diff: 'simple'
|
||||
}
|
||||
|
||||
test at packages/business/tests/reply-limits.test.mjs:43:1
|
||||
✖ C2-06 M11 serialization cannot replace settings after the first fence (11.431272ms)
|
||||
AssertionError [ERR_ASSERTION]: Missing expected exception.
|
||||
at refused (file:///mnt/storage/scratch/tmp/tNoueZ/row217-mutant-m6rnq3wd/packages/business/tests/reply-limits.test.mjs:22:10)
|
||||
at TestContext.<anonymous> (file:///mnt/storage/scratch/tmp/tNoueZ/row217-mutant-m6rnq3wd/packages/business/tests/reply-limits.test.mjs:45:3)
|
||||
at Test.runInAsyncScope (node:async_hooks:226:14)
|
||||
at Test.run (node:internal/test_runner/test:1402:25)
|
||||
at Test.processPendingSubtests (node:internal/test_runner/test:974:18)
|
||||
at Test.postRun (node:internal/test_runner/test:1542:19)
|
||||
at Test.run (node:internal/test_runner/test:1467:12)
|
||||
at async Test.processPendingSubtests (node:internal/test_runner/test:974:7) {
|
||||
generatedMessage: false,
|
||||
code: 'ERR_ASSERTION',
|
||||
actual: undefined,
|
||||
expected: { code: 'organization-reply-limits-human-only' },
|
||||
operator: 'throws',
|
||||
diff: 'simple'
|
||||
}
|
||||
|
||||
test at packages/business/tests/reply-limits.test.mjs:52:1
|
||||
✖ C2-06 M11 an unrelated actor cannot appoint itself human and change reply limits (14.308135ms)
|
||||
AssertionError [ERR_ASSERTION]: Missing expected exception.
|
||||
at refused (file:///mnt/storage/scratch/tmp/tNoueZ/row217-mutant-m6rnq3wd/packages/business/tests/reply-limits.test.mjs:22:10)
|
||||
at TestContext.<anonymous> (file:///mnt/storage/scratch/tmp/tNoueZ/row217-mutant-m6rnq3wd/packages/business/tests/reply-limits.test.mjs:54:3)
|
||||
at Test.runInAsyncScope (node:async_hooks:226:14)
|
||||
at Test.run (node:internal/test_runner/test:1402:25)
|
||||
at Test.processPendingSubtests (node:internal/test_runner/test:974:18)
|
||||
at Test.postRun (node:internal/test_runner/test:1542:19)
|
||||
at Test.run (node:internal/test_runner/test:1467:12)
|
||||
at async Test.processPendingSubtests (node:internal/test_runner/test:974:7) {
|
||||
generatedMessage: false,
|
||||
code: 'ERR_ASSERTION',
|
||||
actual: undefined,
|
||||
expected: { code: 'organization-reply-limits-human-only' },
|
||||
operator: 'throws',
|
||||
diff: 'simple'
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
✔ C2-06 M11 human replacement works; omitted settings return to defaults (31.955623ms)
|
||||
✔ C2-06 M11 agents and tester cannot change settings, including by changing human (22.832309ms)
|
||||
✔ C2-06 M11 serialization cannot replace settings after the first fence (9.274775ms)
|
||||
✔ C2-06 M11 an unrelated actor cannot appoint itself human and change reply limits (8.69039ms)
|
||||
✔ C2-06 invalid setter values preserve the business and changes.jsonl (8.733202ms)
|
||||
✔ C2-06 validator accepts hand-edited settings; raw reader fails closed on invalid files (10.441869ms)
|
||||
ℹ tests 6
|
||||
ℹ suites 0
|
||||
ℹ pass 6
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 143.570268
|
||||
@@ -1,14 +0,0 @@
|
||||
✔ C2-06 M11 human replacement works; omitted settings return to defaults (29.948602ms)
|
||||
✔ C2-06 M11 agents and tester cannot change settings, including by changing human (22.139351ms)
|
||||
✔ C2-06 M11 serialization cannot replace settings after the first fence (9.054641ms)
|
||||
✔ C2-06 M11 an unrelated actor cannot appoint itself human and change reply limits (8.381635ms)
|
||||
✔ C2-06 invalid setter values preserve the business and changes.jsonl (9.081946ms)
|
||||
✔ C2-06 validator accepts hand-edited settings; raw reader fails closed on invalid files (10.33004ms)
|
||||
ℹ tests 6
|
||||
ℹ suites 0
|
||||
ℹ pass 6
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 141.370383
|
||||
@@ -1,23 +0,0 @@
|
||||
eeca81ab965f9e94f930ee5f51d16f019af6368bc6c3994895e204f7a54ec8d2 packages/bus/src/broker.mjs
|
||||
ad3c686a089f67f3c89610937c6fc9b32367cea5d9735125d89bef042082d4e8 packages/bus/src/client.mjs
|
||||
36b05dd3119e5929211aa1cc5d45c5043f5a1c34567ddc7cac8f002835d44abe packages/bus/src/runtime.mjs
|
||||
66b26d131a19f4f411686427274936850c1ff0aed11e9b281ae4aadcf4b289fc packages/bus/src/server.mjs
|
||||
cdd0304ec25ef1ad3e31c52502fa46f2c80bd77c8d3c2e13f8ed4b5328f342c9 packages/bus/tests/citation-availability.test.mjs
|
||||
2e05074cd9d15d810103658af3858161cee2af78b0a2e1ba910222fab3e84401 packages/bus/tests/citation-guard.test.mjs
|
||||
2c7a2102e2e0244876e41b664f4f706baefe3375100b956655551db1230f5da3 packages/bus/tests/citation-helpers.mjs
|
||||
9768b6dc5ae078c5cc4f76473097287b74c5bc5853d39e1f57f153e646f861af packages/bus/tests/citation-runtime.test.mjs
|
||||
abaeac64f2c3bf8ba83c9a4488edd9105c4707a6564560c5333d5421445653af packages/business/src/business.mjs
|
||||
3a6044de5d1ca2cc35c5285b460c3e402b4274837e5d88b97f489797f6004903 packages/business/src/organization.mjs
|
||||
4d2eb11beaa80175e524af1b95c81e7164990fba1d3e1754f5ba06eee390a14f packages/business/tests/reply-limits.test.mjs
|
||||
a2bb98734bcc2556f8b2168f0faf8a89f7064c3f0aa49feb7d1975d596192f09 packages/cli/README.md
|
||||
2f291a71f490f2741edada7a3e3788500f8976a08eb8ab1411f6c5982f778260 packages/cli/src/limits.mjs
|
||||
f38af2d46d5f5f6388f599912507b94b87a0bf9dcc2104bb2187c38ee35118d5 packages/cli/tests/reply-limits.test.mjs
|
||||
6ad72b4245e0a66e32725941900c1ece64c2e5de2fb73d65c8e042b4f3a691a6 packages/harness/src/runner.mjs
|
||||
a5ef1b65230239a7baf6d0e8f2b8a51c0516348c7c4339a55b3f0a1a6ff531ba packages/harness/tests/citation-runner.test.mjs
|
||||
330bc71bf6c7e64d3ddb70440903d2d9acf7878d44a49d7e30c2352ee4c807ec packages/harness/tests/fixtures/citation-adapter.mjs
|
||||
f710d9600a17f6e2989a289cfe84e58f161d86c7306605946ce05fa71b364eb2 packages/library/src/guard.mjs
|
||||
c0d630798914e300e461c247340533328e97119e54909c6a9406340e61fed8b7 packages/library/src/index.mjs
|
||||
98ef45ed61144aaea44d8aea1ac43082b6d340297e46846d01772da38728e530 packages/library/src/limits.mjs
|
||||
7b46f47b5e9d6b554b5d39bce2cd95c4610f5f35b8ab8fdc5a2864b3214be809 packages/library/src/reply-protocol.mjs
|
||||
406146ebbce3710f308243b684a1c17e7626c1b65a4468489364317e31537a48 packages/library/tests/guard.test.mjs
|
||||
39c8e6c8250a13fa43015fb2c407195e30ee642f729a9f6a644c38b4ea758a72 packages/seat/src/sandbox.mjs
|
||||
@@ -1,35 +0,0 @@
|
||||
✔ C2-06 M11 human replacement works; omitted settings return to defaults (28.334896ms)
|
||||
✔ C2-06 M11 agents and tester cannot change settings, including by changing human (22.541196ms)
|
||||
✔ C2-06 M11 serialization cannot replace settings after the first fence (8.304131ms)
|
||||
✖ C2-06 M11 an unrelated actor cannot appoint itself human and change reply limits (11.712463ms)
|
||||
✔ C2-06 invalid setter values preserve the business and changes.jsonl (8.875517ms)
|
||||
✔ C2-06 validator accepts hand-edited settings; raw reader fails closed on invalid files (9.882976ms)
|
||||
ℹ tests 6
|
||||
ℹ suites 0
|
||||
ℹ pass 5
|
||||
ℹ fail 1
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 140.418146
|
||||
|
||||
✖ failing tests:
|
||||
|
||||
test at packages/business/tests/reply-limits.test.mjs:52:1
|
||||
✖ C2-06 M11 an unrelated actor cannot appoint itself human and change reply limits (11.712463ms)
|
||||
AssertionError [ERR_ASSERTION]: Missing expected exception.
|
||||
at refused (file:///mnt/storage/scratch/tmp/tNoueZ/row217-mutant-_aqjby1c/packages/business/tests/reply-limits.test.mjs:22:10)
|
||||
at TestContext.<anonymous> (file:///mnt/storage/scratch/tmp/tNoueZ/row217-mutant-_aqjby1c/packages/business/tests/reply-limits.test.mjs:54:3)
|
||||
at Test.runInAsyncScope (node:async_hooks:226:14)
|
||||
at Test.run (node:internal/test_runner/test:1402:25)
|
||||
at Test.processPendingSubtests (node:internal/test_runner/test:974:18)
|
||||
at Test.postRun (node:internal/test_runner/test:1542:19)
|
||||
at Test.run (node:internal/test_runner/test:1467:12)
|
||||
at async Test.processPendingSubtests (node:internal/test_runner/test:974:7) {
|
||||
generatedMessage: false,
|
||||
code: 'ERR_ASSERTION',
|
||||
actual: undefined,
|
||||
expected: { code: 'organization-reply-limits-human-only' },
|
||||
operator: 'throws',
|
||||
diff: 'simple'
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
✔ C2-06 coder send_message guard covers every table refusal; inserts nothing (118.943843ms)
|
||||
✔ C2-06 research send_message guard covers every table refusal; inserts nothing (94.790271ms)
|
||||
✔ C2-06 stored check carries the file author trailer at an unrelated cited tip (65.901789ms)
|
||||
✔ C2-06 supporting cite cannot state canon, including a folder also marked playground (41.908138ms)
|
||||
✔ C2-06 supporting file stores supporting scope and its real agent trailer (48.179621ms)
|
||||
✔ C2-06 check evidence and insert are atomic when storing evidence fails (41.94764ms)
|
||||
✔ C2-06 live limits change both directions; unreadable file keeps checks and exact fixed texts (56.521104ms)
|
||||
✔ C2-06 page store is session-local, caps 20 fetches and 200 KiB, drops at disconnect (88.283371ms)
|
||||
✔ C2-06 transport passes safe capped guard reason; ordinary refusal envelope is byte-identical (55.47311ms)
|
||||
✔ C2-06 non-library businesses retain role.claim shape and unguarded free sends (26.321347ms)
|
||||
✔ C2-06 thread messages carry file/last evidence with one read per distinct path (77.5591ms)
|
||||
✔ C2-06 guarded request snapshot cannot change between check and insert (24.639839ms)
|
||||
✔ C2-06 library.limits.set is human-only and invalid settings leave file and receipts unchanged (42.159103ms)
|
||||
ℹ tests 13
|
||||
ℹ suites 0
|
||||
ℹ pass 13
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 866.146033
|
||||
-21
@@ -1,21 +0,0 @@
|
||||
✔ C2-06 coder send_message guard covers every table refusal; inserts nothing (162.15169ms)
|
||||
✔ C2-06 research send_message guard covers every table refusal; inserts nothing (151.110586ms)
|
||||
✔ C2-06 stored check carries the file author trailer at an unrelated cited tip (100.984805ms)
|
||||
✔ C2-06 supporting cite cannot state canon, including a folder also marked playground (81.389166ms)
|
||||
✔ C2-06 supporting file stores supporting scope and its real agent trailer (92.148118ms)
|
||||
✔ C2-06 check evidence and insert are atomic when storing evidence fails (78.197117ms)
|
||||
✔ C2-06 live limits change both directions; unreadable file keeps checks and exact fixed texts (168.055107ms)
|
||||
✔ C2-06 page store is session-local, caps 20 fetches and 200 KiB, drops at disconnect (271.850306ms)
|
||||
✔ C2-06 transport passes safe capped guard reason; ordinary refusal envelope is byte-identical (92.491602ms)
|
||||
✔ C2-06 non-library businesses retain role.claim shape and unguarded free sends (61.315017ms)
|
||||
✔ C2-06 thread messages carry file/last evidence with one read per distinct path (126.633466ms)
|
||||
✔ C2-06 guarded request snapshot cannot change between check and insert (61.436932ms)
|
||||
✔ C2-06 library.limits.set is human-only and invalid settings leave file and receipts unchanged (118.486786ms)
|
||||
ℹ tests 13
|
||||
ℹ suites 0
|
||||
ℹ pass 13
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 1649.634687
|
||||
-23
@@ -1,23 +0,0 @@
|
||||
eeca81ab965f9e94f930ee5f51d16f019af6368bc6c3994895e204f7a54ec8d2 packages/bus/src/broker.mjs
|
||||
ad3c686a089f67f3c89610937c6fc9b32367cea5d9735125d89bef042082d4e8 packages/bus/src/client.mjs
|
||||
36b05dd3119e5929211aa1cc5d45c5043f5a1c34567ddc7cac8f002835d44abe packages/bus/src/runtime.mjs
|
||||
66b26d131a19f4f411686427274936850c1ff0aed11e9b281ae4aadcf4b289fc packages/bus/src/server.mjs
|
||||
cdd0304ec25ef1ad3e31c52502fa46f2c80bd77c8d3c2e13f8ed4b5328f342c9 packages/bus/tests/citation-availability.test.mjs
|
||||
2e05074cd9d15d810103658af3858161cee2af78b0a2e1ba910222fab3e84401 packages/bus/tests/citation-guard.test.mjs
|
||||
2c7a2102e2e0244876e41b664f4f706baefe3375100b956655551db1230f5da3 packages/bus/tests/citation-helpers.mjs
|
||||
9768b6dc5ae078c5cc4f76473097287b74c5bc5853d39e1f57f153e646f861af packages/bus/tests/citation-runtime.test.mjs
|
||||
abaeac64f2c3bf8ba83c9a4488edd9105c4707a6564560c5333d5421445653af packages/business/src/business.mjs
|
||||
3a6044de5d1ca2cc35c5285b460c3e402b4274837e5d88b97f489797f6004903 packages/business/src/organization.mjs
|
||||
4d2eb11beaa80175e524af1b95c81e7164990fba1d3e1754f5ba06eee390a14f packages/business/tests/reply-limits.test.mjs
|
||||
a2bb98734bcc2556f8b2168f0faf8a89f7064c3f0aa49feb7d1975d596192f09 packages/cli/README.md
|
||||
2f291a71f490f2741edada7a3e3788500f8976a08eb8ab1411f6c5982f778260 packages/cli/src/limits.mjs
|
||||
f38af2d46d5f5f6388f599912507b94b87a0bf9dcc2104bb2187c38ee35118d5 packages/cli/tests/reply-limits.test.mjs
|
||||
6ad72b4245e0a66e32725941900c1ece64c2e5de2fb73d65c8e042b4f3a691a6 packages/harness/src/runner.mjs
|
||||
a5ef1b65230239a7baf6d0e8f2b8a51c0516348c7c4339a55b3f0a1a6ff531ba packages/harness/tests/citation-runner.test.mjs
|
||||
330bc71bf6c7e64d3ddb70440903d2d9acf7878d44a49d7e30c2352ee4c807ec packages/harness/tests/fixtures/citation-adapter.mjs
|
||||
f710d9600a17f6e2989a289cfe84e58f161d86c7306605946ce05fa71b364eb2 packages/library/src/guard.mjs
|
||||
c0d630798914e300e461c247340533328e97119e54909c6a9406340e61fed8b7 packages/library/src/index.mjs
|
||||
98ef45ed61144aaea44d8aea1ac43082b6d340297e46846d01772da38728e530 packages/library/src/limits.mjs
|
||||
7b46f47b5e9d6b554b5d39bce2cd95c4610f5f35b8ab8fdc5a2864b3214be809 packages/library/src/reply-protocol.mjs
|
||||
406146ebbce3710f308243b684a1c17e7626c1b65a4468489364317e31537a48 packages/library/tests/guard.test.mjs
|
||||
39c8e6c8250a13fa43015fb2c407195e30ee642f729a9f6a644c38b4ea758a72 packages/seat/src/sandbox.mjs
|
||||
@@ -1,41 +0,0 @@
|
||||
✔ C2-06 coder send_message guard covers every table refusal; inserts nothing (121.738375ms)
|
||||
✔ C2-06 research send_message guard covers every table refusal; inserts nothing (94.199334ms)
|
||||
✔ C2-06 stored check carries the file author trailer at an unrelated cited tip (59.307121ms)
|
||||
✔ C2-06 supporting cite cannot state canon, including a folder also marked playground (41.252933ms)
|
||||
✔ C2-06 supporting file stores supporting scope and its real agent trailer (48.700382ms)
|
||||
✖ C2-06 check evidence and insert are atomic when storing evidence fails (42.434516ms)
|
||||
✔ C2-06 live limits change both directions; unreadable file keeps checks and exact fixed texts (56.552861ms)
|
||||
✔ C2-06 page store is session-local, caps 20 fetches and 200 KiB, drops at disconnect (88.426285ms)
|
||||
✔ C2-06 transport passes safe capped guard reason; ordinary refusal envelope is byte-identical (54.352185ms)
|
||||
✔ C2-06 non-library businesses retain role.claim shape and unguarded free sends (26.064514ms)
|
||||
✔ C2-06 thread messages carry file/last evidence with one read per distinct path (81.176348ms)
|
||||
✔ C2-06 guarded request snapshot cannot change between check and insert (25.324993ms)
|
||||
✔ C2-06 library.limits.set is human-only and invalid settings leave file and receipts unchanged (42.147552ms)
|
||||
ℹ tests 13
|
||||
ℹ suites 0
|
||||
ℹ pass 12
|
||||
ℹ fail 1
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 872.02572
|
||||
|
||||
✖ failing tests:
|
||||
|
||||
test at packages/bus/tests/citation-guard.test.mjs:71:1
|
||||
✖ C2-06 check evidence and insert are atomic when storing evidence fails (42.434516ms)
|
||||
AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:
|
||||
|
||||
1 !== 0
|
||||
|
||||
at TestContext.<anonymous> (file:///mnt/storage/scratch/tmp/tNoueZ/row217-mutant-etkv3bqf/packages/bus/tests/citation-guard.test.mjs:76:10)
|
||||
at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
|
||||
at async Test.run (node:internal/test_runner/test:1409:7)
|
||||
at async Test.processPendingSubtests (node:internal/test_runner/test:974:7) {
|
||||
generatedMessage: true,
|
||||
code: 'ERR_ASSERTION',
|
||||
actual: 1,
|
||||
expected: 0,
|
||||
operator: 'strictEqual',
|
||||
diff: 'simple'
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
✔ C2-06 coder send_message guard covers every table refusal; inserts nothing (107.311079ms)
|
||||
✔ C2-06 research send_message guard covers every table refusal; inserts nothing (92.235404ms)
|
||||
✔ C2-06 stored check carries the file author trailer at an unrelated cited tip (59.017311ms)
|
||||
✔ C2-06 supporting cite cannot state canon, including a folder also marked playground (41.107066ms)
|
||||
✔ C2-06 supporting file stores supporting scope and its real agent trailer (47.696908ms)
|
||||
✔ C2-06 check evidence and insert are atomic when storing evidence fails (41.214066ms)
|
||||
✔ C2-06 live limits change both directions; unreadable file keeps checks and exact fixed texts (54.665908ms)
|
||||
✔ C2-06 page store is session-local, caps 20 fetches and 200 KiB, drops at disconnect (86.001777ms)
|
||||
✔ C2-06 transport passes safe capped guard reason; ordinary refusal envelope is byte-identical (55.168942ms)
|
||||
✔ C2-06 non-library businesses retain role.claim shape and unguarded free sends (26.744539ms)
|
||||
✔ C2-06 thread messages carry file/last evidence with one read per distinct path (79.212003ms)
|
||||
✔ C2-06 guarded request snapshot cannot change between check and insert (24.722314ms)
|
||||
✔ C2-06 library.limits.set is human-only and invalid settings leave file and receipts unchanged (41.933148ms)
|
||||
ℹ tests 13
|
||||
ℹ suites 0
|
||||
ℹ pass 13
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 841.716764
|
||||
@@ -1,21 +0,0 @@
|
||||
✔ C2-06 coder send_message guard covers every table refusal; inserts nothing (110.781773ms)
|
||||
✔ C2-06 research send_message guard covers every table refusal; inserts nothing (91.548051ms)
|
||||
✔ C2-06 stored check carries the file author trailer at an unrelated cited tip (57.119223ms)
|
||||
✔ C2-06 supporting cite cannot state canon, including a folder also marked playground (40.819326ms)
|
||||
✔ C2-06 supporting file stores supporting scope and its real agent trailer (47.776616ms)
|
||||
✔ C2-06 check evidence and insert are atomic when storing evidence fails (41.268825ms)
|
||||
✔ C2-06 live limits change both directions; unreadable file keeps checks and exact fixed texts (53.375873ms)
|
||||
✔ C2-06 page store is session-local, caps 20 fetches and 200 KiB, drops at disconnect (82.822565ms)
|
||||
✔ C2-06 transport passes safe capped guard reason; ordinary refusal envelope is byte-identical (54.131458ms)
|
||||
✔ C2-06 non-library businesses retain role.claim shape and unguarded free sends (26.350984ms)
|
||||
✔ C2-06 thread messages carry file/last evidence with one read per distinct path (80.819295ms)
|
||||
✔ C2-06 guarded request snapshot cannot change between check and insert (26.401011ms)
|
||||
✔ C2-06 library.limits.set is human-only and invalid settings leave file and receipts unchanged (41.116925ms)
|
||||
ℹ tests 13
|
||||
ℹ suites 0
|
||||
ℹ pass 13
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 839.688386
|
||||
@@ -1,23 +0,0 @@
|
||||
eeca81ab965f9e94f930ee5f51d16f019af6368bc6c3994895e204f7a54ec8d2 packages/bus/src/broker.mjs
|
||||
ad3c686a089f67f3c89610937c6fc9b32367cea5d9735125d89bef042082d4e8 packages/bus/src/client.mjs
|
||||
36b05dd3119e5929211aa1cc5d45c5043f5a1c34567ddc7cac8f002835d44abe packages/bus/src/runtime.mjs
|
||||
66b26d131a19f4f411686427274936850c1ff0aed11e9b281ae4aadcf4b289fc packages/bus/src/server.mjs
|
||||
cdd0304ec25ef1ad3e31c52502fa46f2c80bd77c8d3c2e13f8ed4b5328f342c9 packages/bus/tests/citation-availability.test.mjs
|
||||
2e05074cd9d15d810103658af3858161cee2af78b0a2e1ba910222fab3e84401 packages/bus/tests/citation-guard.test.mjs
|
||||
2c7a2102e2e0244876e41b664f4f706baefe3375100b956655551db1230f5da3 packages/bus/tests/citation-helpers.mjs
|
||||
9768b6dc5ae078c5cc4f76473097287b74c5bc5853d39e1f57f153e646f861af packages/bus/tests/citation-runtime.test.mjs
|
||||
abaeac64f2c3bf8ba83c9a4488edd9105c4707a6564560c5333d5421445653af packages/business/src/business.mjs
|
||||
3a6044de5d1ca2cc35c5285b460c3e402b4274837e5d88b97f489797f6004903 packages/business/src/organization.mjs
|
||||
4d2eb11beaa80175e524af1b95c81e7164990fba1d3e1754f5ba06eee390a14f packages/business/tests/reply-limits.test.mjs
|
||||
a2bb98734bcc2556f8b2168f0faf8a89f7064c3f0aa49feb7d1975d596192f09 packages/cli/README.md
|
||||
2f291a71f490f2741edada7a3e3788500f8976a08eb8ab1411f6c5982f778260 packages/cli/src/limits.mjs
|
||||
f38af2d46d5f5f6388f599912507b94b87a0bf9dcc2104bb2187c38ee35118d5 packages/cli/tests/reply-limits.test.mjs
|
||||
6ad72b4245e0a66e32725941900c1ece64c2e5de2fb73d65c8e042b4f3a691a6 packages/harness/src/runner.mjs
|
||||
a5ef1b65230239a7baf6d0e8f2b8a51c0516348c7c4339a55b3f0a1a6ff531ba packages/harness/tests/citation-runner.test.mjs
|
||||
330bc71bf6c7e64d3ddb70440903d2d9acf7878d44a49d7e30c2352ee4c807ec packages/harness/tests/fixtures/citation-adapter.mjs
|
||||
f710d9600a17f6e2989a289cfe84e58f161d86c7306605946ce05fa71b364eb2 packages/library/src/guard.mjs
|
||||
c0d630798914e300e461c247340533328e97119e54909c6a9406340e61fed8b7 packages/library/src/index.mjs
|
||||
98ef45ed61144aaea44d8aea1ac43082b6d340297e46846d01772da38728e530 packages/library/src/limits.mjs
|
||||
7b46f47b5e9d6b554b5d39bce2cd95c4610f5f35b8ab8fdc5a2864b3214be809 packages/library/src/reply-protocol.mjs
|
||||
406146ebbce3710f308243b684a1c17e7626c1b65a4468489364317e31537a48 packages/library/tests/guard.test.mjs
|
||||
39c8e6c8250a13fa43015fb2c407195e30ee642f729a9f6a644c38b4ea758a72 packages/seat/src/sandbox.mjs
|
||||
@@ -1,47 +0,0 @@
|
||||
✔ C2-06 coder send_message guard covers every table refusal; inserts nothing (109.280676ms)
|
||||
✔ C2-06 research send_message guard covers every table refusal; inserts nothing (94.019544ms)
|
||||
✔ C2-06 stored check carries the file author trailer at an unrelated cited tip (58.84355ms)
|
||||
✔ C2-06 supporting cite cannot state canon, including a folder also marked playground (42.275234ms)
|
||||
✔ C2-06 supporting file stores supporting scope and its real agent trailer (48.954969ms)
|
||||
✔ C2-06 check evidence and insert are atomic when storing evidence fails (41.628985ms)
|
||||
✔ C2-06 live limits change both directions; unreadable file keeps checks and exact fixed texts (54.367118ms)
|
||||
✔ C2-06 page store is session-local, caps 20 fetches and 200 KiB, drops at disconnect (85.049228ms)
|
||||
✖ C2-06 transport passes safe capped guard reason; ordinary refusal envelope is byte-identical (53.346085ms)
|
||||
✔ C2-06 non-library businesses retain role.claim shape and unguarded free sends (26.218776ms)
|
||||
✔ C2-06 thread messages carry file/last evidence with one read per distinct path (78.373306ms)
|
||||
✔ C2-06 guarded request snapshot cannot change between check and insert (24.622347ms)
|
||||
✔ C2-06 library.limits.set is human-only and invalid settings leave file and receipts unchanged (41.8227ms)
|
||||
ℹ tests 13
|
||||
ℹ suites 0
|
||||
ℹ pass 12
|
||||
ℹ fail 1
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 840.560306
|
||||
|
||||
✖ failing tests:
|
||||
|
||||
test at packages/bus/tests/citation-guard.test.mjs:116:1
|
||||
✖ C2-06 transport passes safe capped guard reason; ordinary refusal envelope is byte-identical (53.346085ms)
|
||||
AssertionError [ERR_ASSERTION]: The validation function is expected to return "true". Received false
|
||||
|
||||
Caught error:
|
||||
|
||||
Error: citation-invalid
|
||||
at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
|
||||
at async TestContext.<anonymous> (file:///mnt/storage/scratch/tmp/tNoueZ/row217-mutant-db3vgbd1/packages/bus/tests/citation-guard.test.mjs:121:3)
|
||||
at async Test.run (node:internal/test_runner/test:1409:7)
|
||||
at async Test.processPendingSubtests (node:internal/test_runner/test:974:7) {
|
||||
generatedMessage: true,
|
||||
code: 'ERR_ASSERTION',
|
||||
actual: Error: citation-invalid
|
||||
at Socket.<anonymous> (file:///mnt/storage/scratch/tmp/tNoueZ/row217-mutant-db3vgbd1/packages/bus/src/client.mjs:45:17)
|
||||
at Socket.emit (node:events:514:20)
|
||||
at addChunk (node:internal/streams/readable:575:12)
|
||||
at readableAddChunkPushByteMode (node:internal/streams/readable:526:3)
|
||||
at Readable.push (node:internal/streams/readable:406:5)
|
||||
at Pipe.onStreamRead (node:internal/stream_base_commons:189:23),
|
||||
operator: 'rejects',
|
||||
diff: 'simple'
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
✔ C2-06 held library lock gives the agent citation-unavailable and its retry reason (5143.590096ms)
|
||||
✔ C2-06 malformed sync state is availability failure, never a fabricated invalid cite (33.560438ms)
|
||||
✔ C2-06 no mirror or freshly initialized empty mirror still means no served citation (31.849587ms)
|
||||
ℹ tests 3
|
||||
ℹ suites 0
|
||||
ℹ pass 3
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 5290.343804
|
||||
-11
@@ -1,11 +0,0 @@
|
||||
✔ C2-06 held library lock gives the agent citation-unavailable and its retry reason (5131.56715ms)
|
||||
✔ C2-06 malformed sync state is availability failure, never a fabricated invalid cite (32.560014ms)
|
||||
✔ C2-06 no mirror or freshly initialized empty mirror still means no served citation (31.756895ms)
|
||||
ℹ tests 3
|
||||
ℹ suites 0
|
||||
ℹ pass 3
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 5271.350019
|
||||
-23
@@ -1,23 +0,0 @@
|
||||
eeca81ab965f9e94f930ee5f51d16f019af6368bc6c3994895e204f7a54ec8d2 packages/bus/src/broker.mjs
|
||||
ad3c686a089f67f3c89610937c6fc9b32367cea5d9735125d89bef042082d4e8 packages/bus/src/client.mjs
|
||||
36b05dd3119e5929211aa1cc5d45c5043f5a1c34567ddc7cac8f002835d44abe packages/bus/src/runtime.mjs
|
||||
66b26d131a19f4f411686427274936850c1ff0aed11e9b281ae4aadcf4b289fc packages/bus/src/server.mjs
|
||||
cdd0304ec25ef1ad3e31c52502fa46f2c80bd77c8d3c2e13f8ed4b5328f342c9 packages/bus/tests/citation-availability.test.mjs
|
||||
2e05074cd9d15d810103658af3858161cee2af78b0a2e1ba910222fab3e84401 packages/bus/tests/citation-guard.test.mjs
|
||||
2c7a2102e2e0244876e41b664f4f706baefe3375100b956655551db1230f5da3 packages/bus/tests/citation-helpers.mjs
|
||||
9768b6dc5ae078c5cc4f76473097287b74c5bc5853d39e1f57f153e646f861af packages/bus/tests/citation-runtime.test.mjs
|
||||
abaeac64f2c3bf8ba83c9a4488edd9105c4707a6564560c5333d5421445653af packages/business/src/business.mjs
|
||||
3a6044de5d1ca2cc35c5285b460c3e402b4274837e5d88b97f489797f6004903 packages/business/src/organization.mjs
|
||||
4d2eb11beaa80175e524af1b95c81e7164990fba1d3e1754f5ba06eee390a14f packages/business/tests/reply-limits.test.mjs
|
||||
a2bb98734bcc2556f8b2168f0faf8a89f7064c3f0aa49feb7d1975d596192f09 packages/cli/README.md
|
||||
2f291a71f490f2741edada7a3e3788500f8976a08eb8ab1411f6c5982f778260 packages/cli/src/limits.mjs
|
||||
f38af2d46d5f5f6388f599912507b94b87a0bf9dcc2104bb2187c38ee35118d5 packages/cli/tests/reply-limits.test.mjs
|
||||
6ad72b4245e0a66e32725941900c1ece64c2e5de2fb73d65c8e042b4f3a691a6 packages/harness/src/runner.mjs
|
||||
a5ef1b65230239a7baf6d0e8f2b8a51c0516348c7c4339a55b3f0a1a6ff531ba packages/harness/tests/citation-runner.test.mjs
|
||||
330bc71bf6c7e64d3ddb70440903d2d9acf7878d44a49d7e30c2352ee4c807ec packages/harness/tests/fixtures/citation-adapter.mjs
|
||||
f710d9600a17f6e2989a289cfe84e58f161d86c7306605946ce05fa71b364eb2 packages/library/src/guard.mjs
|
||||
c0d630798914e300e461c247340533328e97119e54909c6a9406340e61fed8b7 packages/library/src/index.mjs
|
||||
98ef45ed61144aaea44d8aea1ac43082b6d340297e46846d01772da38728e530 packages/library/src/limits.mjs
|
||||
7b46f47b5e9d6b554b5d39bce2cd95c4610f5f35b8ab8fdc5a2864b3214be809 packages/library/src/reply-protocol.mjs
|
||||
406146ebbce3710f308243b684a1c17e7626c1b65a4468489364317e31537a48 packages/library/tests/guard.test.mjs
|
||||
39c8e6c8250a13fa43015fb2c407195e30ee642f729a9f6a644c38b4ea758a72 packages/seat/src/sandbox.mjs
|
||||
@@ -1,70 +0,0 @@
|
||||
✖ C2-06 held library lock gives the agent citation-unavailable and its retry reason (5104.72293ms)
|
||||
✖ C2-06 malformed sync state is availability failure, never a fabricated invalid cite (35.117198ms)
|
||||
✔ C2-06 no mirror or freshly initialized empty mirror still means no served citation (31.286656ms)
|
||||
ℹ tests 3
|
||||
ℹ suites 0
|
||||
ℹ pass 1
|
||||
ℹ fail 2
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 5250.151124
|
||||
|
||||
✖ failing tests:
|
||||
|
||||
test at packages/bus/tests/citation-availability.test.mjs:13:1
|
||||
✖ C2-06 held library lock gives the agent citation-unavailable and its retry reason (5104.72293ms)
|
||||
AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:
|
||||
+ actual - expected
|
||||
|
||||
+ 'citation-invalid'
|
||||
- 'citation-unavailable'
|
||||
^
|
||||
|
||||
at Object.<anonymous> (file:///mnt/storage/scratch/tmp/tNoueZ/row217-mutant-xglaeqeb/packages/bus/tests/citation-availability.test.mjs:29:14)
|
||||
at expectedException (node:assert:547:17)
|
||||
at expectsError (node:assert:672:21)
|
||||
at strict.rejects (node:assert:738:3)
|
||||
at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
|
||||
at async file:///mnt/storage/scratch/tmp/tNoueZ/row217-mutant-xglaeqeb/packages/bus/tests/citation-availability.test.mjs:28:5
|
||||
at async withLibraryLock (file:///mnt/storage/scratch/tmp/tNoueZ/row217-mutant-xglaeqeb/packages/library/src/mirror.mjs:171:18)
|
||||
at async TestContext.<anonymous> (file:///mnt/storage/scratch/tmp/tNoueZ/row217-mutant-xglaeqeb/packages/bus/tests/citation-availability.test.mjs:27:3)
|
||||
at async Test.run (node:internal/test_runner/test:1409:7)
|
||||
at async startSubtestAfterBootstrap (node:internal/test_runner/harness:387:3) {
|
||||
generatedMessage: true,
|
||||
code: 'ERR_ASSERTION',
|
||||
actual: 'citation-invalid',
|
||||
expected: 'citation-unavailable',
|
||||
operator: 'strictEqual',
|
||||
diff: 'simple'
|
||||
}
|
||||
|
||||
test at packages/bus/tests/citation-availability.test.mjs:40:1
|
||||
✖ C2-06 malformed sync state is availability failure, never a fabricated invalid cite (35.117198ms)
|
||||
AssertionError [ERR_ASSERTION]: Expected values to be strictly deep-equal:
|
||||
+ actual - expected
|
||||
|
||||
Comparison {
|
||||
+ code: 'citation-invalid'
|
||||
- code: 'citation-unavailable'
|
||||
}
|
||||
|
||||
at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
|
||||
at async TestContext.<anonymous> (file:///mnt/storage/scratch/tmp/tNoueZ/row217-mutant-xglaeqeb/packages/bus/tests/citation-availability.test.mjs:45:3)
|
||||
at async Test.run (node:internal/test_runner/test:1409:7)
|
||||
at async Test.processPendingSubtests (node:internal/test_runner/test:974:7) {
|
||||
generatedMessage: true,
|
||||
code: 'ERR_ASSERTION',
|
||||
actual: Error: citation-invalid: citation 1 (Book One/Characters/Mara Vell.md) isn't an indexed file at a commit reachable from the served commit
|
||||
at refuse (file:///mnt/storage/scratch/tmp/tNoueZ/row217-mutant-xglaeqeb/packages/library/src/guard.mjs:24:42)
|
||||
at checkReply (file:///mnt/storage/scratch/tmp/tNoueZ/row217-mutant-xglaeqeb/packages/library/src/guard.mjs:80:25)
|
||||
at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
|
||||
at async waitForActual (node:assert:615:5)
|
||||
at async strict.rejects (node:assert:738:25)
|
||||
at async TestContext.<anonymous> (file:///mnt/storage/scratch/tmp/tNoueZ/row217-mutant-xglaeqeb/packages/bus/tests/citation-availability.test.mjs:45:3)
|
||||
at async Test.run (node:internal/test_runner/test:1409:7)
|
||||
at async Test.processPendingSubtests (node:internal/test_runner/test:974:7),
|
||||
expected: { code: 'citation-unavailable' },
|
||||
operator: 'rejects',
|
||||
diff: 'simple'
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
M1-writer-fence: killed (control green, mutant exit 1, hashes restored, restored green)
|
||||
M2-incoming-human: killed (control green, mutant exit 1, hashes restored, restored green)
|
||||
M3-split-check-transaction: killed (control green, mutant exit 1, hashes restored, restored green)
|
||||
M5-hide-library-unavailable: killed (control green, mutant exit 1, hashes restored, restored green)
|
||||
M4-drop-client-reason: killed (control green, mutant exit 1, hashes restored, restored green)
|
||||
@@ -1,3 +0,0 @@
|
||||
npm warn deprecated [email protected]: Use your platform's native DOMException instead
|
||||
|
||||
added 128 packages in 2s
|
||||
@@ -1,2 +0,0 @@
|
||||
|
||||
added 2 packages in 205ms
|
||||
@@ -1,9 +0,0 @@
|
||||
✔ C2-06 runtime reads changed and unreadable reply limits without restarting (118.083931ms)
|
||||
ℹ tests 1
|
||||
ℹ suites 0
|
||||
ℹ pass 1
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 227.817729
|
||||
@@ -1,234 +0,0 @@
|
||||
npm notice run @mosaic/[email protected] test
|
||||
npm notice run node --test tests/
|
||||
✔ C2-04: ensureCheckouts skips a library before a real clone and leaves no books path (66.766764ms)
|
||||
✔ a first launch clones the root at its branch, with the root's path as origin (47.521672ms)
|
||||
✔ the clone is not at its place until git clone has finished (31.999361ms)
|
||||
✔ a later launch fast-forwards a clean clone after a commit to the root, then finds it current (87.563022ms)
|
||||
✔ a clone ahead of the root keeps its commits and counts as current (53.447311ms)
|
||||
▶ a dirty clone and one on another branch are fetched, and nothing but refs/remotes moves
|
||||
✔ a modified file (53.258759ms)
|
||||
✔ an untracked file (52.286642ms)
|
||||
✔ a staged file (55.132154ms)
|
||||
✔ another branch (53.48074ms)
|
||||
✔ a detached HEAD (54.504119ms)
|
||||
✔ a dirty clone and one on another branch are fetched, and nothing but refs/remotes moves (269.989404ms)
|
||||
✔ a diverged clone gets the fetch into refs/remotes and is kept, not-fast-forward (53.461206ms)
|
||||
▶ a clone kept before the branch check, or for a failed status, gets no fetch
|
||||
✔ not-a-clone (27.485728ms)
|
||||
✔ hooks-present (31.094616ms)
|
||||
✔ submodule (38.060187ms)
|
||||
✔ config-changed (36.195255ms)
|
||||
✔ root-unreadable (36.385271ms)
|
||||
✔ root-detached (39.627905ms)
|
||||
✔ status-failed, on the root's branch and clean (42.704327ms)
|
||||
✔ status-failed, dirty (44.881211ms)
|
||||
✔ a clone kept before the branch check, or for a failed status, gets no fetch (297.899967ms)
|
||||
✔ a dirty clone whose fetch fails is kept, fetch-failed, exactly as it was (47.755395ms)
|
||||
✔ every git call the host makes, for a new clone and an existing one, carries maintenance.auto=false and gc.auto=0 (57.603139ms)
|
||||
✔ a clone with loose objects enough for gc --auto gets no maintenance or gc from the fetch and the merge (89.466874ms)
|
||||
▶ a clone with user.name or user.email in its config is kept, and git runs nothing in it
|
||||
✔ user.name (28.628791ms)
|
||||
✔ user.email (30.423895ms)
|
||||
✔ a clone with user.name or user.email in its config is kept, and git runs nothing in it (59.627127ms)
|
||||
✔ a commit git can't read after the fast-forward is null (57.084762ms)
|
||||
✔ a new clone whose commit can't be read refuses the launch and leaves nothing behind (21.081119ms)
|
||||
▶ a clone the session rigged is kept, and git runs nothing and writes nothing outside it
|
||||
✔ core.fsmonitor (39.453854ms)
|
||||
✔ core.hooksPath (34.616469ms)
|
||||
✔ a hook file (35.090442ms)
|
||||
✔ include.path (34.527401ms)
|
||||
✔ includeIf (35.13899ms)
|
||||
✔ a filter driver (34.195382ms)
|
||||
✔ origin moved (37.391948ms)
|
||||
✔ a second origin url (35.731817ms)
|
||||
✔ the origin url twice, both the root (33.999145ms)
|
||||
✔ an ext:: origin (31.652835ms)
|
||||
✔ a branch tracking another remote (33.3147ms)
|
||||
✔ a branch merging a tag (33.72502ms)
|
||||
✔ a fetch line onto local branches (34.126505ms)
|
||||
✔ no origin (32.973963ms)
|
||||
✔ a config file over the size cap (30.967833ms)
|
||||
✔ config a symlink to /dev/zero (31.51332ms)
|
||||
✔ the clone a symlink to the bait (32.976685ms)
|
||||
✔ the clone a file (39.528201ms)
|
||||
✔ the clone a plain directory (32.193931ms)
|
||||
✔ .git a gitdir: file (31.732811ms)
|
||||
✔ .git a symlink (36.499471ms)
|
||||
✔ .git/logs a symlink (34.327705ms)
|
||||
✔ .git/refs/heads a symlink (30.308688ms)
|
||||
✔ .git/objects a symlink (28.895664ms)
|
||||
✔ a reflog hard-linked to a file outside (28.33422ms)
|
||||
✔ HEAD a fifo (29.791372ms)
|
||||
✔ a commondir file (30.182546ms)
|
||||
✔ an alternates file (30.414863ms)
|
||||
✔ a gitlink staged, no .gitmodules (42.003032ms)
|
||||
✔ a gitlink and .gitmodules staged (47.484582ms)
|
||||
✔ a gitlink to a repository with its own gitlink (53.625899ms)
|
||||
✔ a gitlink and .gitmodules committed (45.90129ms)
|
||||
✔ a gitlink and submodule.active in config (43.005636ms)
|
||||
✔ a .git/modules with no gitlink (31.240083ms)
|
||||
✔ a clone the session rigged is kept, and git runs nothing and writes nothing outside it (1201.693467ms)
|
||||
▶ a root that can't be cloned refuses with the project id and leaves nothing behind
|
||||
✔ missing (9.543898ms)
|
||||
✔ not a repository (9.15995ms)
|
||||
✔ a plain directory inside another repository (13.291966ms)
|
||||
✔ unreadable (10.409599ms)
|
||||
✔ on no branch (11.130486ms)
|
||||
✔ missing an object (14.936384ms)
|
||||
✔ a root that can't be cloned refuses with the project id and leaves nothing behind (69.273079ms)
|
||||
✔ a clone whose root is on no branch, or gone, is kept and named (28.705151ms)
|
||||
✔ no credential or forge remote of the root reaches a clone (46.990023ms)
|
||||
✔ every project in the business file gets its own clone at its own branch (32.655381ms)
|
||||
✔ a clone past its time gets SIGTERM and refuses the launch, with nothing left in the workspace (514.003804ms)
|
||||
✔ a clone that ignores SIGTERM gets SIGKILL once the grace period is over (1016.843724ms)
|
||||
✔ a timeout signals git's process group, so a process git started dies with it (515.051887ms)
|
||||
✔ once a signalled git has closed, its group gets SIGKILL, so a process that ignored SIGTERM dies too (514.556145ms)
|
||||
✔ the budget is the setting's whole number of bytes from 1 MiB to 1 GiB, and the default for anything else (1.567727ms)
|
||||
✔ a stream past the default budget is not-collected with a lower bound, and a later collection catches up (65.101994ms)
|
||||
✔ a budget smaller than the streams counts over several collections, once each, and is known when it catches up (2.599724ms)
|
||||
✔ a line split across reads counts once (9.33078ms)
|
||||
✔ Claude history from before the ledger makes the first Pi collection harness-unsupported, for good (1.440992ms)
|
||||
✔ an empty claude-projects/ is no Claude history, and one filled after the ledger exists isn't checked (1.428192ms)
|
||||
✔ a claude-projects/ that can't be read records nothing, and the next collection checks again (1.330216ms)
|
||||
✔ the stream cap is the setting's whole number from 32 to 65536, and the default for anything else (0.16791ms)
|
||||
✔ more streams than the cap is not-collected, with cursors only for the streams opened, and a larger cap catches up (2.344595ms)
|
||||
✔ the default cap opens STREAMS streams and writes no more cursor lines than that (52.65919ms)
|
||||
✔ row 307 the known ledger row 270 wrote reads the same count (4.720302ms)
|
||||
✔ row 307 after the known ledger, one collection through pi's module answers the next count (3.122956ms)
|
||||
✔ row 307 the store-incomplete ledger row 270 wrote reads the same count (1.172174ms)
|
||||
✔ row 307 after the store-incomplete ledger, one collection through pi's module answers the next count (1.473641ms)
|
||||
✔ row 307 the store-unreadable ledger row 270 wrote reads the same count (1.233218ms)
|
||||
✔ row 307 after the store-unreadable ledger, one collection through pi's module answers the next count (1.478165ms)
|
||||
✔ row 307 the not-collected ledger row 270 wrote reads the same count (1.059533ms)
|
||||
✔ row 307 after the not-collected ledger, one collection through pi's module answers the next count (2.381792ms)
|
||||
✔ row 307 the claude-code ledger row 270 wrote reads the same count (1.16785ms)
|
||||
✔ row 307 after the claude-code ledger, one collection through pi's module answers the next count (1.422304ms)
|
||||
✔ row 307 the claude-history ledger row 270 wrote reads the same count (2.943093ms)
|
||||
✔ row 307 after the claude-history ledger, one collection through pi's module answers the next count (1.5333ms)
|
||||
✔ row 307 the torn ledger row 270 wrote reads the same count (1.006203ms)
|
||||
✔ row 307 after the torn ledger, one collection through pi's module answers the next count (2.284545ms)
|
||||
✔ row 307 core refuses an answer outside the contract and appends nothing (8.468181ms)
|
||||
✔ row 307 the module gets the store's two native directories, a copy of the cursors, the budget, the cap and first (2.320411ms)
|
||||
✔ an empty store, a store with no compaction and a failed start count 0, known (7.138038ms)
|
||||
✔ one and three completed compactions (2.441636ms)
|
||||
✔ a compaction copied into a branched stream counts once, under the stream it was first seen in (3.056ms)
|
||||
✔ one collection over two streams holding the same copy counts it once and writes it once (1.831681ms)
|
||||
✔ the same entry id at another time in another stream is another compaction (1.582065ms)
|
||||
✔ resume: each collection reads past its cursor and writes a key once (2.114301ms)
|
||||
✔ a partial trailing line waits for its newline (1.624959ms)
|
||||
✔ a missing ledger is not-collected and an unreadable one store-unreadable, never 0 (1.322325ms)
|
||||
✔ a symlinked ledger is store-unreadable and is not written through (1.293154ms)
|
||||
✔ a torn last ledger line makes the count unknown, a lower bound, and stays so (2.167108ms)
|
||||
✔ a bad ledger line in the middle makes the count unknown (3.331232ms)
|
||||
▶ a stream that shrank, changed under its cursor or went away is store-incomplete for good
|
||||
✔ shrink (2.038847ms)
|
||||
✔ rewrite (1.477185ms)
|
||||
✔ remove (1.974024ms)
|
||||
✔ a stream that shrank, changed under its cursor or went away is store-incomplete for good (6.254361ms)
|
||||
✔ a stream that isn't a regular file or a Pi session is store-unreadable, and that passes (1.252704ms)
|
||||
✔ a first line that isn't a session header is store-unreadable (1.120253ms)
|
||||
✔ a Claude run is harness-unsupported, and stays so after a Pi run (1.273691ms)
|
||||
✔ storeDir is the store sessionStore makes, without making it (1.538256ms)
|
||||
✔ the ledger is under no sandbox mount (5.456112ms)
|
||||
✔ rootHits: a top-level file, a new top-level directory, src/ and v1/ are the root; paths under known directories aren't (1.861197ms)
|
||||
✔ gateEnv keeps the named variables that are strings and drops everything else (0.310846ms)
|
||||
✔ isMosaicStack: a checkout whose HEAD descends from the root commit and has node_modules; nothing else (76.743834ms)
|
||||
✔ gateSteps: each package with tests but queue in name order, then each scripts/test-*.sh (2.377262ms)
|
||||
✔ runGate: every step passes, each with its own log and a summary line, under the environment it was given (211.160741ms)
|
||||
✔ runGate: the first failing step stops the gate and names its log (269.569796ms)
|
||||
✔ runGate: an abort stops the running step and everything in its group, and runs nothing after it (185.986993ms)
|
||||
✔ the CLI: root-file prints the hits and exits 2, or exits 0; gate exits 0, or 2 with the step and its log; anything else is usage (661.443234ms)
|
||||
✔ T3: publish pushes the work commit by oid to <user>/<branch> on the fork, with the token only through the helper (318.365034ms)
|
||||
✔ T3: the token is never in git's argv, the fork URL included; it reaches git on fd 3 only (157.63501ms)
|
||||
✔ T3: a moved fork branch refuses non-fast-forward; no + and no force (173.077055ms)
|
||||
✔ T3: D9a: an empty fork and an unrelated fork refuse remote-unrelated; a missing fork refuses fork-unavailable (379.595919ms)
|
||||
✔ T3: a fork past main refuses remote-unrelated until root catches up (152.254688ms)
|
||||
✔ T3: a wrong token refuses fork-unavailable; git's stderr isn't in the refusal (102.972548ms)
|
||||
✔ T3: a 302 is not followed: fork-unavailable, and the target sees no request (113.352932ms)
|
||||
✔ T3: the helper answers only the fork's host and port: a fork on another port gets no token (95.099891ms)
|
||||
✔ T3: a fork that echoes the token refuses credential-leak (131.28193ms)
|
||||
✔ T3: no tls parameter, no trust: the scratch CA reaches git only through it (91.935601ms)
|
||||
✔ D9 steps 3 and 4: ref-moved and identity-mismatch refuse before any request (143.070058ms)
|
||||
✔ publishRemote refuses a fork, user or destination that isn't shell- and ref-safe before any git (88.646013ms)
|
||||
✔ RUNNER_FILES is exactly what the runner and the harness sources it starts import (7.032234ms)
|
||||
✔ sandboxProblem names a missing bwrap and a bwrap that fails (15.78888ms)
|
||||
✔ every bind says why; the bundle and session file stay read-only over the run directory (2.196421ms)
|
||||
✔ row 65 a harness module's mounts bind read-only after the adapter, each with the module's reason (2.143393ms)
|
||||
✔ REQ-THREAD-2 a thread store binds its session directory and Claude transcripts, and nothing more (1.644658ms)
|
||||
✔ the host's git socket is bound only when given, read-only and before the writable binds (1.090126ms)
|
||||
✔ the git identity is the instance's, at <instance>@<business>.mosaic.invalid, and sandboxArgv refuses without it (1.690862ms)
|
||||
✔ a confined session's shell reaches its own workspace and run directory and nothing of the founder's or another session's (2106.854649ms)
|
||||
✔ a bind that exposes a stand-in, or a missing workspace bind, fails the matching check (2924.249794ms)
|
||||
✔ a confined session that runs tester-cli.mjs is refused as tester, and the same shim outside the sandbox binds (300.518853ms)
|
||||
✔ resolveSeat: by name under --repo resolves the repo layout (2.419588ms)
|
||||
✔ resolveSeat: by path resolves the fleet layout (0.765582ms)
|
||||
✔ resolveSeat: refusals for missing dir, missing launch.sh, non-executable launch.sh, invalid name, and unknown layout (1.626754ms)
|
||||
✔ tmuxContext: outside tmux, default socket, custom socket, and exec failure (1.236572ms)
|
||||
✔ makeRegistration produces a record that validates; each shape violation throws SeatError (1.593741ms)
|
||||
✔ writeRegistration/readRegistration: round trip, permissions, absence, and malformed records (2.34318ms)
|
||||
✔ updateTask: changes task, taskSetBy and updatedAt only, and refuses appropriately (2.203796ms)
|
||||
✔ CLI launch: registers, execs the fake launch script, and passes args through (66.404825ms)
|
||||
✔ CLI launch: --harness lands in the record (50.392752ms)
|
||||
✔ CLI launch: the launch script's own exit code passes through (46.659659ms)
|
||||
✔ CLI launch: relaunching a seat rewrites the one registration record (89.26575ms)
|
||||
✔ CLI launch: omitting --task records an empty string, not null (39.318048ms)
|
||||
✔ CLI seat task: updates only the task after a launch, and refuses on an unlaunched seat (96.331713ms)
|
||||
✔ CLI refusals: no args, unknown flag, missing config, already-registered env, and exec failure (164.27632ms)
|
||||
✔ samePath: equal paths, symlinked dirs, distinct dirs, and non-strings (0.422092ms)
|
||||
✔ resolveSetBy: explicit --by wins over the environment; absent or empty environment gives unknown; invalid explicit or environment values refuse with exit 4 (0.590318ms)
|
||||
✔ validateRegistration/readRegistration: taskSetBy is optional; a record without it (written before #1511) still loads unchanged; an invalid one is refused; the version does not change (0.734057ms)
|
||||
✔ updateTask: records setBy, preserves startedAt and every unrelated field, upgrades an old record in place only when the task is set, and replaces a previous attribution (0.906133ms)
|
||||
✔ CLI seat task: --by beats MOSAIC_AGENT_NAME, the environment beats nothing, empty environment is unknown, invalid --by or environment refuses with exit 4 and leaves the record byte for byte (330.90649ms)
|
||||
✔ REQ-THREAD-2 sessionStore: a legacy session keeps the thread's store, any other gets sessions/<s>/, each segment checked first (5.360486ms)
|
||||
✔ REQ-THREAD-2 sessionStore refuses legacy-store-unmapped for a thread whose old store no legacy session maps (1.608175ms)
|
||||
✔ REQ-THREAD-2 sessionWorkspace: private directories per session, unsafe segments and overlaps refused (3.523108ms)
|
||||
✔ REQ-THREAD-2 lockSessionWorkspace: one writer; a live host or run holds it, a stale lock is taken over, an unreadable one holds (15.189866ms)
|
||||
✔ REQ-THREAD-2 sessions.json v2: entries carry session and workspace, running() keys on the session, a v1 file still reads (1.889362ms)
|
||||
✔ REQ-LIMIT-1: family substring matching is no longer exported (1.378459ms)
|
||||
✔ sessionEnv passes only the allowlist, the repo's bin on PATH, and the run id (1.063207ms)
|
||||
✔ ZAI_API_KEY passes the session allowlist, and ZAI_TOKEN does not (0.239826ms)
|
||||
✔ sessionExit gives a runner's signal death back as the signal; a session credential is one whole set of nonempty variables (0.405172ms)
|
||||
✔ newRun: short ids, 0700 directories, and a refusal when the socket path won't fit (2.727102ms)
|
||||
✔ session file and launch log: 0600, the session file written once (2.111664ms)
|
||||
✔ endReason maps the runner's exit codes; a signal is killed (0.220582ms)
|
||||
✔ Registry mirrors to sessions.json; readSessions marks live entries; bad files refuse (2.216711ms)
|
||||
✔ a read-only Registry never writes sessions.json, refuses add() and leaves the file on remove() (2.154331ms)
|
||||
✔ REQ-THREAD-1 Registry.running keys a thread run by business, instance and thread (1.027065ms)
|
||||
✔ REQ-THREAD-2 REQ-LAUNCH-1 threadStore checks both segments before the join and refuses an unsafe directory (2.628544ms)
|
||||
✔ stopSession refuses an unknown run, reports a stale one, and won't signal a pid that isn't a runner (1.552738ms)
|
||||
✔ a session runs in its sandbox as pid 1 of its namespace, claims, answers, and stops on mosaic stop (293.088316ms)
|
||||
✔ workRef and validBranch take only what a ref name can hold (2.280976ms)
|
||||
✔ a push lands as the task's work ref, a fast-forward lands after it, and main is the root's (187.443563ms)
|
||||
✔ a rewritten branch refuses non-fast-forward and the work ref stays (124.192671ms)
|
||||
✔ a branch with no history in common with main refuses unrelated-history (60.579235ms)
|
||||
✔ a bundle that needs commits the working repository lacks refuses missing-prerequisite (51.079109ms)
|
||||
✔ the root is fetched again before each push and main follows it, so a clone of a newer root pushes (129.47937ms)
|
||||
✔ a root moved back after the clone leaves the push's base unknown: missing-prerequisite (78.854404ms)
|
||||
✔ a commit with a broken object refuses invalid-bundle, and only because fsck is on (86.468293ms)
|
||||
✔ only a v2 bundle with the named branch is read (64.914471ms)
|
||||
✔ a branch named main, or named for another task, moves only this task's work ref (102.371349ms)
|
||||
✔ a record that throws moves the work ref back, or removes a new one (141.771502ms)
|
||||
✔ a work ref that can't go back refuses rollback-failed, naming the ref and the commit (362.776758ms)
|
||||
✔ a root that can't be read refuses root-unreadable (28.853641ms)
|
||||
✔ a git past its time gets SIGTERM, leaves no ref lock, and the next push lands (2132.860162ms)
|
||||
✔ a git that ignores SIGTERM gets SIGKILL once the grace period is over (1025.936026ms)
|
||||
✔ a working repository path that isn't a directory refuses (23.030329ms)
|
||||
✔ review bundles a pushed commit as refs/mosaic/review, leaving out what the reviewer has (120.899663ms)
|
||||
✔ review of a project with no working repository refuses unknown-commit (14.031146ms)
|
||||
✔ the runner's git tools hold the host's limits and branch rule (1.219295ms)
|
||||
✔ a reseed moves root but leaves a landed main, and main forwards once root contains it (184.469774ms)
|
||||
✔ after a landing, a push built on the root still lands and main stays where the landing put it (126.530409ms)
|
||||
✔ once the root shares no history with a landed main, a push is checked against main, not the root (179.004093ms)
|
||||
✔ a landing squashes the reviewed diff onto main as the bus host and moves main only at finish (105.224989ms)
|
||||
✔ a landing refuses ref-moved, base-conflict and root-file before it makes a commit (308.132399ms)
|
||||
✔ a landing whose applied diff isn't the reviewed one refuses patch-drift and leaves no worktree (121.415385ms)
|
||||
✔ finish refuses base-moved when main moved, and a record that throws moves main back (242.643351ms)
|
||||
✔ halted push receipt rolls back only its unrecorded ref and cleans temporary refs (198.696687ms)
|
||||
ℹ tests 218
|
||||
ℹ suites 0
|
||||
ℹ pass 218
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 6318.071226
|
||||
@@ -1,202 +0,0 @@
|
||||
{
|
||||
"base": "e0c6142f3",
|
||||
"testedRevision": "2d274a5b6c35c3e74b07206ffd724a6579bb149d",
|
||||
"tmpdir": "/mnt/storage/scratch/tmp/tNoueZ",
|
||||
"wholeSuites": {
|
||||
"library": {
|
||||
"tests": 142,
|
||||
"pass": 142,
|
||||
"fail": 0,
|
||||
"cancelled": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"business": {
|
||||
"tests": 270,
|
||||
"pass": 270,
|
||||
"fail": 0,
|
||||
"cancelled": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"bus": {
|
||||
"tests": 974,
|
||||
"pass": 974,
|
||||
"fail": 0,
|
||||
"cancelled": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"cli": {
|
||||
"tests": 988,
|
||||
"pass": 988,
|
||||
"fail": 0,
|
||||
"cancelled": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"harness": {
|
||||
"tests": 172,
|
||||
"pass": 172,
|
||||
"fail": 0,
|
||||
"cancelled": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"seat": {
|
||||
"tests": 218,
|
||||
"pass": 218,
|
||||
"fail": 0,
|
||||
"cancelled": 0,
|
||||
"skipped": 0
|
||||
}
|
||||
},
|
||||
"touched": {
|
||||
"touched-first": {
|
||||
"tests": 57,
|
||||
"pass": 56,
|
||||
"fail": 1,
|
||||
"cancelled": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"touched-rerun": {
|
||||
"tests": 57,
|
||||
"pass": 57,
|
||||
"fail": 0,
|
||||
"cancelled": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"availability-green": {
|
||||
"tests": 3,
|
||||
"pass": 3,
|
||||
"fail": 0,
|
||||
"cancelled": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"runtime-fixture-retry": {
|
||||
"tests": 1,
|
||||
"pass": 1,
|
||||
"fail": 0,
|
||||
"cancelled": 0,
|
||||
"skipped": 0
|
||||
}
|
||||
},
|
||||
"mutants": {
|
||||
"M1-writer-fence": {
|
||||
"control": {
|
||||
"tests": 6,
|
||||
"pass": 6,
|
||||
"fail": 0,
|
||||
"cancelled": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"negative": {
|
||||
"tests": 6,
|
||||
"pass": 3,
|
||||
"fail": 3,
|
||||
"cancelled": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"restored": {
|
||||
"tests": 6,
|
||||
"pass": 6,
|
||||
"fail": 0,
|
||||
"cancelled": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"productHashesRestored": true
|
||||
},
|
||||
"M2-incoming-human": {
|
||||
"control": {
|
||||
"tests": 6,
|
||||
"pass": 6,
|
||||
"fail": 0,
|
||||
"cancelled": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"negative": {
|
||||
"tests": 6,
|
||||
"pass": 5,
|
||||
"fail": 1,
|
||||
"cancelled": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"restored": {
|
||||
"tests": 6,
|
||||
"pass": 6,
|
||||
"fail": 0,
|
||||
"cancelled": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"productHashesRestored": true
|
||||
},
|
||||
"M3-split-check-transaction": {
|
||||
"control": {
|
||||
"tests": 13,
|
||||
"pass": 13,
|
||||
"fail": 0,
|
||||
"cancelled": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"negative": {
|
||||
"tests": 13,
|
||||
"pass": 12,
|
||||
"fail": 1,
|
||||
"cancelled": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"restored": {
|
||||
"tests": 13,
|
||||
"pass": 13,
|
||||
"fail": 0,
|
||||
"cancelled": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"productHashesRestored": true
|
||||
},
|
||||
"M4-drop-client-reason": {
|
||||
"control": {
|
||||
"tests": 13,
|
||||
"pass": 13,
|
||||
"fail": 0,
|
||||
"cancelled": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"negative": {
|
||||
"tests": 13,
|
||||
"pass": 12,
|
||||
"fail": 1,
|
||||
"cancelled": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"restored": {
|
||||
"tests": 13,
|
||||
"pass": 13,
|
||||
"fail": 0,
|
||||
"cancelled": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"productHashesRestored": true
|
||||
},
|
||||
"M5-hide-library-unavailable": {
|
||||
"control": {
|
||||
"tests": 3,
|
||||
"pass": 3,
|
||||
"fail": 0,
|
||||
"cancelled": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"negative": {
|
||||
"tests": 3,
|
||||
"pass": 1,
|
||||
"fail": 2,
|
||||
"cancelled": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"restored": {
|
||||
"tests": 3,
|
||||
"pass": 3,
|
||||
"fail": 0,
|
||||
"cancelled": 0,
|
||||
"skipped": 0
|
||||
},
|
||||
"productHashesRestored": true
|
||||
}
|
||||
},
|
||||
"totalWholeSuiteTests": 2764
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
library: 142/142 pass; fail=0 skipped=0 cancelled=0
|
||||
business: 270/270 pass; fail=0 skipped=0 cancelled=0
|
||||
bus: 974/974 pass; fail=0 skipped=0 cancelled=0
|
||||
cli: 988/988 pass; fail=0 skipped=0 cancelled=0
|
||||
harness: 172/172 pass; fail=0 skipped=0 cancelled=0
|
||||
seat: 218/218 pass; fail=0 skipped=0 cancelled=0
|
||||
Touched rerun 57/57; first run 56/57, new runtime fixture corrected.
|
||||
M1-M5 killed; each control/restored run green, hashes restored.
|
||||
No old test failed or was edited. scripts/test-*.sh left to Sage at landing.
|
||||
@@ -1,80 +0,0 @@
|
||||
✔ C2-06 held library lock gives the agent citation-unavailable and its retry reason (5129.213097ms)
|
||||
✔ C2-06 malformed sync state is availability failure, never a fabricated invalid cite (32.312603ms)
|
||||
✔ C2-06 no mirror or freshly initialized empty mirror still means no served citation (31.769445ms)
|
||||
✔ C2-06 coder send_message guard covers every table refusal; inserts nothing (104.132156ms)
|
||||
✔ C2-06 research send_message guard covers every table refusal; inserts nothing (90.030314ms)
|
||||
✔ C2-06 stored check carries the file author trailer at an unrelated cited tip (57.202238ms)
|
||||
✔ C2-06 supporting cite cannot state canon, including a folder also marked playground (41.82067ms)
|
||||
✔ C2-06 supporting file stores supporting scope and its real agent trailer (47.52786ms)
|
||||
✔ C2-06 check evidence and insert are atomic when storing evidence fails (45.049883ms)
|
||||
✔ C2-06 live limits change both directions; unreadable file keeps checks and exact fixed texts (54.4217ms)
|
||||
✔ C2-06 page store is session-local, caps 20 fetches and 200 KiB, drops at disconnect (86.893454ms)
|
||||
✔ C2-06 transport passes safe capped guard reason; ordinary refusal envelope is byte-identical (55.019525ms)
|
||||
✔ C2-06 non-library businesses retain role.claim shape and unguarded free sends (26.383322ms)
|
||||
✔ C2-06 thread messages carry file/last evidence with one read per distinct path (76.778515ms)
|
||||
✔ C2-06 guarded request snapshot cannot change between check and insert (24.114008ms)
|
||||
✔ C2-06 library.limits.set is human-only and invalid settings leave file and receipts unchanged (47.161109ms)
|
||||
✖ C2-06 runtime reads changed and unreadable reply limits without restarting (78.402278ms)
|
||||
✔ C2-06 M11 human replacement works; omitted settings return to defaults (26.436831ms)
|
||||
✔ C2-06 M11 agents and tester cannot change settings, including by changing human (21.452407ms)
|
||||
✔ C2-06 M11 serialization cannot replace settings after the first fence (8.669666ms)
|
||||
✔ C2-06 M11 an unrelated actor cannot appoint itself human and change reply limits (8.204041ms)
|
||||
✔ C2-06 invalid setter values preserve the business and changes.jsonl (9.079346ms)
|
||||
✔ C2-06 validator accepts hand-edited settings; raw reader fails closed on invalid files (10.338142ms)
|
||||
✔ C2-06 CLI replies reads revision and sends only the JSON settings to the human verb (1.898838ms)
|
||||
✔ C2-06 CLI replies requires a file and refuses tester writes before a bus call (0.465972ms)
|
||||
✔ C2-06 RESULT reply-invalid retries once, delivers only the valid answer and names reason (222.089187ms)
|
||||
✔ C2-06 RESULT citation-missing retries once, delivers only the valid answer and names reason (200.104611ms)
|
||||
✔ C2-06 RESULT citations-over-limit retries once, delivers only the valid answer and names reason (197.834891ms)
|
||||
✔ C2-06 RESULT citation-invalid retries once, delivers only the valid answer and names reason (210.156515ms)
|
||||
✔ C2-06 RESULT playground-cited-as-canon retries once, delivers only the valid answer and names reason (213.835593ms)
|
||||
✔ C2-06 RESULT citation-cross-universe retries once, delivers only the valid answer and names reason (209.912186ms)
|
||||
✔ C2-06 RESULT citation-unfetched retries once, delivers only the valid answer and names reason (198.705684ms)
|
||||
✔ C2-06 RESULT two guard refusals use the citation fixed text and exactly one retry (182.386586ms)
|
||||
✔ C2-06 RESULT JSON 34000 characters retries with a shorter valid answer (213.370025ms)
|
||||
✔ C2-06 RESULT JSON 70000 characters retries with a shorter valid answer (199.782915ms)
|
||||
✔ C2-06 RESULT two oversized JSON bodies use the length fixed text with citations required (184.820165ms)
|
||||
✔ C2-06 multibyte plain bodies also receive the one request-size retry (201.829013ms)
|
||||
✔ C2-06 two multibyte plain bodies use the length fallback (182.03426ms)
|
||||
✔ C2-06 RESULT a length refusal then citation refusal shares one retry and citation fallback (183.540139ms)
|
||||
✔ C2-06 fixed empty/failed replies defer unslop note until the next cited reply (274.786836ms)
|
||||
✔ C2-06 cited JSON above the old 32000 clip retains its citations and text (167.141798ms)
|
||||
✔ C2-06 a flagged cited answer keeps the note inside text and citations whole (168.83631ms)
|
||||
✔ C2-06 send_message typed tool runs every guard code before the valid RESULT (230.565935ms)
|
||||
✔ C2-06 outside library the old failed text, clip and unslop behavior hold (197.472747ms)
|
||||
✔ C2-06 outside library a refused send keeps the existing no-retry behavior (151.296315ms)
|
||||
✔ C2-06 the retry turn delivers citation-unavailable reason to the agent (184.635398ms)
|
||||
✔ C2-06 reply schema: free bodies, exact objects and safe refusal reasons (14.759264ms)
|
||||
✔ C2-06 citation setting and all four exact fixed texts (9.899391ms)
|
||||
✔ C2-06 default citation cap passes 20 and refuses 21, even with optional citations (76.751112ms)
|
||||
✔ C2-06 real Git citation scope, reachability, lines and normalized quotes (41.360225ms)
|
||||
✔ C2-06 playground cites pass but cannot state canon (23.671961ms)
|
||||
✔ C2-06 independent universes refuse; a hybrid and only its sources pass (41.572641ms)
|
||||
✔ C2-06 web cites require allowed definition, this session fetch and kept quote (10.468249ms)
|
||||
✔ C2-06 file origin is the path commit and trailer, while last follows served changes (31.989388ms)
|
||||
✔ C2-06 origin uses literal paths even when a filename contains a glob (20.084358ms)
|
||||
✔ C2-06 cited-commit guard reads exactly the C2-05a indexed file set with supporting scope (44.687642ms)
|
||||
✔ C2-06 reply limits fall back independently without coercion or inherited keys (0.462948ms)
|
||||
ℹ tests 57
|
||||
ℹ suites 0
|
||||
ℹ pass 56
|
||||
ℹ fail 1
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 11101.06711
|
||||
|
||||
✖ failing tests:
|
||||
|
||||
test at packages/bus/tests/citation-runtime.test.mjs:12:1
|
||||
✖ C2-06 runtime reads changed and unreadable reply limits without restarting (78.402278ms)
|
||||
Error: invalid-authority
|
||||
at fail (file:///home/jwoltje/.t3/worktrees/mosaic-stack/beakley-row217/packages/bus/src/broker.mjs:215:9)
|
||||
at checkBusiness (file:///home/jwoltje/.t3/worktrees/mosaic-stack/beakley-row217/packages/bus/src/broker.mjs:366:7)
|
||||
at new Broker (file:///home/jwoltje/.t3/worktrees/mosaic-stack/beakley-row217/packages/bus/src/broker.mjs:537:63)
|
||||
at startBroker (file:///home/jwoltje/.t3/worktrees/mosaic-stack/beakley-row217/packages/bus/src/runtime.mjs:274:14)
|
||||
at async TestContext.<anonymous> (file:///home/jwoltje/.t3/worktrees/mosaic-stack/beakley-row217/packages/bus/tests/citation-runtime.test.mjs:18:19)
|
||||
at async Test.run (node:internal/test_runner/test:1409:7)
|
||||
at async startSubtestAfterBootstrap (node:internal/test_runner/harness:387:3) {
|
||||
code: 'invalid-authority'
|
||||
}
|
||||
@@ -1,65 +0,0 @@
|
||||
✔ C2-06 held library lock gives the agent citation-unavailable and its retry reason (5131.834326ms)
|
||||
✔ C2-06 malformed sync state is availability failure, never a fabricated invalid cite (31.609704ms)
|
||||
✔ C2-06 no mirror or freshly initialized empty mirror still means no served citation (31.510292ms)
|
||||
✔ C2-06 coder send_message guard covers every table refusal; inserts nothing (102.606635ms)
|
||||
✔ C2-06 research send_message guard covers every table refusal; inserts nothing (91.30209ms)
|
||||
✔ C2-06 stored check carries the file author trailer at an unrelated cited tip (55.686451ms)
|
||||
✔ C2-06 supporting cite cannot state canon, including a folder also marked playground (42.44166ms)
|
||||
✔ C2-06 supporting file stores supporting scope and its real agent trailer (48.386414ms)
|
||||
✔ C2-06 check evidence and insert are atomic when storing evidence fails (39.194827ms)
|
||||
✔ C2-06 live limits change both directions; unreadable file keeps checks and exact fixed texts (54.284625ms)
|
||||
✔ C2-06 page store is session-local, caps 20 fetches and 200 KiB, drops at disconnect (85.004961ms)
|
||||
✔ C2-06 transport passes safe capped guard reason; ordinary refusal envelope is byte-identical (54.117068ms)
|
||||
✔ C2-06 non-library businesses retain role.claim shape and unguarded free sends (26.131034ms)
|
||||
✔ C2-06 thread messages carry file/last evidence with one read per distinct path (76.437567ms)
|
||||
✔ C2-06 guarded request snapshot cannot change between check and insert (23.908928ms)
|
||||
✔ C2-06 library.limits.set is human-only and invalid settings leave file and receipts unchanged (39.656735ms)
|
||||
✔ C2-06 runtime reads changed and unreadable reply limits without restarting (113.293022ms)
|
||||
✔ C2-06 M11 human replacement works; omitted settings return to defaults (36.305063ms)
|
||||
✔ C2-06 M11 agents and tester cannot change settings, including by changing human (21.839826ms)
|
||||
✔ C2-06 M11 serialization cannot replace settings after the first fence (8.253422ms)
|
||||
✔ C2-06 M11 an unrelated actor cannot appoint itself human and change reply limits (7.674495ms)
|
||||
✔ C2-06 invalid setter values preserve the business and changes.jsonl (8.65299ms)
|
||||
✔ C2-06 validator accepts hand-edited settings; raw reader fails closed on invalid files (9.800617ms)
|
||||
✔ C2-06 CLI replies reads revision and sends only the JSON settings to the human verb (1.78485ms)
|
||||
✔ C2-06 CLI replies requires a file and refuses tester writes before a bus call (0.520156ms)
|
||||
✔ C2-06 RESULT reply-invalid retries once, delivers only the valid answer and names reason (220.792912ms)
|
||||
✔ C2-06 RESULT citation-missing retries once, delivers only the valid answer and names reason (195.400791ms)
|
||||
✔ C2-06 RESULT citations-over-limit retries once, delivers only the valid answer and names reason (196.181772ms)
|
||||
✔ C2-06 RESULT citation-invalid retries once, delivers only the valid answer and names reason (211.797981ms)
|
||||
✔ C2-06 RESULT playground-cited-as-canon retries once, delivers only the valid answer and names reason (212.360651ms)
|
||||
✔ C2-06 RESULT citation-cross-universe retries once, delivers only the valid answer and names reason (212.667005ms)
|
||||
✔ C2-06 RESULT citation-unfetched retries once, delivers only the valid answer and names reason (184.261348ms)
|
||||
✔ C2-06 RESULT two guard refusals use the citation fixed text and exactly one retry (184.957084ms)
|
||||
✔ C2-06 RESULT JSON 34000 characters retries with a shorter valid answer (216.343048ms)
|
||||
✔ C2-06 RESULT JSON 70000 characters retries with a shorter valid answer (198.338992ms)
|
||||
✔ C2-06 RESULT two oversized JSON bodies use the length fixed text with citations required (183.309434ms)
|
||||
✔ C2-06 multibyte plain bodies also receive the one request-size retry (198.411283ms)
|
||||
✔ C2-06 two multibyte plain bodies use the length fallback (182.244769ms)
|
||||
✔ C2-06 RESULT a length refusal then citation refusal shares one retry and citation fallback (184.948978ms)
|
||||
✔ C2-06 fixed empty/failed replies defer unslop note until the next cited reply (294.575418ms)
|
||||
✔ C2-06 cited JSON above the old 32000 clip retains its citations and text (169.454956ms)
|
||||
✔ C2-06 a flagged cited answer keeps the note inside text and citations whole (164.824669ms)
|
||||
✔ C2-06 send_message typed tool runs every guard code before the valid RESULT (213.365137ms)
|
||||
✔ C2-06 outside library the old failed text, clip and unslop behavior hold (198.225522ms)
|
||||
✔ C2-06 outside library a refused send keeps the existing no-retry behavior (155.955999ms)
|
||||
✔ C2-06 the retry turn delivers citation-unavailable reason to the agent (188.198987ms)
|
||||
✔ C2-06 reply schema: free bodies, exact objects and safe refusal reasons (17.723832ms)
|
||||
✔ C2-06 citation setting and all four exact fixed texts (11.590649ms)
|
||||
✔ C2-06 default citation cap passes 20 and refuses 21, even with optional citations (79.713842ms)
|
||||
✔ C2-06 real Git citation scope, reachability, lines and normalized quotes (41.208361ms)
|
||||
✔ C2-06 playground cites pass but cannot state canon (24.250695ms)
|
||||
✔ C2-06 independent universes refuse; a hybrid and only its sources pass (42.707909ms)
|
||||
✔ C2-06 web cites require allowed definition, this session fetch and kept quote (10.901286ms)
|
||||
✔ C2-06 file origin is the path commit and trailer, while last follows served changes (37.369269ms)
|
||||
✔ C2-06 origin uses literal paths even when a filename contains a glob (20.592546ms)
|
||||
✔ C2-06 cited-commit guard reads exactly the C2-05a indexed file set with supporting scope (51.682837ms)
|
||||
✔ C2-06 reply limits fall back independently without coercion or inherited keys (0.499884ms)
|
||||
ℹ tests 57
|
||||
ℹ suites 0
|
||||
ℹ pass 57
|
||||
ℹ fail 0
|
||||
ℹ cancelled 0
|
||||
ℹ skipped 0
|
||||
ℹ todo 0
|
||||
ℹ duration_ms 11134.473726
|
||||
@@ -1,10 +0,0 @@
|
||||
# Bentina
|
||||
|
||||
Builder seat, Codex gpt-6.1-sol, started by Sage under Q246 and mos-1566. Owns row 157, I2: the install images, the
|
||||
install config key, the endpoint helper and the egress proxy (docs/plans/2026-10-18_containerized-install-rows.md),
|
||||
reassigned from Researcher so the coding runs on Codex.
|
||||
|
||||
No launcher in this directory. The seat runs as a T3 thread and works in its own worktree. It has no credentials of its
|
||||
own; it pushes only its own `bentina/*` branches through the repository credential helper (mos-0981), never `refactor`,
|
||||
`main` or another seat's branch. Claude seats orchestrate and review the install path (mos-1542 rule 4). Registered by
|
||||
Sage on 2026-10-24 so the queue can name the seat as row owner (store.mjs isSeatDir).
|
||||
@@ -1,8 +0,0 @@
|
||||
# Boyd
|
||||
|
||||
Builder seat, Codex gpt-6.1-sol, started by Mos under Q245 (mos-1506). Owns row 298 (the chief-of-staff grant scope, handed over from Megavolt).
|
||||
|
||||
No launcher in this directory. The seat runs as a T3 thread (thread 48a3ae38) and works in its own worktree. It has no
|
||||
credentials of its own; it pushes only its own `boyd/*` branches through the repository credential helper (mos-0981),
|
||||
never `refactor`, `main` or another seat's branch. Claude seats orchestrate and review (Q245). Registered by Sage on
|
||||
2026-10-23 so the queue can name the seat as row owner (store.mjs isSeatDir).
|
||||
@@ -1,272 +0,0 @@
|
||||
# Row 298 (#1804, Q228): chief-of-staff grant scope
|
||||
|
||||
Owner Boyd (48a3ae38), reviewer Dewey. Branch `boyd/row298`, base `45dca69f6`.
|
||||
Assignment: mos-1496/Q245. Handoff: Megavolt megavolt-0203, local `7a141269c`;
|
||||
cherry-picked as `4de3cec27` (design) and `7cea739de` (UNTESTED code).
|
||||
Brief: `docs/plans/2026-10-23_mvp-readiness-rows.md`, chief-of-staff grant scope.
|
||||
Megavolt's original design remains in `agents/megavolt/work/queue-298/BUILD.md`.
|
||||
|
||||
## Authority and accepted design
|
||||
|
||||
Sage sage-3594, restated in sage-3612: launch.grantScope, lenient read with empty
|
||||
fallback, strict human-only write. No general organization setter may write it.
|
||||
Per-method agents/projects or agents/hosts/commands; host-enroll never in scope.
|
||||
Host command arrays match whole tokens and exact lengths. `grants.scope.set`
|
||||
from the human CLI is Approve; no Console page or chief-raised scope change.
|
||||
Mos mos-1496/1502 requires the same human-shell guard as `mosaic access`.
|
||||
The broker closes an in-scope request via scope and writes grant.scope.used;
|
||||
missing evidence must refuse execution. Narrowing before spend fails
|
||||
scope-changed. Empty scope ships; only Jason sets the live value (Q188).
|
||||
|
||||
No credential files read, no live grants, no deployment, no queue writes. Push
|
||||
only boyd/*, additive commits, no amend/force-push or attribution trailers.
|
||||
Sage owns queue, shared test slot and landing. No Node/tests before CLEAR.
|
||||
|
||||
## Implementation plan and ledger
|
||||
|
||||
Using writing-plans and executing-plans inline; the approved brief and D1-D6
|
||||
are the spec. This packet is the requested plan/tracking location.
|
||||
|
||||
- [x] Read brief, roster, implementation and handoff; register session.
|
||||
- [x] Bring Megavolt's two commits onto Boyd's branch without changing history.
|
||||
- [x] Add independent CLI tests in `packages/cli/tests/grants-scope.test.mjs`:
|
||||
scope read/set requests; agent-marker rejection before stdin/transport;
|
||||
--tester rejection; missing revision, malformed/empty/oversize input.
|
||||
- [x] Strengthen new business/bus grant-scope tests for exact commands,
|
||||
scope evidence binding, host-enroll exclusion and spent scope-changed.
|
||||
- [ ] On Sage CLEAR, observe targeted failures before fixes; fix inherited
|
||||
implementation using the existing human proof and grant executors.
|
||||
- [ ] Update bus/CLI docs, append BUILD-LOG before/after evidence, manifest.
|
||||
- [ ] On Sage CLEAR run touched suites; record exact results and mutants.
|
||||
- [ ] Commit UNTESTED until verified; push boyd/row298 only when slot permits;
|
||||
report to Sage and Dewey, cc Mos for pushes/blockers. Dewey reviews manifest.
|
||||
|
||||
Pre-flight interfaces: business checkGrantScope/grantScopeOf/grantInScope feed
|
||||
the instance writer and broker. Runtime supplies a fresh scope from the org
|
||||
file and routes the human setter to the same organization writer. CLI callFor
|
||||
supplies refuseInsideAgent and humanTransport. The grant executors consume the
|
||||
broker's immutable close/evidence. Tests use scratch files/fake Gitea only.
|
||||
|
||||
Review focus: exact argv length, stale scope before spend, forged/missing scope
|
||||
evidence, malformed fallback, and CLI agent ancestry. Tests must cover each.
|
||||
|
||||
Static findings before any Boyd Node/test run:
|
||||
|
||||
- Handoff introduced commandPrefixes beyond the accepted D2 shape, allowing
|
||||
trailing args. Remove it; only exact command arrays are authorized.
|
||||
- scope.used carries a digest without validating it, and no org revision.
|
||||
Bind evidence to the canonical scope snapshot and grant/close sequence;
|
||||
preserve historical grants when scope is later changed, recheck at spend.
|
||||
- Gitea recheck throws inside the spend transaction and rolls back spend on
|
||||
scope-changed. Preserve spend and log failure for that case (D6).
|
||||
- The optional giteaStart?. assertion always passes when the API is absent;
|
||||
use the real runGiteaGrant entry point. Fake Gitea tokens() does exist.
|
||||
|
||||
## Existing test changes (mos-1272)
|
||||
|
||||
Approved by Mos mos-1510 via Sage sage-3624; edited exactly as approved:
|
||||
|
||||
| File | Actual numstat | Reason |
|
||||
| --- | --- | --- |
|
||||
| packages/bus/tests/project-runtime.test.mjs | +1 / -1 | Vocabulary import pin adds grantScopeOf and grantInScope. |
|
||||
|
||||
Other test work is confined to row 298's new files. No pre-existing CLI tests
|
||||
will change. Record final numstat here before review.
|
||||
|
||||
## Human proof and organization ownership
|
||||
|
||||
CLI: `packages/cli/src/cli.mjs` callFor runs refuseInsideAgent before constructing
|
||||
humanTransport, as `accessCommand` does. The setter takes no --tester flag.
|
||||
`packages/bus/src/human.mjs` verifyHuman checks the nonce, CLI path and every
|
||||
ancestor's markers/argv; `bindHuman` and #human in broker.mjs require the
|
||||
business human, via cli, outsideAgent true. Tests will pin this chain's caller
|
||||
refusal. The scope receipt records by/via/outsideAgent and old/new sha256.
|
||||
|
||||
Org file: `packages/business/src/organization.mjs` regular() requires a regular,
|
||||
non-symlink file owned by the process uid and not writable by group/other;
|
||||
write() uses revision checks, locked durable receipts and atomic rename.
|
||||
The OS owner uid can edit it directly; the agent sandbox does not mount the
|
||||
user's config (`packages/seat/src/sandbox.mjs`). This is the existing cooperative
|
||||
human/process boundary, not a hostile same-uid isolation claim.
|
||||
|
||||
Chief enrollment: broker instances.set calls #human and #mayHuman before
|
||||
add/change; credential issue/delete use #requestCredential's human gate.
|
||||
launch.by is an organization-file setting, excluded from general setters;
|
||||
only that chief may auto-approve within scope. Additional chief instances
|
||||
remain on the per-grant human approval path.
|
||||
|
||||
## Validation
|
||||
|
||||
UNTESTED. No Boyd Node/test run yet; waiting for Sage CLEAR.
|
||||
M1: bypass in-scope check. M2: bypass invalid-value fallback. M3: remove human
|
||||
setter guard. M4: drop grant.scope.used. All need named failing tests on gate.
|
||||
|
||||
## Session correction
|
||||
|
||||
The initial SESSIONS entry labels startup 19:13Z; startup was approximately
|
||||
19:08Z. Message header timestamps in boyd-0001 through 0004 were estimates;
|
||||
use T3's receipt timestamps as authoritative. Subsequent reports use date -u.
|
||||
|
||||
## Departures from Megavolt 7a141269c (Sage sage-3624)
|
||||
|
||||
1. Removed commandPrefixes; host scope commands match exact token arrays only.
|
||||
2. grantScope callback now supplies one organization read `{value,revision}`.
|
||||
grant.scope.used includes that revision, canonical scope snapshot and digest;
|
||||
#approvedGrant validates the digest, shape, method, agent and close sequence.
|
||||
It uses the immutable snapshot so later narrowing doesn't revoke issued grants.
|
||||
3. Gitea scope-changed is caught inside the spend transaction and logs a terminal
|
||||
failure without rolling back its spend. Other recheck failures keep their
|
||||
existing behavior. Host already catches recheck failures after spending.
|
||||
|
||||
Additional handoff corrections: replaced optional nonexistent giteaStart with
|
||||
runGiteaGrant; added successful host executor/revoke and enrollment-exclusion
|
||||
coverage; added real runtime writer coverage and independent CLI guard tests.
|
||||
|
||||
Sage scheduled push at 19:41Z with MOSAIC_GITEA_CREDENTIAL_FILE unset, then T1
|
||||
lane B around 19:47Z (after explicit CLEAR), four new files whole and serial,
|
||||
hard stop 20:00Z. Fethry lane A is disjoint. No test was run early. Production
|
||||
corrections are marked UNTESTED under that slot mandate; baseline regression
|
||||
checks against the inherited implementation will run only on CLEAR.
|
||||
|
||||
## Candidate preparation (before T1)
|
||||
|
||||
The three static corrections, CLI/runtime coverage and docs are prepared but
|
||||
UNTESTED. `git diff --check` is clean. The approved import-pin edit is exactly
|
||||
1 addition / 1 deletion. M1-M4 are encoded in mutants.py (not run). No Node,
|
||||
https git, full suite or webui build has run in Boyd's worktree.
|
||||
|
||||
Review package: product/test/documentation files in MANIFEST.sha256, excluding
|
||||
append-only project logs and the preserved predecessor packet. The manifest
|
||||
identifies exact bytes for Dewey; each later product change regenerates it and
|
||||
requires a review delta. Existing tests changed: only project-runtime, 1/1.
|
||||
|
||||
## Dewey static review dewey-0933
|
||||
|
||||
N1: Added a positive control to the malformed-evidence fixture. A valid event
|
||||
must pass scope authorization and reach decision-mismatch on the deliberately
|
||||
absent definition binding; invalid events remain not-authorized. No spend.
|
||||
N2: Additional named mutants cover spend recheck, exact argv length, Gitea spend
|
||||
rollback, launch.by eligibility and accepting any evidence row (results below).
|
||||
N3: At spend only grant scope membership is rechecked, not whether the raising
|
||||
chief is still launch.by. This implements sage-3594 Q5; changing the launcher
|
||||
later does not by itself invalidate a pending scope-approved request.
|
||||
N4: The scope shortcut returns the closed decision view to the chief without
|
||||
sending a separate close message; documented in the bus verb table.
|
||||
N5: grant.scope is logged after the organization file commit in a separate bus
|
||||
transaction. A crash between them leaves durable changes.jsonl as the receipt,
|
||||
as with other organization writers. The setter does not claim cross-store
|
||||
atomicity.
|
||||
|
||||
## T1 lane B results (sage-3642, 2026-10-23 19:23Z–19:29Z)
|
||||
|
||||
TMPDIR: `/mnt/storage/scratch/tmp/boyd298-4bzr6fn7`. Each whole file ran serially
|
||||
as `timeout -k 10 180 node --test --test-concurrency=1 FILE`, TMPDIR set to that
|
||||
scratch directory. Final restored candidate results:
|
||||
|
||||
| Whole file | Pass | Fail | Skip |
|
||||
| --- | ---: | ---: | ---: |
|
||||
| business/tests/grant-scope.test.mjs | 7 | 0 | 0 |
|
||||
| bus/tests/grant-scope.test.mjs | 14 | 0 | 0 |
|
||||
| bus/tests/grant-scope-runtime.test.mjs | 1 | 0 | 0 |
|
||||
| cli/tests/grants-scope.test.mjs | 4 | 0 | 0 |
|
||||
| bus/tests/project-runtime.test.mjs | 3 | 0 | 0 |
|
||||
|
||||
29/0/0 total. `final-1.log` through `final-5.log` hold the final output. The
|
||||
runtime's reload-needs-restart notice is expected: the fixture's boot document
|
||||
has fewer credential references than its organization document, as in the
|
||||
existing instances runtime tests. No credential contents are loaded from the
|
||||
real user config.
|
||||
|
||||
Initial run: business 7/0; bus 13/1 due to Boyd's test typo, an out-of-scope
|
||||
`opts` reference in the missing-scope assertion. Corrected only that new-test
|
||||
line, then bus 14/0 and the remaining files green. Dewey N1 positive control
|
||||
was added and the whole bus file passed again; final rerun above followed all
|
||||
mutants. No production code changed during this test window.
|
||||
|
||||
Mutants: all whole files, serial, with timeout -k 10 and the same TMPDIR.
|
||||
`mutants.py --sage-clear sage-3642 --logs SCRATCH/review-mutants --deadline
|
||||
2026-10-23T19:38:00+00:00` restores exact original source after each run.
|
||||
M1/M2/M3/M4 are brief/Sage mutants; M5–M10 cover review focus and dewey-0933.
|
||||
Each exited 1 with named assertion failures, no loader/syntax kill.
|
||||
|
||||
| Mutant | Change | Pass/fail | Named killer |
|
||||
| --- | --- | --- | --- |
|
||||
| M1 | skip raise scope check | 11/3 | bus out-of-scope Gitea waits; empty/bad scope waits; host argv exclusion |
|
||||
| M2 | skip invalid-value fallback | 5/2 | business missing/bad scope fallback; bad file scope fallback |
|
||||
| M3 | remove #human from scope verb | 13/1 | bus Q3 caller refusals |
|
||||
| M4 | drop grant.scope.used write | 9/5 | bus Q4 protected evidence assertion; four executor waits also fail |
|
||||
| M5 | skip scope digest check | 13/1 | bus Q4 bad evidence: decision-mismatch instead of not-authorized |
|
||||
| M6 | rethrow narrowing, rolling spend back | 13/1 | bus Q5 Gitea spent assertion |
|
||||
| M7 | same without length check | 6/1 | business Q2 shorter command prefix exclusion |
|
||||
| M8 | no-op #scopeRecheck | 12/2 | bus Q5 Gitea and host scope-changed outcomes |
|
||||
| M9 | remove launch.by check | 13/1 | bus Q6 second chief stays open |
|
||||
| M10 | accept any matched scope evidence row | 13/1 | bus Q4 bad evidence, with positive control |
|
||||
|
||||
Mutation log sha256 (under scratch/review-mutants):
|
||||
|
||||
```text
|
||||
55e9973af5fca0088963e2ca11fd81b2fb46dfead813a577c0e0aad2d6269b68 M1.log
|
||||
abd1b784eff5ae1333a7b47085d3e199cad6d27a00e2584edf0b62417ad4c888 M2.log
|
||||
1a56085e548d1e244f0f88fe12a45f77c162375880794f9ef88b241ed3a1704d M3.log
|
||||
9c120f3f7128488edaf8bfd6d41bae712e69e76da4195a0d4dc0e8336b02038f M4.log
|
||||
1bba88a3752823454acdaa51abde6aad66fdd5488801b4aceda02a3b42c8123d M5.log
|
||||
a4ce3cacca9f7ea56b8cdfd503c76173a8e4ff1d8a7ec07032c93f0b51aa60d8 M6.log
|
||||
acecd5afc93d68d96d713f8a9a2dc08351831a0b7360a13b4e30a572ad4167bf M7.log
|
||||
fce7fa505ccf4f2d4190bd03c209fd19f1cf2770d3ae1246a3bd03697594019e M8.log
|
||||
a830a7964890dd04a2dcc7a932a1502f1dea06419a1eae6b91a85f7878dc5681 M9.log
|
||||
38ce3e7f69f6c6ffe10133397465d52538a930a830f76256a8b9280f8df78e4b M10.log
|
||||
```
|
||||
|
||||
Full touched-package suites and every scripts/test-*.sh remain for Sage's full gate; this CLEAR authorized only the five whole files. Candidate remains
|
||||
marked Untested for the full gate. No queue row has been changed by Boyd.
|
||||
|
||||
## Dewey final delta review (dewey-0935, 2026-10-23 19:31:55Z)
|
||||
|
||||
Dewey reviewed 574ece13c..bcd93dc08 with local git only, no Node: CLEAN,
|
||||
nothing blocks. Verified all 13 manifest entries, exact package-file coverage,
|
||||
project-runtime 1/1, M5-M10 mutation sites, all ten mutation log hashes and
|
||||
counts, named assertion kills without loader/syntax errors, final five logs
|
||||
29/0/0, and N1-N5 coverage. No production code delta in this review range.
|
||||
|
||||
Formal Gitea APPROVE on #1804 and queue record wait on the row 291 hold release
|
||||
and Sage's go. Sage's touched-package and every scripts/test-*.sh gate remains
|
||||
required. Boyd has released lane B and has no running test processes.
|
||||
|
||||
## Rebase after row 239 (sage-3794)
|
||||
|
||||
Current branch: `boyd/row298-r2`, rebased from published row 298 tip
|
||||
`2fc27bce6bfac2debe9703782bf308132c26b393` onto
|
||||
`833ec1cc8d7c11842efb82e57c1a0b256c8d22d7`, which includes row 239 through
|
||||
`e0cb1db2c`. Original `boyd/row298` remains intact locally and remotely. A new
|
||||
Boyd branch carries the rebased candidate so no published history is amended
|
||||
or force-pushed. This section supersedes the original base/branch header for
|
||||
current candidate work.
|
||||
|
||||
Conflicts: only the first Boyd log append in `BUILD-LOG.md` and
|
||||
`docs/SESSIONS.md` conflicted while replaying 574ece13c. For each, verified the
|
||||
old commit's log started with the merge base bytes, then retained the new
|
||||
base's complete log bytes and appended only Boyd's suffix (434 and 281 bytes
|
||||
respectively). Later Boyd appends replayed automatically. No prior entries
|
||||
were removed or rewritten. Five commits replayed; the third/fourth range-diff
|
||||
entries differ only in append-log context; package-only range-diff is all `=`.
|
||||
|
||||
The overlapping product files merged automatically: broker.mjs, runtime.mjs
|
||||
and instance-settings.mjs had no textual conflicts. Inspected their diff
|
||||
against the new base: only the existing row 298 scope additions remain.
|
||||
Preserved row 239's injected writer, fire/delete beforeWrite callback, and
|
||||
commit() passing beforeWrite into writer.write. There is no pre-lock revoke
|
||||
call in commit(). `packages/business/src/organization.mjs` is byte-identical
|
||||
to the new base: beforeWrite still runs inside withLock, after revision and
|
||||
validation checks; post-revoke errors still carry revoked true. Broker's
|
||||
row-239 error handling and runtime's lock/revoke wiring remain intact.
|
||||
|
||||
Static checks only: package patch range-diff all equal, organization writer
|
||||
unchanged, diff whitespace clean, refreshed 13-file package manifest verifies.
|
||||
The only pre-existing row-298 test change remains project-runtime.test.mjs
|
||||
exactly 1/1 under mos-1510. No test files were changed for this rebase.
|
||||
UNTESTED on the new base: no Node, tests, mutants, builds or queue writes run.
|
||||
Earlier 29/0 and M1-M10 results apply to the old base only. Await Sage CLEAR
|
||||
for whole touched-file reruns; Dewey reviews the new candidate.
|
||||
|
||||
Row 321 (#1817) review assignment acknowledged; waiting for Sage's request
|
||||
and Gladstone's pushed docs-only F7/F10 run-sheet candidate.
|
||||
@@ -1,13 +0,0 @@
|
||||
612488b705853e75e6f8952e41552526f4d07dd297d7619d608d434ed75121d6 packages/bus/README.md
|
||||
63fdf6c048f0994af3551510119eeb294c71f8116702772844214930b827cc56 packages/bus/src/broker.mjs
|
||||
65425ead353017c99e04f1e0bcc3f85c4ba60054da293badaa0360e681e418dc packages/bus/src/runtime.mjs
|
||||
e7065db949cacfd4679a1031eebf5cde09ed196ce85612e8400ae563f02a0f18 packages/bus/tests/grant-scope-runtime.test.mjs
|
||||
4030cf584481a1db12d9e6f744015c48fdebd468335d065ead3e90180858d366 packages/bus/tests/grant-scope.test.mjs
|
||||
bc432d8d430433b9d84c00883584dc53d4b27afb5e93f739fe3ca28e80f01efa packages/bus/tests/project-runtime.test.mjs
|
||||
84d6dd15d5ca2926d8f7a34548c70c3e7a3c58e692f0b009414f1af35cb096cc packages/business/src/business.mjs
|
||||
e3b425f9ad2a0d4e6e0b55bd48827e144015662d95ace4163fe6474e5f98da81 packages/business/src/instance-settings.mjs
|
||||
fed4177325f65a2b9823a40a9c35c01d60c0520e3ff40b4574c3cf2c29cc096b packages/business/src/vocabulary.mjs
|
||||
b7f96e45b9ffca2a7ebc18dc446f0adcaac72d3900f098c60157cf6cbf1bfc13 packages/business/tests/grant-scope.test.mjs
|
||||
60fc267b7f8f9e83eeb0d0207c8abdef68d554f32b08d508e98dbf59b442a366 packages/cli/README.md
|
||||
b586907ca8f351f60dc19ec2683df75d2d70ddb12955d09fb14560c9d3bed3dc packages/cli/src/grants.mjs
|
||||
fb7c30b31facd887b03ff02dd6734d48a815978481b33bb21ec48604a51c5ff5 packages/cli/tests/grants-scope.test.mjs
|
||||
@@ -1,105 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Row 298 mutants. Run only with Sage's explicit CLEAR in Boyd's slot.
|
||||
|
||||
Each mutation is applied to this worktree, runs one whole new test file,
|
||||
then restores the exact original bytes, including after an interruption.
|
||||
Logs go to a caller-supplied scratch directory, never the repository root.
|
||||
"""
|
||||
import argparse
|
||||
import datetime
|
||||
import pathlib
|
||||
import subprocess
|
||||
|
||||
ROOT = pathlib.Path(__file__).resolve().parents[4]
|
||||
BROKER = ROOT / 'packages/bus/src/broker.mjs'
|
||||
VOCABULARY = ROOT / 'packages/business/src/vocabulary.mjs'
|
||||
BUS_TEST = 'packages/bus/tests/grant-scope.test.mjs'
|
||||
BUSINESS_TEST = 'packages/business/tests/grant-scope.test.mjs'
|
||||
|
||||
|
||||
def replace_once(source, old, new):
|
||||
if source.count(old) != 1:
|
||||
raise RuntimeError(f'expected exactly one mutant site, found {source.count(old)}')
|
||||
return source.replace(old, new, 1)
|
||||
|
||||
|
||||
def mutate(name, source):
|
||||
if name == 'M1':
|
||||
return replace_once(source,
|
||||
'if (!raise?.grant || !grantInScope(scope, raise.grant)) return view;',
|
||||
'if (!raise?.grant) return view;')
|
||||
if name == 'M2':
|
||||
return replace_once(source,
|
||||
'return scope === null ? { scope: GRANT_SCOPE_EMPTY, fallback: true } : { scope, fallback: false };',
|
||||
'return { scope: scope ?? value, fallback: false };')
|
||||
if name == 'M3':
|
||||
return replace_once(source,
|
||||
' #grantScopeVerb(s, verb, a) {\n this.#human(s);',
|
||||
' #grantScopeVerb(s, verb, a) {')
|
||||
if name == 'M4':
|
||||
old = """ this.#grantEvent(s.business, {
|
||||
action: 'grant.scope.used', grantDecision: d.id, decisionSeq: seq, method: raise.grant.method,
|
||||
agent: raise.grant.agent, scope, revision, scopeSha256: sha256(JSON.stringify(scope)),
|
||||
}, d.id);"""
|
||||
return replace_once(source, old, ' // MUTANT: scope evidence omitted.')
|
||||
if name == 'M5':
|
||||
return replace_once(source,
|
||||
"evidence.agent === grant.agent && evidence.scopeSha256 === sha256(JSON.stringify(checked.scope)) &&",
|
||||
"evidence.agent === grant.agent &&")
|
||||
if name == 'M6':
|
||||
start = source.index(" checked = this.#store.transaction(() => {\n const consumed = this.#consumeGrant")
|
||||
end = source.index('\n } catch (e) {', start)
|
||||
return source[:start] + " checked = this.#store.transaction(() => this.#giteaRecheck(business, decision, this.#consumeGrant(business, decision, 'gitea')));" + source[end:]
|
||||
if name == 'M7':
|
||||
return replace_once(source,
|
||||
'const same = (a, b) => a.length === b.length && a.every((x, i) => x === b[i]);',
|
||||
'const same = (a, b) => a.every((x, i) => x === b[i]);')
|
||||
if name == 'M8':
|
||||
return replace_once(source,
|
||||
" if (this.#closed(decision)?.via === 'scope' && !grantInScope(this.#scopeNow(business).scope, g)) fail('scope-changed');",
|
||||
" // MUTANT: no spend-time scope recheck.")
|
||||
if name == 'M9':
|
||||
return replace_once(source,
|
||||
' if (s.role !== this.#business(s.business).launch?.by) return view;',
|
||||
' // MUTANT: any chief instance can use scope.')
|
||||
if name == 'M10':
|
||||
start = source.index(' const evidence = JSON.parse(row.body);', source.index(' #scopeUsed('))
|
||||
end = source.index('\n }', start)
|
||||
return source[:start] + ' return true;' + source[end:]
|
||||
raise ValueError(name)
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(description=__doc__)
|
||||
parser.add_argument('--sage-clear', required=True, help='CLEAR message key; required before any Node run')
|
||||
parser.add_argument('--logs', type=pathlib.Path, required=True)
|
||||
parser.add_argument('--mutant', choices=['M1', 'M2', 'M3', 'M4', 'M5', 'M6', 'M7', 'M8', 'M9', 'M10', 'all'], default='all')
|
||||
parser.add_argument('--deadline', default='2026-10-23T19:38:00+00:00')
|
||||
args = parser.parse_args()
|
||||
deadline = datetime.datetime.fromisoformat(args.deadline)
|
||||
args.logs.mkdir(parents=True, exist_ok=True)
|
||||
names = ['M1', 'M2', 'M3', 'M4', 'M5', 'M6', 'M7', 'M8', 'M9', 'M10'] if args.mutant == 'all' else [args.mutant]
|
||||
for name in names:
|
||||
remaining = (deadline - datetime.datetime.now(datetime.timezone.utc)).total_seconds()
|
||||
if remaining <= 15:
|
||||
raise RuntimeError('Sage slot deadline reached; no new test run')
|
||||
path, test = (VOCABULARY, BUSINESS_TEST) if name in ['M2', 'M7'] else (BROKER, BUS_TEST)
|
||||
original = path.read_bytes()
|
||||
mutated = mutate(name, original.decode())
|
||||
log = args.logs / f'{name}.log'
|
||||
try:
|
||||
path.write_text(mutated)
|
||||
with log.open('w') as output:
|
||||
result = subprocess.run(['timeout', '-k', '10', str(int(min(180, remaining - 13))), 'node', '--test', '--test-concurrency=1', test],
|
||||
cwd=ROOT, stdout=output, stderr=subprocess.STDOUT,
|
||||
timeout=min(195, remaining - 1), check=False)
|
||||
print(f'{name}: exit={result.returncode} log={log}', flush=True)
|
||||
finally:
|
||||
path.write_bytes(original)
|
||||
# Exit 1 needs human inspection of the failing test names; errors are not kills.
|
||||
if result.returncode == 0:
|
||||
raise RuntimeError(f'{name} survived')
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
@@ -1,10 +0,0 @@
|
||||
# Bradford
|
||||
|
||||
Builder seat, Codex gpt-6.1-sol, started by Sage under Q246 and mos-1572. Owns the push check row:
|
||||
`scripts/push-check.sh`, which passes a binary only when an approved review candidate lists its path and sha256
|
||||
(docs/plans/2026-10-24_push-guard-binary-manifest.md, #1825).
|
||||
|
||||
No launcher in this directory. The seat runs as a T3 thread and works in its own worktree. It has no credentials of its
|
||||
own; it pushes only its own `bradford/*` branches through the repository credential helper (mos-0981), never `refactor`,
|
||||
`main` or another seat's branch. Poe gives the first Codex review and Dewey the Opus 5.5 landing review (mos-1542,
|
||||
mos-1571). Registered by Sage on 2026-10-24 so the queue can name the seat as row owner (store.mjs isSeatDir).
|
||||
@@ -1,162 +0,0 @@
|
||||
# Row 327 — reviewed binary push check (#1825)
|
||||
|
||||
2026-10-24 Bradford, branch bradford/row327, base b617b80f6.
|
||||
|
||||
## Plan and boundaries
|
||||
|
||||
Implement the scratch check's ordered tokens in scripts/push-check.sh, using an
|
||||
embedded Node program for byte-safe git paths and SHA-256 blob hashing. Bash is
|
||||
the public entry point; Node is already a repository requirement. Git commands
|
||||
use explicit resolved object IDs, disable external diff/textconv, and inspect
|
||||
committed bytes. No queue writes, hook changes, binary evidence, or live state.
|
||||
Fetch is opt-in. Read reviewed rows with the queue package rows() API rooted in
|
||||
the caller's repository; this preserves canonical/witness/replay checks.
|
||||
|
||||
Only the latest round counts; any changes receipt blocks that round. A matching
|
||||
approval authorizes exactly the manifest path/hash, or a path changed from the
|
||||
commit candidate's first parent with matching committed blob hash and mode.
|
||||
Deleted binaries need no candidate. Multiple --row values form a union.
|
||||
|
||||
Add scratch-only integration coverage in scripts/test-push-check.sh. Reuse queue
|
||||
test fixture helpers to bootstrap real scratch queues, then use queue verbs to
|
||||
open rounds and record receipts. All git writes, bare remotes and queues remain
|
||||
under TMPDIR. Test fail-closed ordering and five required mutants, generated as
|
||||
text copies in scratch. No old tests are modified. Add the TOOLS entry.
|
||||
|
||||
Every run needs Sage CLEAR; run timeout -k 10. Record plain-text results here or
|
||||
in this packet. After green checks, commit and push only bradford/row327 through
|
||||
the repository helper, send Sage and Poe tip/base/path sha256 manifest, and move
|
||||
327 in-review. Sage owns request posting and landing; Dewey reviews once there.
|
||||
|
||||
## Recovery and choices
|
||||
|
||||
Initial worktree queue next refused linked-worktree access as designed. Queue
|
||||
claim is performed from the canonical checkout; production reads in the guard
|
||||
retain the same refusal rather than invent a worktree override.
|
||||
|
||||
Requested Sage ruling on AGENTS log appends outside the brief's owned paths.
|
||||
|
||||
Sage sage-3989: lead handles BUILD-LOG and SESSIONS at landing. Session entry:
|
||||
2026-10-24 Bradford — row 327 / #1825 — implementation and scratch verification
|
||||
in this packet; outcome to be appended after acceptance.
|
||||
|
||||
Implementation note: commit candidates use an explicit first-parent diff (empty
|
||||
tree for a root commit), with rename detection disabled, like verify-commit.
|
||||
The changes-veto case has both an approval and a changes receipt; a veto mutant
|
||||
would otherwise still fail for lack of approval and provide false confidence.
|
||||
A receipt for another candidate cannot be produced through queue verbs: the
|
||||
suite corrupts only a scratch queue and expects the production reader to refuse.
|
||||
Diff color, external diff and textconv are disabled so scans inspect plain git
|
||||
output. Paths are read from NUL-delimited records (including spaces/tabs).
|
||||
|
||||
## Verification (Sage CLEAR sage-3991)
|
||||
|
||||
First new-suite run red: my whitespace-path fixture attempted a manifest path
|
||||
that the queue intentionally forbids. Corrected the fixture to a commit
|
||||
candidate, which can contain that git path. Production queue code and old tests
|
||||
remain unchanged. Raw first-run output is test-run-1.txt.
|
||||
|
||||
Second run green: PASS push-check 22 checks; KILLED skip-hash,
|
||||
accept-changes, earlier-round, working-tree, no-row. test-run-2.txt holds the
|
||||
plain-text receipt. bash -n both scripts and git diff --check passed. Runs used
|
||||
TMPDIR recorded in tmpdir.txt and timeout -k 10 240; all generated binary bytes
|
||||
were in disposable scratch repositories, never in this checkout or evidence.
|
||||
The slot was used for only the authorized new suite and syntax/diff checks.
|
||||
No claim of the lead's full scripts/test-*.sh landing gate is made here.
|
||||
|
||||
Final inspection after the first green run found a path-decoding concern: lossy
|
||||
UTF-8 decoding can conflate distinct git filenames. Hardened NUL-delimited path
|
||||
decoding to reject invalid UTF-8, and quote newline-containing paths in refusal
|
||||
output to preserve one STOP line. Added scratch cases for both. Requested a new
|
||||
CLEAR (bradford-0005) because the previous slot had already been released.
|
||||
|
||||
Final run (sage-3994 CLEAR) green on final code: PASS push-check 24 checks,
|
||||
all five mutants KILLED again, bash -n both scripts and git diff --check passed.
|
||||
Receipt: test-run-3.txt. The guard rejects non-UTF-8 git paths as environment
|
||||
errors rather than comparing replacement characters; newline paths remain
|
||||
checkable through commit candidates and refusals quote them on one line.
|
||||
|
||||
Acceptance for the builder stage: ordered tokens and stop behavior, explicit
|
||||
base/fetch, exact blob manifest/commit checks, latest-round/veto checks, deletion,
|
||||
log/FF/secrets/attribution refusals, and all required mutants are covered. Queue
|
||||
reads use rows() with production validation; tests use only scratch queues.
|
||||
Candidate-mismatched receipts are impossible through the queue API and are
|
||||
covered by a corrupt scratch queue refusing its read. The lead's full-suite gate,
|
||||
Poe first review, Dewey landing review, and adoption for Sage's next push remain
|
||||
landing stages. No hooks, role policy, credentials or other seats' paths changed.
|
||||
|
||||
## Poe first review R1 (poe-0010) — changes
|
||||
|
||||
cceea407e has a blocking subdirectory bypass: ls-tree without --full-tree can
|
||||
omit an existing binary outside the caller cwd, making it look deleted.
|
||||
Accepted the finding. Git now anchors all invocations at the repository root,
|
||||
ls-tree uses --full-tree, and diff/diff-tree use --no-relative. EXPECTED_LOG still
|
||||
resolves from the original caller cwd. Added outside-cwd and nested-binary cases
|
||||
under diff.relative=true: unreviewed stops, reviewed manifest/commit passes.
|
||||
No old test changed. New run requires Sage CLEAR before execution.
|
||||
|
||||
R1 verification under sage-3999 CLEAR: test-run-4.txt records PASS 29 checks
|
||||
and KILLED all five required mutants. Syntax and diff whitespace checks passed.
|
||||
A second bounded run used the new suite against cceea407e's script copied under
|
||||
TMPDIR: r1-regression-red.txt records the outside-cwd unreviewed binary reaching
|
||||
NO_BINARY/PUSH_READY (actual exit 0, expected 1). Thus the new regression detects
|
||||
the reviewed bug, while the revised guard refuses it. No code changed between
|
||||
the green run and this old-candidate reproduction. All runs used timeout -k 10.
|
||||
|
||||
Holding claimant queue writes per sage-3999 until Boyd finishes row 309's record.
|
||||
Last acknowledged row 327 state is in-progress (bradford-0010, revision 3868).
|
||||
|
||||
## Dewey landing review B1 (dewey-0956) — changes
|
||||
|
||||
Read the invited review body at /mnt/storage/scratch/tmp/dew327vWXloCT/body.md.
|
||||
B1 identifies a brief-level gap: numstat follows candidate/host git attributes,
|
||||
so *.bin diff makes a NUL-containing blob disappear from the binary-only set.
|
||||
The production script indeed filters numstat before reading any blob, consistent
|
||||
with that data flow. Proposed correction: enumerate every changed numstat path,
|
||||
skip absent/non-blob entries at SHA, classify binary when numstat says binary OR
|
||||
committed blob has NUL among first 8000 bytes. Read with cat-file, never worktree.
|
||||
Test committed .gitattributes, info/attributes, and core.attributesFile overrides
|
||||
in scratch; reject with no row, allow exact reviewed bytes; add NUL-scan mutant.
|
||||
Sage owns the brief amendment and next CLEAR/queue sequencing.
|
||||
|
||||
N1 acknowledged: candidate-equality check is defense in depth; invalid receipt
|
||||
cannot pass queue replay, so the corrupt-queue case does not isolate that check.
|
||||
N2/N3 recorded as described in review, without optional secrets/reader changes.
|
||||
N4 planned hardening: refuse unconfirmed durable tail notes from rows() with
|
||||
exit 2, with a real scratch witness-prefix case rather than a test-only reader.
|
||||
No test run or queue write started for B1/N4 before Sage CLEAR.
|
||||
|
||||
Sage sage-4013/4015 authorizes B1 and N4 within the brief; amendment committed on
|
||||
refactor at 9042754c4 (read with git show, no branch change). Fix and tests written
|
||||
before requesting CLEAR as directed. Tests cover all three attribute sources,
|
||||
approved manifest success under each override, exact 7999/8000 offset boundary,
|
||||
and a real prefix-witness rollback to yield an unconfirmed approval tail.
|
||||
Added only the requested sixth mutant, skip-nul-scan; the original five remain.
|
||||
No new production configuration knobs, no secrets-diff change, no queue writes.
|
||||
Will demonstrate red against the prior candidate using the new tests, then green
|
||||
against revised code, under the approved slot. Full landing gate remains Sage's.
|
||||
|
||||
After Dewey's round-2 CHANGES record (comment 31522, rev3876), Sage sage-4016
|
||||
released only the claimant return to in-progress. Acknowledged:
|
||||
`ok bradford-0017 rev 3877 row 327 in-review→in-progress`.
|
||||
No other queue write before the next in-review candidate move.
|
||||
Test slot remains pending Sage CLEAR after Gyro's build.
|
||||
|
||||
## Amendment 1 verification (sage-4017 CLEAR)
|
||||
|
||||
b1-regression-red.txt: new tests against 704910ca3 reproduce attributes-hidden
|
||||
asset.bin reaching NO_BINARY/PUSH_READY with exit0 instead of exit1.
|
||||
n4-regression-red.txt: revised code with only the N4 check removed lets the real
|
||||
scratch unconfirmed approval tail reach BINARY_REVIEWED/PUSH_READY, exit0 rather
|
||||
than exit2. These are expected negative controls; neither changed committed code.
|
||||
|
||||
Final full new-suite run is green: test-run-5.txt records PASS 38 checks and
|
||||
KILLED skip-hash, accept-changes, earlier-round, working-tree, no-row, skip-nul-scan.
|
||||
All runs used timeout -k 10 240 with the same scratch TMPDIR; no old tests were
|
||||
changed or run. bash -n both scripts and git diff --check also passed. No source
|
||||
changes followed this green run. Sage's full landing gate is still separate.
|
||||
|
||||
Scope in the final delta: classify all changed present blobs using numstat OR
|
||||
first-8000-byte NUL; fail closed on queue unconfirmed-tail notes; regression cases
|
||||
and requested sixth mutant; TOOLS entry and this plain-text packet. B1's brief
|
||||
amendment is Sage's 9042754c4; this branch does not edit the brief or queue files.
|
||||
@@ -1,27 +0,0 @@
|
||||
node:internal/modules/run_main:107
|
||||
triggerUncaughtException(
|
||||
^
|
||||
|
||||
AssertionError [ERR_ASSERTION]: LOG_OK
|
||||
FF_OK
|
||||
NO_BINARY
|
||||
SECRETS_CLEAN
|
||||
NO_ATTRIBUTION
|
||||
PUSH_READY ee394f31d1e52751716e2413049f41b2f3072e65..76acc948149e718091fcd3f3807257e752a6616e
|
||||
|
||||
|
||||
|
||||
0 !== 1
|
||||
|
||||
at Object.check (file:///home/jwoltje/.t3/worktrees/mosaic-stack/bradford-row327/[eval1]:44:12)
|
||||
at file:///home/jwoltje/.t3/worktrees/mosaic-stack/bradford-row327/[eval1]:100:7
|
||||
at process.processTicksAndRejections (node:internal/process/task_queues:104:5) {
|
||||
generatedMessage: false,
|
||||
code: 'ERR_ASSERTION',
|
||||
actual: 0,
|
||||
expected: 1,
|
||||
operator: 'strictEqual',
|
||||
diff: 'simple'
|
||||
}
|
||||
|
||||
Node.js v26.8.1
|
||||
@@ -1,27 +0,0 @@
|
||||
node:internal/modules/run_main:107
|
||||
triggerUncaughtException(
|
||||
^
|
||||
|
||||
AssertionError [ERR_ASSERTION]: LOG_OK
|
||||
FF_OK
|
||||
BINARY_REVIEWED 1
|
||||
SECRETS_CLEAN
|
||||
NO_ATTRIBUTION
|
||||
PUSH_READY c1a8a1e9b8c3988874a8f7a35afab7c06aea94a5..325cd3671a7bf70b9a3aee60f4446bc93594a12a
|
||||
|
||||
|
||||
|
||||
0 !== 2
|
||||
|
||||
at Object.check (file:///home/jwoltje/.t3/worktrees/mosaic-stack/bradford-row327/[eval1]:44:12)
|
||||
at file:///home/jwoltje/.t3/worktrees/mosaic-stack/bradford-row327/[eval1]:121:7
|
||||
at process.processTicksAndRejections (node:internal/process/task_queues:104:5) {
|
||||
generatedMessage: false,
|
||||
code: 'ERR_ASSERTION',
|
||||
actual: 0,
|
||||
expected: 2,
|
||||
operator: 'strictEqual',
|
||||
diff: 'simple'
|
||||
}
|
||||
|
||||
Node.js v26.8.1
|
||||
@@ -1,27 +0,0 @@
|
||||
node:internal/modules/run_main:107
|
||||
triggerUncaughtException(
|
||||
^
|
||||
|
||||
AssertionError [ERR_ASSERTION]: LOG_OK
|
||||
FF_OK
|
||||
NO_BINARY
|
||||
SECRETS_CLEAN
|
||||
NO_ATTRIBUTION
|
||||
PUSH_READY 896bdf0ef56596c67d2dc427275743c46026e832..ad9f9c86112fadafef4d4854f46bd9994fe2fe5d
|
||||
|
||||
|
||||
|
||||
0 !== 1
|
||||
|
||||
at Object.check (file:///home/jwoltje/.t3/worktrees/mosaic-stack/bradford-row327/[eval1]:44:12)
|
||||
at file:///home/jwoltje/.t3/worktrees/mosaic-stack/bradford-row327/[eval1]:130:7
|
||||
at process.processTicksAndRejections (node:internal/process/task_queues:104:5) {
|
||||
generatedMessage: false,
|
||||
code: 'ERR_ASSERTION',
|
||||
actual: 0,
|
||||
expected: 1,
|
||||
operator: 'strictEqual',
|
||||
diff: 'simple'
|
||||
}
|
||||
|
||||
Node.js v26.8.1
|
||||
@@ -1,21 +0,0 @@
|
||||
node:internal/modules/run_main:107
|
||||
triggerUncaughtException(
|
||||
^
|
||||
|
||||
AssertionError [ERR_ASSERTION]: queue: candidate manifest path must be a repo-relative path: "space tab\tasset.bin"
|
||||
|
||||
|
||||
2 !== 1
|
||||
|
||||
at Object.round (file:///home/jwoltje/.t3/worktrees/mosaic-stack/bradford-row327/[eval1]:61:12)
|
||||
at file:///home/jwoltje/.t3/worktrees/mosaic-stack/bradford-row327/[eval1]:116:7
|
||||
at process.processTicksAndRejections (node:internal/process/task_queues:104:5) {
|
||||
generatedMessage: false,
|
||||
code: 'ERR_ASSERTION',
|
||||
actual: 2,
|
||||
expected: 1,
|
||||
operator: 'strictEqual',
|
||||
diff: 'simple'
|
||||
}
|
||||
|
||||
Node.js v26.8.1
|
||||
@@ -1,6 +0,0 @@
|
||||
PASS push-check 22 checks
|
||||
KILLED skip-hash
|
||||
KILLED accept-changes
|
||||
KILLED earlier-round
|
||||
KILLED working-tree
|
||||
KILLED no-row
|
||||
@@ -1,6 +0,0 @@
|
||||
PASS push-check 24 checks
|
||||
KILLED skip-hash
|
||||
KILLED accept-changes
|
||||
KILLED earlier-round
|
||||
KILLED working-tree
|
||||
KILLED no-row
|
||||
@@ -1,6 +0,0 @@
|
||||
PASS push-check 29 checks
|
||||
KILLED skip-hash
|
||||
KILLED accept-changes
|
||||
KILLED earlier-round
|
||||
KILLED working-tree
|
||||
KILLED no-row
|
||||
@@ -1,7 +0,0 @@
|
||||
PASS push-check 38 checks
|
||||
KILLED skip-hash
|
||||
KILLED accept-changes
|
||||
KILLED earlier-round
|
||||
KILLED working-tree
|
||||
KILLED no-row
|
||||
KILLED skip-nul-scan
|
||||
@@ -1 +0,0 @@
|
||||
/mnt/storage/scratch/tmp/YPrPwR
|
||||
@@ -1,8 +0,0 @@
|
||||
# Bubba
|
||||
|
||||
Builder seat, Codex gpt-6.1-sol, started by Mos under Q245 (mos-1506). Owns row 288 (agent write notices and library revert, handed over from Honker).
|
||||
|
||||
No launcher in this directory. The seat runs as a T3 thread (thread 3d6672b5) and works in its own worktree. It has no
|
||||
credentials of its own; it pushes only its own `bubba/*` branches through the repository credential helper (mos-0981),
|
||||
never `refactor`, `main` or another seat's branch. Claude seats orchestrate and review (Q245). Registered by Sage on
|
||||
2026-10-23 so the queue can name the seat as row owner (store.mjs isSeatDir).
|
||||
@@ -0,0 +1 @@
|
||||
45dca69f6e4bce52834587f66f2ff33ba839ab8a
|
||||
@@ -0,0 +1,69 @@
|
||||
# P1 start 2026-10-23T18:53:29.815Z, REPO HEAD 45dca69f6e4bce52834587f66f2ff33ba839ab8a
|
||||
# plan sha256 0c932a4ccee93252e6c91dbc171e9427bcc82fc30025f97ff48a3d85b4ebddf1, P0 recorded 0c932a4ccee93252e6c91dbc171e9427bcc82fc30025f97ff48a3d85b4ebddf1; NEW 45dca69f6e4bce52834587f66f2ff33ba839ab8a
|
||||
# business-check.mjs sha256 eece4d4671e1ce15ba81e1654c641925ac4988b343687b062897392285a8a1a7; SCRIPTS.sha256 line: eece4d4671e1ce15ba81e1654c641925ac4988b343687b062897392285a8a1a7 business-check.mjs
|
||||
# business file sha256 1e49bdf05e62607972958f5b7298cfd600c7825812370e26d7c2a842f2af9b93, mtime 2026-10-19 20:39:58.506635141 -0500
|
||||
|
||||
## P1 status
|
||||
# start 2026-10-23T18:53:29.828Z
|
||||
# command: (cd $REPO && <clean env> scripts/stack-release.sh status mosaic-stack)
|
||||
pointer: /home/jwoltje/.mosaic-dev/state/stack-active.json
|
||||
{"copy":"464010fbe4c6925b077b9b8182a209ee2177eb9d","business":"mosaic-stack","pm":true,"claude":"/home/jwoltje/.local/bin/claude","console":["--port","7332","--public-host","mosaic.woltje.com","--auth-header","X-authentik-username","--allow-user","jason.woltje","--tester-socket"],"schema":"3n","activation":"20261023T034557Z-464010fbe4c6","at":"2026-10-23T03:46:02Z"}
|
||||
log (last five lines):
|
||||
{"at":"2026-10-22T15:06:00Z","op":"activate","from":"86f95bb27f6cb237bf9fa9ba53320bace6c4de0b","to":"84f53540dd0d21ef179ca29697e172b0246e78d1","backup":"20261022T150555Z-84f53540dd0d","activation":"20261022T150555Z-84f53540dd0d","result":"ok"}
|
||||
{"at":"2026-10-22T20:16:21Z","op":"activate","from":"84f53540dd0d21ef179ca29697e172b0246e78d1","to":"0cbe2e9b35e51fe06dedde69c022b46e040f98c0","backup":null,"activation":"20261022T201621Z-0cbe2e9b35e5","result":"started","interpreter":"{\"path\":\"/usr/bin/python3.14\",\"version\":[3,14,6],\"dev\":66308,\"ino\":3968163,\"sha256\":\"8735f172622a7f8d27e293fd0fd36fc55c4cb9b663b6630d33b57870e36c24cc\"}"}
|
||||
{"at":"2026-10-22T20:16:24Z","op":"activate","from":"84f53540dd0d21ef179ca29697e172b0246e78d1","to":"0cbe2e9b35e51fe06dedde69c022b46e040f98c0","backup":"20261022T201621Z-0cbe2e9b35e5","activation":"20261022T201621Z-0cbe2e9b35e5","result":"ok"}
|
||||
{"at":"2026-10-23T03:45:57Z","op":"activate","from":"0cbe2e9b35e51fe06dedde69c022b46e040f98c0","to":"464010fbe4c6925b077b9b8182a209ee2177eb9d","backup":null,"activation":"20261023T034557Z-464010fbe4c6","result":"started","interpreter":"{\"path\":\"/usr/bin/python3.14\",\"version\":[3,14,6],\"dev\":66308,\"ino\":3968163,\"sha256\":\"8735f172622a7f8d27e293fd0fd36fc55c4cb9b663b6630d33b57870e36c24cc\"}"}
|
||||
{"at":"2026-10-23T03:46:02Z","op":"activate","from":"0cbe2e9b35e51fe06dedde69c022b46e040f98c0","to":"464010fbe4c6925b077b9b8182a209ee2177eb9d","backup":"20261023T034557Z-464010fbe4c6","activation":"20261023T034557Z-464010fbe4c6","result":"ok"}
|
||||
check:
|
||||
bus: /home/jwoltje/.local/share/mosaic-stack/copies/464010fbe4c6925b077b9b8182a209ee2177eb9d
|
||||
Console: /home/jwoltje/.local/share/mosaic-stack/copies/464010fbe4c6925b077b9b8182a209ee2177eb9d
|
||||
CLI: /home/jwoltje/.local/share/mosaic-stack/copies/464010fbe4c6925b077b9b8182a209ee2177eb9d
|
||||
result: pass
|
||||
bus status:
|
||||
host: mosaic-stack, pid 3811005, running, since 2026-10-23T03:45:59.548Z, notifier off
|
||||
socket: present
|
||||
writer.lock: pid 3811049
|
||||
boot: organization file loaded at 2026-10-23T03:45:59.547Z
|
||||
unit flags: match the pointer
|
||||
drift: 141 commit(s) on refactor since the pointer's copy
|
||||
# exit 0, end 2026-10-23T18:53:30.157Z
|
||||
|
||||
## P1 values
|
||||
# start 2026-10-23T18:53:30.159Z
|
||||
# command: (cd $REPO && <clean env> node /mnt/storage/src/mosaic-stack/agents/darkwing/work/window-repin-45dca69f6/p1.mjs)
|
||||
bus.tester true
|
||||
plugins kinds ["channel","harness","usage-source"]
|
||||
plugins usage-source ["transcript"]
|
||||
plugins channel ["cli","webui"]
|
||||
plugins harness ["claude-code"]
|
||||
launch.by "chief"
|
||||
launch.instances includes assistant true
|
||||
role assistant vars.harness "claude-code"
|
||||
role chief vars.harness "claude-code"
|
||||
role coder vars.harness "claude-code"
|
||||
role cto vars.harness "claude-code"
|
||||
role pm vars.harness "claude-code"
|
||||
role reviewer vars.harness "claude-code"
|
||||
roles naming pi 0
|
||||
# exit 0, end 2026-10-23T18:53:30.186Z
|
||||
|
||||
## P1 business-check OLD
|
||||
# start 2026-10-23T18:53:30.210Z
|
||||
# command: (cd $REPO && <clean env> node /mnt/storage/src/mosaic-stack/agents/sage/work/window-plan/repin-de352dfaf/business-check.mjs 464010fbe4c6925b077b9b8182a209ee2177eb9d)
|
||||
copy 464010fbe: roles 6, projects 1, arbiters 2
|
||||
HOLDS chief instance.name yes
|
||||
HOLDS pm instance.name no
|
||||
LOAD_OK
|
||||
# exit 0, end 2026-10-23T18:53:30.254Z
|
||||
|
||||
## P1 config.json top-level key names (C1; names only)
|
||||
configVersion dataRoot environment execution
|
||||
# C1: every key is one the loader at OLD and NEW takes; console key absent, federation key absent
|
||||
|
||||
## P1 data console
|
||||
# dataRoot /home/jwoltje/.mosaic-dev
|
||||
# ls -ld $DATA/console:
|
||||
drwx------ 2 jwoltje jwoltje 4096 Oct 22 22:45 /home/jwoltje/.mosaic-dev/console
|
||||
# ls rc=0
|
||||
# tester.sock path length 45 bytes (limit 107)
|
||||
# P1 end 2026-10-23T18:53:30.336Z
|
||||
@@ -0,0 +1,11 @@
|
||||
# PLAN.md corrections (PLAN.md stays at P0's sha256 0c932a4c; corrections are appended here, never edited in)
|
||||
|
||||
- 18:51:36Z, Mos (mos-1491): 39bde4fd4 isn't Jason's. It's row 292's build (Gizmoduck, done 05:20Z), beside row
|
||||
292's release-plan docs at be4357216 and 4b612781b. Its author field reads Jason Woltje because seats commit
|
||||
under the shared git identity (131 of the 141 OLD..NEW commits do). Read the PLAN's "release fix" row and
|
||||
"Jason's 39bde4fd4" as row 292. Row 292's loader check also runs in Mos's P3 rehearse; a refusal of a live
|
||||
config key there stops the window as a finding.
|
||||
- Gate method: sage-busy-now.sh counts any running `bash <script>.sh`, so a wrapper script flags itself
|
||||
(gate.txt, 18:51:27Z to 18:51:51Z, three HOLDs, no step ran). Each step runs from the shell as
|
||||
`bash /mnt/storage/scratch/sage-busy-now.sh 2>/dev/null | head -3 > .gate; grep -q '^CLEAR' .gate && bash STEP`,
|
||||
with .gate appended to gate.txt.
|
||||
@@ -0,0 +1,204 @@
|
||||
# Re-pin window 464010fbe to 45dca69f6 (3n, no migrate)
|
||||
|
||||
Darkwing operates this window. Sage assigned it in sage-3572 (18:36:42Z 10-23, under Q173 on dragon-lin). The
|
||||
conditions are: backup first and a STATE report after. The Console 200 on 7332 and the new activation id go in the
|
||||
report. Mos ruled condition 11 in mos-1487 (D1-D4, below). The layout follows my last window's
|
||||
`window-migrate-3n/PLAN.md`. Where a step is unchanged I name it and only say what differs. There's no
|
||||
schema change this time, so the migration steps and the restore-only rollback are gone. The window's files go on
|
||||
a darkwing/* branch, never local refactor.
|
||||
|
||||
## Who, and what nobody does
|
||||
|
||||
- I operate. Mos checks each step's output before the next one. Mos runs P3 and gives the W0b-W4 go and the W5 go
|
||||
straight to me (sage-3572). Sage gives the slot: P0, D3, B0, P1, W0, P2 and P4-P6 each run only after a CLEAR
|
||||
busy check. Until then, only plan text, git reads and file prep.
|
||||
- Jason has no step. Nothing gets pruned. Nobody acts as Jason: no `--by jason`, no human shell or tmux pane,
|
||||
every bus read carries `--tester`, and `bus.tester` stays as it is. If it isn't `true`, stop at P1.
|
||||
- After W5, any Console start or restart is Mos's. I don't start, stop or restart the Console, the bus or
|
||||
mosaic-webui by hand.
|
||||
- Nothing new goes on: no `mosaic access`, no access.json (mos-1487 D3), no Gitea grant run, no `--send`, no
|
||||
`--sso`, no proof pair, no pi (#383), no federation key. dragon-lin only; .53 and .54 take nothing.
|
||||
- Status to Mos every 15 minutes while I hold the slot. A blocker goes to Mos with the exact command and its
|
||||
output.
|
||||
|
||||
## Condition 11 (row 295's revocation), mos-1487
|
||||
|
||||
The evidence, as Mos worded it (D1): "0 user threads (read-only count 18:38:22Z, 5 threads, all owned by tester),
|
||||
access not wired (no ~/.config/mosaic-dev/access.json, accessFor returns null)".
|
||||
|
||||
- D1. `c11.sh` repeats the count read-only (python3 -B, `mode=ro`): the thread total, the owner classes, the
|
||||
`user:` thread count, the `thread_claims` op='revoke' count, the session_ops and message_cancels row counts,
|
||||
and whether access.json exists (`-e` only). It runs at W0, W1 and W6 and appends to `c11.txt`. A user thread
|
||||
count other than 0 stops the step and goes to Mos.
|
||||
- D2. After activation, in W6's evidence:
|
||||
- The 5 tester threads are all still there. `tr.sh W6` against W1 checks the same ids, message counts and
|
||||
sha256 of each thread read.
|
||||
- None of them is revoked. `c11.sh W6` reads 0 user threads and the same op='revoke' count as W1. #revokeLost is
|
||||
the only writer of op='revoke', and it acts only on `user:` owners.
|
||||
- The launch log `$DATA/launches/mosaic-stack.jsonl` has 0 `"event":"thread-revoked"` lines with `at` at or
|
||||
after W5.start. It has 0 such lines in all 140 now.
|
||||
- The bus journal since W5.start has 0 lines naming `thread-revoked`, count only.
|
||||
- If any of these fails, the step stops and goes to Mos, and the rollback below applies.
|
||||
- D3. I don't create access.json and I don't run `mosaic access`. Wiring access is a human act. Mos files it as a
|
||||
Vikunja task, and it doesn't gate this window.
|
||||
- D4. This no-migrate revision. Run P0, D3, B0, P1, W0, P2 and P4-P6 on CLEAR. The W0 line with the sha and the
|
||||
backup name goes to Mos, who runs P3.
|
||||
|
||||
## Names
|
||||
|
||||
- OLD, live: `464010fbe4c6925b077b9b8182a209ee2177eb9d`, schema 3n, pointer `pm: true`, activation
|
||||
`20261023T034557Z-464010fbe4c6`. Two standing launches: chief `r28dbbc5c6b4d` (by jason, 03:46:01Z) and pm
|
||||
`ra38826f3c6e2` (by the chief, 03:47:35Z, pid 3831373, runner 3831374), which the last window's W9b left
|
||||
live. The pointer's Console flags are `--port 7332 --public-host mosaic.woltje.com --auth-header
|
||||
X-authentik-username --allow-user jason.woltje --tester-socket`. P1 reads them again from `status`; nothing
|
||||
copies them from this file.
|
||||
- NEW: `45dca69f6e4bce52834587f66f2ff33ba839ab8a`, Sage's target, 141 commits past OLD. This is not the tip at
|
||||
window start. P0 refuses unless:
|
||||
- OLD and 59f0e44f4 (row 301) are ancestors.
|
||||
- NEW's stack-release.sh blob is `2656f95b00e3`.
|
||||
- `SCHEMA_VERSION` is 3n at both OLD and NEW.
|
||||
|
||||
P0 writes `$WIN/NEW` once, and NEW is frozen for the window.
|
||||
- `WIN=agents/darkwing/work/window-repin-45dca69f6/`. `vars.sh` holds OLD, the target, the tool blob, the four
|
||||
service scripts and both standing run ids. It reads NEW and this file's sha256 from P0's files. Every step
|
||||
script sources it and is mode 755. `c11.sh` and the `r301` check in `p456.sh` are new. The rest adapt the last
|
||||
window's scripts.
|
||||
|
||||
## What NEW carries over OLD
|
||||
|
||||
These are the non-test runtime paths changed OLD..NEW (`git diff --name-only`, without tests, agents/, docs/ and
|
||||
`.md`). Sage's list names rows 272, 295, 300, 301, 306, 307, 308, 252 and the 571 docs. The range also carries
|
||||
rows 294, 302 and 219 and Jason's 39bde4fd4. All of them are in NEW, so all of them go live.
|
||||
|
||||
| Row | Commits | Paths | Live effect here |
|
||||
|---|---|---|---|
|
||||
| 252 (#1753) | 24672fd9d | bus broker, client, console-cli, human, principal, runtime, server; cli config; webui bus.mjs, cli.mjs, decision-http.mjs, public/bus.js, serve.mjs | Console inbox Approve and Deny for grant requests, human-only through a console owner proof. It needs `--send` and `--sso`, and live has neither. `/api/config` gains `decide`, which is false here. |
|
||||
| 295 (#1801, FED R4) | ff54a1556, 31da9dcb8, 24f8f5d73, 0c8f12ea2 | bus broker, runtime; cli access, launcher, config | 30 s access timer, `access.reload`, a one-transaction claim end on a loss. It acts only on `user:` threads. There are none (condition 11), and access.json is absent. |
|
||||
| 306 (#1813) | 2d0318a44 | bus broker; harness runner | `#accessRevoked` from #revokeLost; a revoked run's calls answer `thread-revoked` and its runner stops. Same trigger as 295. |
|
||||
| 302 (#1809) | 2b6111a17 | bus broker; harness runner | A released run answers `launcher-released` on calls that need the claim. |
|
||||
| 307 (#1814) | dbbda2537 | cli launcher; plugins harness kinds, claude-code, pi; seat compactions | The harness kind gains `compactions`. The launcher's ledger is the same file row 270 writes. |
|
||||
| 272 | 490f45f02, 70651f45d, f859d06d2, 0ea3db297 | bus broker; cli cli, session, thread; plugins channel cli and webui; webui chat-http, chat, public/chat.* | Session CLI and Console chat fixes. packages/seat/src/session.mjs is unchanged, at sessionsVersion 2. |
|
||||
| 294 (#1800, FED R6) | afef0ea88, 52d2a1610, 26f93fa74 | cli access, config; webui access, chat-http, chat, cli, console-bus, public app.js, federation.js, index.html, user.html, user.js, serve.mjs, sso.mjs | Granted-user sign-in. It is consulted only under `--sso` (`webui/src/cli.mjs:95-106`), and live has no `--sso`. |
|
||||
| 301 (#1808) | bb031ec84, 59f0e44f4 | webui bus.mjs, cli.mjs, console-bus.mjs | user-bus.mjs folded into bus.mjs. Row 252 re-pinned bus.mjs, so NEW's channel-proof pin is 604092cb. See "Row 301" below. |
|
||||
| 219 | 049214486 and its landing (5fdfd7275) | bus broker; cli launcher; webui chat-http, chat, public/chat.js, serve.mjs | Row 219's admission change, landed on refactor. |
|
||||
| 300 (#1807) | tests only | none | No runtime path. |
|
||||
| 308, 1.16 | 30e6bb680, 4874d1e83 | packages/tasks/requirements.json | PRD 1.17, 87 requirements (it was 1.15 and 85 at OLD). |
|
||||
| release fix | 39bde4fd4 (Jason) | scripts/stack-release.sh | config_checks now validate any key beyond configVersion, environment, dataRoot and execution with the target's loader, not only console and federation. |
|
||||
| 571 docs | docs only | none | No runtime path. |
|
||||
|
||||
These are unchanged OLD to NEW (`git diff --stat` empty): bus-service.sh, webui-service.sh, stack-copy.sh,
|
||||
common.sh, package.json, package-lock.json, packages/bus/schema.sql, the migrations, packages/seat/src/session.mjs
|
||||
and scripts/mosaic-config.mjs.
|
||||
|
||||
### Config keys (C1)
|
||||
|
||||
scripts/mosaic-config.mjs is the same at OLD and NEW. Its top-level keys are configVersion, environment, dataRoot,
|
||||
execution, console, federation, compactionReadBytes and compactionStreams (`:304`). With 39bde4fd4,
|
||||
stack-release.sh validates the live config with NEW's loader whenever it holds any key beyond the first four.
|
||||
- P1 prints the live config's top-level key names only, no values. It stops on any key outside those eight, and it
|
||||
records whether console and federation are present.
|
||||
- W0 runs NEW's `mosaic-config.mjs validate` from the NEW copy and needs exit 0.
|
||||
|
||||
### Row 301 (59f0e44f4)
|
||||
|
||||
59f0e44f4 pinned webui bus.mjs at 39fcb27c. Row 252 (24672fd9d) changed bus.mjs again and re-pinned it. So at NEW,
|
||||
channel-proof.test.mjs pins `packages/webui/src/bus.mjs` at
|
||||
`604092cb706b152d458f299ff1071f6cd488774629012f96b672f7e9a16c0b2c`. That is the sha256 of NEW's bus.mjs (git blob
|
||||
93dcbc16). `p456.sh r301 [COPY]` checks three things:
|
||||
- 59f0e44f4 is an ancestor of NEW.
|
||||
- NEW's pin equals the sha256 of NEW's bus.mjs.
|
||||
- Given a copy, the copy's bus.mjs equals the pin.
|
||||
|
||||
It prints `R301 PASS`. P5 runs it against NEW's copy after W0, and W9 runs it against the live copy.
|
||||
|
||||
## Schema and backups
|
||||
|
||||
- `SCHEMA_VERSION` is 3n at OLD, at NEW and in the live store. There's no migration and no `--migrate`.
|
||||
- NEW's `--plan` prints the following for a same-schema run (stack-release.sh at blob 2656f95b0):
|
||||
- `store schema: 3n (read from the store the running bus holds)`
|
||||
- `target schema: 3n`
|
||||
- `migration: none; the store is at the target's version`
|
||||
|
||||
It prints no `needs:` line and no decision 96 line, since those appear only with a migration. W3 stops on any
|
||||
`needs:` line or any second migration line.
|
||||
- The counts stay what the last window's W6 read: 26 tables, 97 triggers, 5 views and 28 indexes, with
|
||||
schema_version 3n. session_ops and message_cancels are append-only (their triggers refuse delete), so W6 needs
|
||||
each at no fewer rows than W1's c11 read.
|
||||
- D3 (`d3.sh`): the data-root tar with the same exclusions as last time. It expects `bus-host/sessions.json` at
|
||||
sessionsVersion 2. Plain tar.
|
||||
- BZ (`bz.sh`): the business file copy. Its sha256 must be
|
||||
1e49bdf05e62607972958f5b7298cfd600c7825812370e26d7c2a842f2af9b93, as at the last three windows. cp and
|
||||
sha256sum only; never read.
|
||||
- B0 (`b0.sh 3n`), on CLEAR: the online sqlite backup-API copy, laid out for `rehearse --backup PATH`. `SCHEMA`
|
||||
must say 3n. Its path and SHA256SUMS sha256 go to Mos with D3's in the W0 line. This is "backup first".
|
||||
- W5's activate still backs up the stopped store (`stack-release.sh:1485`; activate always runs its migrate step,
|
||||
which takes the backup before it finds nothing to migrate). The `--plan` backup line says so, and W5 records
|
||||
that backup's path, `SCHEMA` 3n and SHA256SUMS sha256.
|
||||
- Disk: /home has 35G free and backups/ is 7.7G. The last D3 is about 1.5G.
|
||||
|
||||
## Before the window (nothing stopped)
|
||||
|
||||
| # | Who | Step |
|
||||
|---|-----|------|
|
||||
| P0 | operator, git only | `p0.sh <this file's sha256>`: writes `$WIN/NEW` and `$WIN/PLAN.sha256` (see Names). |
|
||||
| D3 | operator, on CLEAR | `d3.sh`, above. |
|
||||
| BZ | operator | `bz.sh`, above. |
|
||||
| B0 | operator, on CLEAR | `b0.sh 3n`, above. |
|
||||
| P1 | operator, on CLEAR | `p1.sh`: `status` shows pointer OLD, activation `20261023T034557Z-464010fbe4c6`, 3n, the Console flags, and unit flags that match. Business file sha256 1e49bdf0 and `business-check.mjs` LOAD_OK for OLD. `$DATA/console` 0700, `tester.sock` 0600, `bus.tester` `true`. C1's key names. |
|
||||
| W0 | operator, on CLEAR | `w0.sh`: `scripts/stack-copy.sh copy $NEW`, `business-check.mjs` LOAD_OK for NEW, NEW's `mosaic-config.mjs validate` exit 0, then `c11.sh W0`. A user thread count other than 0 stops and goes to Mos (D1). Then the W0 line goes to Mos and Sage: NEW's sha, B0's path and SHA256SUMS sha256, and D3's path. |
|
||||
| P2 | operator, on CLEAR | `p2.sh` and `p2units.sh`: the two stub runs against NEW's copy with console-check.sh d068fe02, then both units rendered from REPO's service scripts and diffed against the live units. The copy path is the only difference allowed. |
|
||||
| P3 | Mos | `stack-release.sh rehearse $NEW mosaic-stack --backup <B0 path> --port 7341`. The schemas are the same, so the rehearsal doesn't migrate; Mos reads its PASS lines for `REHEARSAL_PASS`. Then `python3 -B p3/counts.py <B0>/bus/bus.sqlite <rehearsal>/data/bus/bus.sqlite`, which should show every table equal. `p3/hand-console.sh <rehearsal dir>` is there if Mos wants the hand Console read. It refuses a directory that isn't NEW's. |
|
||||
| P4 | operator, on CLEAR | `p456.sh p4`: the tunnel read. |
|
||||
| P5 | operator, on CLEAR | `p456.sh p5`: the four service scripts held at NEW with empty porcelain, then `r301` against NEW's copy. |
|
||||
| P6 | operator, on CLEAR | `p456.sh p6` as `matrix-old.txt` and `p456.sh tester` as `tester-old.txt`: the 7332 matrix (a)-(g) and the two tester-http reads, for W10. |
|
||||
|
||||
## The window, on Mos's go
|
||||
|
||||
| # | Who | Step |
|
||||
|---|-----|------|
|
||||
| W0b | operator | `wsteps.sh` runs W0b to W4 in one go and stops at the first failed check. W0b is the business file copy again. |
|
||||
| W1 | operator | Idle check (`agents --tester`, `launches list`), the start stamp from `date -u`, S1 with snapshot.mjs at 639fd28a, `--held`. The live launches allowed are the chief r28dbbc5c6b4d and the pm ra38826f3c6e2. The chief must be listed; the pm's presence is noted. Any other launch, or either one working, stops and goes to Mos. Then `c11.sh W1` and `d3.sh` again. |
|
||||
| W2 | operator | `status`: pointer OLD, `pm: true`, 3n, unit flags match. |
|
||||
| W3 | operator | `stack-release.sh activate $NEW mosaic-stack --pm --tester-socket --plan`, no `--migrate`. It must show OLD to NEW, the three schema lines above, no `needs:` line, no restore or note line, the commit count, the backup line, and a Console line with exactly OLD's flags: `--tester-socket`, no `--send`, no `--sso`, no proof pair, no drop line. Any other difference stops here. |
|
||||
| W4 | operator | The unit reads. W3 and W4 go to Mos for the W5 go. |
|
||||
| W5 | operator, on Mos's go | `w5pre.sh` right before: agents and launches again with W1's rule. A working chief or pm stops. Then `w5.sh`: the same activate without `--plan`. It needs exit 0, `activate ok`, `gate passed`, `stopped store schema: 3n`, no `migrated the store` line and no drop line. Record the activation id, the backup path, STAMP, the backup's SCHEMA (3n) and SHA256SUMS sha256, and the bus journal's `launched` lines since W5's start. Then `status` (NEW, pm true, 3n, check pass) and `rollback mosaic-stack --plan`, read only. |
|
||||
| W6 | operator, after Mos checks W5 | `w6.sh`. `status` shows NEW at 3n. A read-only python3 count on the live store gives 26 tables, 97 triggers, 5 views and 28 indexes, schema_version 3n, every 3n object by name, and session_ops and message_cancels at or above W1's counts. `agents --tester` answers. `tr.sh` thread reads match W1's. `bus-host/sessions.json` is at sessionsVersion 2. Then mos-1487 D2, as above. |
|
||||
| W7 | Mos | Any Console restart. I record the Console pid and `/proc/<pid>/cwd` before and after, and change nothing. |
|
||||
| W9 | operator | `w9.sh`: <ul><li>The Console unit active, started after W5, cwd NEW's copy (mos-1338 item 4).</li><li>Status 3n.</li><li>console-check d068fe02 CONSOLE_PASS.</li><li>The webui journal since W5 with one `proxy proof off` and no `Sign-in:`.</li><li>`tester.sock` 0600 in a 0700 `console/`.</li><li>One peercred-starts line naming NEW.</li><li>No `library:` line.</li><li>One running chief from this start, not working.</li><li>No live pm (see below).</li><li>`p456.sh r301` against the live copy, R301 PASS.</li></ul> |
|
||||
| W10 | operator | `w10.sh`: <ul><li>The matrix again as `matrix-new.txt`, lines a-g the same as `matrix-old.txt`. Line a is the Console 200 on 7332, `healthz 200 ok=true`.</li><li>The two tester-http reads. `/api/config` is P6's status and body with `"send":false,"edit":false` turned into `"send":false,"decide":false,"edit":false` (row 252, `serve.mjs:839`). `user` and `federation` appear only with a grant or a hub, and live has neither. `/api/bus/agents` is 200, with its count shown beside P6's.</li><li>No listener on 7333.</li><li>P4 again.</li><li>Console POSTs on 7332 with no session are refused (mos-1195).</li><li>The tester's `POST /api/processing` is refused 403 read-only.</li></ul> |
|
||||
| W11 | operator | <ul><li>STATE in `$WIN/STATE.md`, with the activation id, W10's line a, the condition 11 and D2 evidence, the row 301 check and the pm ending.</li><li>Comments on the issues of the rows NEW puts live, posted as darkwing and read back.</li><li>The P19 body to Sage.</li><li>The window's files and this plan committed and pushed to a darkwing/* branch.</li></ul> |
|
||||
|
||||
### The pm
|
||||
|
||||
ra38826f3c6e2 runs in the cgroup of mosaic-bus@mosaic-stack.service. W5 stops the bus, so it ends the pm the way
|
||||
the last window's W5 ended the old chief. There's no W9b this window. Nothing here sends to the chief or the pm,
|
||||
and nothing relaunches the pm. So:
|
||||
- W9 expects 0 live pm and records the old pm's entry.
|
||||
- STATE says "ended by W5".
|
||||
- The next window's W1 expects only this window's chief.
|
||||
|
||||
If Mos wants a pm on NEW, that's a separate ruling and a separate step.
|
||||
|
||||
## Steps skipped, and why
|
||||
|
||||
- W8 (the share check) is skipped: NEW adds no share path.
|
||||
- W9b is skipped: there's no pm proof this window (above).
|
||||
- There's no thread create, launch, `mosaic access` or grant run. So 295's and 306's revocation, 302's
|
||||
launcher-released answer, 252's Approve and Deny, and 294's granted-user sign-in aren't exercised on live. Their
|
||||
tests ran green in their own gates. On live they're inert: no user threads, no access.json, no `--sso`, no
|
||||
`--send`.
|
||||
|
||||
## Stop conditions and rollback
|
||||
|
||||
- The first failure stops the step and goes to Mos, together with the exact command and its output. Any restore,
|
||||
rollback, or second failure ends the window. Before W5 there's nothing to undo. Keep every copy and prune
|
||||
nothing.
|
||||
- After W5, rollback is a pointer flip to 464010fbe: `stack-release.sh rollback mosaic-stack`. The schema is 3n on
|
||||
both sides, so OLD opens the store as it is. W5 records the `--plan` of that rollback. The flip waits for Mos's
|
||||
go and ends the window. OLD and NEW share session.mjs at sessionsVersion 2. The compactions ledger is a file
|
||||
OLD's launcher writes too.
|
||||
- A D2 failure (a missing or changed tester thread, a revoke row, a thread-revoked line) is a stop to Mos with
|
||||
this rollback, per mos-1487 D2.
|
||||
- If the store is in doubt, rather than just the pointer, the restore sources are W5's stopped-store backup and
|
||||
W1's D3. Before any real restore I take an online copy with `b0.sh 3n`, so the rows the restore drops are kept.
|
||||
A restore goes to Mos first, with `rollback --plan`'s guard count.
|
||||
@@ -0,0 +1 @@
|
||||
0c932a4ccee93252e6c91dbc171e9427bcc82fc30025f97ff48a3d85b4ebddf1
|
||||
@@ -0,0 +1,293 @@
|
||||
{
|
||||
"schema": "3n",
|
||||
"tables": {
|
||||
"decision_events": {
|
||||
"rows": 22,
|
||||
"maxSeq": 22,
|
||||
"sha256": "b016d2a7cb0116252166016822c472af1cc520435a6538ecb7be5db62c6cb4b3"
|
||||
},
|
||||
"decisions": {
|
||||
"rows": 22,
|
||||
"maxSeq": 22,
|
||||
"sha256": "eafcd57d3531f7ac7c768e512632a3975df372c49ffd95abe7d858fd05ce93a8"
|
||||
},
|
||||
"deliveries": {
|
||||
"rows": 1955,
|
||||
"maxSeq": 1955,
|
||||
"sha256": "263a7a4dd5316a20a68503a00a091e6624fee5f336a6051512e4d1e9e8c49d98"
|
||||
},
|
||||
"events": {
|
||||
"rows": 2310,
|
||||
"maxSeq": 2310,
|
||||
"sha256": "b958b42712cd8fe0ec0c571d938ec3e52613c47dae3a7a7a89529ca13ed4fca5"
|
||||
},
|
||||
"gitea_grants": {
|
||||
"rows": 0,
|
||||
"maxSeq": null,
|
||||
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||
},
|
||||
"gitea_users": {
|
||||
"rows": 0,
|
||||
"maxSeq": null,
|
||||
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||
},
|
||||
"host_grants": {
|
||||
"rows": 0,
|
||||
"maxSeq": null,
|
||||
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||
},
|
||||
"hosts": {
|
||||
"rows": 0,
|
||||
"maxSeq": null,
|
||||
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||
},
|
||||
"instance_names": {
|
||||
"rows": 0,
|
||||
"maxSeq": null,
|
||||
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||
},
|
||||
"message_cancels": {
|
||||
"rows": 0,
|
||||
"maxSeq": null,
|
||||
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||
},
|
||||
"message_threads": {
|
||||
"rows": 10,
|
||||
"maxSeq": null
|
||||
},
|
||||
"messages": {
|
||||
"rows": 642,
|
||||
"maxSeq": 642
|
||||
},
|
||||
"meta": {
|
||||
"rows": 3,
|
||||
"maxSeq": null,
|
||||
"sha256": "f3b8216dbaeb799643500760f3f286ad9ecc52c86449fdf3fa60da17b9b3bfe4"
|
||||
},
|
||||
"projects": {
|
||||
"rows": 5,
|
||||
"maxSeq": 5,
|
||||
"sha256": "cdf87b72ef95a2f988c242d35f1050f9e3e310637f84a645b51694daa924650f"
|
||||
},
|
||||
"role_claims": {
|
||||
"rows": 118,
|
||||
"maxSeq": 118,
|
||||
"sha256": "ab7e91854090c255e674053b7ceb1af8b4520fa7027b0211a2717094872ca6e2"
|
||||
},
|
||||
"session_defaults": {
|
||||
"rows": 5,
|
||||
"maxSeq": 5,
|
||||
"sha256": "0fa4a532b106e963e200064d7f7464412a2fd6fce5a59a35ba7097d9bdca879c"
|
||||
},
|
||||
"session_ops": {
|
||||
"rows": 0,
|
||||
"maxSeq": null,
|
||||
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||
},
|
||||
"sessions": {
|
||||
"rows": 5,
|
||||
"maxSeq": 5,
|
||||
"sha256": "7094392718785cbaec3d5e5bd640f4b36d1e2be1fb4b7c6a9db77308de111803"
|
||||
},
|
||||
"task_comment_cursors": {
|
||||
"rows": 752,
|
||||
"maxSeq": 752,
|
||||
"sha256": "854203bd74eb66bf5b22695a9dc820971129cbc015caa76f49f9d31a52651659"
|
||||
},
|
||||
"task_snapshots": {
|
||||
"rows": 605,
|
||||
"maxSeq": 605,
|
||||
"sha256": "47947f1cf549a6e675a279806b4c3c394f0e5f191770689934af610fea907cff"
|
||||
},
|
||||
"thread_claims": {
|
||||
"rows": 10,
|
||||
"maxSeq": 10,
|
||||
"sha256": "925e82e219ca7d469a3d9d72bd7033b9f52a47f1da272ac7ae31832a24cd1b91"
|
||||
},
|
||||
"thread_opens": {
|
||||
"rows": 0,
|
||||
"maxSeq": null,
|
||||
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||
},
|
||||
"thread_shares": {
|
||||
"rows": 0,
|
||||
"maxSeq": null,
|
||||
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||
},
|
||||
"threads": {
|
||||
"rows": 5,
|
||||
"maxSeq": 5,
|
||||
"sha256": "6cc7fbd14dd1d8164dbeab1e2c2911ca206c283e722724ee2b0b0a8e22e0f533"
|
||||
},
|
||||
"usage_records": {
|
||||
"rows": 112,
|
||||
"maxSeq": 112,
|
||||
"sha256": "50e7cefdf18f913a2d0e780d7e3854e2cedb6f4cecbb0392857b4ffaae9dc277",
|
||||
"byRun": [
|
||||
{
|
||||
"business": "mosaic-stack",
|
||||
"run": "r8fba7e598156",
|
||||
"input": "0",
|
||||
"output": "0",
|
||||
"unknownTurns": 1
|
||||
},
|
||||
{
|
||||
"business": "mosaic-stack",
|
||||
"run": "r4a96e2142e4d",
|
||||
"input": "2",
|
||||
"output": "52",
|
||||
"unknownTurns": 0
|
||||
},
|
||||
{
|
||||
"business": "mosaic-stack",
|
||||
"run": "rc78c9700c8e9",
|
||||
"input": "14",
|
||||
"output": "1519",
|
||||
"unknownTurns": 0
|
||||
},
|
||||
{
|
||||
"business": "mosaic-stack",
|
||||
"run": "r293f33bcbc63",
|
||||
"input": "2",
|
||||
"output": "44",
|
||||
"unknownTurns": 0
|
||||
},
|
||||
{
|
||||
"business": "mosaic-stack",
|
||||
"run": "r34520a581318",
|
||||
"input": "6",
|
||||
"output": "323",
|
||||
"unknownTurns": 0
|
||||
},
|
||||
{
|
||||
"business": "mosaic-stack",
|
||||
"run": "r7e99838f9f93",
|
||||
"input": "2",
|
||||
"output": "44",
|
||||
"unknownTurns": 0
|
||||
},
|
||||
{
|
||||
"business": "mosaic-stack",
|
||||
"run": "rc964611b2092",
|
||||
"input": "4",
|
||||
"output": "120",
|
||||
"unknownTurns": 0
|
||||
},
|
||||
{
|
||||
"business": "mosaic-stack",
|
||||
"run": "rbb708846b605",
|
||||
"input": "12",
|
||||
"output": "2089",
|
||||
"unknownTurns": 0
|
||||
},
|
||||
{
|
||||
"business": "mosaic-stack",
|
||||
"run": "rc36b17ef3788",
|
||||
"input": "16",
|
||||
"output": "5221",
|
||||
"unknownTurns": 0
|
||||
},
|
||||
{
|
||||
"business": "mosaic-stack",
|
||||
"run": "r097436c91816",
|
||||
"input": "16",
|
||||
"output": "3340",
|
||||
"unknownTurns": 0
|
||||
},
|
||||
{
|
||||
"business": "mosaic-stack",
|
||||
"run": "r497f1c817d4d",
|
||||
"input": "2",
|
||||
"output": "80",
|
||||
"unknownTurns": 0
|
||||
},
|
||||
{
|
||||
"business": "mosaic-stack",
|
||||
"run": "rc9e993da24cf",
|
||||
"input": "30",
|
||||
"output": "5871",
|
||||
"unknownTurns": 0
|
||||
},
|
||||
{
|
||||
"business": "mosaic-stack",
|
||||
"run": "r7646a7a4a2bd",
|
||||
"input": "12",
|
||||
"output": "1448",
|
||||
"unknownTurns": 0
|
||||
},
|
||||
{
|
||||
"business": "mosaic-stack",
|
||||
"run": "r4004e5e09433",
|
||||
"input": "2",
|
||||
"output": "61",
|
||||
"unknownTurns": 0
|
||||
},
|
||||
{
|
||||
"business": "mosaic-stack",
|
||||
"run": "rd0b8fdb4d62d",
|
||||
"input": "18",
|
||||
"output": "1714",
|
||||
"unknownTurns": 0
|
||||
},
|
||||
{
|
||||
"business": "mosaic-stack",
|
||||
"run": "r62b31aae5852",
|
||||
"input": "2",
|
||||
"output": "31",
|
||||
"unknownTurns": 0
|
||||
},
|
||||
{
|
||||
"business": "mosaic-stack",
|
||||
"run": "r2cf8536da2c3",
|
||||
"input": "12",
|
||||
"output": "1420",
|
||||
"unknownTurns": 0
|
||||
},
|
||||
{
|
||||
"business": "mosaic-stack",
|
||||
"run": "re6c69f1ec1f0",
|
||||
"input": "16",
|
||||
"output": "1471",
|
||||
"unknownTurns": 0
|
||||
},
|
||||
{
|
||||
"business": "mosaic-stack",
|
||||
"run": "r2c62e02f8371",
|
||||
"input": "2",
|
||||
"output": "68",
|
||||
"unknownTurns": 0
|
||||
},
|
||||
{
|
||||
"business": "mosaic-stack",
|
||||
"run": "r410293d04d3d",
|
||||
"input": "10",
|
||||
"output": "1105",
|
||||
"unknownTurns": 0
|
||||
},
|
||||
{
|
||||
"business": "mosaic-stack",
|
||||
"run": "r28dbbc5c6b4d",
|
||||
"input": "10",
|
||||
"output": "1137",
|
||||
"unknownTurns": 0
|
||||
},
|
||||
{
|
||||
"business": "mosaic-stack",
|
||||
"run": "ra38826f3c6e2",
|
||||
"input": "8",
|
||||
"output": "1154",
|
||||
"unknownTurns": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"untimed": [
|
||||
"gitea_grants",
|
||||
"gitea_users",
|
||||
"host_grants",
|
||||
"hosts",
|
||||
"message_threads",
|
||||
"meta",
|
||||
"task_comment_cursors"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,176 @@
|
||||
# Re-pin window 464010fbe to 45dca69f6 (schema 3n, no migration), STATE report (W11)
|
||||
|
||||
Operator and tester: Darkwing. Plan: `PLAN.md` in this directory, sha256
|
||||
0c932a4ccee93252e6c91dbc171e9427bcc82fc30025f97ff48a3d85b4ebddf1, frozen at P0. Corrections are in
|
||||
`PLAN-corrections.md`. Tool blob 2656f95b00e3 (`scripts/stack-release.sh` at NEW). P5 found the four service scripts
|
||||
the same at HEAD and NEW, with empty porcelain. OLD 464010fbe4c6925b077b9b8182a209ee2177eb9d, NEW
|
||||
45dca69f6e4bce52834587f66f2ff33ba839ab8a, 141 commits past OLD. Every stamp below comes from `date -u` or from the
|
||||
transcripts `W.txt` and `W5.txt` in this directory. dragon-lin only.
|
||||
|
||||
Sage assigned the window (sage-3572) and ruled NEW in full with every carry in scope (sage-3574). Mos ruled condition
|
||||
11 and D1 to D4 (mos-1487), corrected the 39bde4fd4 attribution (mos-1491), passed P3 with the W0b to W4 go
|
||||
(mos-1492), and gave the W5 go (mos-1493). Q173 covers every step.
|
||||
|
||||
## Outcome
|
||||
|
||||
45dca69f6 is live for mosaic-stack, and the store is still 3n. W5's activate stopped both units, backed up the
|
||||
stopped store, found nothing to migrate, and started both units on NEW. Every check from P0 to W10 passed. Nothing
|
||||
was rolled back, restored or pruned.
|
||||
|
||||
- Activation 20261023T185911Z-45dca69f6e4b. The pointer log has the usual two lines: started at 18:59:11Z (backup
|
||||
null), then ok at 18:59:17Z with the backup id.
|
||||
- W10 line a: `a 200 ok=true`, the healthz 200 on 7332. Lines a to g of `matrix-new.txt` equal `matrix-old.txt`.
|
||||
- The live store has 26 tables, 97 triggers, 5 views and 28 indexes at schema_version 3n, with nothing missing
|
||||
(W6). Events are 2313 (B0 read 2309). session_ops and message_cancels hold 0 rows, the same as W1.
|
||||
- The five tester threads read the same after W5 as before it. W1 and W6 match on ids, message counts (2 each) and
|
||||
the sha256 of each `thread read --json --tester`.
|
||||
- bus-host/sessions.json is sessionsVersion 2 with 1 session. NEW's host rewrote it at 18:59:15Z.
|
||||
- The Console (MainPID 758602) started at 18:59:13Z, after W5.start, with its cwd in NEW's copy. Nobody restarted
|
||||
it, and W7 didn't run.
|
||||
- The new standing chief is re194575ec18c, launched by the new host. Its launch is the one `launched` line in the
|
||||
bus journal since W5.start.
|
||||
|
||||
Nobody acted as Jason: no `--by jason`, no human pane, no auth header as jason, no pi. Nothing new went on: no
|
||||
`--send`, no `--sso`, no proof pair, no grant, no access.json, no `mosaic access` (mos-1487 D3). W8, W9b and W12 were
|
||||
not run.
|
||||
|
||||
## Condition 11 and D2 (mos-1487)
|
||||
|
||||
D1, condition 11: 0 user threads at every read. Access is not wired: there is no `~/.config/mosaic-dev/access.json`.
|
||||
Each `c11.sh` read is python3 -B with mode=ro.
|
||||
|
||||
| Read | Stamp (UTC) | threads | owners | user_threads | revoke_claims | session_ops | message_cancels | access.json |
|
||||
|---|---|---|---|---|---|---|---|---|
|
||||
| W0 | 18:53Z (`w0.txt`) | 5 | tester=5 | 0 | 0 | 0 | 0 | absent |
|
||||
| W1 | 18:57:25.086Z | 5 | tester=5 | 0 | 0 | 0 | 0 | absent |
|
||||
| W6 | 18:59:28.117Z | 5 | tester=5 | 0 | 0 | 0 | 0 | absent |
|
||||
|
||||
D2, after activation (`w6.out`, W6_PASS 18:59:28Z):
|
||||
|
||||
- All 5 tester threads are still present and none is revoked. The W6 thread reads equal W1's, and thread_claims rows
|
||||
with op `revoke` stay at 0, the same as W1.
|
||||
- 0 `thread-revoked` events in the launch log (`launches/mosaic-stack.jsonl`, 143 lines) with `at` at or after
|
||||
W5.start 18:59:11Z.
|
||||
- 0 bus journal lines naming `thread-revoked` since 18:59:11 UTC. This is a count only.
|
||||
|
||||
D3: I created no access.json and ran no `mosaic access`. Wiring access is Mos's Vikunja task and a human act.
|
||||
|
||||
## The pm
|
||||
|
||||
pm run ra38826f3c6e2 was left live by the last window's W9b. It ran in the bus unit's cgroup, and W5's bus stop
|
||||
ended it. W5 pre-read at 18:59:11Z listed it and showed it not working. W9's read of `launches list --json` shows
|
||||
`live_pm 0`, and the old pm isn't listed. There was no W9b this window and nothing relaunched a pm. The next
|
||||
window's W1 should expect only the chief re194575ec18c.
|
||||
|
||||
## Row 301 (59f0e44f4)
|
||||
|
||||
`p456.sh r301` passed twice: at P5 against NEW's copy, and at W9 (18:59:54Z) against the live copy. 59f0e44f4 is
|
||||
an ancestor of NEW. NEW's channel-proof pin on `packages/webui/src/bus.mjs` is
|
||||
604092cb706b152d458f299ff1071f6cd488774629012f96b672f7e9a16c0b2c, the sha256 of NEW's bus.mjs and of the live copy's.
|
||||
|
||||
## What went live
|
||||
|
||||
Every commit in 464010fbe..45dca69f6 (sage-3574). The table below is PLAN.md's, with row 292 for the release fix
|
||||
(mos-1491). On live, rows 252, 294, 295, 302 and 306 are inert: there are no user threads, no access.json, no
|
||||
`--sso` and no `--send`. Their tests ran green in their own gates.
|
||||
|
||||
| Row | Issue | Effect on live |
|
||||
|---|---|---|
|
||||
| 219 | #1720 | C2-09a, one thread per creative instance: broker, launcher and Console chat. |
|
||||
| 252 | #1753 | Console inbox Approve and Deny, which need `--send` and `--sso` (live has neither). `/api/config` gains `decide`, false here. |
|
||||
| 272 | #1777 | Session CLI and Console chat fixes. sessionsVersion stays 2. |
|
||||
| 292 | #1797 | config_checks validates any key beyond the first four with the target's loader. The live config has only the four. P3's rehearse passed the check. |
|
||||
| 294 | #1800 | Granted-user sign-in, consulted only under `--sso`. |
|
||||
| 295 | #1801 | Access timer and revocation, acting only on `user:` threads (none). |
|
||||
| 300 | #1807 | Tests only. |
|
||||
| 301 | #1808 | user-bus.mjs folded into bus.mjs. R301 PASS above. |
|
||||
| 302 | #1809 | A released run answers `launcher-released`. |
|
||||
| 306 | #1813 | A revoked run's calls answer `thread-revoked` and its runner stops. D2 found none. |
|
||||
| 307 | #1814 | The harness kind gains `compactions`. |
|
||||
| 308 | #1815 | requirements.json is PRD 1.17, with 87 requirements (85 at OLD). |
|
||||
|
||||
The 571 docs carry no runtime path.
|
||||
|
||||
## Deviations
|
||||
|
||||
1. The first gate wrapper (`gate.sh`) read BUSY three times on its own `bash gate.sh` process, from 18:51:27Z to
|
||||
18:51:51Z. No step ran. Every step after that gated inline in the shell (`gate.txt`). The wrapper files were
|
||||
deleted. The method is recorded in `PLAN-corrections.md`.
|
||||
2. W10's `/api/bus/agents` read 1 agent where P6 read 2. The missing one is the pm that W5 ended, as planned. The row
|
||||
left is chief re194575ec18c.
|
||||
3. W10's tester `/api/config` is P6's body with `"decide":false` added, as PLAN.md's W10 row expects (row 252).
|
||||
|
||||
## Stamps
|
||||
|
||||
| Step | Start (UTC) | Result |
|
||||
| --- | --- | --- |
|
||||
| P0 | 18:51:17Z | P0_PASS, NEW 45dca69f6, plan 0c932a4c (`p0.txt`) |
|
||||
| D3 data-root snapshot | 18:52:10Z | `backups/d3-20261023T185210Z`, 1.6G, 0 warnings, SHA256SUMS 551b08fb (`d3.txt`) |
|
||||
| BZ business file copy | 18:53:23Z | `.pre-window-20261023T185323Z`, sha256 1e49bdf0 (`bz.txt`) |
|
||||
| B0 store backup (3n) | 18:53:25Z | `backups/b0-20261023T185325Z`, events 2309, SCHEMA 3n, SHA256SUMS b057627d (`b0.txt`) |
|
||||
| P1 | 18:53:29Z | pointer OLD, check pass, unit flags match, bus.tester true, LOAD_OK, the four config keys (`p1.txt`) |
|
||||
| W0 | 18:53:36Z | copy made, LOCK_MATCH, IMPORT_OK, LOAD_OK, NEW_LOADER_OK, c11 W0 0 user threads (`w0.txt`) |
|
||||
| P2 | 18:54:17Z | P2_STUBS_PASS, P2_UNITS_PASS (`p2.txt`, `p2-units.txt`) |
|
||||
| P3 rehearsal (Mos) | 18:54:17Z to 18:54:21Z | REHEARSAL_PASS rc 0, 18 PASS lines, all 26 tables equal (mos-1492, `/mnt/storage/scratch/mos-1492`) |
|
||||
| P4, P5, P6 | 18:54:25Z | P4 PASS, P5 PASS with R301 PASS, matrix and tester reads (`p4.txt`, `p5.txt`, `matrix-old.txt`, `tester-old.txt`) |
|
||||
| W0b to W4 | 18:57:24Z to 18:58:17Z | `wsteps.sh` rc 0 (`wsteps.out`, `W.txt`) |
|
||||
| W0b | 18:57:24Z | `.pre-window-20261023T185724Z`, sha256 1e49bdf0 |
|
||||
| W1 | 18:57:25Z | chief r28dbbc5c6b4d and pm ra38826f3c6e2, neither working, no other launch; S1 a06b59f2; D3 `d3-20261023T185729Z`, 93122 members, SHA256SUMS 06ceb124 |
|
||||
| W2 status | 18:58:16Z | pointer OLD, check pass, unit flags match, drift 141 |
|
||||
| W3 plan | 18:58Z | 3n to 3n, migration none, no needs: line, 141 commits, Console line with OLD's flags exactly (`W3-plan.txt` 9a531706) |
|
||||
| W4 unit read | 18:58:17Z | OLD units, DropInPaths empty, bus `--pm`, no quote or backslash |
|
||||
| W5 pre-read (mos-1493) | 18:59:10Z | chief and pm not working, no other launch |
|
||||
| W5 activate --pm --tester-socket | 18:59:11Z to 18:59:17Z | exit 0, stopped store 3n, no migration, gate passed, activate ok (`W5.txt`) |
|
||||
| W5 status, rollback plan | 18:59:17Z | pointer NEW, pm true, 3n, check pass; `rollback --plan` reads to 464010fbe, 3n to 3n, migration none |
|
||||
| W6 with D2 | 18:59:23Z to 18:59:28Z | W6_PASS (`w6.out`) |
|
||||
| W9 checks | 18:59:53Z to 18:59:54Z | W9_CHECKS_PASS (`w9.out`) |
|
||||
| W10 | 19:00:03Z to 19:00:04Z | W10_PASS (`w10.out`, `matrix-new.txt`) |
|
||||
|
||||
W5's backup is `~/.mosaic-dev/backups/stack/20261023T185911Z-45dca69f6e4b`: STAMP 2026-10-23T18:59:11.913Z, SCHEMA
|
||||
3n, SHA256SUMS sha256 87bd93819db5f38b579d1c616b1c80ca69d4abcba690b8e43a368b682e573a50, and its sums check OK. The
|
||||
rollback set is `state/stack-rollback/20261023T185911Z-45dca69f6e4b`.
|
||||
|
||||
## W9 and W10 detail
|
||||
|
||||
- W9 Console: mosaic-webui active, pid 758602, started 18:59:13Z, cwd NEW's copy. Bus active, pid 758595, cwd NEW's
|
||||
copy. console-check.sh (d068fe02) gave CONSOLE_PASS. The webui journal since W5 has 1 `proxy proof off` and 0
|
||||
`Sign-in`. `console/` is 0700 and `tester.sock` is 0600. 1 peercred-starts line since W5 names NEW. The bus
|
||||
journal has 0 `library:` lines. One running chief is from this start, re194575ec18c, and no pm is live.
|
||||
- W10: lines a to g are unchanged, and nothing listens on 7333. The tester `/api/config` is 200 with
|
||||
`{"board":"http://127.0.0.1:7331","tester":true,"send":false,"decide":false,"edit":false}`. `/api/bus/agents` is
|
||||
200 with 1 agent. P4 PASS.
|
||||
- W10 refusals: unsigned POSTs on 7332 to `/api/seen`, `/api/reply` and `/api/processing` get 401 "sign-in
|
||||
required". The tester-socket POST to `/api/processing` gets 403 "read-only", with sent false.
|
||||
|
||||
## Rollback sources (not used)
|
||||
|
||||
The schema is 3n on both sides, so a rollback is a pointer flip to 464010fbe (`stack-release.sh rollback
|
||||
mosaic-stack`), with Mos's go first. If the store is in doubt, these are the restore sources:
|
||||
|
||||
- W5's stopped-store backup above.
|
||||
- W1's D3, `d3-20261023T185729Z` (SHA256SUMS 06ceb124).
|
||||
- B0, `b0-20261023T185325Z`.
|
||||
- The business file copies `.pre-window-20261023T185323Z` and `.pre-window-20261023T185724Z`.
|
||||
|
||||
Nothing is pruned.
|
||||
|
||||
## Scripts
|
||||
|
||||
`p0.sh` 45172f42, `p1.sh` d4959c3f, `w0.sh` 6b89c74d, `p2.sh` 65c19a68, `p2units.sh` 06b4fe5b, `p456.sh` c5036755,
|
||||
`wsteps.sh` 0d08102b, `w5pre.sh` 481e4311, `w5.sh` 1b1b41cd, `w6.sh` 0b96abfd, `w9.sh` a9804c21, `w10.sh` d3857512,
|
||||
`c11.sh` 3a7b029b, `tr.sh` 5f21580e, `d3.sh` d8d927ae, `b0.sh` cf570702, `bz.sh` f6c098e6. The thread read bodies
|
||||
stay in `.tr/` and are not committed.
|
||||
|
||||
## Gitea
|
||||
|
||||
I ran `post-gitea.sh` as darkwing from the repo, with the login checked first (`post-gitea.out`). It posted one comment on the
|
||||
issue of each row NEW put live, and each read back equal to its `comments.md` body, from 19:02:00Z to 19:02:08Z:
|
||||
|
||||
- #1720 31271 and #1753 31272.
|
||||
- #1777 31273 and #1797 31274.
|
||||
- #1800 31275 and #1801 31276.
|
||||
- #1807 31277 and #1808 31278.
|
||||
- #1809 31279 and #1813 31280.
|
||||
- #1814 31281 and #1815 31282.
|
||||
|
||||
The P19 body is in `comments.md` and went to Sage for posting.
|
||||
@@ -0,0 +1,951 @@
|
||||
# W0b-W4 start 2026-10-23T18:57:24Z
|
||||
# plan 0c932a4c, NEW 45dca69f6e4bce52834587f66f2ff33ba839ab8a, tool blob 2656f95b00e3, P5 four scripts at NEW and clean, business-check.mjs eece4d46: checked 2026-10-23T18:57:24Z
|
||||
# W0 copy present, w0.txt LOAD_OK
|
||||
# W0b: /home/jwoltje/.config/mosaic-dev/businesses/mosaic-stack.json.pre-window-20261023T185724Z, sha256 1e49bdf05e62607972958f5b7298cfd600c7825812370e26d7c2a842f2af9b93, recorded in backups.txt
|
||||
|
||||
## W1 agents --tester
|
||||
# start 2026-10-23T18:57:24.641Z
|
||||
# command: (cd $REPO && <clean env> /home/jwoltje/.npm-global/bin/mosaic agents --business mosaic-stack --tester)
|
||||
chief r28dbbc5c6b4d claude-code since 2026-10-23T03:46:01.235Z
|
||||
pm ra38826f3c6e2 claude-code since 2026-10-23T03:47:35.853Z
|
||||
# exit 0, end 2026-10-23T18:57:24.896Z
|
||||
|
||||
## W1 launches list
|
||||
# start 2026-10-23T18:57:24.900Z
|
||||
# command: (cd $REPO && <clean env> /home/jwoltje/.npm-global/bin/mosaic launches list)
|
||||
r28dbbc5c6b4d mosaic-stack/chief claude-code claude-opus-5-5 by jason since 2026-10-23T03:46:01.221Z running
|
||||
ra38826f3c6e2 mosaic-stack/pm claude-code claude-opus-5-5 by chief since 2026-10-23T03:47:35.835Z running
|
||||
# exit 0, end 2026-10-23T18:57:25.023Z
|
||||
# W1 launches: chief r28dbbc5c6b4d standing (OLD's activation), pm ra38826f3c6e2 listed (left live by the last W9b), no other launch
|
||||
W1 c11 2026-10-23T18:57:25.086Z threads 5 owners tester=5 user_threads 0 revoke_claims 0 session_ops 0 message_cancels 0 access.json absent (exit 0)
|
||||
# W1 condition 11: W1 c11 2026-10-23T18:57:25.086Z threads 5 owners tester=5 user_threads 0 revoke_claims 0 session_ops 0 message_cancels 0 access.json absent (exit 0)
|
||||
# W1 start stamp 2026-10-23T18:57:25Z
|
||||
# SNAP sha256 639fd28a checked before S1
|
||||
|
||||
## S1 snapshot --held
|
||||
# start 2026-10-23T18:57:25.092Z
|
||||
# command: (cd $REPO && <clean env> node /mnt/storage/src/mosaic-stack/agents/darkwing/work/window-repin-84f53540d/snapshot.mjs --store /home/jwoltje/.mosaic-dev/bus/bus.sqlite --held)
|
||||
{
|
||||
"schema": "3n",
|
||||
"tables": {
|
||||
"decision_events": {
|
||||
"rows": 22,
|
||||
"maxSeq": 22,
|
||||
"sha256": "b016d2a7cb0116252166016822c472af1cc520435a6538ecb7be5db62c6cb4b3"
|
||||
},
|
||||
"decisions": {
|
||||
"rows": 22,
|
||||
"maxSeq": 22,
|
||||
"sha256": "eafcd57d3531f7ac7c768e512632a3975df372c49ffd95abe7d858fd05ce93a8"
|
||||
},
|
||||
"deliveries": {
|
||||
"rows": 1955,
|
||||
"maxSeq": 1955,
|
||||
"sha256": "263a7a4dd5316a20a68503a00a091e6624fee5f336a6051512e4d1e9e8c49d98"
|
||||
},
|
||||
"events": {
|
||||
"rows": 2310,
|
||||
"maxSeq": 2310,
|
||||
"sha256": "b958b42712cd8fe0ec0c571d938ec3e52613c47dae3a7a7a89529ca13ed4fca5"
|
||||
},
|
||||
"gitea_grants": {
|
||||
"rows": 0,
|
||||
"maxSeq": null,
|
||||
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||
},
|
||||
"gitea_users": {
|
||||
"rows": 0,
|
||||
"maxSeq": null,
|
||||
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||
},
|
||||
"host_grants": {
|
||||
"rows": 0,
|
||||
"maxSeq": null,
|
||||
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||
},
|
||||
"hosts": {
|
||||
"rows": 0,
|
||||
"maxSeq": null,
|
||||
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||
},
|
||||
"instance_names": {
|
||||
"rows": 0,
|
||||
"maxSeq": null,
|
||||
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||
},
|
||||
"message_cancels": {
|
||||
"rows": 0,
|
||||
"maxSeq": null,
|
||||
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||
},
|
||||
"message_threads": {
|
||||
"rows": 10,
|
||||
"maxSeq": null
|
||||
},
|
||||
"messages": {
|
||||
"rows": 642,
|
||||
"maxSeq": 642
|
||||
},
|
||||
"meta": {
|
||||
"rows": 3,
|
||||
"maxSeq": null,
|
||||
"sha256": "f3b8216dbaeb799643500760f3f286ad9ecc52c86449fdf3fa60da17b9b3bfe4"
|
||||
},
|
||||
"projects": {
|
||||
"rows": 5,
|
||||
"maxSeq": 5,
|
||||
"sha256": "cdf87b72ef95a2f988c242d35f1050f9e3e310637f84a645b51694daa924650f"
|
||||
},
|
||||
"role_claims": {
|
||||
"rows": 118,
|
||||
"maxSeq": 118,
|
||||
"sha256": "ab7e91854090c255e674053b7ceb1af8b4520fa7027b0211a2717094872ca6e2"
|
||||
},
|
||||
"session_defaults": {
|
||||
"rows": 5,
|
||||
"maxSeq": 5,
|
||||
"sha256": "0fa4a532b106e963e200064d7f7464412a2fd6fce5a59a35ba7097d9bdca879c"
|
||||
},
|
||||
"session_ops": {
|
||||
"rows": 0,
|
||||
"maxSeq": null,
|
||||
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||
},
|
||||
"sessions": {
|
||||
"rows": 5,
|
||||
"maxSeq": 5,
|
||||
"sha256": "7094392718785cbaec3d5e5bd640f4b36d1e2be1fb4b7c6a9db77308de111803"
|
||||
},
|
||||
"task_comment_cursors": {
|
||||
"rows": 752,
|
||||
"maxSeq": 752,
|
||||
"sha256": "854203bd74eb66bf5b22695a9dc820971129cbc015caa76f49f9d31a52651659"
|
||||
},
|
||||
"task_snapshots": {
|
||||
"rows": 605,
|
||||
"maxSeq": 605,
|
||||
"sha256": "47947f1cf549a6e675a279806b4c3c394f0e5f191770689934af610fea907cff"
|
||||
},
|
||||
"thread_claims": {
|
||||
"rows": 10,
|
||||
"maxSeq": 10,
|
||||
"sha256": "925e82e219ca7d469a3d9d72bd7033b9f52a47f1da272ac7ae31832a24cd1b91"
|
||||
},
|
||||
"thread_opens": {
|
||||
"rows": 0,
|
||||
"maxSeq": null,
|
||||
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||
},
|
||||
"thread_shares": {
|
||||
"rows": 0,
|
||||
"maxSeq": null,
|
||||
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||
},
|
||||
"threads": {
|
||||
"rows": 5,
|
||||
"maxSeq": 5,
|
||||
"sha256": "6cc7fbd14dd1d8164dbeab1e2c2911ca206c283e722724ee2b0b0a8e22e0f533"
|
||||
},
|
||||
"usage_records": {
|
||||
"rows": 112,
|
||||
"maxSeq": 112,
|
||||
"sha256": "50e7cefdf18f913a2d0e780d7e3854e2cedb6f4cecbb0392857b4ffaae9dc277",
|
||||
"byRun": [
|
||||
{
|
||||
"business": "mosaic-stack",
|
||||
"run": "r8fba7e598156",
|
||||
"input": "0",
|
||||
"output": "0",
|
||||
"unknownTurns": 1
|
||||
},
|
||||
{
|
||||
"business": "mosaic-stack",
|
||||
"run": "r4a96e2142e4d",
|
||||
"input": "2",
|
||||
"output": "52",
|
||||
"unknownTurns": 0
|
||||
},
|
||||
{
|
||||
"business": "mosaic-stack",
|
||||
"run": "rc78c9700c8e9",
|
||||
"input": "14",
|
||||
"output": "1519",
|
||||
"unknownTurns": 0
|
||||
},
|
||||
{
|
||||
"business": "mosaic-stack",
|
||||
"run": "r293f33bcbc63",
|
||||
"input": "2",
|
||||
"output": "44",
|
||||
"unknownTurns": 0
|
||||
},
|
||||
{
|
||||
"business": "mosaic-stack",
|
||||
"run": "r34520a581318",
|
||||
"input": "6",
|
||||
"output": "323",
|
||||
"unknownTurns": 0
|
||||
},
|
||||
{
|
||||
"business": "mosaic-stack",
|
||||
"run": "r7e99838f9f93",
|
||||
"input": "2",
|
||||
"output": "44",
|
||||
"unknownTurns": 0
|
||||
},
|
||||
{
|
||||
"business": "mosaic-stack",
|
||||
"run": "rc964611b2092",
|
||||
"input": "4",
|
||||
"output": "120",
|
||||
"unknownTurns": 0
|
||||
},
|
||||
{
|
||||
"business": "mosaic-stack",
|
||||
"run": "rbb708846b605",
|
||||
"input": "12",
|
||||
"output": "2089",
|
||||
"unknownTurns": 0
|
||||
},
|
||||
{
|
||||
"business": "mosaic-stack",
|
||||
"run": "rc36b17ef3788",
|
||||
"input": "16",
|
||||
"output": "5221",
|
||||
"unknownTurns": 0
|
||||
},
|
||||
{
|
||||
"business": "mosaic-stack",
|
||||
"run": "r097436c91816",
|
||||
"input": "16",
|
||||
"output": "3340",
|
||||
"unknownTurns": 0
|
||||
},
|
||||
{
|
||||
"business": "mosaic-stack",
|
||||
"run": "r497f1c817d4d",
|
||||
"input": "2",
|
||||
"output": "80",
|
||||
"unknownTurns": 0
|
||||
},
|
||||
{
|
||||
"business": "mosaic-stack",
|
||||
"run": "rc9e993da24cf",
|
||||
"input": "30",
|
||||
"output": "5871",
|
||||
"unknownTurns": 0
|
||||
},
|
||||
{
|
||||
"business": "mosaic-stack",
|
||||
"run": "r7646a7a4a2bd",
|
||||
"input": "12",
|
||||
"output": "1448",
|
||||
"unknownTurns": 0
|
||||
},
|
||||
{
|
||||
"business": "mosaic-stack",
|
||||
"run": "r4004e5e09433",
|
||||
"input": "2",
|
||||
"output": "61",
|
||||
"unknownTurns": 0
|
||||
},
|
||||
{
|
||||
"business": "mosaic-stack",
|
||||
"run": "rd0b8fdb4d62d",
|
||||
"input": "18",
|
||||
"output": "1714",
|
||||
"unknownTurns": 0
|
||||
},
|
||||
{
|
||||
"business": "mosaic-stack",
|
||||
"run": "r62b31aae5852",
|
||||
"input": "2",
|
||||
"output": "31",
|
||||
"unknownTurns": 0
|
||||
},
|
||||
{
|
||||
"business": "mosaic-stack",
|
||||
"run": "r2cf8536da2c3",
|
||||
"input": "12",
|
||||
"output": "1420",
|
||||
"unknownTurns": 0
|
||||
},
|
||||
{
|
||||
"business": "mosaic-stack",
|
||||
"run": "re6c69f1ec1f0",
|
||||
"input": "16",
|
||||
"output": "1471",
|
||||
"unknownTurns": 0
|
||||
},
|
||||
{
|
||||
"business": "mosaic-stack",
|
||||
"run": "r2c62e02f8371",
|
||||
"input": "2",
|
||||
"output": "68",
|
||||
"unknownTurns": 0
|
||||
},
|
||||
{
|
||||
"business": "mosaic-stack",
|
||||
"run": "r410293d04d3d",
|
||||
"input": "10",
|
||||
"output": "1105",
|
||||
"unknownTurns": 0
|
||||
},
|
||||
{
|
||||
"business": "mosaic-stack",
|
||||
"run": "r28dbbc5c6b4d",
|
||||
"input": "10",
|
||||
"output": "1137",
|
||||
"unknownTurns": 0
|
||||
},
|
||||
{
|
||||
"business": "mosaic-stack",
|
||||
"run": "ra38826f3c6e2",
|
||||
"input": "8",
|
||||
"output": "1154",
|
||||
"unknownTurns": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"untimed": [
|
||||
"gitea_grants",
|
||||
"gitea_users",
|
||||
"host_grants",
|
||||
"hosts",
|
||||
"message_threads",
|
||||
"meta",
|
||||
"task_comment_cursors"
|
||||
]
|
||||
}
|
||||
# exit 0, end 2026-10-23T18:57:25.158Z
|
||||
# S1.json sha256 a06b59f250e1399e3b6be62766f5092204873b13d51daea252de343e7767ac45
|
||||
|
||||
## W1 tester thread reads (tr.sh W1)
|
||||
W1 threads --tester: 5 thread(s), threads.json sha256 07c154d75d929028
|
||||
W1 thread d0ba7a66-aa3f-4918-9518-94132bce6b28 messages 2 sha256 985ac61ca9220f2f
|
||||
W1 thread 446201de-e8b5-4df3-9356-d0d5422cc899 messages 2 sha256 7e7e9eeeaa8c1e09
|
||||
W1 thread b89fcca4-6b82-48bd-9310-fb82c5ae8518 messages 2 sha256 f4e4916b9656a403
|
||||
W1 thread d9bb7ff3-7a8b-4bb8-ba12-03ca094cee4e messages 2 sha256 728ff36f3e003c63
|
||||
W1 thread b85a57fe-84f9-4785-a596-135af39e334a messages 2 sha256 727de0d9c809a41a
|
||||
# exit 0
|
||||
# W1 D3: /home/jwoltje/.mosaic-dev/backups/d3-20261023T185729Z, STAMP 2026-10-23T18:57:29.717Z, SHA256SUMS sha256 06ceb124c6f1a3dc70239132c2046e3be39a446b2cf953f4a433d80262784506, members 93122 tar exit 0 sessions.json sessionsVersion 2
|
||||
|
||||
## W2 status
|
||||
# start 2026-10-23T18:58:16.496Z
|
||||
# command: (cd $REPO && <clean env> scripts/stack-release.sh status mosaic-stack)
|
||||
pointer: /home/jwoltje/.mosaic-dev/state/stack-active.json
|
||||
{"copy":"464010fbe4c6925b077b9b8182a209ee2177eb9d","business":"mosaic-stack","pm":true,"claude":"/home/jwoltje/.local/bin/claude","console":["--port","7332","--public-host","mosaic.woltje.com","--auth-header","X-authentik-username","--allow-user","jason.woltje","--tester-socket"],"schema":"3n","activation":"20261023T034557Z-464010fbe4c6","at":"2026-10-23T03:46:02Z"}
|
||||
log (last five lines):
|
||||
{"at":"2026-10-22T15:06:00Z","op":"activate","from":"86f95bb27f6cb237bf9fa9ba53320bace6c4de0b","to":"84f53540dd0d21ef179ca29697e172b0246e78d1","backup":"20261022T150555Z-84f53540dd0d","activation":"20261022T150555Z-84f53540dd0d","result":"ok"}
|
||||
{"at":"2026-10-22T20:16:21Z","op":"activate","from":"84f53540dd0d21ef179ca29697e172b0246e78d1","to":"0cbe2e9b35e51fe06dedde69c022b46e040f98c0","backup":null,"activation":"20261022T201621Z-0cbe2e9b35e5","result":"started","interpreter":"{\"path\":\"/usr/bin/python3.14\",\"version\":[3,14,6],\"dev\":66308,\"ino\":3968163,\"sha256\":\"8735f172622a7f8d27e293fd0fd36fc55c4cb9b663b6630d33b57870e36c24cc\"}"}
|
||||
{"at":"2026-10-22T20:16:24Z","op":"activate","from":"84f53540dd0d21ef179ca29697e172b0246e78d1","to":"0cbe2e9b35e51fe06dedde69c022b46e040f98c0","backup":"20261022T201621Z-0cbe2e9b35e5","activation":"20261022T201621Z-0cbe2e9b35e5","result":"ok"}
|
||||
{"at":"2026-10-23T03:45:57Z","op":"activate","from":"0cbe2e9b35e51fe06dedde69c022b46e040f98c0","to":"464010fbe4c6925b077b9b8182a209ee2177eb9d","backup":null,"activation":"20261023T034557Z-464010fbe4c6","result":"started","interpreter":"{\"path\":\"/usr/bin/python3.14\",\"version\":[3,14,6],\"dev\":66308,\"ino\":3968163,\"sha256\":\"8735f172622a7f8d27e293fd0fd36fc55c4cb9b663b6630d33b57870e36c24cc\"}"}
|
||||
{"at":"2026-10-23T03:46:02Z","op":"activate","from":"0cbe2e9b35e51fe06dedde69c022b46e040f98c0","to":"464010fbe4c6925b077b9b8182a209ee2177eb9d","backup":"20261023T034557Z-464010fbe4c6","activation":"20261023T034557Z-464010fbe4c6","result":"ok"}
|
||||
check:
|
||||
bus: /home/jwoltje/.local/share/mosaic-stack/copies/464010fbe4c6925b077b9b8182a209ee2177eb9d
|
||||
Console: /home/jwoltje/.local/share/mosaic-stack/copies/464010fbe4c6925b077b9b8182a209ee2177eb9d
|
||||
CLI: /home/jwoltje/.local/share/mosaic-stack/copies/464010fbe4c6925b077b9b8182a209ee2177eb9d
|
||||
result: pass
|
||||
bus status:
|
||||
host: mosaic-stack, pid 3811005, running, since 2026-10-23T03:45:59.548Z, notifier off
|
||||
socket: present
|
||||
writer.lock: pid 3811049
|
||||
boot: organization file loaded at 2026-10-23T03:45:59.547Z
|
||||
unit flags: match the pointer
|
||||
drift: 141 commit(s) on refactor since the pointer's copy
|
||||
# exit 0, end 2026-10-23T18:58:16.806Z
|
||||
|
||||
## W3 activate NEW --pm --tester-socket --plan
|
||||
# start 2026-10-23T18:58:16.808Z
|
||||
# command: (cd $REPO && <clean env> scripts/stack-release.sh activate 45dca69f6e4bce52834587f66f2ff33ba839ab8a mosaic-stack --pm --tester-socket --plan)
|
||||
plan: activate for mosaic-stack
|
||||
from: 464010fbe4c6925b077b9b8182a209ee2177eb9d
|
||||
to: 45dca69f6e4bce52834587f66f2ff33ba839ab8a
|
||||
store schema: 3n (read from the store the running bus holds)
|
||||
target schema: 3n
|
||||
migration: none; the store is at the target's version
|
||||
backup: the run backs up the stopped store to /home/jwoltje/.mosaic-dev/backups/stack/<activation>/ before any migration
|
||||
commits: the run adds 141 (newest first, at most 200):
|
||||
45dca69f6 sessions: Sage 10-23 Vikunja 571 W rows 309-318 filed, 571 done
|
||||
293b42fee queue: revs 3617-3636: Vikunja 571 W build rows 309-318 added (sage 3617-3626: W1, W2, W3a, W3b, W6, W3, W4b, W5, W7, W8, post-10-27, brief docs/plans/2026-10-21_q195-writing-editor.md) and owners set to unassigned (sage 3627-3636)
|
||||
369607e92 sessions: Sage 10-23 rows 308 and 252 landings, 571 Connections design amendment, Vikunja 597; Scrooge row 252 line
|
||||
59f013247 queue: revs 3589-3616: row 306 in-progress, in-review and failed request (morgana 3589, 3592-3593), request (sage 3594-3595, comment 31207), approve record (dewey 3596), note and done (sage 3599-3600); row 308 added and briefed (sage 3590-3591), claim, in-review and failed request (gosalyn 3601-3603), request (sage 3604-3605, comment 31223), approve record (webby 3606, comment 31224), note and done (sage 3613-3614, landed 30e6bb680); row 291 note and done (sage 3597-3598); row 252 issue #1753 (sage 3607), in-review and failed request (scrooge 3608-3609), request (sage 3610-3611, comment 31230), approve record (webby 3612, comment 31229), note and done (sage 3615-3616, landed 45ea3fa0d)
|
||||
e8bb13df8 docs: clarify Connections opening order and current-link filtering
|
||||
dba2ebdb8 docs: plan required Console Connections view before real import
|
||||
45ea3fa0d row 252: library-cli and thread-claims bus.mjs stubs gain the throwing consoleCall export cli.mjs now imports (Mos GO mos-1465 under mos-1272, via sage-3497)
|
||||
f69c96200 row 252: decide-sso J19 killer (a granted user's config says decide false, its decision POSTs stop at owner-only), J16 checks the config that starts without send; BUILD.md rulings, J11c and J18 equivalence, part 2 mutants (#1753)
|
||||
5b6c87814 row 252: decide-browser placements (mos-1272): the hostile grant goes in with its INSERT since decisions is append-only, and page() loads about:blank first so a same-URL visit reloads
|
||||
8c2c5303c row 252: access-boot fixture provider gains issuer https://idp.test, so consoleOwners can key the owner (Mos GO mos-1464 under mos-1272, via sage-3494)
|
||||
23e3d09fa row 252: decide-sso first-run reds placed (mos-1272): a decision transport without --send never starts, and a POST to /api/bus/decision.* meets row 74's read-only refusal; BUILD.md run notes (#1753)
|
||||
795a645e6 row 252: console-decide events() keeps the row kind as event, since an answer body's kind shadowed it (first-run red at :180, two vacuous zero counts), and a J7 killer test for the console cap release over the socket (#1753)
|
||||
076ca8d6e row 252 BUILD.md: rebase onto fe4ee8c7b, commit map and the six conflict resolutions (sage-3482)
|
||||
68be86324 row 252: mos-1321, reword the shell.test write-boundary comment so Approve and Deny is the one decision control; BUILD.md records the ruling and its channel-proof review condition
|
||||
264fad2e2 row 252 BUILD.md: channel-proof overlap with row 239 (sage-2835)
|
||||
24672fd9d row 252: Console inbox Approve and Deny for grant requests, human-only through a console owner proof, confirmation then resolve, via console with human.input before the executor (#1753, Webby N1-N5); tests not yet run
|
||||
30e6bb680 gosalyn: PRD 1.17, Case 2 story files are DOCX (row 308, sage-3516, Q235 to Q237, Q239). Applies the approved d9 text at 4607e15b8 word for word to the 1.16 text. Status, the header sentence and a 1.17 source line, the Creative library lead, REQ-LIB-1, -2, -4, -5 and -6 changed as d9 says, new REQ-LIB-8 for the writing store and REQ-LIB-9 for the Console's DOCX editor, the 1.17 notes and four risks. requirements.json goes to 1.17 with 87 ids and the d9 titles, and the tasks and bus test pins follow
|
||||
7defb58e9 sessions: Sage 10-23 rows 291 and 306 landings, row 308 launch
|
||||
9c8877bdf plans: DEFERRED row 306 N1 (revoke Set lost on broker restart) and N2 (pending limit stop answers not-holder first), landed 2d0318a44 (mos-1463)
|
||||
2d0318a44 morgana: row 306 build (#1813): #accessRevoked from #revokeLost, #agent answers thread-revoked until endLaunch, runner stops on thread-revoked, READMEs, access-revoke.test 7 7 (mos-1463)
|
||||
bd3fa2a48 morgana: row 306 red-first tests (#1813): bus revoke-window T1/T2, cli revoke-window T3 forcing test; no product code
|
||||
ab575ee55 morgana: row 306 design r2 (dewey-0918 C1-C3, sage-3483/mos-1463): T3 asserts no thread-revoked event for A, T2 limit half makes a second call, six-suite gate, access-revoke edit bounded to 7 7
|
||||
1676ad0de morgana: row 306 design r1 (#1813, sage-3478): #accessRevoked set from #revokeLost, #agent answers thread-revoked until endLaunch, runner maps it to stopped; T1-T3, M1-M3, six access-revoke asserts to Mos via Sage
|
||||
4874d1e83 gosalyn: PRD 1.16 routes library.write under REQ-LIB-6 (mos-1328, mos-1329, sage-2919, webby-0164 B2). REQ-WAIT-3 gains the routing paragraph with its bounds, creative roles only and within-role, Markdown under supporting folders a human marks, never a story file, the writing agent's live Gitea grant on the library project, one commit per write by its own account with the trailer, notice and revert. REQ-LIB-6 names the action. Status, the header, a 1.16 source line and a 1.16 note. requirements.json changes its version only, with the test pin
|
||||
e909ef51a plans: PRD 1.17 brief (Gitea #1815, Vikunja 570): Gosalyn builds d9 4607e15b8 onto 1.16 after row 291, Webby reviews, four files, Sage gates
|
||||
4607e15b8 sage: PRD 1.17 d9 r3 (02f28dec), Mos's J-b check mos-1470: J-b records N20 as confirmed, REQ-LIB-5's version tag cites Q239 for the Connections view (N21), d9 changes names both
|
||||
8b4201055 sage: PRD 1.17 d9 round 2 (b17ce386), Webby round 6 B1: REQ-LIB-5, its note, the Risks line and the A6 line take mos-1443 R3's text as written; J-b in the past tense (N19); the import-waits line cited as Mos's R3 default (N20)
|
||||
4863e2caf sage: PRD 1.17 draft 9 (7dfc52fd), d8 plus Jason's Q41 O2 (Q239, mos-1467): REQ-LIB-5 requires the Console Connections view for converted chapters, note and Risks line follow, J-b records the answer; Webby round 5 N15-N17
|
||||
7b25a6063 agents: webui runs set MOSAIC_REQUIRE_EDITOR_BUILD=1 and linked worktrees npm ci packages/webui (Vikunja 597)
|
||||
e86df37d7 sessions: Sage 272 and 307 landings, 306 design, 252 rebase check
|
||||
fe4ee8c7b queue: revs 3582-3588: row 307 in-review and failed request (gizmoduck 3582-3583), request (sage 3584-3585, comment 31189), round 1 approve record (duckworth 3586), landing note and done at d243f6b25 (sage 3587-3588); queue only
|
||||
0621c439e plans: DEFERRED gains row 307 N1 (row 270's store-unreadable doesn't stick; #1814 landed d243f6b25)
|
||||
d243f6b25 gizmoduck: row 307 run logs: capture.mjs makes each fixture's data root before sessionStore (base session.mjs:78 needs it), BUILD.md expected red adds claude-history test B (duckworth-0287), steps 1-6 results on 1f6db1589 and 1f00d4f91 with skips named and M1-M4 killed (sage-3455, sage-3465)
|
||||
869670d1b gizmoduck: row 307 BUILD.md: commits, old-test edits against mos-1459, new tests and the empty-session correction to test B, expected red on 1f6db1589, run plan with mos-1275 limits, mutants M1-M4
|
||||
dbbda2537 gizmoduck: row 307 (#1814, Vikunja 598) harness kind gains compactions: pi's stream scan and Claude-history check move to packages/plugins/harness/pi/compactions.mjs, claude-code answers harness-unsupported, core keeps the ledger and checks each answer, readLedger reads the reason only, the launcher passes the loaded module; four old-test edits under mos-1459
|
||||
a9da046f8 gizmoduck: row 307 (#1814, Vikunja 598) new tests, red first: row 270's ledgers per reason read the same count and the next collection goes through the harness module, core refuses an answer out of contract, pi answers what base scanPi read, claude-code answers harness-unsupported, a module without compactions refuses missing-export; capture.mjs checks the literals against base 1e629c892
|
||||
4a71b56ab gizmoduck: row 307 design r1 notes: seat suite whole and compactions-launch T3 run-not-skip in the gate (Duckworth C1, C2), launcher closure comment on bypassing call() (N1), line refs :301 and :302 (N2) (duckworth-0280)
|
||||
520889419 gizmoduck: row 307 (#1814, Vikunja 598) design: harness export compactions({ store, cursors, budget, streams, first }), interfaceVersion stays 1, core keeps the ledger, readLedger reads the reason, ledger compatibility table, four old-test edits for Mos (sage-3440)
|
||||
8dc132bec queue: revs 3572-3581: row 272 round 3 approve record (scrooge 3572, comment 31177), row 307 claim (gizmoduck 3573), row 272 round 4 moves (huey 3574-3576), request (sage 3577-3578, comment 31183), round 4 approve record (scrooge 3579, comment 31184), landing note and done at d33989230 (sage 3580-3581); queue only
|
||||
08b8831bc plans: DEFERRED gains row 272 N1 (user session verbs) and the row 270 N6 rebound after row 307 (#1777 landed d33989230)
|
||||
d33989230 row 272: scope unavailable-session waits to the chat area
|
||||
0ea3db297 row 272: fix session fixture authority and initial chat render
|
||||
f859d06d2 row 272: preserve granted-user default chat on denied session catalog
|
||||
70651f45d row 272: retain session recovery state on invalid selection
|
||||
490f45f02 row 272: preserve untested session CLI and Console draft (sage-3145)
|
||||
1e629c892 queue: revs 3565-3571: row 272 round 3 moves on 72690cae7 (huey 3565-3567) and request (sage 3569-3570, comment 31174); row 307 added and briefed (#1814, Vikunja 598, mos-1455 item 3; sage 3568, 3571); queue only
|
||||
84de3fbca plans: row 270 pi compaction reading moves behind the harness kind (#1814, Vikunja 598, mos-1455 item 3, Gizmoduck, reviewer Duckworth); gate template runs all five suites and sets MOSAIC_REQUIRE_EDITOR_BUILD=1 (mos-1455 item 4, mos-1453)
|
||||
1e4c1e6e9 queue: revs 3539-3564: rows 300 and 301 round 1 claims and in-review moves (launchpad 3539-3544), round 1 requests (sage 3545-3548), round 2 moves (launchpad 3549-3554), round 2 requests (sage 3555-3558), Duckworth approve records 300 (3559) and 301 (3560), landing notes and done at 07315e651 and 5b846b048 (sage 3561-3564); queue only
|
||||
5b846b048 launchpad: row 301 (#1808): library-cli and thread-claims bus.mjs fixtures export throwing busBusiness and userCaller stubs (mos-1451 under mos-1272); BUILD.md repaired with run 1 and the ruling; manifest seven paths; unrun
|
||||
59f0e44f4 launchpad: row 301 (#1808): channel-proof re-pins webui bus.mjs at 39fcb27c for the user transport fold, humanCall unchanged (mos-1449 under mos-1272); unrun
|
||||
bb031ec84 launchpad: row 301 (#1808): R6-N4, user-bus.mjs folded into bus.mjs beside humanCall, unchanged; channel-proof re-pin held for Mos's go; unrun
|
||||
07315e651 launchpad: row 300 (#1807): run 1 gate results in BUILD.md (1/0, webui 375/0, M12 killed) and Duckworth's N1; packet only
|
||||
fb04cbc43 launchpad: row 300 (#1807): run 1 first-run red placed (mos-1272), the test's call helper resolves headers again as granted-user.test does; manifest re-hashed
|
||||
9d929911c launchpad: row 300 (#1807): R6-N1, an HTTP-level test of the user-session option swap with the userRoute gate stubbed open by a load hook, and mutant M12; unrun
|
||||
bcf3c1dac queue: revs 3531-3538: row 303 landing note and done at e551cd846 (sage 3531/3532); row 304 approve record (dewey 3533), row 305 approve record (filbert 3534); row 304 landing note and done at a863015a5 (sage 3535/3536); row 305 landing note and done at d52d9f1f2 (sage 3537/3538); queue only
|
||||
d52d9f1f2 row 305 (#1812): gate run 1 evidence (sage-3374): both suites green, mutants a and b killed in both, c a known survivor
|
||||
830f3d8bf row 305 (#1812): BUILD.md notes the SIGKILL leak and its cleanup (Filbert N1)
|
||||
e48d60216 row 305 (#1812): BUILD.md with the trace, change, gate and the three mos-1445 mutants
|
||||
cabcb81d4 row 305 (#1812): each suite's network check also requires the network present under the run's project before the remove (mos-1445)
|
||||
353d65f57 row 305 (#1812, Vikunja 591) draft: per-run COMPOSE_PROJECT_NAME, exit trap removes that one network, one absent-network check per suite; for Mos through Sage before the build (mos-1272)
|
||||
2c289f6f0 SESSIONS: filbert row 305 round 1 approve (c31127, rev 3534)
|
||||
a863015a5 test: match Claude memory slug normalization under mos-1442
|
||||
e551cd846 launchpad: row 303 (#1810): R9 asserts the rehearsal directory is set before the placeholders check joins it, so a null shows the rehearsal output (mos-1422, Vikunja 589)
|
||||
c13c337e1 queue: revs 3521-3530: rows 304 and 305 claimed (rocko 3521, gizmoduck 3522); row 305 in-review on 7e8218a2e (gizmoduck 3523), request failed without a token (gizmoduck 3524), sage's request posted c31126 (3525/3526); row 304 in-review on 5e8354ebb (rocko 3527), request failed without a token (rocko 3528), sage's request posted c31128 (3529/3530); queue only
|
||||
435a7458d sage: PRD 1.17 draft 8 (343cff6f), d7 plus Mos's d8 fix list mos-1443 (R1-R14, M1-M45, J-i to J-l) and the mos-1446 choices (M10 default, M15 quotes Q235 in full, M40 both sentences); M15 and M16 cite b99ca86b9. Webby APPROVE round 5 webby-0210, no B items; N15-N17 carry to d9
|
||||
b99ca86b9 docs: align editor conversion boundary and host restore with PRD d8
|
||||
0e057e05e queue: revs 3511-3520: rows 304, 305 and 306 added and briefed (sage 3511-3516); row 272 round 2 in-review on b44332a93 (huey 3517), request failed without a token (huey 3518), sage's request posted c31120 (3519/3520); queue only (sage)
|
||||
c16e943b9 briefs: mos-1442 approvals for the 590 and 591 rows (#1811, #1812), the 295 N1 revoke-window row (#1813); DEFERRED 295 N1 (sage)
|
||||
ac1644e1c BUILD-LOG and SESSIONS: rows 302, 295 and 219 landings, the Docker pool diagnostic; DEFERRED 219 N1 (U6); brief for the Vikunja 590 and 591 rows (sage)
|
||||
90633c864 queue: revs 3495-3509: row 295 round 2 in-progress and in-review (morgana 3495-3497), sage's request posted (3498/3499), dewey approve record (3500), row 295 landing note and done at 2efd127ce (sage 3501/3502); row 219 in-review on b899095e4 (rocko 3503/3504, request failed without a token), sage's request posted c31107 (3505/3506), dewey approve record c31108 (3507), row 219 landing note and done at 5fdfd7275 (sage 3508/3509); queue only
|
||||
5fdfd7275 docs: preserve row 219 full gate on the post-295 merge
|
||||
a236dbc30 docs: preserve row 219 mos-1429 short-run evidence
|
||||
312260db7 test: prepare row 219 admission pins under mos-1429
|
||||
d7b4967ed docs: record row 219 rebase after granted-user Console
|
||||
90a3c03cf test: assert creative history in its native session store
|
||||
282f5b4e4 test: pin the compaction audit before the persona refusal
|
||||
781fd509c test: give row 219 persona fixture its explicit session
|
||||
52a73e83b docs: rebase row 219 gate packet and record run bounds
|
||||
049214486 wip: publish unverified row 219 inspection candidate
|
||||
2efd127ce morgana: row 295 r2 gate results on d68b4300d (sage-3338, sage-3340): red first, green, M8 count, whole files, suites, script limits and skips, M1-M16 killed
|
||||
fdbe95d88 morgana: row 295 r2 narrow alice grant (Dewey F1, sage-3333): aliceAccess(ref) names only the test's project, set after project.create; asserts and bindLaunch lines byte-identical; BUILD.md preservation record updated
|
||||
cb96220b5 morgana: row 295 r2 old-test setup (mos-1436 option a): message-filter's :117 and governance-pin tests get an alice collaborator access document, spec-fixtures fixture() takes an optional access (null default); asserts and bindLaunch lines byte-identical; BUILD.md gate record, assertion preservation, N1 revoke window
|
||||
6408dcec4 morgana: row 295 r2 first-run reds placed (mos-1272): claim rows spread off the store's null prototype in access-revoke and thread-revoke, demo switches the pi harness on for startBroker, Alice binds at her first call in thread-revoke
|
||||
0c8f12ea2 morgana: row 295 r2 rebase on 80793d824 (sage-3256): accessFor comment is stamp-cached (dewey-0871 N3); BUILD.md rebase note
|
||||
24f8f5d73 morgana: row 295 r2: wrap the launcher's revoked comment (dewey-0874 nit)
|
||||
31da9dcb8 morgana: row 295 r2 (dewey-0871): threadsState ends an expired grant's held claim from the cached read by access-expiry (B1, D7, M16, M11 claim row); access.reload scope as D8 (N1); bus README access.reload, revoked and revocation (N2); tests unrun
|
||||
ff54a1556 morgana: row 295 FED R4 revocation (#1801): 30 s access timer, access.reload, one-transaction claim end on a loss, threadsState revoked, launcher SIGTERM and no start, CLI reload after grant/revoke; tests unrun (no CLEAR yet)
|
||||
249d42dfc morgana: row 295 plan (FED R4 revocation, #1801): sweep on timer, access.reload and user requests; threadsState revoked; launcher skip and SIGTERM; bindLaunch and role.claim refuse thread-revoked
|
||||
07802dc57 queue: revs 3488-3494: row 302 (#1809) in-review on 2a8281a6f (gizmoduck 3488), gizmoduck's request failed without a token (3489), sage's request posted c31091 (3490/3491), dewey approve record c31092 (3492); row 302 landing note and done move at 3ed9fd754 (sage 3493/3494); queue only
|
||||
3ed9fd754 gizmoduck: row 302 (#1809) gate results: run 1 stopped on launcher-released.test:89 (d6, mos-1430); run 2 on merge 783602e06 (5b63ea323 onto 1ac655005) red as ruled, suites green, M1-M5 M7-M9 killed; RESULTS.md and logs, packet only
|
||||
c9fcf9b5a gizmoduck: row 302 (#1809) d6: launcher-released.test:89 counts only a-run's delivery rows and pins the one routed row with holder_run null; #route writes that row for every message (gizmoduck-0388, sage-3294, sage-3296, Mos ruling pending sage-3293); local, not pushed
|
||||
2b6111a17 row 302 (#1809, Vikunja 588): a run threadIdle or landRelease released answers launcher-released on every call needing the claim until it ends, role.claim refuses it (Dewey D1), and the runner exits stopped without releasing again
|
||||
4a827edb0 row 302 (#1809, Vikunja 588): red first, the final forcing tests and the four pins Mos ruled (mos-1414/1415/1416), over unfixed product files; BUILD.md d3-d5 and ASSERTION-PRESERVATION
|
||||
908f92b03 gizmoduck: row 302 design d2: threads.test pins are :392/:394/:395 (sage-3204), land-relaunch grep finds land.test:464 as a third old pin under Q1
|
||||
62470a3ec gizmoduck: row 302 BUILD.md folds Dewey's d1 approval (dewey-0875): D1 role.claim refuses a released run, landRelease reaches runner.test:742-772 so Q1 moves :771-772, Q2-Q4 and N1-N4 settled
|
||||
fee08d7ab gizmoduck: row 302 (#1809, Vikunja 588) idle-stop race design round d1 for Dewey: idle-released code from the broker's own record of threadIdle's release, runner maps it to stopped/0, forcing cli test holds the window open until a call lands, threads.test:393 is the one changed pin (sage-3200, mos-1411)
|
||||
1ac655005 BUILD-LOG and SESSIONS: row 299 gate and landing, row 303 review, 219 and 295 rebases (sage)
|
||||
8a35ffadb queue: revs 3474-3487: row 303 (#1810) in-progress and in-review on 3c3be5d3 (launchpad 3474/3475), launchpad's request failed without a token (3476), sage's request posted c31082 (3477/3478), duckworth approve record c31079 (3480); row 299 (#1806) claim (gander 3479), in-review on 277ace0b (gander 3481), gander's request failed without a token (3482), sage's request posted c31083 (3483/3484), filbert approve record c31084 (3485); row 299 landing note and done move at ffb2fedfb (sage 3486/3487); queue only
|
||||
ffb2fedfb docs(row299): record fresh timing gate and six assertion kills
|
||||
11d1e2e0c docs(row299): record clean integration on 80793d824
|
||||
ed81f6eba docs(row299): record mos-1409 preservation and static candidate
|
||||
e14164ab4 test(case): observe P10 wait directly under mos-1409
|
||||
10113b04f docs(row299): propose direct P10 wait timing for mos-1272 review
|
||||
c1f910b4c SESSIONS: filbert row 299 manifest round 1 approve (c31084, rev 3485)
|
||||
15e688cc0 BUILD-LOG and SESSIONS: row 294 rounds 3-4 and landing, R9 transient and row 303, row 219 edits 2-3 (sage)
|
||||
80793d824 queue: revs 3464-3473: row 294 (#1800) round 4 in-progress and in-review on a1ff5d67 (launchpad 3464/3465), launchpad's request without a token failed (3466), sage's request posted c31055 (3467/3468), duckworth approve record c31053 (3469); row 294 landing note and done move at d3059c2c3 (sage 3470/3471); row 303 (R9 guard, #1810, Vikunja 589, mos-1422) added and briefed (sage 3472/3473); queue only
|
||||
ad6ca7930 docs: brief for the R9 guard row (Vikunja 589, #1810, mos-1422); docs only
|
||||
d3059c2c3 launchpad: row 294 run 4 (#1800): whole gate green on 8616b9a4f (webui 365, cli 909, bus 873, 10 scripts), M1-M11 killed; M1 record names G4's first failure and G5 green (Duckworth C1); receipts in run4/
|
||||
6f0793067 launchpad: row 294 round 4 (#1800): rehearsal fixture copies carry cli access.mjs and transport.mjs, B1-B3 pin the fixture's tracker warning in full (Mos mos-1419, sage-3238); manifest round 4 (19 paths), run 3 receipts; unrun
|
||||
b01e1c9ee launchpad: row 294 round 3 (#1800): G5's baseline is coalesce(max(seq), 0), since max(seq) is NULL on the fixture's empty events table and run 2 read 0 of 22 refusal events (sage-3212, Mos ruling pending sage-3211); manifest round 3, run 2 receipts; unrun
|
||||
8716e72f2 launchpad: row 294 round 2 (#1800): browser.test pin gains /federation.js at index 2 (Mos mos-1412 (a)), G5 pins one action.refused {code: access-refused} per refused verb and every other table unchanged (sage-3194); manifest round 2 (18 paths), ASSERTION-PRESERVATION.json, run 1 receipts; unrun
|
||||
9beeeb995 launchpad: row 294 run limits from recorded durations, 3x or more (sage-3187, mos-1275)
|
||||
9e43fefe6 launchpad: row 294 BUILD.md M1 expectation corrected (Duckworth C1), review recorded with N1-N4 dispositions
|
||||
d0460ed47 launchpad: row 294 round 1 manifest (17 paths from 9450774cb) and notes with the owner-transport exception
|
||||
26f93fa74 launchpad: row 294 sage-3157, owner-transport exception written out, userOptionsFor, G9 pins no user value, M10/M11 (unrun, #1800)
|
||||
c9e67e7d2 launchpad: row 294 BUILD.md M4 kill names the moved test
|
||||
52d2a1610 launchpad: row 294 rulings sage-3153 (boot refusal line, owner transport seam G9, C7 follow-up, access.test.mjs unchanged; unrun, #1800)
|
||||
afef0ea88 launchpad: row 294 FED R6 build and plan, granted-user sign-in (unrun, #1800)
|
||||
09d0d6faf queue: revs 3457-3463: row 294 (#1800) round 3 in-progress and in-review on cb1648f3 (launchpad 3457/3458), launchpad's request without a token failed (3459), sage's request posted c31049 (3460/3461), duckworth approve record c31045 (3462); row 219 restart note on b97a3ff97 (rocko 3463); queue only
|
||||
ffbc0d7a6 BUILD-LOG and SESSIONS: row 292 landing, idle-stop race row 302 and its rulings, rows 300/301, row 294 rounds 2-3 (sage)
|
||||
756284e8e queue: revs 3448-3456: row 294 (#1800) round 2 in-progress and in-review on 7ec7b1ea (launchpad 3448/3449), launchpad's request without a token failed (3450), sage's request without a token failed (3451/3452), sage's request posted c31042 (3453/3454), duckworth approve record c31029 (3455); row 302 (#1809) in-progress (gizmoduck 3456); queue only
|
||||
0e30a85fa queue: revs 3444-3447: row 302 (idle-stop race, #1809, Vikunja 588, mos-1411) added and briefed; row 292 (#1797) landing note and done move at 6aab979e6 (sage); queue only
|
||||
6aab979e6 row 292 (#1797) gate results on 0d0021454: r2 old-test red compactions-launch:229 (exit-22 race, Vikunja 588), mos-1411 diagnostic 0/10 with one not-holder exit 22 seen in the clear test, r3 cli rerun 910/910, ten shells green, M1-M9 killed; rebase receipts (sage-3183, sage-3185, sage-3193)
|
||||
e5ffa7693 row 292 (#1797) packet: targeted mutant kill rules per sage-3152 (pattern, stack lines and text per mutant; anything else is a STOP; a survivor gets one whole-file run), short TMPDIR per stage, run plan after Duckworth's round
|
||||
bf4ba4280 row 292 (#1797) packet: rebase onto b23783f39 with the 0585b3213 resolution (row 203's console and federation text kept word for word, Gander's text for any other key), range-diff, the three patch-ids, C1/N3, mutants M1-M9 (unrun) and the run plan (sage-3146, sage-3148)
|
||||
495c12865 row 292 (#1797) C1 and N3 for duckworth-0229: a pre-270 loader stand-in of its own (C1's loader without the row 270 concat, the list before bce491715) refuses compactionReadBytes and compactionStreams on a full activate and rollback, naming the key; C1's loader reads both; the missing-loader case uses compactionStreams 1024 and checks row 203's console and federation text word for word with no loader
|
||||
4b612781b docs(release): record static approval and post-compaction review conditions
|
||||
be4357216 docs(release): record any-key config plan and static review packet
|
||||
39bde4fd4 fix(release): validate non-console config keys with target loader
|
||||
fdedc56e2 docs: idle-stop race brief records the 10-run diagnostic (not-holder seen once, run r846b8d083502); docs only
|
||||
e3ef1eaf6 docs: brief for the idle-stop race row (Vikunja 588, #1809, mos-1411); docs only
|
||||
c902a767d queue: revs 3439-3443: rocko row 219 claim (3439), sage adds rows 300 (R6-N1, #1807) and 301 (R6-N4, #1808) and briefs both; queue only
|
||||
86d5ac69b docs: R6 follow-up briefs for row 294 N1 (#1807) and N4 (#1808); docs only
|
||||
4a9c536e8 Row 293 (574) landing e51d11640 and the 3m-3n live window (activation 20261023T034557Z-464010fbe4c6): BUILD-LOG phase line, Darkwing and Sage SESSIONS lines; docs only
|
||||
83f1f854d queue: row 293 (574, #1805) landing note and done move (sage); queue only
|
||||
e51d11640 docs(row293): record green integrated trace and whole suites
|
||||
78bbe1223 docs(row293): record integrated run2 and short TMPDIR correction
|
||||
92c0ca3db docs: preserve row293 first trace run and TMPDIR stop
|
||||
d0ede15b9 docs(v574): record static approval and trace evidence requirements
|
||||
29bb1ccd4 docs(v574): audit fixture comparisons and plan trace proof
|
||||
4e22bd49f test(git): disable detached fixture maintenance per mos-1369
|
||||
bus: scripts/bus-service.sh install --copy 45dca69f6e4bce52834587f66f2ff33ba839ab8a --copies /home/jwoltje/.local/share/mosaic-stack/copies --pm --claude /home/jwoltje/.local/bin/claude
|
||||
proof: off
|
||||
send: off
|
||||
Console: scripts/webui-service.sh install --copy 45dca69f6e4bce52834587f66f2ff33ba839ab8a --copies /home/jwoltje/.local/share/mosaic-stack/copies --port 7332 --public-host mosaic.woltje.com --auth-header X-authentik-username --allow-user jason.woltje --tester-socket
|
||||
CLI: scripts/stack-copy.sh wrapper 45dca69f6e4bce52834587f66f2ff33ba839ab8a --copies /home/jwoltje/.local/share/mosaic-stack/copies --bin /home/jwoltje/.npm-global/bin
|
||||
interpreter: {"path":"/usr/bin/python3.14","version":[3,14,6],"dev":66308,"ino":3968163,"sha256":"8735f172622a7f8d27e293fd0fd36fc55c4cb9b663b6630d33b57870e36c24cc"}
|
||||
# exit 0, end 2026-10-23T18:58:17.118Z
|
||||
# W3-plan.txt sha256 9a5317064441aa1b0bdd055bc3132322bea4e7267a5d8801ad97bbbb1d1ef7aa
|
||||
# W3 commit list lines left out of the flag checks: 141
|
||||
# W3 plan checks: OLD to NEW, 3n to 3n, migration none, no needs: line, 141 commits, backup line, Console line OLD's flags exactly, proof off, send off, no drop/sso/send/proof, bus --pm: PASS
|
||||
|
||||
## W4 bus unit (Environment omitted from the transcript)
|
||||
# start 2026-10-23T18:58:17.135Z
|
||||
# command: (cd $REPO && <clean env> systemctl --user show [email protected] -p ExecStart -p WorkingDirectory -p DropInPaths)
|
||||
DropInPaths=
|
||||
ExecStart={ path=/home/jwoltje/.local/share/mosaic-stack/copies/464010fbe4c6925b077b9b8182a209ee2177eb9d/scripts/mosaic ; argv[]=/home/jwoltje/.local/share/mosaic-stack/copies/464010fbe4c6925b077b9b8182a209ee2177eb9d/scripts/mosaic bus start mosaic-stack --pm ; ignore_errors=no ; start_time=[Thu 2026-10-22 22:45:59 CDT] ; stop_time=[n/a] ; pid=3811005 ; code=(null) ; status=0/0 }
|
||||
WorkingDirectory=/home/jwoltje/.local/share/mosaic-stack/copies/464010fbe4c6925b077b9b8182a209ee2177eb9d
|
||||
# exit 0, end 2026-10-23T18:58:17.141Z
|
||||
|
||||
## W4 webui unit
|
||||
# start 2026-10-23T18:58:17.143Z
|
||||
# command: (cd $REPO && <clean env> systemctl --user show mosaic-webui.service -p ExecStart -p WorkingDirectory -p DropInPaths)
|
||||
DropInPaths=
|
||||
ExecStart={ path=/usr/bin/node ; argv[]=/usr/bin/node /home/jwoltje/.local/share/mosaic-stack/copies/464010fbe4c6925b077b9b8182a209ee2177eb9d/packages/webui/src/cli.mjs serve --checkout /mnt/storage/src/mosaic-stack --port 7332 --public-host mosaic.woltje.com --auth-header X-authentik-username --allow-user jason.woltje --tester-socket ; ignore_errors=no ; start_time=[Thu 2026-10-22 22:45:59 CDT] ; stop_time=[n/a] ; pid=3811007 ; code=(null) ; status=0/0 }
|
||||
WorkingDirectory=/home/jwoltje/.local/share/mosaic-stack/copies/464010fbe4c6925b077b9b8182a209ee2177eb9d
|
||||
# exit 0, end 2026-10-23T18:58:17.149Z
|
||||
# W4 checks: DropInPaths empty on both, both ExecStart name the OLD copy, bus has --pm, no quote or backslash in either ExecStart
|
||||
# W4 bus Environment: 2 assignments; quote or backslash: none (values not recorded)
|
||||
# W0b-W4 end 2026-10-23T18:58:17Z
|
||||
# W5 pre-read start 2026-10-23T18:59:10Z
|
||||
|
||||
## W5 pre agents --tester
|
||||
# start 2026-10-23T18:59:10.829Z
|
||||
# command: (cd $REPO && <clean env> /home/jwoltje/.npm-global/bin/mosaic agents --business mosaic-stack --tester)
|
||||
chief r28dbbc5c6b4d claude-code since 2026-10-23T03:46:01.235Z
|
||||
pm ra38826f3c6e2 claude-code since 2026-10-23T03:47:35.853Z
|
||||
# exit 0, end 2026-10-23T18:59:11.087Z
|
||||
|
||||
## W5 pre launches list
|
||||
# start 2026-10-23T18:59:11.091Z
|
||||
# command: (cd $REPO && <clean env> /home/jwoltje/.npm-global/bin/mosaic launches list)
|
||||
r28dbbc5c6b4d mosaic-stack/chief claude-code claude-opus-5-5 by jason since 2026-10-23T03:46:01.221Z running
|
||||
ra38826f3c6e2 mosaic-stack/pm claude-code claude-opus-5-5 by chief since 2026-10-23T03:47:35.835Z running
|
||||
# exit 0, end 2026-10-23T18:59:11.215Z
|
||||
# W5 pre-read PASS 2026-10-23T18:59:11Z: chief r28dbbc5c6b4d standing, not working; pm ra38826f3c6e2 listed, not working; no other launch
|
||||
# W5 go mos-1493, start 2026-10-23T18:59:11Z
|
||||
# condition 3 recheck: tool blob 2656f95b00e3, plan 0c932a4c, four scripts clean, pointer on OLD, P2 stubs and units PASS
|
||||
# W5 exit 0, W5.start 2026-10-23T18:59:11Z, end 2026-10-23T18:59:17Z
|
||||
# W5: activation 20261023T185911Z-45dca69f6e4b, backup /home/jwoltje/.mosaic-dev/backups/stack/20261023T185911Z-45dca69f6e4b, STAMP 2026-10-23T18:59:11.913Z, SCHEMA 3n, SHA256SUMS sha256 87bd93819db5f38b579d1c616b1c80ca69d4abcba690b8e43a368b682e573a50 (sums check OK)
|
||||
# W5 launched lines in the bus journal since W5.start: 1: launched chief: run re194575ec18c, claude-code claude-opus-5-5
|
||||
|
||||
## W5 status
|
||||
# start 2026-10-23T18:59:17.379Z
|
||||
# command: (cd $REPO && <clean env> scripts/stack-release.sh status mosaic-stack)
|
||||
pointer: /home/jwoltje/.mosaic-dev/state/stack-active.json
|
||||
{"copy":"45dca69f6e4bce52834587f66f2ff33ba839ab8a","business":"mosaic-stack","pm":true,"claude":"/home/jwoltje/.local/bin/claude","console":["--port","7332","--public-host","mosaic.woltje.com","--auth-header","X-authentik-username","--allow-user","jason.woltje","--tester-socket"],"schema":"3n","activation":"20261023T185911Z-45dca69f6e4b","at":"2026-10-23T18:59:17Z"}
|
||||
log (last five lines):
|
||||
{"at":"2026-10-22T20:16:24Z","op":"activate","from":"84f53540dd0d21ef179ca29697e172b0246e78d1","to":"0cbe2e9b35e51fe06dedde69c022b46e040f98c0","backup":"20261022T201621Z-0cbe2e9b35e5","activation":"20261022T201621Z-0cbe2e9b35e5","result":"ok"}
|
||||
{"at":"2026-10-23T03:45:57Z","op":"activate","from":"0cbe2e9b35e51fe06dedde69c022b46e040f98c0","to":"464010fbe4c6925b077b9b8182a209ee2177eb9d","backup":null,"activation":"20261023T034557Z-464010fbe4c6","result":"started","interpreter":"{\"path\":\"/usr/bin/python3.14\",\"version\":[3,14,6],\"dev\":66308,\"ino\":3968163,\"sha256\":\"8735f172622a7f8d27e293fd0fd36fc55c4cb9b663b6630d33b57870e36c24cc\"}"}
|
||||
{"at":"2026-10-23T03:46:02Z","op":"activate","from":"0cbe2e9b35e51fe06dedde69c022b46e040f98c0","to":"464010fbe4c6925b077b9b8182a209ee2177eb9d","backup":"20261023T034557Z-464010fbe4c6","activation":"20261023T034557Z-464010fbe4c6","result":"ok"}
|
||||
{"at":"2026-10-23T18:59:11Z","op":"activate","from":"464010fbe4c6925b077b9b8182a209ee2177eb9d","to":"45dca69f6e4bce52834587f66f2ff33ba839ab8a","backup":null,"activation":"20261023T185911Z-45dca69f6e4b","result":"started","interpreter":"{\"path\":\"/usr/bin/python3.14\",\"version\":[3,14,6],\"dev\":66308,\"ino\":3968163,\"sha256\":\"8735f172622a7f8d27e293fd0fd36fc55c4cb9b663b6630d33b57870e36c24cc\"}"}
|
||||
{"at":"2026-10-23T18:59:17Z","op":"activate","from":"464010fbe4c6925b077b9b8182a209ee2177eb9d","to":"45dca69f6e4bce52834587f66f2ff33ba839ab8a","backup":"20261023T185911Z-45dca69f6e4b","activation":"20261023T185911Z-45dca69f6e4b","result":"ok"}
|
||||
check:
|
||||
bus: /home/jwoltje/.local/share/mosaic-stack/copies/45dca69f6e4bce52834587f66f2ff33ba839ab8a
|
||||
Console: /home/jwoltje/.local/share/mosaic-stack/copies/45dca69f6e4bce52834587f66f2ff33ba839ab8a
|
||||
CLI: /home/jwoltje/.local/share/mosaic-stack/copies/45dca69f6e4bce52834587f66f2ff33ba839ab8a
|
||||
result: pass
|
||||
bus status:
|
||||
host: mosaic-stack, pid 758595, running, since 2026-10-23T18:59:13.168Z, notifier off
|
||||
socket: present
|
||||
writer.lock: pid 758858
|
||||
boot: organization file loaded at 2026-10-23T18:59:13.168Z
|
||||
unit flags: match the pointer
|
||||
drift: 0 commit(s) on refactor since the pointer's copy
|
||||
# exit 0, end 2026-10-23T18:59:17.667Z
|
||||
# W5 status: pointer NEW, pm true, 3n, check pass, unit flags match. W5_PASS 2026-10-23T18:59:17Z
|
||||
|
||||
## W5 rollback --plan (read only)
|
||||
# start 2026-10-23T18:59:17.673Z
|
||||
# command: (cd $REPO && <clean env> scripts/stack-release.sh rollback mosaic-stack --plan)
|
||||
plan: rollback for mosaic-stack
|
||||
from: 45dca69f6e4bce52834587f66f2ff33ba839ab8a
|
||||
to: 464010fbe4c6925b077b9b8182a209ee2177eb9d
|
||||
store schema: 3n (read from the store the running bus holds)
|
||||
target schema: 3n
|
||||
migration: none; the store is at the target's version
|
||||
commits: the run takes away 141 (newest first, at most 200):
|
||||
45dca69f6 sessions: Sage 10-23 Vikunja 571 W rows 309-318 filed, 571 done
|
||||
293b42fee queue: revs 3617-3636: Vikunja 571 W build rows 309-318 added (sage 3617-3626: W1, W2, W3a, W3b, W6, W3, W4b, W5, W7, W8, post-10-27, brief docs/plans/2026-10-21_q195-writing-editor.md) and owners set to unassigned (sage 3627-3636)
|
||||
369607e92 sessions: Sage 10-23 rows 308 and 252 landings, 571 Connections design amendment, Vikunja 597; Scrooge row 252 line
|
||||
59f013247 queue: revs 3589-3616: row 306 in-progress, in-review and failed request (morgana 3589, 3592-3593), request (sage 3594-3595, comment 31207), approve record (dewey 3596), note and done (sage 3599-3600); row 308 added and briefed (sage 3590-3591), claim, in-review and failed request (gosalyn 3601-3603), request (sage 3604-3605, comment 31223), approve record (webby 3606, comment 31224), note and done (sage 3613-3614, landed 30e6bb680); row 291 note and done (sage 3597-3598); row 252 issue #1753 (sage 3607), in-review and failed request (scrooge 3608-3609), request (sage 3610-3611, comment 31230), approve record (webby 3612, comment 31229), note and done (sage 3615-3616, landed 45ea3fa0d)
|
||||
e8bb13df8 docs: clarify Connections opening order and current-link filtering
|
||||
dba2ebdb8 docs: plan required Console Connections view before real import
|
||||
45ea3fa0d row 252: library-cli and thread-claims bus.mjs stubs gain the throwing consoleCall export cli.mjs now imports (Mos GO mos-1465 under mos-1272, via sage-3497)
|
||||
f69c96200 row 252: decide-sso J19 killer (a granted user's config says decide false, its decision POSTs stop at owner-only), J16 checks the config that starts without send; BUILD.md rulings, J11c and J18 equivalence, part 2 mutants (#1753)
|
||||
5b6c87814 row 252: decide-browser placements (mos-1272): the hostile grant goes in with its INSERT since decisions is append-only, and page() loads about:blank first so a same-URL visit reloads
|
||||
8c2c5303c row 252: access-boot fixture provider gains issuer https://idp.test, so consoleOwners can key the owner (Mos GO mos-1464 under mos-1272, via sage-3494)
|
||||
23e3d09fa row 252: decide-sso first-run reds placed (mos-1272): a decision transport without --send never starts, and a POST to /api/bus/decision.* meets row 74's read-only refusal; BUILD.md run notes (#1753)
|
||||
795a645e6 row 252: console-decide events() keeps the row kind as event, since an answer body's kind shadowed it (first-run red at :180, two vacuous zero counts), and a J7 killer test for the console cap release over the socket (#1753)
|
||||
076ca8d6e row 252 BUILD.md: rebase onto fe4ee8c7b, commit map and the six conflict resolutions (sage-3482)
|
||||
68be86324 row 252: mos-1321, reword the shell.test write-boundary comment so Approve and Deny is the one decision control; BUILD.md records the ruling and its channel-proof review condition
|
||||
264fad2e2 row 252 BUILD.md: channel-proof overlap with row 239 (sage-2835)
|
||||
24672fd9d row 252: Console inbox Approve and Deny for grant requests, human-only through a console owner proof, confirmation then resolve, via console with human.input before the executor (#1753, Webby N1-N5); tests not yet run
|
||||
30e6bb680 gosalyn: PRD 1.17, Case 2 story files are DOCX (row 308, sage-3516, Q235 to Q237, Q239). Applies the approved d9 text at 4607e15b8 word for word to the 1.16 text. Status, the header sentence and a 1.17 source line, the Creative library lead, REQ-LIB-1, -2, -4, -5 and -6 changed as d9 says, new REQ-LIB-8 for the writing store and REQ-LIB-9 for the Console's DOCX editor, the 1.17 notes and four risks. requirements.json goes to 1.17 with 87 ids and the d9 titles, and the tasks and bus test pins follow
|
||||
7defb58e9 sessions: Sage 10-23 rows 291 and 306 landings, row 308 launch
|
||||
9c8877bdf plans: DEFERRED row 306 N1 (revoke Set lost on broker restart) and N2 (pending limit stop answers not-holder first), landed 2d0318a44 (mos-1463)
|
||||
2d0318a44 morgana: row 306 build (#1813): #accessRevoked from #revokeLost, #agent answers thread-revoked until endLaunch, runner stops on thread-revoked, READMEs, access-revoke.test 7 7 (mos-1463)
|
||||
bd3fa2a48 morgana: row 306 red-first tests (#1813): bus revoke-window T1/T2, cli revoke-window T3 forcing test; no product code
|
||||
ab575ee55 morgana: row 306 design r2 (dewey-0918 C1-C3, sage-3483/mos-1463): T3 asserts no thread-revoked event for A, T2 limit half makes a second call, six-suite gate, access-revoke edit bounded to 7 7
|
||||
1676ad0de morgana: row 306 design r1 (#1813, sage-3478): #accessRevoked set from #revokeLost, #agent answers thread-revoked until endLaunch, runner maps it to stopped; T1-T3, M1-M3, six access-revoke asserts to Mos via Sage
|
||||
4874d1e83 gosalyn: PRD 1.16 routes library.write under REQ-LIB-6 (mos-1328, mos-1329, sage-2919, webby-0164 B2). REQ-WAIT-3 gains the routing paragraph with its bounds, creative roles only and within-role, Markdown under supporting folders a human marks, never a story file, the writing agent's live Gitea grant on the library project, one commit per write by its own account with the trailer, notice and revert. REQ-LIB-6 names the action. Status, the header, a 1.16 source line and a 1.16 note. requirements.json changes its version only, with the test pin
|
||||
e909ef51a plans: PRD 1.17 brief (Gitea #1815, Vikunja 570): Gosalyn builds d9 4607e15b8 onto 1.16 after row 291, Webby reviews, four files, Sage gates
|
||||
4607e15b8 sage: PRD 1.17 d9 r3 (02f28dec), Mos's J-b check mos-1470: J-b records N20 as confirmed, REQ-LIB-5's version tag cites Q239 for the Connections view (N21), d9 changes names both
|
||||
8b4201055 sage: PRD 1.17 d9 round 2 (b17ce386), Webby round 6 B1: REQ-LIB-5, its note, the Risks line and the A6 line take mos-1443 R3's text as written; J-b in the past tense (N19); the import-waits line cited as Mos's R3 default (N20)
|
||||
4863e2caf sage: PRD 1.17 draft 9 (7dfc52fd), d8 plus Jason's Q41 O2 (Q239, mos-1467): REQ-LIB-5 requires the Console Connections view for converted chapters, note and Risks line follow, J-b records the answer; Webby round 5 N15-N17
|
||||
7b25a6063 agents: webui runs set MOSAIC_REQUIRE_EDITOR_BUILD=1 and linked worktrees npm ci packages/webui (Vikunja 597)
|
||||
e86df37d7 sessions: Sage 272 and 307 landings, 306 design, 252 rebase check
|
||||
fe4ee8c7b queue: revs 3582-3588: row 307 in-review and failed request (gizmoduck 3582-3583), request (sage 3584-3585, comment 31189), round 1 approve record (duckworth 3586), landing note and done at d243f6b25 (sage 3587-3588); queue only
|
||||
0621c439e plans: DEFERRED gains row 307 N1 (row 270's store-unreadable doesn't stick; #1814 landed d243f6b25)
|
||||
d243f6b25 gizmoduck: row 307 run logs: capture.mjs makes each fixture's data root before sessionStore (base session.mjs:78 needs it), BUILD.md expected red adds claude-history test B (duckworth-0287), steps 1-6 results on 1f6db1589 and 1f00d4f91 with skips named and M1-M4 killed (sage-3455, sage-3465)
|
||||
869670d1b gizmoduck: row 307 BUILD.md: commits, old-test edits against mos-1459, new tests and the empty-session correction to test B, expected red on 1f6db1589, run plan with mos-1275 limits, mutants M1-M4
|
||||
dbbda2537 gizmoduck: row 307 (#1814, Vikunja 598) harness kind gains compactions: pi's stream scan and Claude-history check move to packages/plugins/harness/pi/compactions.mjs, claude-code answers harness-unsupported, core keeps the ledger and checks each answer, readLedger reads the reason only, the launcher passes the loaded module; four old-test edits under mos-1459
|
||||
a9da046f8 gizmoduck: row 307 (#1814, Vikunja 598) new tests, red first: row 270's ledgers per reason read the same count and the next collection goes through the harness module, core refuses an answer out of contract, pi answers what base scanPi read, claude-code answers harness-unsupported, a module without compactions refuses missing-export; capture.mjs checks the literals against base 1e629c892
|
||||
4a71b56ab gizmoduck: row 307 design r1 notes: seat suite whole and compactions-launch T3 run-not-skip in the gate (Duckworth C1, C2), launcher closure comment on bypassing call() (N1), line refs :301 and :302 (N2) (duckworth-0280)
|
||||
520889419 gizmoduck: row 307 (#1814, Vikunja 598) design: harness export compactions({ store, cursors, budget, streams, first }), interfaceVersion stays 1, core keeps the ledger, readLedger reads the reason, ledger compatibility table, four old-test edits for Mos (sage-3440)
|
||||
8dc132bec queue: revs 3572-3581: row 272 round 3 approve record (scrooge 3572, comment 31177), row 307 claim (gizmoduck 3573), row 272 round 4 moves (huey 3574-3576), request (sage 3577-3578, comment 31183), round 4 approve record (scrooge 3579, comment 31184), landing note and done at d33989230 (sage 3580-3581); queue only
|
||||
08b8831bc plans: DEFERRED gains row 272 N1 (user session verbs) and the row 270 N6 rebound after row 307 (#1777 landed d33989230)
|
||||
d33989230 row 272: scope unavailable-session waits to the chat area
|
||||
0ea3db297 row 272: fix session fixture authority and initial chat render
|
||||
f859d06d2 row 272: preserve granted-user default chat on denied session catalog
|
||||
70651f45d row 272: retain session recovery state on invalid selection
|
||||
490f45f02 row 272: preserve untested session CLI and Console draft (sage-3145)
|
||||
1e629c892 queue: revs 3565-3571: row 272 round 3 moves on 72690cae7 (huey 3565-3567) and request (sage 3569-3570, comment 31174); row 307 added and briefed (#1814, Vikunja 598, mos-1455 item 3; sage 3568, 3571); queue only
|
||||
84de3fbca plans: row 270 pi compaction reading moves behind the harness kind (#1814, Vikunja 598, mos-1455 item 3, Gizmoduck, reviewer Duckworth); gate template runs all five suites and sets MOSAIC_REQUIRE_EDITOR_BUILD=1 (mos-1455 item 4, mos-1453)
|
||||
1e4c1e6e9 queue: revs 3539-3564: rows 300 and 301 round 1 claims and in-review moves (launchpad 3539-3544), round 1 requests (sage 3545-3548), round 2 moves (launchpad 3549-3554), round 2 requests (sage 3555-3558), Duckworth approve records 300 (3559) and 301 (3560), landing notes and done at 07315e651 and 5b846b048 (sage 3561-3564); queue only
|
||||
5b846b048 launchpad: row 301 (#1808): library-cli and thread-claims bus.mjs fixtures export throwing busBusiness and userCaller stubs (mos-1451 under mos-1272); BUILD.md repaired with run 1 and the ruling; manifest seven paths; unrun
|
||||
59f0e44f4 launchpad: row 301 (#1808): channel-proof re-pins webui bus.mjs at 39fcb27c for the user transport fold, humanCall unchanged (mos-1449 under mos-1272); unrun
|
||||
bb031ec84 launchpad: row 301 (#1808): R6-N4, user-bus.mjs folded into bus.mjs beside humanCall, unchanged; channel-proof re-pin held for Mos's go; unrun
|
||||
07315e651 launchpad: row 300 (#1807): run 1 gate results in BUILD.md (1/0, webui 375/0, M12 killed) and Duckworth's N1; packet only
|
||||
fb04cbc43 launchpad: row 300 (#1807): run 1 first-run red placed (mos-1272), the test's call helper resolves headers again as granted-user.test does; manifest re-hashed
|
||||
9d929911c launchpad: row 300 (#1807): R6-N1, an HTTP-level test of the user-session option swap with the userRoute gate stubbed open by a load hook, and mutant M12; unrun
|
||||
bcf3c1dac queue: revs 3531-3538: row 303 landing note and done at e551cd846 (sage 3531/3532); row 304 approve record (dewey 3533), row 305 approve record (filbert 3534); row 304 landing note and done at a863015a5 (sage 3535/3536); row 305 landing note and done at d52d9f1f2 (sage 3537/3538); queue only
|
||||
d52d9f1f2 row 305 (#1812): gate run 1 evidence (sage-3374): both suites green, mutants a and b killed in both, c a known survivor
|
||||
830f3d8bf row 305 (#1812): BUILD.md notes the SIGKILL leak and its cleanup (Filbert N1)
|
||||
e48d60216 row 305 (#1812): BUILD.md with the trace, change, gate and the three mos-1445 mutants
|
||||
cabcb81d4 row 305 (#1812): each suite's network check also requires the network present under the run's project before the remove (mos-1445)
|
||||
353d65f57 row 305 (#1812, Vikunja 591) draft: per-run COMPOSE_PROJECT_NAME, exit trap removes that one network, one absent-network check per suite; for Mos through Sage before the build (mos-1272)
|
||||
2c289f6f0 SESSIONS: filbert row 305 round 1 approve (c31127, rev 3534)
|
||||
a863015a5 test: match Claude memory slug normalization under mos-1442
|
||||
e551cd846 launchpad: row 303 (#1810): R9 asserts the rehearsal directory is set before the placeholders check joins it, so a null shows the rehearsal output (mos-1422, Vikunja 589)
|
||||
c13c337e1 queue: revs 3521-3530: rows 304 and 305 claimed (rocko 3521, gizmoduck 3522); row 305 in-review on 7e8218a2e (gizmoduck 3523), request failed without a token (gizmoduck 3524), sage's request posted c31126 (3525/3526); row 304 in-review on 5e8354ebb (rocko 3527), request failed without a token (rocko 3528), sage's request posted c31128 (3529/3530); queue only
|
||||
435a7458d sage: PRD 1.17 draft 8 (343cff6f), d7 plus Mos's d8 fix list mos-1443 (R1-R14, M1-M45, J-i to J-l) and the mos-1446 choices (M10 default, M15 quotes Q235 in full, M40 both sentences); M15 and M16 cite b99ca86b9. Webby APPROVE round 5 webby-0210, no B items; N15-N17 carry to d9
|
||||
b99ca86b9 docs: align editor conversion boundary and host restore with PRD d8
|
||||
0e057e05e queue: revs 3511-3520: rows 304, 305 and 306 added and briefed (sage 3511-3516); row 272 round 2 in-review on b44332a93 (huey 3517), request failed without a token (huey 3518), sage's request posted c31120 (3519/3520); queue only (sage)
|
||||
c16e943b9 briefs: mos-1442 approvals for the 590 and 591 rows (#1811, #1812), the 295 N1 revoke-window row (#1813); DEFERRED 295 N1 (sage)
|
||||
ac1644e1c BUILD-LOG and SESSIONS: rows 302, 295 and 219 landings, the Docker pool diagnostic; DEFERRED 219 N1 (U6); brief for the Vikunja 590 and 591 rows (sage)
|
||||
90633c864 queue: revs 3495-3509: row 295 round 2 in-progress and in-review (morgana 3495-3497), sage's request posted (3498/3499), dewey approve record (3500), row 295 landing note and done at 2efd127ce (sage 3501/3502); row 219 in-review on b899095e4 (rocko 3503/3504, request failed without a token), sage's request posted c31107 (3505/3506), dewey approve record c31108 (3507), row 219 landing note and done at 5fdfd7275 (sage 3508/3509); queue only
|
||||
5fdfd7275 docs: preserve row 219 full gate on the post-295 merge
|
||||
a236dbc30 docs: preserve row 219 mos-1429 short-run evidence
|
||||
312260db7 test: prepare row 219 admission pins under mos-1429
|
||||
d7b4967ed docs: record row 219 rebase after granted-user Console
|
||||
90a3c03cf test: assert creative history in its native session store
|
||||
282f5b4e4 test: pin the compaction audit before the persona refusal
|
||||
781fd509c test: give row 219 persona fixture its explicit session
|
||||
52a73e83b docs: rebase row 219 gate packet and record run bounds
|
||||
049214486 wip: publish unverified row 219 inspection candidate
|
||||
2efd127ce morgana: row 295 r2 gate results on d68b4300d (sage-3338, sage-3340): red first, green, M8 count, whole files, suites, script limits and skips, M1-M16 killed
|
||||
fdbe95d88 morgana: row 295 r2 narrow alice grant (Dewey F1, sage-3333): aliceAccess(ref) names only the test's project, set after project.create; asserts and bindLaunch lines byte-identical; BUILD.md preservation record updated
|
||||
cb96220b5 morgana: row 295 r2 old-test setup (mos-1436 option a): message-filter's :117 and governance-pin tests get an alice collaborator access document, spec-fixtures fixture() takes an optional access (null default); asserts and bindLaunch lines byte-identical; BUILD.md gate record, assertion preservation, N1 revoke window
|
||||
6408dcec4 morgana: row 295 r2 first-run reds placed (mos-1272): claim rows spread off the store's null prototype in access-revoke and thread-revoke, demo switches the pi harness on for startBroker, Alice binds at her first call in thread-revoke
|
||||
0c8f12ea2 morgana: row 295 r2 rebase on 80793d824 (sage-3256): accessFor comment is stamp-cached (dewey-0871 N3); BUILD.md rebase note
|
||||
24f8f5d73 morgana: row 295 r2: wrap the launcher's revoked comment (dewey-0874 nit)
|
||||
31da9dcb8 morgana: row 295 r2 (dewey-0871): threadsState ends an expired grant's held claim from the cached read by access-expiry (B1, D7, M16, M11 claim row); access.reload scope as D8 (N1); bus README access.reload, revoked and revocation (N2); tests unrun
|
||||
ff54a1556 morgana: row 295 FED R4 revocation (#1801): 30 s access timer, access.reload, one-transaction claim end on a loss, threadsState revoked, launcher SIGTERM and no start, CLI reload after grant/revoke; tests unrun (no CLEAR yet)
|
||||
249d42dfc morgana: row 295 plan (FED R4 revocation, #1801): sweep on timer, access.reload and user requests; threadsState revoked; launcher skip and SIGTERM; bindLaunch and role.claim refuse thread-revoked
|
||||
07802dc57 queue: revs 3488-3494: row 302 (#1809) in-review on 2a8281a6f (gizmoduck 3488), gizmoduck's request failed without a token (3489), sage's request posted c31091 (3490/3491), dewey approve record c31092 (3492); row 302 landing note and done move at 3ed9fd754 (sage 3493/3494); queue only
|
||||
3ed9fd754 gizmoduck: row 302 (#1809) gate results: run 1 stopped on launcher-released.test:89 (d6, mos-1430); run 2 on merge 783602e06 (5b63ea323 onto 1ac655005) red as ruled, suites green, M1-M5 M7-M9 killed; RESULTS.md and logs, packet only
|
||||
c9fcf9b5a gizmoduck: row 302 (#1809) d6: launcher-released.test:89 counts only a-run's delivery rows and pins the one routed row with holder_run null; #route writes that row for every message (gizmoduck-0388, sage-3294, sage-3296, Mos ruling pending sage-3293); local, not pushed
|
||||
2b6111a17 row 302 (#1809, Vikunja 588): a run threadIdle or landRelease released answers launcher-released on every call needing the claim until it ends, role.claim refuses it (Dewey D1), and the runner exits stopped without releasing again
|
||||
4a827edb0 row 302 (#1809, Vikunja 588): red first, the final forcing tests and the four pins Mos ruled (mos-1414/1415/1416), over unfixed product files; BUILD.md d3-d5 and ASSERTION-PRESERVATION
|
||||
908f92b03 gizmoduck: row 302 design d2: threads.test pins are :392/:394/:395 (sage-3204), land-relaunch grep finds land.test:464 as a third old pin under Q1
|
||||
62470a3ec gizmoduck: row 302 BUILD.md folds Dewey's d1 approval (dewey-0875): D1 role.claim refuses a released run, landRelease reaches runner.test:742-772 so Q1 moves :771-772, Q2-Q4 and N1-N4 settled
|
||||
fee08d7ab gizmoduck: row 302 (#1809, Vikunja 588) idle-stop race design round d1 for Dewey: idle-released code from the broker's own record of threadIdle's release, runner maps it to stopped/0, forcing cli test holds the window open until a call lands, threads.test:393 is the one changed pin (sage-3200, mos-1411)
|
||||
1ac655005 BUILD-LOG and SESSIONS: row 299 gate and landing, row 303 review, 219 and 295 rebases (sage)
|
||||
8a35ffadb queue: revs 3474-3487: row 303 (#1810) in-progress and in-review on 3c3be5d3 (launchpad 3474/3475), launchpad's request failed without a token (3476), sage's request posted c31082 (3477/3478), duckworth approve record c31079 (3480); row 299 (#1806) claim (gander 3479), in-review on 277ace0b (gander 3481), gander's request failed without a token (3482), sage's request posted c31083 (3483/3484), filbert approve record c31084 (3485); row 299 landing note and done move at ffb2fedfb (sage 3486/3487); queue only
|
||||
ffb2fedfb docs(row299): record fresh timing gate and six assertion kills
|
||||
11d1e2e0c docs(row299): record clean integration on 80793d824
|
||||
ed81f6eba docs(row299): record mos-1409 preservation and static candidate
|
||||
e14164ab4 test(case): observe P10 wait directly under mos-1409
|
||||
10113b04f docs(row299): propose direct P10 wait timing for mos-1272 review
|
||||
c1f910b4c SESSIONS: filbert row 299 manifest round 1 approve (c31084, rev 3485)
|
||||
15e688cc0 BUILD-LOG and SESSIONS: row 294 rounds 3-4 and landing, R9 transient and row 303, row 219 edits 2-3 (sage)
|
||||
80793d824 queue: revs 3464-3473: row 294 (#1800) round 4 in-progress and in-review on a1ff5d67 (launchpad 3464/3465), launchpad's request without a token failed (3466), sage's request posted c31055 (3467/3468), duckworth approve record c31053 (3469); row 294 landing note and done move at d3059c2c3 (sage 3470/3471); row 303 (R9 guard, #1810, Vikunja 589, mos-1422) added and briefed (sage 3472/3473); queue only
|
||||
ad6ca7930 docs: brief for the R9 guard row (Vikunja 589, #1810, mos-1422); docs only
|
||||
d3059c2c3 launchpad: row 294 run 4 (#1800): whole gate green on 8616b9a4f (webui 365, cli 909, bus 873, 10 scripts), M1-M11 killed; M1 record names G4's first failure and G5 green (Duckworth C1); receipts in run4/
|
||||
6f0793067 launchpad: row 294 round 4 (#1800): rehearsal fixture copies carry cli access.mjs and transport.mjs, B1-B3 pin the fixture's tracker warning in full (Mos mos-1419, sage-3238); manifest round 4 (19 paths), run 3 receipts; unrun
|
||||
b01e1c9ee launchpad: row 294 round 3 (#1800): G5's baseline is coalesce(max(seq), 0), since max(seq) is NULL on the fixture's empty events table and run 2 read 0 of 22 refusal events (sage-3212, Mos ruling pending sage-3211); manifest round 3, run 2 receipts; unrun
|
||||
8716e72f2 launchpad: row 294 round 2 (#1800): browser.test pin gains /federation.js at index 2 (Mos mos-1412 (a)), G5 pins one action.refused {code: access-refused} per refused verb and every other table unchanged (sage-3194); manifest round 2 (18 paths), ASSERTION-PRESERVATION.json, run 1 receipts; unrun
|
||||
9beeeb995 launchpad: row 294 run limits from recorded durations, 3x or more (sage-3187, mos-1275)
|
||||
9e43fefe6 launchpad: row 294 BUILD.md M1 expectation corrected (Duckworth C1), review recorded with N1-N4 dispositions
|
||||
d0460ed47 launchpad: row 294 round 1 manifest (17 paths from 9450774cb) and notes with the owner-transport exception
|
||||
26f93fa74 launchpad: row 294 sage-3157, owner-transport exception written out, userOptionsFor, G9 pins no user value, M10/M11 (unrun, #1800)
|
||||
c9e67e7d2 launchpad: row 294 BUILD.md M4 kill names the moved test
|
||||
52d2a1610 launchpad: row 294 rulings sage-3153 (boot refusal line, owner transport seam G9, C7 follow-up, access.test.mjs unchanged; unrun, #1800)
|
||||
afef0ea88 launchpad: row 294 FED R6 build and plan, granted-user sign-in (unrun, #1800)
|
||||
09d0d6faf queue: revs 3457-3463: row 294 (#1800) round 3 in-progress and in-review on cb1648f3 (launchpad 3457/3458), launchpad's request without a token failed (3459), sage's request posted c31049 (3460/3461), duckworth approve record c31045 (3462); row 219 restart note on b97a3ff97 (rocko 3463); queue only
|
||||
ffbc0d7a6 BUILD-LOG and SESSIONS: row 292 landing, idle-stop race row 302 and its rulings, rows 300/301, row 294 rounds 2-3 (sage)
|
||||
756284e8e queue: revs 3448-3456: row 294 (#1800) round 2 in-progress and in-review on 7ec7b1ea (launchpad 3448/3449), launchpad's request without a token failed (3450), sage's request without a token failed (3451/3452), sage's request posted c31042 (3453/3454), duckworth approve record c31029 (3455); row 302 (#1809) in-progress (gizmoduck 3456); queue only
|
||||
0e30a85fa queue: revs 3444-3447: row 302 (idle-stop race, #1809, Vikunja 588, mos-1411) added and briefed; row 292 (#1797) landing note and done move at 6aab979e6 (sage); queue only
|
||||
6aab979e6 row 292 (#1797) gate results on 0d0021454: r2 old-test red compactions-launch:229 (exit-22 race, Vikunja 588), mos-1411 diagnostic 0/10 with one not-holder exit 22 seen in the clear test, r3 cli rerun 910/910, ten shells green, M1-M9 killed; rebase receipts (sage-3183, sage-3185, sage-3193)
|
||||
e5ffa7693 row 292 (#1797) packet: targeted mutant kill rules per sage-3152 (pattern, stack lines and text per mutant; anything else is a STOP; a survivor gets one whole-file run), short TMPDIR per stage, run plan after Duckworth's round
|
||||
bf4ba4280 row 292 (#1797) packet: rebase onto b23783f39 with the 0585b3213 resolution (row 203's console and federation text kept word for word, Gander's text for any other key), range-diff, the three patch-ids, C1/N3, mutants M1-M9 (unrun) and the run plan (sage-3146, sage-3148)
|
||||
495c12865 row 292 (#1797) C1 and N3 for duckworth-0229: a pre-270 loader stand-in of its own (C1's loader without the row 270 concat, the list before bce491715) refuses compactionReadBytes and compactionStreams on a full activate and rollback, naming the key; C1's loader reads both; the missing-loader case uses compactionStreams 1024 and checks row 203's console and federation text word for word with no loader
|
||||
4b612781b docs(release): record static approval and post-compaction review conditions
|
||||
be4357216 docs(release): record any-key config plan and static review packet
|
||||
39bde4fd4 fix(release): validate non-console config keys with target loader
|
||||
fdedc56e2 docs: idle-stop race brief records the 10-run diagnostic (not-holder seen once, run r846b8d083502); docs only
|
||||
e3ef1eaf6 docs: brief for the idle-stop race row (Vikunja 588, #1809, mos-1411); docs only
|
||||
c902a767d queue: revs 3439-3443: rocko row 219 claim (3439), sage adds rows 300 (R6-N1, #1807) and 301 (R6-N4, #1808) and briefs both; queue only
|
||||
86d5ac69b docs: R6 follow-up briefs for row 294 N1 (#1807) and N4 (#1808); docs only
|
||||
4a9c536e8 Row 293 (574) landing e51d11640 and the 3m-3n live window (activation 20261023T034557Z-464010fbe4c6): BUILD-LOG phase line, Darkwing and Sage SESSIONS lines; docs only
|
||||
83f1f854d queue: row 293 (574, #1805) landing note and done move (sage); queue only
|
||||
e51d11640 docs(row293): record green integrated trace and whole suites
|
||||
78bbe1223 docs(row293): record integrated run2 and short TMPDIR correction
|
||||
92c0ca3db docs: preserve row293 first trace run and TMPDIR stop
|
||||
d0ede15b9 docs(v574): record static approval and trace evidence requirements
|
||||
29bb1ccd4 docs(v574): audit fixture comparisons and plan trace proof
|
||||
4e22bd49f test(git): disable detached fixture maintenance per mos-1369
|
||||
bus: scripts/bus-service.sh install --copy 464010fbe4c6925b077b9b8182a209ee2177eb9d --copies /home/jwoltje/.local/share/mosaic-stack/copies --pm --claude /home/jwoltje/.local/bin/claude
|
||||
proof: off
|
||||
send: off
|
||||
Console: scripts/webui-service.sh install --copy 464010fbe4c6925b077b9b8182a209ee2177eb9d --copies /home/jwoltje/.local/share/mosaic-stack/copies --port 7332 --public-host mosaic.woltje.com --auth-header X-authentik-username --allow-user jason.woltje --tester-socket
|
||||
CLI: scripts/stack-copy.sh wrapper 464010fbe4c6925b077b9b8182a209ee2177eb9d --copies /home/jwoltje/.local/share/mosaic-stack/copies --bin /home/jwoltje/.npm-global/bin
|
||||
interpreter: {"path":"/usr/bin/python3.14","version":[3,14,6],"dev":66308,"ino":3968163,"sha256":"8735f172622a7f8d27e293fd0fd36fc55c4cb9b663b6630d33b57870e36c24cc"}
|
||||
# exit 0, end 2026-10-23T18:59:17.999Z
|
||||
# W5 rollback plan exit 0: to: 464010fbe4c6925b077b9b8182a209ee2177eb9d store schema: 3n (read from the store the running bus holds) target schema: 3n migration: none; the store is at the target's version
|
||||
# W6 start 2026-10-23T18:59:23Z
|
||||
|
||||
## W6 status
|
||||
# start 2026-10-23T18:59:23.303Z
|
||||
# command: (cd $REPO && <clean env> scripts/stack-release.sh status mosaic-stack)
|
||||
pointer: /home/jwoltje/.mosaic-dev/state/stack-active.json
|
||||
{"copy":"45dca69f6e4bce52834587f66f2ff33ba839ab8a","business":"mosaic-stack","pm":true,"claude":"/home/jwoltje/.local/bin/claude","console":["--port","7332","--public-host","mosaic.woltje.com","--auth-header","X-authentik-username","--allow-user","jason.woltje","--tester-socket"],"schema":"3n","activation":"20261023T185911Z-45dca69f6e4b","at":"2026-10-23T18:59:17Z"}
|
||||
log (last five lines):
|
||||
{"at":"2026-10-22T20:16:24Z","op":"activate","from":"84f53540dd0d21ef179ca29697e172b0246e78d1","to":"0cbe2e9b35e51fe06dedde69c022b46e040f98c0","backup":"20261022T201621Z-0cbe2e9b35e5","activation":"20261022T201621Z-0cbe2e9b35e5","result":"ok"}
|
||||
{"at":"2026-10-23T03:45:57Z","op":"activate","from":"0cbe2e9b35e51fe06dedde69c022b46e040f98c0","to":"464010fbe4c6925b077b9b8182a209ee2177eb9d","backup":null,"activation":"20261023T034557Z-464010fbe4c6","result":"started","interpreter":"{\"path\":\"/usr/bin/python3.14\",\"version\":[3,14,6],\"dev\":66308,\"ino\":3968163,\"sha256\":\"8735f172622a7f8d27e293fd0fd36fc55c4cb9b663b6630d33b57870e36c24cc\"}"}
|
||||
{"at":"2026-10-23T03:46:02Z","op":"activate","from":"0cbe2e9b35e51fe06dedde69c022b46e040f98c0","to":"464010fbe4c6925b077b9b8182a209ee2177eb9d","backup":"20261023T034557Z-464010fbe4c6","activation":"20261023T034557Z-464010fbe4c6","result":"ok"}
|
||||
{"at":"2026-10-23T18:59:11Z","op":"activate","from":"464010fbe4c6925b077b9b8182a209ee2177eb9d","to":"45dca69f6e4bce52834587f66f2ff33ba839ab8a","backup":null,"activation":"20261023T185911Z-45dca69f6e4b","result":"started","interpreter":"{\"path\":\"/usr/bin/python3.14\",\"version\":[3,14,6],\"dev\":66308,\"ino\":3968163,\"sha256\":\"8735f172622a7f8d27e293fd0fd36fc55c4cb9b663b6630d33b57870e36c24cc\"}"}
|
||||
{"at":"2026-10-23T18:59:17Z","op":"activate","from":"464010fbe4c6925b077b9b8182a209ee2177eb9d","to":"45dca69f6e4bce52834587f66f2ff33ba839ab8a","backup":"20261023T185911Z-45dca69f6e4b","activation":"20261023T185911Z-45dca69f6e4b","result":"ok"}
|
||||
check:
|
||||
bus: /home/jwoltje/.local/share/mosaic-stack/copies/45dca69f6e4bce52834587f66f2ff33ba839ab8a
|
||||
Console: /home/jwoltje/.local/share/mosaic-stack/copies/45dca69f6e4bce52834587f66f2ff33ba839ab8a
|
||||
CLI: /home/jwoltje/.local/share/mosaic-stack/copies/45dca69f6e4bce52834587f66f2ff33ba839ab8a
|
||||
result: pass
|
||||
bus status:
|
||||
host: mosaic-stack, pid 758595, running, since 2026-10-23T18:59:13.168Z, notifier off
|
||||
socket: present
|
||||
writer.lock: pid 758858
|
||||
boot: organization file loaded at 2026-10-23T18:59:13.168Z
|
||||
unit flags: match the pointer
|
||||
drift: 0 commit(s) on refactor since the pointer's copy
|
||||
# exit 0, end 2026-10-23T18:59:23.591Z
|
||||
# W6 status: "copy":"45dca69f6e4bce52834587f66f2ff33ba839ab8a" "pm":true "schema":"3n"
|
||||
|
||||
## W6 live store count (python3 -B, mode=ro)
|
||||
types table=26 trigger=97 view=5 index=28
|
||||
schema_version 3n
|
||||
missing none
|
||||
session_table_rows session_ops=0 message_cancels=0 W1 session_ops=0 message_cancels=0 thread_shares 0
|
||||
events 2313 maxSeq 2313
|
||||
COUNTS_OK
|
||||
# exit 0
|
||||
|
||||
## W6 agents --tester
|
||||
# start 2026-10-23T18:59:23.663Z
|
||||
# command: (cd $REPO && <clean env> /home/jwoltje/.npm-global/bin/mosaic agents --business mosaic-stack --tester)
|
||||
chief re194575ec18c claude-code since 2026-10-23T18:59:15.964Z
|
||||
# exit 0, end 2026-10-23T18:59:23.888Z
|
||||
# W6 agents: chief re194575ec18c claude-code since 2026-10-23T18:59:15.964Z;
|
||||
|
||||
## W6 tester thread reads (tr.sh W6)
|
||||
W6 threads --tester: 5 thread(s), threads.json sha256 07c154d75d929028
|
||||
W6 thread d0ba7a66-aa3f-4918-9518-94132bce6b28 messages 2 sha256 985ac61ca9220f2f
|
||||
W6 thread 446201de-e8b5-4df3-9356-d0d5422cc899 messages 2 sha256 7e7e9eeeaa8c1e09
|
||||
W6 thread b89fcca4-6b82-48bd-9310-fb82c5ae8518 messages 2 sha256 f4e4916b9656a403
|
||||
W6 thread d9bb7ff3-7a8b-4bb8-ba12-03ca094cee4e messages 2 sha256 728ff36f3e003c63
|
||||
W6 thread b85a57fe-84f9-4785-a596-135af39e334a messages 2 sha256 727de0d9c809a41a
|
||||
# exit 0
|
||||
# W6 thread reads match W1: 5 threads, same ids, message counts and sha256
|
||||
|
||||
## W6 c11.sh W6 (mos-1487 D1/D2)
|
||||
W6 c11 2026-10-23T18:59:28.117Z threads 5 owners tester=5 user_threads 0 revoke_claims 0 session_ops 0 message_cancels 0 access.json absent (exit 0)
|
||||
# W6 D2: thread_claims op=revoke 0, W1 0
|
||||
# W6 D2: launch log thread-revoked events since W5.start 2026-10-23T18:59:11Z: 0 (file lines 143)
|
||||
# W6 D2: bus journal lines naming thread-revoked since 2026-10-23 18:59:11 UTC: 0 (count only)
|
||||
# W6 bus-host/sessions.json: sessionsVersion and session count: 2 1; mtime 2026-10-23T18:59:15Z
|
||||
# W6_PASS 2026-10-23T18:59:28Z
|
||||
# W9 after W5, W5.start 2026-10-23T18:59:11Z, start 2026-10-23T18:59:53Z
|
||||
# plan 0c932a4c, tool blob 2656f95b00e3, console-check.sh d068fe02, wrapper on NEW: checked
|
||||
|
||||
## W9 Console unit (mos-1338 item 4)
|
||||
is-active active, MainPID 758602
|
||||
ExecMainStartTimestamp Fri 2026-10-23 13:59:13 CDT (2026-10-23T18:59:13Z), ps lstart Fri Oct 23 13:59:12 2026
|
||||
cwd -> /home/jwoltje/.local/share/mosaic-stack/copies/45dca69f6e4bce52834587f66f2ff33ba839ab8a
|
||||
# Console: unit active, pid 758602, started 2026-10-23T18:59:13Z, cwd /home/jwoltje/.local/share/mosaic-stack/copies/45dca69f6e4bce52834587f66f2ff33ba839ab8a
|
||||
# bus: unit active, pid 758595, cwd /home/jwoltje/.local/share/mosaic-stack/copies/45dca69f6e4bce52834587f66f2ff33ba839ab8a
|
||||
|
||||
## W9 status
|
||||
# start 2026-10-23T18:59:53.568Z
|
||||
# command: (cd $REPO && <clean env> /mnt/storage/src/mosaic-stack/scripts/stack-release.sh status mosaic-stack)
|
||||
pointer: /home/jwoltje/.mosaic-dev/state/stack-active.json
|
||||
{"copy":"45dca69f6e4bce52834587f66f2ff33ba839ab8a","business":"mosaic-stack","pm":true,"claude":"/home/jwoltje/.local/bin/claude","console":["--port","7332","--public-host","mosaic.woltje.com","--auth-header","X-authentik-username","--allow-user","jason.woltje","--tester-socket"],"schema":"3n","activation":"20261023T185911Z-45dca69f6e4b","at":"2026-10-23T18:59:17Z"}
|
||||
log (last five lines):
|
||||
{"at":"2026-10-22T20:16:24Z","op":"activate","from":"84f53540dd0d21ef179ca29697e172b0246e78d1","to":"0cbe2e9b35e51fe06dedde69c022b46e040f98c0","backup":"20261022T201621Z-0cbe2e9b35e5","activation":"20261022T201621Z-0cbe2e9b35e5","result":"ok"}
|
||||
{"at":"2026-10-23T03:45:57Z","op":"activate","from":"0cbe2e9b35e51fe06dedde69c022b46e040f98c0","to":"464010fbe4c6925b077b9b8182a209ee2177eb9d","backup":null,"activation":"20261023T034557Z-464010fbe4c6","result":"started","interpreter":"{\"path\":\"/usr/bin/python3.14\",\"version\":[3,14,6],\"dev\":66308,\"ino\":3968163,\"sha256\":\"8735f172622a7f8d27e293fd0fd36fc55c4cb9b663b6630d33b57870e36c24cc\"}"}
|
||||
{"at":"2026-10-23T03:46:02Z","op":"activate","from":"0cbe2e9b35e51fe06dedde69c022b46e040f98c0","to":"464010fbe4c6925b077b9b8182a209ee2177eb9d","backup":"20261023T034557Z-464010fbe4c6","activation":"20261023T034557Z-464010fbe4c6","result":"ok"}
|
||||
{"at":"2026-10-23T18:59:11Z","op":"activate","from":"464010fbe4c6925b077b9b8182a209ee2177eb9d","to":"45dca69f6e4bce52834587f66f2ff33ba839ab8a","backup":null,"activation":"20261023T185911Z-45dca69f6e4b","result":"started","interpreter":"{\"path\":\"/usr/bin/python3.14\",\"version\":[3,14,6],\"dev\":66308,\"ino\":3968163,\"sha256\":\"8735f172622a7f8d27e293fd0fd36fc55c4cb9b663b6630d33b57870e36c24cc\"}"}
|
||||
{"at":"2026-10-23T18:59:17Z","op":"activate","from":"464010fbe4c6925b077b9b8182a209ee2177eb9d","to":"45dca69f6e4bce52834587f66f2ff33ba839ab8a","backup":"20261023T185911Z-45dca69f6e4b","activation":"20261023T185911Z-45dca69f6e4b","result":"ok"}
|
||||
check:
|
||||
bus: /home/jwoltje/.local/share/mosaic-stack/copies/45dca69f6e4bce52834587f66f2ff33ba839ab8a
|
||||
Console: /home/jwoltje/.local/share/mosaic-stack/copies/45dca69f6e4bce52834587f66f2ff33ba839ab8a
|
||||
CLI: /home/jwoltje/.local/share/mosaic-stack/copies/45dca69f6e4bce52834587f66f2ff33ba839ab8a
|
||||
result: pass
|
||||
bus status:
|
||||
host: mosaic-stack, pid 758595, running, since 2026-10-23T18:59:13.168Z, notifier off
|
||||
socket: present
|
||||
writer.lock: pid 758858
|
||||
boot: organization file loaded at 2026-10-23T18:59:13.168Z
|
||||
unit flags: match the pointer
|
||||
drift: 0 commit(s) on refactor since the pointer's copy
|
||||
# exit 0, end 2026-10-23T18:59:53.860Z
|
||||
|
||||
## W9 console-check NEW (/mnt/storage/src/mosaic-stack/agents/sage/work/window-plan/repin-de352dfaf/console-check.sh, d068fe02)
|
||||
# start 2026-10-23T18:59:53.865Z
|
||||
# command: (cd $REPO && <clean env> bash /mnt/storage/src/mosaic-stack/agents/sage/work/window-plan/repin-de352dfaf/console-check.sh 45dca69f6e4bce52834587f66f2ff33ba839ab8a)
|
||||
PASS markdown-preview.js is served and equals the copy's
|
||||
PASS /api/config on loopback: send=false edit=false
|
||||
PASS project.files through the Console: head=ae0b17c9586e51da7bc1b7e548c6acf913a55665 files=2 spec=true error=none
|
||||
PASS project.file spec/north-star.md through the Console: commit=ae0b17c9586e51da7bc1b7e548c6acf913a55665 length=99 error=none
|
||||
PASS loopback save refused: HTTP 403 error=read-only sent=false
|
||||
CONSOLE_PASS
|
||||
# exit 0, end 2026-10-23T18:59:54.155Z
|
||||
|
||||
## W9 webui journal since 2026-10-23 18:59:11 UTC: 'Proxy: proxy proof off' and 'Sign-in:' counts
|
||||
proxy proof off 1, Sign-in 0
|
||||
# journal since W5: proxy proof off 1, Sign-in 0
|
||||
|
||||
## W9 tester socket
|
||||
console/ drwx------ jwoltje directory
|
||||
tester.sock srw------- jwoltje socket
|
||||
# console/ drwx------ jwoltje directory; tester.sock srw------- jwoltje socket
|
||||
|
||||
## W9 peercred-starts.jsonl lines since W5 naming NEW
|
||||
1 (file lines 6)
|
||||
# peercred-starts lines since W5 naming NEW: 1
|
||||
|
||||
## W9 bus journal 'library:' lines since W5
|
||||
library: 0
|
||||
# bus journal library: 0
|
||||
|
||||
## W9 launches list
|
||||
# start 2026-10-23T18:59:54.221Z
|
||||
# command: (cd $REPO && <clean env> /home/jwoltje/.npm-global/bin/mosaic launches list)
|
||||
re194575ec18c mosaic-stack/chief claude-code claude-opus-5-5 by jason since 2026-10-23T18:59:15.960Z running
|
||||
# exit 0, end 2026-10-23T18:59:54.334Z
|
||||
|
||||
## W9 launches list --json
|
||||
# start 2026-10-23T18:59:54.337Z
|
||||
# command: (cd $REPO && <clean env> /home/jwoltje/.npm-global/bin/mosaic launches list --json)
|
||||
[
|
||||
{
|
||||
"business": "mosaic-stack",
|
||||
"instance": "chief",
|
||||
"run": "re194575ec18c",
|
||||
"launchedBy": "jason",
|
||||
"harness": "claude-code",
|
||||
"model": "claude-opus-5-5",
|
||||
"provider": "anthropic",
|
||||
"modelKey": "opus",
|
||||
"pid": 760669,
|
||||
"startTime": "88314611",
|
||||
"runnerPid": 760672,
|
||||
"runnerStartTime": "88314611",
|
||||
"runDir": "/home/jwoltje/.mosaic-dev/launches/mosaic-stack/re194575ec18c",
|
||||
"startedAt": "2026-10-23T18:59:15.960Z",
|
||||
"live": true
|
||||
}
|
||||
]
|
||||
# exit 0, end 2026-10-23T18:59:54.448Z
|
||||
# one running chief from this start: run re194575ec18c
|
||||
# pm: live_pm 0 ; old pm not listed
|
||||
# pm: no live pm, as expected (W5's bus stop ended ra38826f3c6e2; no W9b this window)
|
||||
|
||||
## W9 row 301 (p456.sh r301 live copy)
|
||||
# start 2026-10-23T18:59:54.499Z
|
||||
# command: (cd $REPO && <clean env> bash /mnt/storage/src/mosaic-stack/agents/darkwing/work/window-repin-45dca69f6/p456.sh r301 /home/jwoltje/.local/share/mosaic-stack/copies/45dca69f6e4bce52834587f66f2ff33ba839ab8a)
|
||||
# row 301 channel-proof pin 2026-10-23T18:59:54Z
|
||||
59f0e44f4 ancestor of NEW: yes; 59f0e44f4 pinned 39fcb27c, 24672fd9d (row 252) re-pinned
|
||||
NEW channel-proof pin 604092cb706b152d458f299ff1071f6cd488774629012f96b672f7e9a16c0b2c; NEW packages/webui/src/bus.mjs sha256 604092cb706b152d458f299ff1071f6cd488774629012f96b672f7e9a16c0b2c
|
||||
copy /home/jwoltje/.local/share/mosaic-stack/copies/45dca69f6e4bce52834587f66f2ff33ba839ab8a packages/webui/src/bus.mjs sha256 604092cb706b152d458f299ff1071f6cd488774629012f96b672f7e9a16c0b2c
|
||||
R301 PASS
|
||||
# exit 0, end 2026-10-23T18:59:54.511Z
|
||||
|
||||
## W9 agents --tester
|
||||
# start 2026-10-23T18:59:54.514Z
|
||||
# command: (cd $REPO && <clean env> /home/jwoltje/.npm-global/bin/mosaic agents --business mosaic-stack --tester)
|
||||
chief re194575ec18c claude-code since 2026-10-23T18:59:15.964Z
|
||||
# exit 0, end 2026-10-23T18:59:54.729Z
|
||||
# W9 end 2026-10-23T18:59:54Z W9_CHECKS_PASS
|
||||
# W10 start 2026-10-23T19:00:03Z, TMPDIR /mnt/storage/scratch/tmp/gSoOdHP
|
||||
|
||||
## W10 matrix-new.txt vs matrix-old.txt (header lines differ by stamp)
|
||||
(diff exit 0)
|
||||
# matrix: a-g unchanged expected: FAIL=0
|
||||
|
||||
## W10 listeners on :7333
|
||||
count 0
|
||||
# listeners on 7333: 0
|
||||
|
||||
## W10 tester reads through /home/jwoltje/.local/share/mosaic-stack/copies/45dca69f6e4bce52834587f66f2ff33ba839ab8a/packages/cli/src/tester-http.mjs
|
||||
/api/config 200 88 bytes sha256 c8b277e5aca5aa2f keys ["board","tester","send","decide","edit"] body {"board":"http://127.0.0.1:7331","tester":true,"send":false,"decide":false,"edit":false} (exit 0)
|
||||
/api/bus/agents 200 320 bytes sha256 97a587592a6b22d7 keys ["rows","at"] agents 1 (exit 0)
|
||||
# tester /api/bus/agents 200, agents 1 (P6: agents 2; the hash moves with the at field)
|
||||
# tester /api/config expected: 200 {"board":"http://127.0.0.1:7331","tester":true,"send":false,"decide":false,"edit":false}
|
||||
# tester /api/config body is P6's plus "decide":false
|
||||
|
||||
## W10 P4 again
|
||||
# P4 2026-10-23T19:00:04Z
|
||||
DropInPaths=
|
||||
ExecStart={ path=/home/jwoltje/.local/bin/chisel ; argv[]=/home/jwoltje/.local/bin/chisel client --fingerprint ce+ISFvMAhuoCRDuc7riIf+hYz87TLHk/C9C/H8QsUg= --keepalive 25s --max-retry-interval 10s http://10.1.1.227:8080 R:0.0.0.0:7332:127.0.0.1:7332 ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }
|
||||
# exit 0
|
||||
# R: specs (1): R:0.0.0.0:7332:127.0.0.1:7332
|
||||
P4 PASS: one R: spec R:0.0.0.0:7332:127.0.0.1:7332, DropInPaths empty
|
||||
(p4 exit 0)
|
||||
|
||||
## W10 unsigned writes through the main port (no session, no proxy header; must be refused)
|
||||
POST /api/seen 401 error="sign-in required"
|
||||
POST /api/reply 401 error="sign-in required"
|
||||
POST /api/processing 401 error="sign-in required"
|
||||
tester POST /api/processing 403 error="read-only" sent=false (exit 2)
|
||||
# W10 end 2026-10-23T19:00:04Z FAIL=0
|
||||
@@ -0,0 +1,14 @@
|
||||
plan: activate for mosaic-stack
|
||||
from: 464010fbe4c6925b077b9b8182a209ee2177eb9d
|
||||
to: 45dca69f6e4bce52834587f66f2ff33ba839ab8a
|
||||
store schema: 3n (read from the store the running bus holds)
|
||||
target schema: 3n
|
||||
migration: none; the store is at the target's version
|
||||
backup: the run backs up the stopped store to /home/jwoltje/.mosaic-dev/backups/stack/<activation>/ before any migration
|
||||
commits: the run adds 141 (newest first, at most 200):
|
||||
bus: scripts/bus-service.sh install --copy 45dca69f6e4bce52834587f66f2ff33ba839ab8a --copies /home/jwoltje/.local/share/mosaic-stack/copies --pm --claude /home/jwoltje/.local/bin/claude
|
||||
proof: off
|
||||
send: off
|
||||
Console: scripts/webui-service.sh install --copy 45dca69f6e4bce52834587f66f2ff33ba839ab8a --copies /home/jwoltje/.local/share/mosaic-stack/copies --port 7332 --public-host mosaic.woltje.com --auth-header X-authentik-username --allow-user jason.woltje --tester-socket
|
||||
CLI: scripts/stack-copy.sh wrapper 45dca69f6e4bce52834587f66f2ff33ba839ab8a --copies /home/jwoltje/.local/share/mosaic-stack/copies --bin /home/jwoltje/.npm-global/bin
|
||||
interpreter: {"path":"/usr/bin/python3.14","version":[3,14,6],"dev":66308,"ino":3968163,"sha256":"8735f172622a7f8d27e293fd0fd36fc55c4cb9b663b6630d33b57870e36c24cc"}
|
||||
@@ -0,0 +1,155 @@
|
||||
plan: activate for mosaic-stack
|
||||
from: 464010fbe4c6925b077b9b8182a209ee2177eb9d
|
||||
to: 45dca69f6e4bce52834587f66f2ff33ba839ab8a
|
||||
store schema: 3n (read from the store the running bus holds)
|
||||
target schema: 3n
|
||||
migration: none; the store is at the target's version
|
||||
backup: the run backs up the stopped store to /home/jwoltje/.mosaic-dev/backups/stack/<activation>/ before any migration
|
||||
commits: the run adds 141 (newest first, at most 200):
|
||||
45dca69f6 sessions: Sage 10-23 Vikunja 571 W rows 309-318 filed, 571 done
|
||||
293b42fee queue: revs 3617-3636: Vikunja 571 W build rows 309-318 added (sage 3617-3626: W1, W2, W3a, W3b, W6, W3, W4b, W5, W7, W8, post-10-27, brief docs/plans/2026-10-21_q195-writing-editor.md) and owners set to unassigned (sage 3627-3636)
|
||||
369607e92 sessions: Sage 10-23 rows 308 and 252 landings, 571 Connections design amendment, Vikunja 597; Scrooge row 252 line
|
||||
59f013247 queue: revs 3589-3616: row 306 in-progress, in-review and failed request (morgana 3589, 3592-3593), request (sage 3594-3595, comment 31207), approve record (dewey 3596), note and done (sage 3599-3600); row 308 added and briefed (sage 3590-3591), claim, in-review and failed request (gosalyn 3601-3603), request (sage 3604-3605, comment 31223), approve record (webby 3606, comment 31224), note and done (sage 3613-3614, landed 30e6bb680); row 291 note and done (sage 3597-3598); row 252 issue #1753 (sage 3607), in-review and failed request (scrooge 3608-3609), request (sage 3610-3611, comment 31230), approve record (webby 3612, comment 31229), note and done (sage 3615-3616, landed 45ea3fa0d)
|
||||
e8bb13df8 docs: clarify Connections opening order and current-link filtering
|
||||
dba2ebdb8 docs: plan required Console Connections view before real import
|
||||
45ea3fa0d row 252: library-cli and thread-claims bus.mjs stubs gain the throwing consoleCall export cli.mjs now imports (Mos GO mos-1465 under mos-1272, via sage-3497)
|
||||
f69c96200 row 252: decide-sso J19 killer (a granted user's config says decide false, its decision POSTs stop at owner-only), J16 checks the config that starts without send; BUILD.md rulings, J11c and J18 equivalence, part 2 mutants (#1753)
|
||||
5b6c87814 row 252: decide-browser placements (mos-1272): the hostile grant goes in with its INSERT since decisions is append-only, and page() loads about:blank first so a same-URL visit reloads
|
||||
8c2c5303c row 252: access-boot fixture provider gains issuer https://idp.test, so consoleOwners can key the owner (Mos GO mos-1464 under mos-1272, via sage-3494)
|
||||
23e3d09fa row 252: decide-sso first-run reds placed (mos-1272): a decision transport without --send never starts, and a POST to /api/bus/decision.* meets row 74's read-only refusal; BUILD.md run notes (#1753)
|
||||
795a645e6 row 252: console-decide events() keeps the row kind as event, since an answer body's kind shadowed it (first-run red at :180, two vacuous zero counts), and a J7 killer test for the console cap release over the socket (#1753)
|
||||
076ca8d6e row 252 BUILD.md: rebase onto fe4ee8c7b, commit map and the six conflict resolutions (sage-3482)
|
||||
68be86324 row 252: mos-1321, reword the shell.test write-boundary comment so Approve and Deny is the one decision control; BUILD.md records the ruling and its channel-proof review condition
|
||||
264fad2e2 row 252 BUILD.md: channel-proof overlap with row 239 (sage-2835)
|
||||
24672fd9d row 252: Console inbox Approve and Deny for grant requests, human-only through a console owner proof, confirmation then resolve, via console with human.input before the executor (#1753, Webby N1-N5); tests not yet run
|
||||
30e6bb680 gosalyn: PRD 1.17, Case 2 story files are DOCX (row 308, sage-3516, Q235 to Q237, Q239). Applies the approved d9 text at 4607e15b8 word for word to the 1.16 text. Status, the header sentence and a 1.17 source line, the Creative library lead, REQ-LIB-1, -2, -4, -5 and -6 changed as d9 says, new REQ-LIB-8 for the writing store and REQ-LIB-9 for the Console's DOCX editor, the 1.17 notes and four risks. requirements.json goes to 1.17 with 87 ids and the d9 titles, and the tasks and bus test pins follow
|
||||
7defb58e9 sessions: Sage 10-23 rows 291 and 306 landings, row 308 launch
|
||||
9c8877bdf plans: DEFERRED row 306 N1 (revoke Set lost on broker restart) and N2 (pending limit stop answers not-holder first), landed 2d0318a44 (mos-1463)
|
||||
2d0318a44 morgana: row 306 build (#1813): #accessRevoked from #revokeLost, #agent answers thread-revoked until endLaunch, runner stops on thread-revoked, READMEs, access-revoke.test 7 7 (mos-1463)
|
||||
bd3fa2a48 morgana: row 306 red-first tests (#1813): bus revoke-window T1/T2, cli revoke-window T3 forcing test; no product code
|
||||
ab575ee55 morgana: row 306 design r2 (dewey-0918 C1-C3, sage-3483/mos-1463): T3 asserts no thread-revoked event for A, T2 limit half makes a second call, six-suite gate, access-revoke edit bounded to 7 7
|
||||
1676ad0de morgana: row 306 design r1 (#1813, sage-3478): #accessRevoked set from #revokeLost, #agent answers thread-revoked until endLaunch, runner maps it to stopped; T1-T3, M1-M3, six access-revoke asserts to Mos via Sage
|
||||
4874d1e83 gosalyn: PRD 1.16 routes library.write under REQ-LIB-6 (mos-1328, mos-1329, sage-2919, webby-0164 B2). REQ-WAIT-3 gains the routing paragraph with its bounds, creative roles only and within-role, Markdown under supporting folders a human marks, never a story file, the writing agent's live Gitea grant on the library project, one commit per write by its own account with the trailer, notice and revert. REQ-LIB-6 names the action. Status, the header, a 1.16 source line and a 1.16 note. requirements.json changes its version only, with the test pin
|
||||
e909ef51a plans: PRD 1.17 brief (Gitea #1815, Vikunja 570): Gosalyn builds d9 4607e15b8 onto 1.16 after row 291, Webby reviews, four files, Sage gates
|
||||
4607e15b8 sage: PRD 1.17 d9 r3 (02f28dec), Mos's J-b check mos-1470: J-b records N20 as confirmed, REQ-LIB-5's version tag cites Q239 for the Connections view (N21), d9 changes names both
|
||||
8b4201055 sage: PRD 1.17 d9 round 2 (b17ce386), Webby round 6 B1: REQ-LIB-5, its note, the Risks line and the A6 line take mos-1443 R3's text as written; J-b in the past tense (N19); the import-waits line cited as Mos's R3 default (N20)
|
||||
4863e2caf sage: PRD 1.17 draft 9 (7dfc52fd), d8 plus Jason's Q41 O2 (Q239, mos-1467): REQ-LIB-5 requires the Console Connections view for converted chapters, note and Risks line follow, J-b records the answer; Webby round 5 N15-N17
|
||||
7b25a6063 agents: webui runs set MOSAIC_REQUIRE_EDITOR_BUILD=1 and linked worktrees npm ci packages/webui (Vikunja 597)
|
||||
e86df37d7 sessions: Sage 272 and 307 landings, 306 design, 252 rebase check
|
||||
fe4ee8c7b queue: revs 3582-3588: row 307 in-review and failed request (gizmoduck 3582-3583), request (sage 3584-3585, comment 31189), round 1 approve record (duckworth 3586), landing note and done at d243f6b25 (sage 3587-3588); queue only
|
||||
0621c439e plans: DEFERRED gains row 307 N1 (row 270's store-unreadable doesn't stick; #1814 landed d243f6b25)
|
||||
d243f6b25 gizmoduck: row 307 run logs: capture.mjs makes each fixture's data root before sessionStore (base session.mjs:78 needs it), BUILD.md expected red adds claude-history test B (duckworth-0287), steps 1-6 results on 1f6db1589 and 1f00d4f91 with skips named and M1-M4 killed (sage-3455, sage-3465)
|
||||
869670d1b gizmoduck: row 307 BUILD.md: commits, old-test edits against mos-1459, new tests and the empty-session correction to test B, expected red on 1f6db1589, run plan with mos-1275 limits, mutants M1-M4
|
||||
dbbda2537 gizmoduck: row 307 (#1814, Vikunja 598) harness kind gains compactions: pi's stream scan and Claude-history check move to packages/plugins/harness/pi/compactions.mjs, claude-code answers harness-unsupported, core keeps the ledger and checks each answer, readLedger reads the reason only, the launcher passes the loaded module; four old-test edits under mos-1459
|
||||
a9da046f8 gizmoduck: row 307 (#1814, Vikunja 598) new tests, red first: row 270's ledgers per reason read the same count and the next collection goes through the harness module, core refuses an answer out of contract, pi answers what base scanPi read, claude-code answers harness-unsupported, a module without compactions refuses missing-export; capture.mjs checks the literals against base 1e629c892
|
||||
4a71b56ab gizmoduck: row 307 design r1 notes: seat suite whole and compactions-launch T3 run-not-skip in the gate (Duckworth C1, C2), launcher closure comment on bypassing call() (N1), line refs :301 and :302 (N2) (duckworth-0280)
|
||||
520889419 gizmoduck: row 307 (#1814, Vikunja 598) design: harness export compactions({ store, cursors, budget, streams, first }), interfaceVersion stays 1, core keeps the ledger, readLedger reads the reason, ledger compatibility table, four old-test edits for Mos (sage-3440)
|
||||
8dc132bec queue: revs 3572-3581: row 272 round 3 approve record (scrooge 3572, comment 31177), row 307 claim (gizmoduck 3573), row 272 round 4 moves (huey 3574-3576), request (sage 3577-3578, comment 31183), round 4 approve record (scrooge 3579, comment 31184), landing note and done at d33989230 (sage 3580-3581); queue only
|
||||
08b8831bc plans: DEFERRED gains row 272 N1 (user session verbs) and the row 270 N6 rebound after row 307 (#1777 landed d33989230)
|
||||
d33989230 row 272: scope unavailable-session waits to the chat area
|
||||
0ea3db297 row 272: fix session fixture authority and initial chat render
|
||||
f859d06d2 row 272: preserve granted-user default chat on denied session catalog
|
||||
70651f45d row 272: retain session recovery state on invalid selection
|
||||
490f45f02 row 272: preserve untested session CLI and Console draft (sage-3145)
|
||||
1e629c892 queue: revs 3565-3571: row 272 round 3 moves on 72690cae7 (huey 3565-3567) and request (sage 3569-3570, comment 31174); row 307 added and briefed (#1814, Vikunja 598, mos-1455 item 3; sage 3568, 3571); queue only
|
||||
84de3fbca plans: row 270 pi compaction reading moves behind the harness kind (#1814, Vikunja 598, mos-1455 item 3, Gizmoduck, reviewer Duckworth); gate template runs all five suites and sets MOSAIC_REQUIRE_EDITOR_BUILD=1 (mos-1455 item 4, mos-1453)
|
||||
1e4c1e6e9 queue: revs 3539-3564: rows 300 and 301 round 1 claims and in-review moves (launchpad 3539-3544), round 1 requests (sage 3545-3548), round 2 moves (launchpad 3549-3554), round 2 requests (sage 3555-3558), Duckworth approve records 300 (3559) and 301 (3560), landing notes and done at 07315e651 and 5b846b048 (sage 3561-3564); queue only
|
||||
5b846b048 launchpad: row 301 (#1808): library-cli and thread-claims bus.mjs fixtures export throwing busBusiness and userCaller stubs (mos-1451 under mos-1272); BUILD.md repaired with run 1 and the ruling; manifest seven paths; unrun
|
||||
59f0e44f4 launchpad: row 301 (#1808): channel-proof re-pins webui bus.mjs at 39fcb27c for the user transport fold, humanCall unchanged (mos-1449 under mos-1272); unrun
|
||||
bb031ec84 launchpad: row 301 (#1808): R6-N4, user-bus.mjs folded into bus.mjs beside humanCall, unchanged; channel-proof re-pin held for Mos's go; unrun
|
||||
07315e651 launchpad: row 300 (#1807): run 1 gate results in BUILD.md (1/0, webui 375/0, M12 killed) and Duckworth's N1; packet only
|
||||
fb04cbc43 launchpad: row 300 (#1807): run 1 first-run red placed (mos-1272), the test's call helper resolves headers again as granted-user.test does; manifest re-hashed
|
||||
9d929911c launchpad: row 300 (#1807): R6-N1, an HTTP-level test of the user-session option swap with the userRoute gate stubbed open by a load hook, and mutant M12; unrun
|
||||
bcf3c1dac queue: revs 3531-3538: row 303 landing note and done at e551cd846 (sage 3531/3532); row 304 approve record (dewey 3533), row 305 approve record (filbert 3534); row 304 landing note and done at a863015a5 (sage 3535/3536); row 305 landing note and done at d52d9f1f2 (sage 3537/3538); queue only
|
||||
d52d9f1f2 row 305 (#1812): gate run 1 evidence (sage-3374): both suites green, mutants a and b killed in both, c a known survivor
|
||||
830f3d8bf row 305 (#1812): BUILD.md notes the SIGKILL leak and its cleanup (Filbert N1)
|
||||
e48d60216 row 305 (#1812): BUILD.md with the trace, change, gate and the three mos-1445 mutants
|
||||
cabcb81d4 row 305 (#1812): each suite's network check also requires the network present under the run's project before the remove (mos-1445)
|
||||
353d65f57 row 305 (#1812, Vikunja 591) draft: per-run COMPOSE_PROJECT_NAME, exit trap removes that one network, one absent-network check per suite; for Mos through Sage before the build (mos-1272)
|
||||
2c289f6f0 SESSIONS: filbert row 305 round 1 approve (c31127, rev 3534)
|
||||
a863015a5 test: match Claude memory slug normalization under mos-1442
|
||||
e551cd846 launchpad: row 303 (#1810): R9 asserts the rehearsal directory is set before the placeholders check joins it, so a null shows the rehearsal output (mos-1422, Vikunja 589)
|
||||
c13c337e1 queue: revs 3521-3530: rows 304 and 305 claimed (rocko 3521, gizmoduck 3522); row 305 in-review on 7e8218a2e (gizmoduck 3523), request failed without a token (gizmoduck 3524), sage's request posted c31126 (3525/3526); row 304 in-review on 5e8354ebb (rocko 3527), request failed without a token (rocko 3528), sage's request posted c31128 (3529/3530); queue only
|
||||
435a7458d sage: PRD 1.17 draft 8 (343cff6f), d7 plus Mos's d8 fix list mos-1443 (R1-R14, M1-M45, J-i to J-l) and the mos-1446 choices (M10 default, M15 quotes Q235 in full, M40 both sentences); M15 and M16 cite b99ca86b9. Webby APPROVE round 5 webby-0210, no B items; N15-N17 carry to d9
|
||||
b99ca86b9 docs: align editor conversion boundary and host restore with PRD d8
|
||||
0e057e05e queue: revs 3511-3520: rows 304, 305 and 306 added and briefed (sage 3511-3516); row 272 round 2 in-review on b44332a93 (huey 3517), request failed without a token (huey 3518), sage's request posted c31120 (3519/3520); queue only (sage)
|
||||
c16e943b9 briefs: mos-1442 approvals for the 590 and 591 rows (#1811, #1812), the 295 N1 revoke-window row (#1813); DEFERRED 295 N1 (sage)
|
||||
ac1644e1c BUILD-LOG and SESSIONS: rows 302, 295 and 219 landings, the Docker pool diagnostic; DEFERRED 219 N1 (U6); brief for the Vikunja 590 and 591 rows (sage)
|
||||
90633c864 queue: revs 3495-3509: row 295 round 2 in-progress and in-review (morgana 3495-3497), sage's request posted (3498/3499), dewey approve record (3500), row 295 landing note and done at 2efd127ce (sage 3501/3502); row 219 in-review on b899095e4 (rocko 3503/3504, request failed without a token), sage's request posted c31107 (3505/3506), dewey approve record c31108 (3507), row 219 landing note and done at 5fdfd7275 (sage 3508/3509); queue only
|
||||
5fdfd7275 docs: preserve row 219 full gate on the post-295 merge
|
||||
a236dbc30 docs: preserve row 219 mos-1429 short-run evidence
|
||||
312260db7 test: prepare row 219 admission pins under mos-1429
|
||||
d7b4967ed docs: record row 219 rebase after granted-user Console
|
||||
90a3c03cf test: assert creative history in its native session store
|
||||
282f5b4e4 test: pin the compaction audit before the persona refusal
|
||||
781fd509c test: give row 219 persona fixture its explicit session
|
||||
52a73e83b docs: rebase row 219 gate packet and record run bounds
|
||||
049214486 wip: publish unverified row 219 inspection candidate
|
||||
2efd127ce morgana: row 295 r2 gate results on d68b4300d (sage-3338, sage-3340): red first, green, M8 count, whole files, suites, script limits and skips, M1-M16 killed
|
||||
fdbe95d88 morgana: row 295 r2 narrow alice grant (Dewey F1, sage-3333): aliceAccess(ref) names only the test's project, set after project.create; asserts and bindLaunch lines byte-identical; BUILD.md preservation record updated
|
||||
cb96220b5 morgana: row 295 r2 old-test setup (mos-1436 option a): message-filter's :117 and governance-pin tests get an alice collaborator access document, spec-fixtures fixture() takes an optional access (null default); asserts and bindLaunch lines byte-identical; BUILD.md gate record, assertion preservation, N1 revoke window
|
||||
6408dcec4 morgana: row 295 r2 first-run reds placed (mos-1272): claim rows spread off the store's null prototype in access-revoke and thread-revoke, demo switches the pi harness on for startBroker, Alice binds at her first call in thread-revoke
|
||||
0c8f12ea2 morgana: row 295 r2 rebase on 80793d824 (sage-3256): accessFor comment is stamp-cached (dewey-0871 N3); BUILD.md rebase note
|
||||
24f8f5d73 morgana: row 295 r2: wrap the launcher's revoked comment (dewey-0874 nit)
|
||||
31da9dcb8 morgana: row 295 r2 (dewey-0871): threadsState ends an expired grant's held claim from the cached read by access-expiry (B1, D7, M16, M11 claim row); access.reload scope as D8 (N1); bus README access.reload, revoked and revocation (N2); tests unrun
|
||||
ff54a1556 morgana: row 295 FED R4 revocation (#1801): 30 s access timer, access.reload, one-transaction claim end on a loss, threadsState revoked, launcher SIGTERM and no start, CLI reload after grant/revoke; tests unrun (no CLEAR yet)
|
||||
249d42dfc morgana: row 295 plan (FED R4 revocation, #1801): sweep on timer, access.reload and user requests; threadsState revoked; launcher skip and SIGTERM; bindLaunch and role.claim refuse thread-revoked
|
||||
07802dc57 queue: revs 3488-3494: row 302 (#1809) in-review on 2a8281a6f (gizmoduck 3488), gizmoduck's request failed without a token (3489), sage's request posted c31091 (3490/3491), dewey approve record c31092 (3492); row 302 landing note and done move at 3ed9fd754 (sage 3493/3494); queue only
|
||||
3ed9fd754 gizmoduck: row 302 (#1809) gate results: run 1 stopped on launcher-released.test:89 (d6, mos-1430); run 2 on merge 783602e06 (5b63ea323 onto 1ac655005) red as ruled, suites green, M1-M5 M7-M9 killed; RESULTS.md and logs, packet only
|
||||
c9fcf9b5a gizmoduck: row 302 (#1809) d6: launcher-released.test:89 counts only a-run's delivery rows and pins the one routed row with holder_run null; #route writes that row for every message (gizmoduck-0388, sage-3294, sage-3296, Mos ruling pending sage-3293); local, not pushed
|
||||
2b6111a17 row 302 (#1809, Vikunja 588): a run threadIdle or landRelease released answers launcher-released on every call needing the claim until it ends, role.claim refuses it (Dewey D1), and the runner exits stopped without releasing again
|
||||
4a827edb0 row 302 (#1809, Vikunja 588): red first, the final forcing tests and the four pins Mos ruled (mos-1414/1415/1416), over unfixed product files; BUILD.md d3-d5 and ASSERTION-PRESERVATION
|
||||
908f92b03 gizmoduck: row 302 design d2: threads.test pins are :392/:394/:395 (sage-3204), land-relaunch grep finds land.test:464 as a third old pin under Q1
|
||||
62470a3ec gizmoduck: row 302 BUILD.md folds Dewey's d1 approval (dewey-0875): D1 role.claim refuses a released run, landRelease reaches runner.test:742-772 so Q1 moves :771-772, Q2-Q4 and N1-N4 settled
|
||||
fee08d7ab gizmoduck: row 302 (#1809, Vikunja 588) idle-stop race design round d1 for Dewey: idle-released code from the broker's own record of threadIdle's release, runner maps it to stopped/0, forcing cli test holds the window open until a call lands, threads.test:393 is the one changed pin (sage-3200, mos-1411)
|
||||
1ac655005 BUILD-LOG and SESSIONS: row 299 gate and landing, row 303 review, 219 and 295 rebases (sage)
|
||||
8a35ffadb queue: revs 3474-3487: row 303 (#1810) in-progress and in-review on 3c3be5d3 (launchpad 3474/3475), launchpad's request failed without a token (3476), sage's request posted c31082 (3477/3478), duckworth approve record c31079 (3480); row 299 (#1806) claim (gander 3479), in-review on 277ace0b (gander 3481), gander's request failed without a token (3482), sage's request posted c31083 (3483/3484), filbert approve record c31084 (3485); row 299 landing note and done move at ffb2fedfb (sage 3486/3487); queue only
|
||||
ffb2fedfb docs(row299): record fresh timing gate and six assertion kills
|
||||
11d1e2e0c docs(row299): record clean integration on 80793d824
|
||||
ed81f6eba docs(row299): record mos-1409 preservation and static candidate
|
||||
e14164ab4 test(case): observe P10 wait directly under mos-1409
|
||||
10113b04f docs(row299): propose direct P10 wait timing for mos-1272 review
|
||||
c1f910b4c SESSIONS: filbert row 299 manifest round 1 approve (c31084, rev 3485)
|
||||
15e688cc0 BUILD-LOG and SESSIONS: row 294 rounds 3-4 and landing, R9 transient and row 303, row 219 edits 2-3 (sage)
|
||||
80793d824 queue: revs 3464-3473: row 294 (#1800) round 4 in-progress and in-review on a1ff5d67 (launchpad 3464/3465), launchpad's request without a token failed (3466), sage's request posted c31055 (3467/3468), duckworth approve record c31053 (3469); row 294 landing note and done move at d3059c2c3 (sage 3470/3471); row 303 (R9 guard, #1810, Vikunja 589, mos-1422) added and briefed (sage 3472/3473); queue only
|
||||
ad6ca7930 docs: brief for the R9 guard row (Vikunja 589, #1810, mos-1422); docs only
|
||||
d3059c2c3 launchpad: row 294 run 4 (#1800): whole gate green on 8616b9a4f (webui 365, cli 909, bus 873, 10 scripts), M1-M11 killed; M1 record names G4's first failure and G5 green (Duckworth C1); receipts in run4/
|
||||
6f0793067 launchpad: row 294 round 4 (#1800): rehearsal fixture copies carry cli access.mjs and transport.mjs, B1-B3 pin the fixture's tracker warning in full (Mos mos-1419, sage-3238); manifest round 4 (19 paths), run 3 receipts; unrun
|
||||
b01e1c9ee launchpad: row 294 round 3 (#1800): G5's baseline is coalesce(max(seq), 0), since max(seq) is NULL on the fixture's empty events table and run 2 read 0 of 22 refusal events (sage-3212, Mos ruling pending sage-3211); manifest round 3, run 2 receipts; unrun
|
||||
8716e72f2 launchpad: row 294 round 2 (#1800): browser.test pin gains /federation.js at index 2 (Mos mos-1412 (a)), G5 pins one action.refused {code: access-refused} per refused verb and every other table unchanged (sage-3194); manifest round 2 (18 paths), ASSERTION-PRESERVATION.json, run 1 receipts; unrun
|
||||
9beeeb995 launchpad: row 294 run limits from recorded durations, 3x or more (sage-3187, mos-1275)
|
||||
9e43fefe6 launchpad: row 294 BUILD.md M1 expectation corrected (Duckworth C1), review recorded with N1-N4 dispositions
|
||||
d0460ed47 launchpad: row 294 round 1 manifest (17 paths from 9450774cb) and notes with the owner-transport exception
|
||||
26f93fa74 launchpad: row 294 sage-3157, owner-transport exception written out, userOptionsFor, G9 pins no user value, M10/M11 (unrun, #1800)
|
||||
c9e67e7d2 launchpad: row 294 BUILD.md M4 kill names the moved test
|
||||
52d2a1610 launchpad: row 294 rulings sage-3153 (boot refusal line, owner transport seam G9, C7 follow-up, access.test.mjs unchanged; unrun, #1800)
|
||||
afef0ea88 launchpad: row 294 FED R6 build and plan, granted-user sign-in (unrun, #1800)
|
||||
09d0d6faf queue: revs 3457-3463: row 294 (#1800) round 3 in-progress and in-review on cb1648f3 (launchpad 3457/3458), launchpad's request without a token failed (3459), sage's request posted c31049 (3460/3461), duckworth approve record c31045 (3462); row 219 restart note on b97a3ff97 (rocko 3463); queue only
|
||||
ffbc0d7a6 BUILD-LOG and SESSIONS: row 292 landing, idle-stop race row 302 and its rulings, rows 300/301, row 294 rounds 2-3 (sage)
|
||||
756284e8e queue: revs 3448-3456: row 294 (#1800) round 2 in-progress and in-review on 7ec7b1ea (launchpad 3448/3449), launchpad's request without a token failed (3450), sage's request without a token failed (3451/3452), sage's request posted c31042 (3453/3454), duckworth approve record c31029 (3455); row 302 (#1809) in-progress (gizmoduck 3456); queue only
|
||||
0e30a85fa queue: revs 3444-3447: row 302 (idle-stop race, #1809, Vikunja 588, mos-1411) added and briefed; row 292 (#1797) landing note and done move at 6aab979e6 (sage); queue only
|
||||
6aab979e6 row 292 (#1797) gate results on 0d0021454: r2 old-test red compactions-launch:229 (exit-22 race, Vikunja 588), mos-1411 diagnostic 0/10 with one not-holder exit 22 seen in the clear test, r3 cli rerun 910/910, ten shells green, M1-M9 killed; rebase receipts (sage-3183, sage-3185, sage-3193)
|
||||
e5ffa7693 row 292 (#1797) packet: targeted mutant kill rules per sage-3152 (pattern, stack lines and text per mutant; anything else is a STOP; a survivor gets one whole-file run), short TMPDIR per stage, run plan after Duckworth's round
|
||||
bf4ba4280 row 292 (#1797) packet: rebase onto b23783f39 with the 0585b3213 resolution (row 203's console and federation text kept word for word, Gander's text for any other key), range-diff, the three patch-ids, C1/N3, mutants M1-M9 (unrun) and the run plan (sage-3146, sage-3148)
|
||||
495c12865 row 292 (#1797) C1 and N3 for duckworth-0229: a pre-270 loader stand-in of its own (C1's loader without the row 270 concat, the list before bce491715) refuses compactionReadBytes and compactionStreams on a full activate and rollback, naming the key; C1's loader reads both; the missing-loader case uses compactionStreams 1024 and checks row 203's console and federation text word for word with no loader
|
||||
4b612781b docs(release): record static approval and post-compaction review conditions
|
||||
be4357216 docs(release): record any-key config plan and static review packet
|
||||
39bde4fd4 fix(release): validate non-console config keys with target loader
|
||||
fdedc56e2 docs: idle-stop race brief records the 10-run diagnostic (not-holder seen once, run r846b8d083502); docs only
|
||||
e3ef1eaf6 docs: brief for the idle-stop race row (Vikunja 588, #1809, mos-1411); docs only
|
||||
c902a767d queue: revs 3439-3443: rocko row 219 claim (3439), sage adds rows 300 (R6-N1, #1807) and 301 (R6-N4, #1808) and briefs both; queue only
|
||||
86d5ac69b docs: R6 follow-up briefs for row 294 N1 (#1807) and N4 (#1808); docs only
|
||||
4a9c536e8 Row 293 (574) landing e51d11640 and the 3m-3n live window (activation 20261023T034557Z-464010fbe4c6): BUILD-LOG phase line, Darkwing and Sage SESSIONS lines; docs only
|
||||
83f1f854d queue: row 293 (574, #1805) landing note and done move (sage); queue only
|
||||
e51d11640 docs(row293): record green integrated trace and whole suites
|
||||
78bbe1223 docs(row293): record integrated run2 and short TMPDIR correction
|
||||
92c0ca3db docs: preserve row293 first trace run and TMPDIR stop
|
||||
d0ede15b9 docs(v574): record static approval and trace evidence requirements
|
||||
29bb1ccd4 docs(v574): audit fixture comparisons and plan trace proof
|
||||
4e22bd49f test(git): disable detached fixture maintenance per mos-1369
|
||||
bus: scripts/bus-service.sh install --copy 45dca69f6e4bce52834587f66f2ff33ba839ab8a --copies /home/jwoltje/.local/share/mosaic-stack/copies --pm --claude /home/jwoltje/.local/bin/claude
|
||||
proof: off
|
||||
send: off
|
||||
Console: scripts/webui-service.sh install --copy 45dca69f6e4bce52834587f66f2ff33ba839ab8a --copies /home/jwoltje/.local/share/mosaic-stack/copies --port 7332 --public-host mosaic.woltje.com --auth-header X-authentik-username --allow-user jason.woltje --tester-socket
|
||||
CLI: scripts/stack-copy.sh wrapper 45dca69f6e4bce52834587f66f2ff33ba839ab8a --copies /home/jwoltje/.local/share/mosaic-stack/copies --bin /home/jwoltje/.npm-global/bin
|
||||
interpreter: {"path":"/usr/bin/python3.14","version":[3,14,6],"dev":66308,"ino":3968163,"sha256":"8735f172622a7f8d27e293fd0fd36fc55c4cb9b663b6630d33b57870e36c24cc"}
|
||||
@@ -0,0 +1 @@
|
||||
launched chief: run re194575ec18c, claude-code claude-opus-5-5
|
||||
@@ -0,0 +1,154 @@
|
||||
plan: rollback for mosaic-stack
|
||||
from: 45dca69f6e4bce52834587f66f2ff33ba839ab8a
|
||||
to: 464010fbe4c6925b077b9b8182a209ee2177eb9d
|
||||
store schema: 3n (read from the store the running bus holds)
|
||||
target schema: 3n
|
||||
migration: none; the store is at the target's version
|
||||
commits: the run takes away 141 (newest first, at most 200):
|
||||
45dca69f6 sessions: Sage 10-23 Vikunja 571 W rows 309-318 filed, 571 done
|
||||
293b42fee queue: revs 3617-3636: Vikunja 571 W build rows 309-318 added (sage 3617-3626: W1, W2, W3a, W3b, W6, W3, W4b, W5, W7, W8, post-10-27, brief docs/plans/2026-10-21_q195-writing-editor.md) and owners set to unassigned (sage 3627-3636)
|
||||
369607e92 sessions: Sage 10-23 rows 308 and 252 landings, 571 Connections design amendment, Vikunja 597; Scrooge row 252 line
|
||||
59f013247 queue: revs 3589-3616: row 306 in-progress, in-review and failed request (morgana 3589, 3592-3593), request (sage 3594-3595, comment 31207), approve record (dewey 3596), note and done (sage 3599-3600); row 308 added and briefed (sage 3590-3591), claim, in-review and failed request (gosalyn 3601-3603), request (sage 3604-3605, comment 31223), approve record (webby 3606, comment 31224), note and done (sage 3613-3614, landed 30e6bb680); row 291 note and done (sage 3597-3598); row 252 issue #1753 (sage 3607), in-review and failed request (scrooge 3608-3609), request (sage 3610-3611, comment 31230), approve record (webby 3612, comment 31229), note and done (sage 3615-3616, landed 45ea3fa0d)
|
||||
e8bb13df8 docs: clarify Connections opening order and current-link filtering
|
||||
dba2ebdb8 docs: plan required Console Connections view before real import
|
||||
45ea3fa0d row 252: library-cli and thread-claims bus.mjs stubs gain the throwing consoleCall export cli.mjs now imports (Mos GO mos-1465 under mos-1272, via sage-3497)
|
||||
f69c96200 row 252: decide-sso J19 killer (a granted user's config says decide false, its decision POSTs stop at owner-only), J16 checks the config that starts without send; BUILD.md rulings, J11c and J18 equivalence, part 2 mutants (#1753)
|
||||
5b6c87814 row 252: decide-browser placements (mos-1272): the hostile grant goes in with its INSERT since decisions is append-only, and page() loads about:blank first so a same-URL visit reloads
|
||||
8c2c5303c row 252: access-boot fixture provider gains issuer https://idp.test, so consoleOwners can key the owner (Mos GO mos-1464 under mos-1272, via sage-3494)
|
||||
23e3d09fa row 252: decide-sso first-run reds placed (mos-1272): a decision transport without --send never starts, and a POST to /api/bus/decision.* meets row 74's read-only refusal; BUILD.md run notes (#1753)
|
||||
795a645e6 row 252: console-decide events() keeps the row kind as event, since an answer body's kind shadowed it (first-run red at :180, two vacuous zero counts), and a J7 killer test for the console cap release over the socket (#1753)
|
||||
076ca8d6e row 252 BUILD.md: rebase onto fe4ee8c7b, commit map and the six conflict resolutions (sage-3482)
|
||||
68be86324 row 252: mos-1321, reword the shell.test write-boundary comment so Approve and Deny is the one decision control; BUILD.md records the ruling and its channel-proof review condition
|
||||
264fad2e2 row 252 BUILD.md: channel-proof overlap with row 239 (sage-2835)
|
||||
24672fd9d row 252: Console inbox Approve and Deny for grant requests, human-only through a console owner proof, confirmation then resolve, via console with human.input before the executor (#1753, Webby N1-N5); tests not yet run
|
||||
30e6bb680 gosalyn: PRD 1.17, Case 2 story files are DOCX (row 308, sage-3516, Q235 to Q237, Q239). Applies the approved d9 text at 4607e15b8 word for word to the 1.16 text. Status, the header sentence and a 1.17 source line, the Creative library lead, REQ-LIB-1, -2, -4, -5 and -6 changed as d9 says, new REQ-LIB-8 for the writing store and REQ-LIB-9 for the Console's DOCX editor, the 1.17 notes and four risks. requirements.json goes to 1.17 with 87 ids and the d9 titles, and the tasks and bus test pins follow
|
||||
7defb58e9 sessions: Sage 10-23 rows 291 and 306 landings, row 308 launch
|
||||
9c8877bdf plans: DEFERRED row 306 N1 (revoke Set lost on broker restart) and N2 (pending limit stop answers not-holder first), landed 2d0318a44 (mos-1463)
|
||||
2d0318a44 morgana: row 306 build (#1813): #accessRevoked from #revokeLost, #agent answers thread-revoked until endLaunch, runner stops on thread-revoked, READMEs, access-revoke.test 7 7 (mos-1463)
|
||||
bd3fa2a48 morgana: row 306 red-first tests (#1813): bus revoke-window T1/T2, cli revoke-window T3 forcing test; no product code
|
||||
ab575ee55 morgana: row 306 design r2 (dewey-0918 C1-C3, sage-3483/mos-1463): T3 asserts no thread-revoked event for A, T2 limit half makes a second call, six-suite gate, access-revoke edit bounded to 7 7
|
||||
1676ad0de morgana: row 306 design r1 (#1813, sage-3478): #accessRevoked set from #revokeLost, #agent answers thread-revoked until endLaunch, runner maps it to stopped; T1-T3, M1-M3, six access-revoke asserts to Mos via Sage
|
||||
4874d1e83 gosalyn: PRD 1.16 routes library.write under REQ-LIB-6 (mos-1328, mos-1329, sage-2919, webby-0164 B2). REQ-WAIT-3 gains the routing paragraph with its bounds, creative roles only and within-role, Markdown under supporting folders a human marks, never a story file, the writing agent's live Gitea grant on the library project, one commit per write by its own account with the trailer, notice and revert. REQ-LIB-6 names the action. Status, the header, a 1.16 source line and a 1.16 note. requirements.json changes its version only, with the test pin
|
||||
e909ef51a plans: PRD 1.17 brief (Gitea #1815, Vikunja 570): Gosalyn builds d9 4607e15b8 onto 1.16 after row 291, Webby reviews, four files, Sage gates
|
||||
4607e15b8 sage: PRD 1.17 d9 r3 (02f28dec), Mos's J-b check mos-1470: J-b records N20 as confirmed, REQ-LIB-5's version tag cites Q239 for the Connections view (N21), d9 changes names both
|
||||
8b4201055 sage: PRD 1.17 d9 round 2 (b17ce386), Webby round 6 B1: REQ-LIB-5, its note, the Risks line and the A6 line take mos-1443 R3's text as written; J-b in the past tense (N19); the import-waits line cited as Mos's R3 default (N20)
|
||||
4863e2caf sage: PRD 1.17 draft 9 (7dfc52fd), d8 plus Jason's Q41 O2 (Q239, mos-1467): REQ-LIB-5 requires the Console Connections view for converted chapters, note and Risks line follow, J-b records the answer; Webby round 5 N15-N17
|
||||
7b25a6063 agents: webui runs set MOSAIC_REQUIRE_EDITOR_BUILD=1 and linked worktrees npm ci packages/webui (Vikunja 597)
|
||||
e86df37d7 sessions: Sage 272 and 307 landings, 306 design, 252 rebase check
|
||||
fe4ee8c7b queue: revs 3582-3588: row 307 in-review and failed request (gizmoduck 3582-3583), request (sage 3584-3585, comment 31189), round 1 approve record (duckworth 3586), landing note and done at d243f6b25 (sage 3587-3588); queue only
|
||||
0621c439e plans: DEFERRED gains row 307 N1 (row 270's store-unreadable doesn't stick; #1814 landed d243f6b25)
|
||||
d243f6b25 gizmoduck: row 307 run logs: capture.mjs makes each fixture's data root before sessionStore (base session.mjs:78 needs it), BUILD.md expected red adds claude-history test B (duckworth-0287), steps 1-6 results on 1f6db1589 and 1f00d4f91 with skips named and M1-M4 killed (sage-3455, sage-3465)
|
||||
869670d1b gizmoduck: row 307 BUILD.md: commits, old-test edits against mos-1459, new tests and the empty-session correction to test B, expected red on 1f6db1589, run plan with mos-1275 limits, mutants M1-M4
|
||||
dbbda2537 gizmoduck: row 307 (#1814, Vikunja 598) harness kind gains compactions: pi's stream scan and Claude-history check move to packages/plugins/harness/pi/compactions.mjs, claude-code answers harness-unsupported, core keeps the ledger and checks each answer, readLedger reads the reason only, the launcher passes the loaded module; four old-test edits under mos-1459
|
||||
a9da046f8 gizmoduck: row 307 (#1814, Vikunja 598) new tests, red first: row 270's ledgers per reason read the same count and the next collection goes through the harness module, core refuses an answer out of contract, pi answers what base scanPi read, claude-code answers harness-unsupported, a module without compactions refuses missing-export; capture.mjs checks the literals against base 1e629c892
|
||||
4a71b56ab gizmoduck: row 307 design r1 notes: seat suite whole and compactions-launch T3 run-not-skip in the gate (Duckworth C1, C2), launcher closure comment on bypassing call() (N1), line refs :301 and :302 (N2) (duckworth-0280)
|
||||
520889419 gizmoduck: row 307 (#1814, Vikunja 598) design: harness export compactions({ store, cursors, budget, streams, first }), interfaceVersion stays 1, core keeps the ledger, readLedger reads the reason, ledger compatibility table, four old-test edits for Mos (sage-3440)
|
||||
8dc132bec queue: revs 3572-3581: row 272 round 3 approve record (scrooge 3572, comment 31177), row 307 claim (gizmoduck 3573), row 272 round 4 moves (huey 3574-3576), request (sage 3577-3578, comment 31183), round 4 approve record (scrooge 3579, comment 31184), landing note and done at d33989230 (sage 3580-3581); queue only
|
||||
08b8831bc plans: DEFERRED gains row 272 N1 (user session verbs) and the row 270 N6 rebound after row 307 (#1777 landed d33989230)
|
||||
d33989230 row 272: scope unavailable-session waits to the chat area
|
||||
0ea3db297 row 272: fix session fixture authority and initial chat render
|
||||
f859d06d2 row 272: preserve granted-user default chat on denied session catalog
|
||||
70651f45d row 272: retain session recovery state on invalid selection
|
||||
490f45f02 row 272: preserve untested session CLI and Console draft (sage-3145)
|
||||
1e629c892 queue: revs 3565-3571: row 272 round 3 moves on 72690cae7 (huey 3565-3567) and request (sage 3569-3570, comment 31174); row 307 added and briefed (#1814, Vikunja 598, mos-1455 item 3; sage 3568, 3571); queue only
|
||||
84de3fbca plans: row 270 pi compaction reading moves behind the harness kind (#1814, Vikunja 598, mos-1455 item 3, Gizmoduck, reviewer Duckworth); gate template runs all five suites and sets MOSAIC_REQUIRE_EDITOR_BUILD=1 (mos-1455 item 4, mos-1453)
|
||||
1e4c1e6e9 queue: revs 3539-3564: rows 300 and 301 round 1 claims and in-review moves (launchpad 3539-3544), round 1 requests (sage 3545-3548), round 2 moves (launchpad 3549-3554), round 2 requests (sage 3555-3558), Duckworth approve records 300 (3559) and 301 (3560), landing notes and done at 07315e651 and 5b846b048 (sage 3561-3564); queue only
|
||||
5b846b048 launchpad: row 301 (#1808): library-cli and thread-claims bus.mjs fixtures export throwing busBusiness and userCaller stubs (mos-1451 under mos-1272); BUILD.md repaired with run 1 and the ruling; manifest seven paths; unrun
|
||||
59f0e44f4 launchpad: row 301 (#1808): channel-proof re-pins webui bus.mjs at 39fcb27c for the user transport fold, humanCall unchanged (mos-1449 under mos-1272); unrun
|
||||
bb031ec84 launchpad: row 301 (#1808): R6-N4, user-bus.mjs folded into bus.mjs beside humanCall, unchanged; channel-proof re-pin held for Mos's go; unrun
|
||||
07315e651 launchpad: row 300 (#1807): run 1 gate results in BUILD.md (1/0, webui 375/0, M12 killed) and Duckworth's N1; packet only
|
||||
fb04cbc43 launchpad: row 300 (#1807): run 1 first-run red placed (mos-1272), the test's call helper resolves headers again as granted-user.test does; manifest re-hashed
|
||||
9d929911c launchpad: row 300 (#1807): R6-N1, an HTTP-level test of the user-session option swap with the userRoute gate stubbed open by a load hook, and mutant M12; unrun
|
||||
bcf3c1dac queue: revs 3531-3538: row 303 landing note and done at e551cd846 (sage 3531/3532); row 304 approve record (dewey 3533), row 305 approve record (filbert 3534); row 304 landing note and done at a863015a5 (sage 3535/3536); row 305 landing note and done at d52d9f1f2 (sage 3537/3538); queue only
|
||||
d52d9f1f2 row 305 (#1812): gate run 1 evidence (sage-3374): both suites green, mutants a and b killed in both, c a known survivor
|
||||
830f3d8bf row 305 (#1812): BUILD.md notes the SIGKILL leak and its cleanup (Filbert N1)
|
||||
e48d60216 row 305 (#1812): BUILD.md with the trace, change, gate and the three mos-1445 mutants
|
||||
cabcb81d4 row 305 (#1812): each suite's network check also requires the network present under the run's project before the remove (mos-1445)
|
||||
353d65f57 row 305 (#1812, Vikunja 591) draft: per-run COMPOSE_PROJECT_NAME, exit trap removes that one network, one absent-network check per suite; for Mos through Sage before the build (mos-1272)
|
||||
2c289f6f0 SESSIONS: filbert row 305 round 1 approve (c31127, rev 3534)
|
||||
a863015a5 test: match Claude memory slug normalization under mos-1442
|
||||
e551cd846 launchpad: row 303 (#1810): R9 asserts the rehearsal directory is set before the placeholders check joins it, so a null shows the rehearsal output (mos-1422, Vikunja 589)
|
||||
c13c337e1 queue: revs 3521-3530: rows 304 and 305 claimed (rocko 3521, gizmoduck 3522); row 305 in-review on 7e8218a2e (gizmoduck 3523), request failed without a token (gizmoduck 3524), sage's request posted c31126 (3525/3526); row 304 in-review on 5e8354ebb (rocko 3527), request failed without a token (rocko 3528), sage's request posted c31128 (3529/3530); queue only
|
||||
435a7458d sage: PRD 1.17 draft 8 (343cff6f), d7 plus Mos's d8 fix list mos-1443 (R1-R14, M1-M45, J-i to J-l) and the mos-1446 choices (M10 default, M15 quotes Q235 in full, M40 both sentences); M15 and M16 cite b99ca86b9. Webby APPROVE round 5 webby-0210, no B items; N15-N17 carry to d9
|
||||
b99ca86b9 docs: align editor conversion boundary and host restore with PRD d8
|
||||
0e057e05e queue: revs 3511-3520: rows 304, 305 and 306 added and briefed (sage 3511-3516); row 272 round 2 in-review on b44332a93 (huey 3517), request failed without a token (huey 3518), sage's request posted c31120 (3519/3520); queue only (sage)
|
||||
c16e943b9 briefs: mos-1442 approvals for the 590 and 591 rows (#1811, #1812), the 295 N1 revoke-window row (#1813); DEFERRED 295 N1 (sage)
|
||||
ac1644e1c BUILD-LOG and SESSIONS: rows 302, 295 and 219 landings, the Docker pool diagnostic; DEFERRED 219 N1 (U6); brief for the Vikunja 590 and 591 rows (sage)
|
||||
90633c864 queue: revs 3495-3509: row 295 round 2 in-progress and in-review (morgana 3495-3497), sage's request posted (3498/3499), dewey approve record (3500), row 295 landing note and done at 2efd127ce (sage 3501/3502); row 219 in-review on b899095e4 (rocko 3503/3504, request failed without a token), sage's request posted c31107 (3505/3506), dewey approve record c31108 (3507), row 219 landing note and done at 5fdfd7275 (sage 3508/3509); queue only
|
||||
5fdfd7275 docs: preserve row 219 full gate on the post-295 merge
|
||||
a236dbc30 docs: preserve row 219 mos-1429 short-run evidence
|
||||
312260db7 test: prepare row 219 admission pins under mos-1429
|
||||
d7b4967ed docs: record row 219 rebase after granted-user Console
|
||||
90a3c03cf test: assert creative history in its native session store
|
||||
282f5b4e4 test: pin the compaction audit before the persona refusal
|
||||
781fd509c test: give row 219 persona fixture its explicit session
|
||||
52a73e83b docs: rebase row 219 gate packet and record run bounds
|
||||
049214486 wip: publish unverified row 219 inspection candidate
|
||||
2efd127ce morgana: row 295 r2 gate results on d68b4300d (sage-3338, sage-3340): red first, green, M8 count, whole files, suites, script limits and skips, M1-M16 killed
|
||||
fdbe95d88 morgana: row 295 r2 narrow alice grant (Dewey F1, sage-3333): aliceAccess(ref) names only the test's project, set after project.create; asserts and bindLaunch lines byte-identical; BUILD.md preservation record updated
|
||||
cb96220b5 morgana: row 295 r2 old-test setup (mos-1436 option a): message-filter's :117 and governance-pin tests get an alice collaborator access document, spec-fixtures fixture() takes an optional access (null default); asserts and bindLaunch lines byte-identical; BUILD.md gate record, assertion preservation, N1 revoke window
|
||||
6408dcec4 morgana: row 295 r2 first-run reds placed (mos-1272): claim rows spread off the store's null prototype in access-revoke and thread-revoke, demo switches the pi harness on for startBroker, Alice binds at her first call in thread-revoke
|
||||
0c8f12ea2 morgana: row 295 r2 rebase on 80793d824 (sage-3256): accessFor comment is stamp-cached (dewey-0871 N3); BUILD.md rebase note
|
||||
24f8f5d73 morgana: row 295 r2: wrap the launcher's revoked comment (dewey-0874 nit)
|
||||
31da9dcb8 morgana: row 295 r2 (dewey-0871): threadsState ends an expired grant's held claim from the cached read by access-expiry (B1, D7, M16, M11 claim row); access.reload scope as D8 (N1); bus README access.reload, revoked and revocation (N2); tests unrun
|
||||
ff54a1556 morgana: row 295 FED R4 revocation (#1801): 30 s access timer, access.reload, one-transaction claim end on a loss, threadsState revoked, launcher SIGTERM and no start, CLI reload after grant/revoke; tests unrun (no CLEAR yet)
|
||||
249d42dfc morgana: row 295 plan (FED R4 revocation, #1801): sweep on timer, access.reload and user requests; threadsState revoked; launcher skip and SIGTERM; bindLaunch and role.claim refuse thread-revoked
|
||||
07802dc57 queue: revs 3488-3494: row 302 (#1809) in-review on 2a8281a6f (gizmoduck 3488), gizmoduck's request failed without a token (3489), sage's request posted c31091 (3490/3491), dewey approve record c31092 (3492); row 302 landing note and done move at 3ed9fd754 (sage 3493/3494); queue only
|
||||
3ed9fd754 gizmoduck: row 302 (#1809) gate results: run 1 stopped on launcher-released.test:89 (d6, mos-1430); run 2 on merge 783602e06 (5b63ea323 onto 1ac655005) red as ruled, suites green, M1-M5 M7-M9 killed; RESULTS.md and logs, packet only
|
||||
c9fcf9b5a gizmoduck: row 302 (#1809) d6: launcher-released.test:89 counts only a-run's delivery rows and pins the one routed row with holder_run null; #route writes that row for every message (gizmoduck-0388, sage-3294, sage-3296, Mos ruling pending sage-3293); local, not pushed
|
||||
2b6111a17 row 302 (#1809, Vikunja 588): a run threadIdle or landRelease released answers launcher-released on every call needing the claim until it ends, role.claim refuses it (Dewey D1), and the runner exits stopped without releasing again
|
||||
4a827edb0 row 302 (#1809, Vikunja 588): red first, the final forcing tests and the four pins Mos ruled (mos-1414/1415/1416), over unfixed product files; BUILD.md d3-d5 and ASSERTION-PRESERVATION
|
||||
908f92b03 gizmoduck: row 302 design d2: threads.test pins are :392/:394/:395 (sage-3204), land-relaunch grep finds land.test:464 as a third old pin under Q1
|
||||
62470a3ec gizmoduck: row 302 BUILD.md folds Dewey's d1 approval (dewey-0875): D1 role.claim refuses a released run, landRelease reaches runner.test:742-772 so Q1 moves :771-772, Q2-Q4 and N1-N4 settled
|
||||
fee08d7ab gizmoduck: row 302 (#1809, Vikunja 588) idle-stop race design round d1 for Dewey: idle-released code from the broker's own record of threadIdle's release, runner maps it to stopped/0, forcing cli test holds the window open until a call lands, threads.test:393 is the one changed pin (sage-3200, mos-1411)
|
||||
1ac655005 BUILD-LOG and SESSIONS: row 299 gate and landing, row 303 review, 219 and 295 rebases (sage)
|
||||
8a35ffadb queue: revs 3474-3487: row 303 (#1810) in-progress and in-review on 3c3be5d3 (launchpad 3474/3475), launchpad's request failed without a token (3476), sage's request posted c31082 (3477/3478), duckworth approve record c31079 (3480); row 299 (#1806) claim (gander 3479), in-review on 277ace0b (gander 3481), gander's request failed without a token (3482), sage's request posted c31083 (3483/3484), filbert approve record c31084 (3485); row 299 landing note and done move at ffb2fedfb (sage 3486/3487); queue only
|
||||
ffb2fedfb docs(row299): record fresh timing gate and six assertion kills
|
||||
11d1e2e0c docs(row299): record clean integration on 80793d824
|
||||
ed81f6eba docs(row299): record mos-1409 preservation and static candidate
|
||||
e14164ab4 test(case): observe P10 wait directly under mos-1409
|
||||
10113b04f docs(row299): propose direct P10 wait timing for mos-1272 review
|
||||
c1f910b4c SESSIONS: filbert row 299 manifest round 1 approve (c31084, rev 3485)
|
||||
15e688cc0 BUILD-LOG and SESSIONS: row 294 rounds 3-4 and landing, R9 transient and row 303, row 219 edits 2-3 (sage)
|
||||
80793d824 queue: revs 3464-3473: row 294 (#1800) round 4 in-progress and in-review on a1ff5d67 (launchpad 3464/3465), launchpad's request without a token failed (3466), sage's request posted c31055 (3467/3468), duckworth approve record c31053 (3469); row 294 landing note and done move at d3059c2c3 (sage 3470/3471); row 303 (R9 guard, #1810, Vikunja 589, mos-1422) added and briefed (sage 3472/3473); queue only
|
||||
ad6ca7930 docs: brief for the R9 guard row (Vikunja 589, #1810, mos-1422); docs only
|
||||
d3059c2c3 launchpad: row 294 run 4 (#1800): whole gate green on 8616b9a4f (webui 365, cli 909, bus 873, 10 scripts), M1-M11 killed; M1 record names G4's first failure and G5 green (Duckworth C1); receipts in run4/
|
||||
6f0793067 launchpad: row 294 round 4 (#1800): rehearsal fixture copies carry cli access.mjs and transport.mjs, B1-B3 pin the fixture's tracker warning in full (Mos mos-1419, sage-3238); manifest round 4 (19 paths), run 3 receipts; unrun
|
||||
b01e1c9ee launchpad: row 294 round 3 (#1800): G5's baseline is coalesce(max(seq), 0), since max(seq) is NULL on the fixture's empty events table and run 2 read 0 of 22 refusal events (sage-3212, Mos ruling pending sage-3211); manifest round 3, run 2 receipts; unrun
|
||||
8716e72f2 launchpad: row 294 round 2 (#1800): browser.test pin gains /federation.js at index 2 (Mos mos-1412 (a)), G5 pins one action.refused {code: access-refused} per refused verb and every other table unchanged (sage-3194); manifest round 2 (18 paths), ASSERTION-PRESERVATION.json, run 1 receipts; unrun
|
||||
9beeeb995 launchpad: row 294 run limits from recorded durations, 3x or more (sage-3187, mos-1275)
|
||||
9e43fefe6 launchpad: row 294 BUILD.md M1 expectation corrected (Duckworth C1), review recorded with N1-N4 dispositions
|
||||
d0460ed47 launchpad: row 294 round 1 manifest (17 paths from 9450774cb) and notes with the owner-transport exception
|
||||
26f93fa74 launchpad: row 294 sage-3157, owner-transport exception written out, userOptionsFor, G9 pins no user value, M10/M11 (unrun, #1800)
|
||||
c9e67e7d2 launchpad: row 294 BUILD.md M4 kill names the moved test
|
||||
52d2a1610 launchpad: row 294 rulings sage-3153 (boot refusal line, owner transport seam G9, C7 follow-up, access.test.mjs unchanged; unrun, #1800)
|
||||
afef0ea88 launchpad: row 294 FED R6 build and plan, granted-user sign-in (unrun, #1800)
|
||||
09d0d6faf queue: revs 3457-3463: row 294 (#1800) round 3 in-progress and in-review on cb1648f3 (launchpad 3457/3458), launchpad's request without a token failed (3459), sage's request posted c31049 (3460/3461), duckworth approve record c31045 (3462); row 219 restart note on b97a3ff97 (rocko 3463); queue only
|
||||
ffbc0d7a6 BUILD-LOG and SESSIONS: row 292 landing, idle-stop race row 302 and its rulings, rows 300/301, row 294 rounds 2-3 (sage)
|
||||
756284e8e queue: revs 3448-3456: row 294 (#1800) round 2 in-progress and in-review on 7ec7b1ea (launchpad 3448/3449), launchpad's request without a token failed (3450), sage's request without a token failed (3451/3452), sage's request posted c31042 (3453/3454), duckworth approve record c31029 (3455); row 302 (#1809) in-progress (gizmoduck 3456); queue only
|
||||
0e30a85fa queue: revs 3444-3447: row 302 (idle-stop race, #1809, Vikunja 588, mos-1411) added and briefed; row 292 (#1797) landing note and done move at 6aab979e6 (sage); queue only
|
||||
6aab979e6 row 292 (#1797) gate results on 0d0021454: r2 old-test red compactions-launch:229 (exit-22 race, Vikunja 588), mos-1411 diagnostic 0/10 with one not-holder exit 22 seen in the clear test, r3 cli rerun 910/910, ten shells green, M1-M9 killed; rebase receipts (sage-3183, sage-3185, sage-3193)
|
||||
e5ffa7693 row 292 (#1797) packet: targeted mutant kill rules per sage-3152 (pattern, stack lines and text per mutant; anything else is a STOP; a survivor gets one whole-file run), short TMPDIR per stage, run plan after Duckworth's round
|
||||
bf4ba4280 row 292 (#1797) packet: rebase onto b23783f39 with the 0585b3213 resolution (row 203's console and federation text kept word for word, Gander's text for any other key), range-diff, the three patch-ids, C1/N3, mutants M1-M9 (unrun) and the run plan (sage-3146, sage-3148)
|
||||
495c12865 row 292 (#1797) C1 and N3 for duckworth-0229: a pre-270 loader stand-in of its own (C1's loader without the row 270 concat, the list before bce491715) refuses compactionReadBytes and compactionStreams on a full activate and rollback, naming the key; C1's loader reads both; the missing-loader case uses compactionStreams 1024 and checks row 203's console and federation text word for word with no loader
|
||||
4b612781b docs(release): record static approval and post-compaction review conditions
|
||||
be4357216 docs(release): record any-key config plan and static review packet
|
||||
39bde4fd4 fix(release): validate non-console config keys with target loader
|
||||
fdedc56e2 docs: idle-stop race brief records the 10-run diagnostic (not-holder seen once, run r846b8d083502); docs only
|
||||
e3ef1eaf6 docs: brief for the idle-stop race row (Vikunja 588, #1809, mos-1411); docs only
|
||||
c902a767d queue: revs 3439-3443: rocko row 219 claim (3439), sage adds rows 300 (R6-N1, #1807) and 301 (R6-N4, #1808) and briefs both; queue only
|
||||
86d5ac69b docs: R6 follow-up briefs for row 294 N1 (#1807) and N4 (#1808); docs only
|
||||
4a9c536e8 Row 293 (574) landing e51d11640 and the 3m-3n live window (activation 20261023T034557Z-464010fbe4c6): BUILD-LOG phase line, Darkwing and Sage SESSIONS lines; docs only
|
||||
83f1f854d queue: row 293 (574, #1805) landing note and done move (sage); queue only
|
||||
e51d11640 docs(row293): record green integrated trace and whole suites
|
||||
78bbe1223 docs(row293): record integrated run2 and short TMPDIR correction
|
||||
92c0ca3db docs: preserve row293 first trace run and TMPDIR stop
|
||||
d0ede15b9 docs(v574): record static approval and trace evidence requirements
|
||||
29bb1ccd4 docs(v574): audit fixture comparisons and plan trace proof
|
||||
4e22bd49f test(git): disable detached fixture maintenance per mos-1369
|
||||
bus: scripts/bus-service.sh install --copy 464010fbe4c6925b077b9b8182a209ee2177eb9d --copies /home/jwoltje/.local/share/mosaic-stack/copies --pm --claude /home/jwoltje/.local/bin/claude
|
||||
proof: off
|
||||
send: off
|
||||
Console: scripts/webui-service.sh install --copy 464010fbe4c6925b077b9b8182a209ee2177eb9d --copies /home/jwoltje/.local/share/mosaic-stack/copies --port 7332 --public-host mosaic.woltje.com --auth-header X-authentik-username --allow-user jason.woltje --tester-socket
|
||||
CLI: scripts/stack-copy.sh wrapper 464010fbe4c6925b077b9b8182a209ee2177eb9d --copies /home/jwoltje/.local/share/mosaic-stack/copies --bin /home/jwoltje/.npm-global/bin
|
||||
interpreter: {"path":"/usr/bin/python3.14","version":[3,14,6],"dev":66308,"ino":3968163,"sha256":"8735f172622a7f8d27e293fd0fd36fc55c4cb9b663b6630d33b57870e36c24cc"}
|
||||
@@ -0,0 +1,20 @@
|
||||
pointer: /home/jwoltje/.mosaic-dev/state/stack-active.json
|
||||
{"copy":"45dca69f6e4bce52834587f66f2ff33ba839ab8a","business":"mosaic-stack","pm":true,"claude":"/home/jwoltje/.local/bin/claude","console":["--port","7332","--public-host","mosaic.woltje.com","--auth-header","X-authentik-username","--allow-user","jason.woltje","--tester-socket"],"schema":"3n","activation":"20261023T185911Z-45dca69f6e4b","at":"2026-10-23T18:59:17Z"}
|
||||
log (last five lines):
|
||||
{"at":"2026-10-22T20:16:24Z","op":"activate","from":"84f53540dd0d21ef179ca29697e172b0246e78d1","to":"0cbe2e9b35e51fe06dedde69c022b46e040f98c0","backup":"20261022T201621Z-0cbe2e9b35e5","activation":"20261022T201621Z-0cbe2e9b35e5","result":"ok"}
|
||||
{"at":"2026-10-23T03:45:57Z","op":"activate","from":"0cbe2e9b35e51fe06dedde69c022b46e040f98c0","to":"464010fbe4c6925b077b9b8182a209ee2177eb9d","backup":null,"activation":"20261023T034557Z-464010fbe4c6","result":"started","interpreter":"{\"path\":\"/usr/bin/python3.14\",\"version\":[3,14,6],\"dev\":66308,\"ino\":3968163,\"sha256\":\"8735f172622a7f8d27e293fd0fd36fc55c4cb9b663b6630d33b57870e36c24cc\"}"}
|
||||
{"at":"2026-10-23T03:46:02Z","op":"activate","from":"0cbe2e9b35e51fe06dedde69c022b46e040f98c0","to":"464010fbe4c6925b077b9b8182a209ee2177eb9d","backup":"20261023T034557Z-464010fbe4c6","activation":"20261023T034557Z-464010fbe4c6","result":"ok"}
|
||||
{"at":"2026-10-23T18:59:11Z","op":"activate","from":"464010fbe4c6925b077b9b8182a209ee2177eb9d","to":"45dca69f6e4bce52834587f66f2ff33ba839ab8a","backup":null,"activation":"20261023T185911Z-45dca69f6e4b","result":"started","interpreter":"{\"path\":\"/usr/bin/python3.14\",\"version\":[3,14,6],\"dev\":66308,\"ino\":3968163,\"sha256\":\"8735f172622a7f8d27e293fd0fd36fc55c4cb9b663b6630d33b57870e36c24cc\"}"}
|
||||
{"at":"2026-10-23T18:59:17Z","op":"activate","from":"464010fbe4c6925b077b9b8182a209ee2177eb9d","to":"45dca69f6e4bce52834587f66f2ff33ba839ab8a","backup":"20261023T185911Z-45dca69f6e4b","activation":"20261023T185911Z-45dca69f6e4b","result":"ok"}
|
||||
check:
|
||||
bus: /home/jwoltje/.local/share/mosaic-stack/copies/45dca69f6e4bce52834587f66f2ff33ba839ab8a
|
||||
Console: /home/jwoltje/.local/share/mosaic-stack/copies/45dca69f6e4bce52834587f66f2ff33ba839ab8a
|
||||
CLI: /home/jwoltje/.local/share/mosaic-stack/copies/45dca69f6e4bce52834587f66f2ff33ba839ab8a
|
||||
result: pass
|
||||
bus status:
|
||||
host: mosaic-stack, pid 758595, running, since 2026-10-23T18:59:13.168Z, notifier off
|
||||
socket: present
|
||||
writer.lock: pid 758858
|
||||
boot: organization file loaded at 2026-10-23T18:59:13.168Z
|
||||
unit flags: match the pointer
|
||||
drift: 0 commit(s) on refactor since the pointer's copy
|
||||
@@ -0,0 +1 @@
|
||||
2026-10-23T18:59:11Z
|
||||
@@ -0,0 +1,13 @@
|
||||
|
||||
## W5 activate NEW --pm --tester-socket (mos-1493)
|
||||
# start 2026-10-23T18:59:11.241Z
|
||||
# command: (cd $REPO && <clean env> scripts/stack-release.sh activate 45dca69f6e4bce52834587f66f2ff33ba839ab8a mosaic-stack --pm --tester-socket)
|
||||
stack-release: interpreter: {"path":"/usr/bin/python3.14","version":[3,14,6],"dev":66308,"ino":3968163,"sha256":"8735f172622a7f8d27e293fd0fd36fc55c4cb9b663b6630d33b57870e36c24cc"}
|
||||
stack-release: captured the rollback set: /home/jwoltje/.mosaic-dev/state/stack-rollback/20261023T185911Z-45dca69f6e4b
|
||||
stack-release: stopped both units
|
||||
stack-release: stopped store schema: 3n
|
||||
stack-release: backup: /home/jwoltje/.mosaic-dev/backups/stack/20261023T185911Z-45dca69f6e4b
|
||||
stack-release: installed 45dca69f6e4bce52834587f66f2ff33ba839ab8a
|
||||
stack-release: gate passed on 45dca69f6e4bce52834587f66f2ff33ba839ab8a
|
||||
stack-release: activate ok: 45dca69f6e4bce52834587f66f2ff33ba839ab8a is live for mosaic-stack
|
||||
# exit 0, end 2026-10-23T18:59:17.355Z
|
||||
@@ -0,0 +1,6 @@
|
||||
types table=26 trigger=97 view=5 index=28
|
||||
schema_version 3n
|
||||
missing none
|
||||
session_table_rows session_ops=0 message_cancels=0 W1 session_ops=0 message_cancels=0 thread_shares 0
|
||||
events 2313 maxSeq 2313
|
||||
COUNTS_OK
|
||||
@@ -0,0 +1,21 @@
|
||||
pointer: /home/jwoltje/.mosaic-dev/state/stack-active.json
|
||||
{"copy":"45dca69f6e4bce52834587f66f2ff33ba839ab8a","business":"mosaic-stack","pm":true,"claude":"/home/jwoltje/.local/bin/claude","console":["--port","7332","--public-host","mosaic.woltje.com","--auth-header","X-authentik-username","--allow-user","jason.woltje","--tester-socket"],"schema":"3n","activation":"20261023T185911Z-45dca69f6e4b","at":"2026-10-23T18:59:17Z"}
|
||||
log (last five lines):
|
||||
{"at":"2026-10-22T20:16:24Z","op":"activate","from":"84f53540dd0d21ef179ca29697e172b0246e78d1","to":"0cbe2e9b35e51fe06dedde69c022b46e040f98c0","backup":"20261022T201621Z-0cbe2e9b35e5","activation":"20261022T201621Z-0cbe2e9b35e5","result":"ok"}
|
||||
{"at":"2026-10-23T03:45:57Z","op":"activate","from":"0cbe2e9b35e51fe06dedde69c022b46e040f98c0","to":"464010fbe4c6925b077b9b8182a209ee2177eb9d","backup":null,"activation":"20261023T034557Z-464010fbe4c6","result":"started","interpreter":"{\"path\":\"/usr/bin/python3.14\",\"version\":[3,14,6],\"dev\":66308,\"ino\":3968163,\"sha256\":\"8735f172622a7f8d27e293fd0fd36fc55c4cb9b663b6630d33b57870e36c24cc\"}"}
|
||||
{"at":"2026-10-23T03:46:02Z","op":"activate","from":"0cbe2e9b35e51fe06dedde69c022b46e040f98c0","to":"464010fbe4c6925b077b9b8182a209ee2177eb9d","backup":"20261023T034557Z-464010fbe4c6","activation":"20261023T034557Z-464010fbe4c6","result":"ok"}
|
||||
{"at":"2026-10-23T18:59:11Z","op":"activate","from":"464010fbe4c6925b077b9b8182a209ee2177eb9d","to":"45dca69f6e4bce52834587f66f2ff33ba839ab8a","backup":null,"activation":"20261023T185911Z-45dca69f6e4b","result":"started","interpreter":"{\"path\":\"/usr/bin/python3.14\",\"version\":[3,14,6],\"dev\":66308,\"ino\":3968163,\"sha256\":\"8735f172622a7f8d27e293fd0fd36fc55c4cb9b663b6630d33b57870e36c24cc\"}"}
|
||||
{"at":"2026-10-23T18:59:17Z","op":"activate","from":"464010fbe4c6925b077b9b8182a209ee2177eb9d","to":"45dca69f6e4bce52834587f66f2ff33ba839ab8a","backup":"20261023T185911Z-45dca69f6e4b","activation":"20261023T185911Z-45dca69f6e4b","result":"ok"}
|
||||
check:
|
||||
bus: /home/jwoltje/.local/share/mosaic-stack/copies/45dca69f6e4bce52834587f66f2ff33ba839ab8a
|
||||
Console: /home/jwoltje/.local/share/mosaic-stack/copies/45dca69f6e4bce52834587f66f2ff33ba839ab8a
|
||||
CLI: /home/jwoltje/.local/share/mosaic-stack/copies/45dca69f6e4bce52834587f66f2ff33ba839ab8a
|
||||
result: pass
|
||||
bus status:
|
||||
host: mosaic-stack, pid 758595, running, since 2026-10-23T18:59:13.168Z, notifier off
|
||||
socket: present
|
||||
writer.lock: pid 758858
|
||||
boot: organization file loaded at 2026-10-23T18:59:13.168Z
|
||||
unit flags: match the pointer
|
||||
drift: 0 commit(s) on refactor since the pointer's copy
|
||||
# exit 0
|
||||
+53
@@ -0,0 +1,53 @@
|
||||
#!/usr/bin/env bash
|
||||
# Re-pin window 464010fbe to NEW (3n, no migrate), B0 (PLAN.md "Schema and backups"). window-migrate-3n/b0.sh with
|
||||
# WIN changed and the expected schema fixed at 3n: no step in this window changes the schema. An online copy of the
|
||||
# held live store through sqlite's backup API, read-only on the source, as in window-repin-7247d80c7/w12.sh. Laid
|
||||
# out the way `rehearse --backup PATH` reads it (stack-release.sh:2232-2235 at OLD):
|
||||
# $DATA/backups/b0-<STAMP>/bus/bus.sqlite the copy, and nothing else in bus/ (rehearse copies bus/*)
|
||||
# $DATA/backups/b0-<STAMP>/SHA256SUMS written from inside bus/, so it names bus.sqlite
|
||||
# $DATA/backups/b0-<STAMP>/SCHEMA the copy's meta schema_version, which must read the argument
|
||||
# $DATA/backups/b0-<STAMP>/CHECK integrity_check, the event count and maxSeq
|
||||
# Nothing live changes. A failed check stops the script.
|
||||
# usage: b0.sh 3n
|
||||
set -uo pipefail
|
||||
WIN=/mnt/storage/src/mosaic-stack/agents/darkwing/work/window-repin-45dca69f6
|
||||
WANT=${1:?usage: b0.sh 3n}
|
||||
case $WANT in 3n) ;; *) echo "usage: b0.sh 3n"; exit 2 ;; esac
|
||||
DATA=$HOME/.mosaic-dev
|
||||
sha() { sha256sum < "$1" | cut -c1-64; }
|
||||
stop() { echo "STOP: $*"; exit 1; }
|
||||
|
||||
echo "B0 ($WANT) start $(date -u +%FT%T.%3NZ)"
|
||||
[ -f "$DATA/bus/bus.sqlite" ] || stop "no live store"
|
||||
STAMP=$(date -u +%Y%m%dT%H%M%SZ)
|
||||
B=$DATA/backups/b0-$STAMP
|
||||
[ ! -e "$B" ] || stop "$B exists"
|
||||
( umask 077; mkdir -p "$B/bus" ) || stop "backup dir"
|
||||
python3 -B -c '
|
||||
import sqlite3,sys
|
||||
src=sqlite3.connect("file:"+sys.argv[1]+"?mode=ro",uri=True)
|
||||
dst=sqlite3.connect(sys.argv[2])
|
||||
src.backup(dst)
|
||||
ok=dst.execute("pragma integrity_check").fetchone()[0]
|
||||
n=dst.execute("select count(*), max(seq) from events").fetchone()
|
||||
sv=dst.execute("select value from meta where key=?",("schema_version",)).fetchone()
|
||||
dst.close(); src.close()
|
||||
print(ok, "events", n[0], "maxSeq", n[1], "schema", sv[0] if sv else None)
|
||||
open(sys.argv[3],"w").write((sv[0] if sv else "")+"\n")
|
||||
sys.exit(0 if ok=="ok" else 1)' "$DATA/bus/bus.sqlite" "$B/bus/bus.sqlite" "$B/SCHEMA" > "$B/CHECK" || stop "backup or integrity_check failed: $(cat "$B/CHECK" 2>/dev/null)"
|
||||
[ "$(cat "$B/SCHEMA")" = "$WANT" ] || stop "SCHEMA reads $(cat "$B/SCHEMA"), not $WANT"
|
||||
left=$(ls -A "$B/bus")
|
||||
[ "$left" = bus.sqlite ] || stop "bus/ holds more than bus.sqlite: $(tr '\n' ' ' <<< "$left")"
|
||||
chmod 600 "$B/bus/bus.sqlite" "$B/CHECK" "$B/SCHEMA"
|
||||
( cd "$B/bus" && sha256sum bus.sqlite > ../SHA256SUMS ) || stop "SHA256SUMS"
|
||||
chmod 600 "$B/SHA256SUMS"
|
||||
# The same check rehearse makes before it reads the set.
|
||||
( cd "$B/bus" && sha256sum -c --quiet ../SHA256SUMS ) || stop "the set fails rehearse's SHA256SUMS check"
|
||||
echo "B0 ($WANT) $(date -u +%FT%TZ) store backup $B ($(cat "$B/CHECK")), SHA256SUMS sha256 $(sha "$B/SHA256SUMS")" >> $WIN/backups.txt
|
||||
ls -la "$B" "$B/bus"
|
||||
echo "SHA256SUMS: $(cat "$B/SHA256SUMS")"
|
||||
echo "SCHEMA: $(cat "$B/SCHEMA")"
|
||||
echo "CHECK: $(cat "$B/CHECK")"
|
||||
echo "B0 path $B"
|
||||
echo "B0 SHA256SUMS sha256 $(sha "$B/SHA256SUMS")"
|
||||
echo "B0 end $(date -u +%FT%T.%3NZ) B0_PASS"
|
||||
@@ -0,0 +1,21 @@
|
||||
B0 (3n) start 2026-10-23T18:53:25.006Z
|
||||
/home/jwoltje/.mosaic-dev/backups/b0-20261023T185325Z:
|
||||
total 24
|
||||
drwx------ 3 jwoltje jwoltje 4096 Oct 23 13:53 .
|
||||
drwx------ 18 jwoltje jwoltje 4096 Oct 23 13:53 ..
|
||||
drwx------ 2 jwoltje jwoltje 4096 Oct 23 13:53 bus
|
||||
-rw------- 1 jwoltje jwoltje 37 Oct 23 13:53 CHECK
|
||||
-rw------- 1 jwoltje jwoltje 3 Oct 23 13:53 SCHEMA
|
||||
-rw------- 1 jwoltje jwoltje 77 Oct 23 13:53 SHA256SUMS
|
||||
|
||||
/home/jwoltje/.mosaic-dev/backups/b0-20261023T185325Z/bus:
|
||||
total 3120
|
||||
drwx------ 2 jwoltje jwoltje 4096 Oct 23 13:53 .
|
||||
drwx------ 3 jwoltje jwoltje 4096 Oct 23 13:53 ..
|
||||
-rw------- 1 jwoltje jwoltje 3186688 Oct 23 13:53 bus.sqlite
|
||||
SHA256SUMS: 7dece4d48320156a30e27fb03431b7fa2829993c994fe0d76e5e8dda0027ec68 bus.sqlite
|
||||
SCHEMA: 3n
|
||||
CHECK: ok events 2309 maxSeq 2309 schema 3n
|
||||
B0 path /home/jwoltje/.mosaic-dev/backups/b0-20261023T185325Z
|
||||
B0 SHA256SUMS sha256 b057627d4c6611ac9f5b8e87cd91e8a4fe2310c85b4a060ff000007fcbf314f8
|
||||
B0 end 2026-10-23T18:53:25.221Z B0_PASS
|
||||
@@ -0,0 +1,6 @@
|
||||
D3 2026-10-23T18:52:51Z data-root snapshot /home/jwoltje/.mosaic-dev/backups/d3-20261023T185210Z (STAMP 2026-10-23T18:52:10.990Z, 93086 members, tar exit 0, 0 warning line(s)), SHA256SUMS sha256 551b08fb0c16930296630a0f3a258cb6b200dd7f0250e62a2489897d7d1ef259
|
||||
BZ 2026-10-23T18:53:23Z business file copy /home/jwoltje/.config/mosaic-dev/businesses/mosaic-stack.json.pre-window-20261023T185323Z sha256 1e49bdf05e62607972958f5b7298cfd600c7825812370e26d7c2a842f2af9b93 (source /home/jwoltje/.config/mosaic-dev/businesses/mosaic-stack.json sha256 1e49bdf05e62607972958f5b7298cfd600c7825812370e26d7c2a842f2af9b93)
|
||||
B0 (3n) 2026-10-23T18:53:25Z store backup /home/jwoltje/.mosaic-dev/backups/b0-20261023T185325Z (ok events 2309 maxSeq 2309 schema 3n), SHA256SUMS sha256 b057627d4c6611ac9f5b8e87cd91e8a4fe2310c85b4a060ff000007fcbf314f8
|
||||
W0b 2026-10-23T18:57:24Z business file copy /home/jwoltje/.config/mosaic-dev/businesses/mosaic-stack.json.pre-window-20261023T185724Z sha256 1e49bdf05e62607972958f5b7298cfd600c7825812370e26d7c2a842f2af9b93 (source /home/jwoltje/.config/mosaic-dev/businesses/mosaic-stack.json sha256 1e49bdf05e62607972958f5b7298cfd600c7825812370e26d7c2a842f2af9b93)
|
||||
D3 2026-10-23T18:58:16Z data-root snapshot /home/jwoltje/.mosaic-dev/backups/d3-20261023T185729Z (STAMP 2026-10-23T18:57:29.717Z, 93122 members, tar exit 0, 0 warning line(s)), SHA256SUMS sha256 06ceb124c6f1a3dc70239132c2046e3be39a446b2cf953f4a433d80262784506
|
||||
W5 2026-10-23T18:59:17Z activation 20261023T185911Z-45dca69f6e4b backup /home/jwoltje/.mosaic-dev/backups/stack/20261023T185911Z-45dca69f6e4b STAMP 2026-10-23T18:59:11.913Z SCHEMA 3n SHA256SUMS sha256 87bd93819db5f38b579d1c616b1c80ca69d4abcba690b8e43a368b682e573a50
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
#!/usr/bin/env bash
|
||||
# Re-pin window 464010fbe to NEW (3n, no migrate), the business file copy that goes with B0 (as sage-2967 A2). Plain cp and
|
||||
# sha256sum, as window-migrate-3n/bz.sh. Nothing reads the file's values.
|
||||
# usage: bz.sh
|
||||
set -uo pipefail
|
||||
WIN=/mnt/storage/src/mosaic-stack/agents/darkwing/work/window-repin-45dca69f6
|
||||
BIZ=$HOME/.config/mosaic-dev/businesses/mosaic-stack.json
|
||||
sha() { sha256sum < "$1" | cut -c1-64; }
|
||||
stop() { echo "STOP: $*"; exit 1; }
|
||||
|
||||
[ -f "$BIZ" ] || stop "no business file"
|
||||
STAMP=$(date -u +%Y%m%dT%H%M%SZ)
|
||||
COPY=$BIZ.pre-window-$STAMP
|
||||
[ ! -e "$COPY" ] || stop "$COPY exists"
|
||||
before=$(sha "$BIZ")
|
||||
cp -p "$BIZ" "$COPY" || stop "cp"
|
||||
[ "$(sha "$COPY")" = "$before" ] && [ "$(sha "$BIZ")" = "$before" ] || stop "copy sha256 differs, or the file changed during the copy"
|
||||
echo "BZ $(date -u +%FT%TZ) business file copy $COPY sha256 $(sha "$COPY") (source $BIZ sha256 $before)" >> $WIN/backups.txt
|
||||
ls -la "$COPY"
|
||||
echo "BZ copy $COPY sha256 $(sha "$COPY") BZ_PASS"
|
||||
@@ -0,0 +1,2 @@
|
||||
-rw------- 1 jwoltje jwoltje 4304 Oct 19 20:39 /home/jwoltje/.config/mosaic-dev/businesses/mosaic-stack.json.pre-window-20261023T185323Z
|
||||
BZ copy /home/jwoltje/.config/mosaic-dev/businesses/mosaic-stack.json.pre-window-20261023T185323Z sha256 1e49bdf05e62607972958f5b7298cfd600c7825812370e26d7c2a842f2af9b93 BZ_PASS
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
#!/usr/bin/env bash
|
||||
# Re-pin window 464010fbe to NEW (3n, no migrate), row 295's condition 11 (mos-1436) and Mos's D1/D2
|
||||
# (mos-1487): a python3 -B read-only count on the live store. Prints the thread total, the count per owner
|
||||
# class (owner text up to the first ':'), the user: thread count, and thread_claims rows with op 'revoke'
|
||||
# (295's #revokeLost is the only writer) and the session_ops and message_cancels row counts. Also states whether ~/.config/mosaic-dev/access.json exists (stat
|
||||
# only). Exits 1 if the user: count isn't 0 or the read fails. Writes nothing to the store.
|
||||
# usage: c11.sh LABEL (LABEL: C11-pre, W0, W1, W6)
|
||||
set -uo pipefail
|
||||
. /mnt/storage/src/mosaic-stack/agents/darkwing/work/window-repin-45dca69f6/vars.sh
|
||||
L=${1:?usage: c11.sh LABEL}
|
||||
out=$(python3 -B - "$DATA/bus/bus.sqlite" <<'PY'
|
||||
import sqlite3, sys
|
||||
c = sqlite3.connect("file:" + sys.argv[1] + "?mode=ro", uri=True)
|
||||
total = c.execute("select count(*) from threads").fetchone()[0]
|
||||
cls = c.execute("select case when instr(owner,':')>0 then substr(owner,1,instr(owner,':')-1) else owner end k, count(*) from threads group by k order by k").fetchall()
|
||||
users = c.execute("select count(*) from threads where substr(owner,1,5)='user:'").fetchone()[0]
|
||||
rev = c.execute("select count(*) from thread_claims where op='revoke'").fetchone()[0]
|
||||
so = c.execute("select count(*) from session_ops").fetchone()[0]
|
||||
mc = c.execute("select count(*) from message_cancels").fetchone()[0]
|
||||
print(f"threads {total} owners {' '.join(f'{k}={n}' for k, n in cls)} user_threads {users} revoke_claims {rev} session_ops {so} message_cancels {mc}")
|
||||
sys.exit(0 if users == 0 else 3)
|
||||
PY
|
||||
); rc=$?
|
||||
[ -e $HOME/.config/mosaic-dev/access.json ] && acc="present" || acc="absent"
|
||||
echo "$L c11 $(date -u +%FT%T.%3NZ) $out access.json $acc (exit $rc)" | tee -a $WIN/c11.txt
|
||||
[ $rc = 0 ] || { echo "STOP: $L user threads not 0 or the read failed; to Mos (mos-1487 D1)"; exit 1; }
|
||||
@@ -0,0 +1,3 @@
|
||||
W0 c11 2026-10-23T18:53:38.846Z threads 5 owners tester=5 user_threads 0 revoke_claims 0 session_ops 0 message_cancels 0 access.json absent (exit 0)
|
||||
W1 c11 2026-10-23T18:57:25.086Z threads 5 owners tester=5 user_threads 0 revoke_claims 0 session_ops 0 message_cancels 0 access.json absent (exit 0)
|
||||
W6 c11 2026-10-23T18:59:28.117Z threads 5 owners tester=5 user_threads 0 revoke_claims 0 session_ops 0 message_cancels 0 access.json absent (exit 0)
|
||||
@@ -0,0 +1,53 @@
|
||||
# W11 comment text (re-pin window 464010fbe to 45dca69f6). Gitea post: Darkwing. P19 post: Sage.
|
||||
|
||||
## Gitea #1720 (row 219)
|
||||
|
||||
Live as of the re-pin window 464010fbe to 45dca69f6 on dragon-lin (activation 20261023T185911Z-45dca69f6e4b, pointer ok at 2026-10-23 18:59:17Z UTC). Darkwing operated under Q173 with Mos's W5 go (mos-1493). The schema is 3n on both sides, so there was no migration. W5 backed up the stopped store (SCHEMA 3n, SHA256SUMS 87bd9381). Row 219's commits (049214486 and the landing 5fdfd7275) are in 45dca69f6 and now run live: C2-09a, one thread per creative instance, in broker, launcher and Console chat. P0 to P6, B0, W0 to W6, W9 and W10 passed. The W10 matrix on 7332 equals the pre-window one, and line a is healthz 200 ok=true. Condition 11 held: 0 user threads at W0, W1 and W6, and no access.json. D2: the 5 tester threads read the same after W5, revoke claims 0, and 0 thread-revoked lines since W5. There was no rollback, restore or prune. STATE report: `agents/darkwing/work/window-repin-45dca69f6/STATE.md` on branch darkwing/window-repin-45dca69f6.
|
||||
|
||||
## Gitea #1753 (row 252)
|
||||
|
||||
Live as of the re-pin window 464010fbe to 45dca69f6 on dragon-lin (activation 20261023T185911Z-45dca69f6e4b, pointer ok at 2026-10-23 18:59:17Z UTC). Darkwing operated under Q173 with Mos's W5 go (mos-1493). The schema is 3n on both sides, so there was no migration. W5 backed up the stopped store (SCHEMA 3n, SHA256SUMS 87bd9381). Row 252 (24672fd9d) now runs live. Approve and Deny need `--send` and `--sso`, and live has neither, so the inbox buttons stay off. The tester `/api/config` now carries `"decide":false`, as the PLAN expected. P0 to P6, B0, W0 to W6, W9 and W10 passed. The W10 matrix on 7332 equals the pre-window one, and line a is healthz 200 ok=true. Condition 11 held: 0 user threads at W0, W1 and W6, and no access.json. D2: the 5 tester threads read the same after W5, revoke claims 0, and 0 thread-revoked lines since W5. There was no rollback, restore or prune. STATE report: `agents/darkwing/work/window-repin-45dca69f6/STATE.md` on branch darkwing/window-repin-45dca69f6.
|
||||
|
||||
## Gitea #1777 (row 272)
|
||||
|
||||
Live as of the re-pin window 464010fbe to 45dca69f6 on dragon-lin (activation 20261023T185911Z-45dca69f6e4b, pointer ok at 2026-10-23 18:59:17Z UTC). Darkwing operated under Q173 with Mos's W5 go (mos-1493). The schema is 3n on both sides, so there was no migration. W5 backed up the stopped store (SCHEMA 3n, SHA256SUMS 87bd9381). Row 272's commits (490f45f02, 70651f45d, f859d06d2, 0ea3db297) now run live. bus-host/sessions.json is still sessionsVersion 2, written by NEW's host at 18:59:15Z. P0 to P6, B0, W0 to W6, W9 and W10 passed. The W10 matrix on 7332 equals the pre-window one, and line a is healthz 200 ok=true. Condition 11 held: 0 user threads at W0, W1 and W6, and no access.json. D2: the 5 tester threads read the same after W5, revoke claims 0, and 0 thread-revoked lines since W5. There was no rollback, restore or prune. STATE report: `agents/darkwing/work/window-repin-45dca69f6/STATE.md` on branch darkwing/window-repin-45dca69f6.
|
||||
|
||||
## Gitea #1797 (row 292)
|
||||
|
||||
Live as of the re-pin window 464010fbe to 45dca69f6 on dragon-lin (activation 20261023T185911Z-45dca69f6e4b, pointer ok at 2026-10-23 18:59:17Z UTC). Darkwing operated under Q173 with Mos's W5 go (mos-1493). The schema is 3n on both sides, so there was no migration. W5 backed up the stopped store (SCHEMA 3n, SHA256SUMS 87bd9381). Row 292 (39bde4fd4) is the release tool for this window: stack-release.sh blob 2656f95b at NEW. Its loader check passed in Mos's P3 rehearse, and the live config holds only the four base keys. P0 to P6, B0, W0 to W6, W9 and W10 passed. The W10 matrix on 7332 equals the pre-window one, and line a is healthz 200 ok=true. Condition 11 held: 0 user threads at W0, W1 and W6, and no access.json. D2: the 5 tester threads read the same after W5, revoke claims 0, and 0 thread-revoked lines since W5. There was no rollback, restore or prune. STATE report: `agents/darkwing/work/window-repin-45dca69f6/STATE.md` on branch darkwing/window-repin-45dca69f6.
|
||||
|
||||
## Gitea #1800 (row 294)
|
||||
|
||||
Live as of the re-pin window 464010fbe to 45dca69f6 on dragon-lin (activation 20261023T185911Z-45dca69f6e4b, pointer ok at 2026-10-23 18:59:17Z UTC). Darkwing operated under Q173 with Mos's W5 go (mos-1493). The schema is 3n on both sides, so there was no migration. W5 backed up the stopped store (SCHEMA 3n, SHA256SUMS 87bd9381). Row 294's commits (afef0ea88, 52d2a1610, 26f93fa74) now run live. Granted-user sign-in is consulted only under `--sso`, and live has no `--sso`, so it stays inert. P0 to P6, B0, W0 to W6, W9 and W10 passed. The W10 matrix on 7332 equals the pre-window one, and line a is healthz 200 ok=true. Condition 11 held: 0 user threads at W0, W1 and W6, and no access.json. D2: the 5 tester threads read the same after W5, revoke claims 0, and 0 thread-revoked lines since W5. There was no rollback, restore or prune. STATE report: `agents/darkwing/work/window-repin-45dca69f6/STATE.md` on branch darkwing/window-repin-45dca69f6.
|
||||
|
||||
## Gitea #1801 (row 295)
|
||||
|
||||
Live as of the re-pin window 464010fbe to 45dca69f6 on dragon-lin (activation 20261023T185911Z-45dca69f6e4b, pointer ok at 2026-10-23 18:59:17Z UTC). Darkwing operated under Q173 with Mos's W5 go (mos-1493). The schema is 3n on both sides, so there was no migration. W5 backed up the stopped store (SCHEMA 3n, SHA256SUMS 87bd9381). Row 295's commits (ff54a1556, 31da9dcb8, 24f8f5d73, 0c8f12ea2) now run live. It acts only on `user:` threads. There are none, and access.json is absent, so it is inert; wiring access is a human act (mos-1487 D3). P0 to P6, B0, W0 to W6, W9 and W10 passed. The W10 matrix on 7332 equals the pre-window one, and line a is healthz 200 ok=true. Condition 11 held: 0 user threads at W0, W1 and W6, and no access.json. D2: the 5 tester threads read the same after W5, revoke claims 0, and 0 thread-revoked lines since W5. There was no rollback, restore or prune. STATE report: `agents/darkwing/work/window-repin-45dca69f6/STATE.md` on branch darkwing/window-repin-45dca69f6.
|
||||
|
||||
## Gitea #1807 (row 300)
|
||||
|
||||
Live as of the re-pin window 464010fbe to 45dca69f6 on dragon-lin (activation 20261023T185911Z-45dca69f6e4b, pointer ok at 2026-10-23 18:59:17Z UTC). Darkwing operated under Q173 with Mos's W5 go (mos-1493). The schema is 3n on both sides, so there was no migration. W5 backed up the stopped store (SCHEMA 3n, SHA256SUMS 87bd9381). Row 300 is tests only and adds no runtime path. Its commits are in 45dca69f6. P0 to P6, B0, W0 to W6, W9 and W10 passed. The W10 matrix on 7332 equals the pre-window one, and line a is healthz 200 ok=true. Condition 11 held: 0 user threads at W0, W1 and W6, and no access.json. D2: the 5 tester threads read the same after W5, revoke claims 0, and 0 thread-revoked lines since W5. There was no rollback, restore or prune. STATE report: `agents/darkwing/work/window-repin-45dca69f6/STATE.md` on branch darkwing/window-repin-45dca69f6.
|
||||
|
||||
## Gitea #1808 (row 301)
|
||||
|
||||
Live as of the re-pin window 464010fbe to 45dca69f6 on dragon-lin (activation 20261023T185911Z-45dca69f6e4b, pointer ok at 2026-10-23 18:59:17Z UTC). Darkwing operated under Q173 with Mos's W5 go (mos-1493). The schema is 3n on both sides, so there was no migration. W5 backed up the stopped store (SCHEMA 3n, SHA256SUMS 87bd9381). Row 301 (bb031ec84, 59f0e44f4) now runs live. `p456.sh r301` passed against NEW's copy and the live copy: the channel-proof pin on webui bus.mjs is 604092cb, the sha256 of the live bus.mjs. P0 to P6, B0, W0 to W6, W9 and W10 passed. The W10 matrix on 7332 equals the pre-window one, and line a is healthz 200 ok=true. Condition 11 held: 0 user threads at W0, W1 and W6, and no access.json. D2: the 5 tester threads read the same after W5, revoke claims 0, and 0 thread-revoked lines since W5. There was no rollback, restore or prune. STATE report: `agents/darkwing/work/window-repin-45dca69f6/STATE.md` on branch darkwing/window-repin-45dca69f6.
|
||||
|
||||
## Gitea #1809 (row 302)
|
||||
|
||||
Live as of the re-pin window 464010fbe to 45dca69f6 on dragon-lin (activation 20261023T185911Z-45dca69f6e4b, pointer ok at 2026-10-23 18:59:17Z UTC). Darkwing operated under Q173 with Mos's W5 go (mos-1493). The schema is 3n on both sides, so there was no migration. W5 backed up the stopped store (SCHEMA 3n, SHA256SUMS 87bd9381). Row 302 (2b6111a17) now runs live in broker and runner. A released run answers launcher-released on calls that need the claim. P0 to P6, B0, W0 to W6, W9 and W10 passed. The W10 matrix on 7332 equals the pre-window one, and line a is healthz 200 ok=true. Condition 11 held: 0 user threads at W0, W1 and W6, and no access.json. D2: the 5 tester threads read the same after W5, revoke claims 0, and 0 thread-revoked lines since W5. There was no rollback, restore or prune. STATE report: `agents/darkwing/work/window-repin-45dca69f6/STATE.md` on branch darkwing/window-repin-45dca69f6.
|
||||
|
||||
## Gitea #1813 (row 306)
|
||||
|
||||
Live as of the re-pin window 464010fbe to 45dca69f6 on dragon-lin (activation 20261023T185911Z-45dca69f6e4b, pointer ok at 2026-10-23 18:59:17Z UTC). Darkwing operated under Q173 with Mos's W5 go (mos-1493). The schema is 3n on both sides, so there was no migration. W5 backed up the stopped store (SCHEMA 3n, SHA256SUMS 87bd9381). Row 306 (2d0318a44) now runs live. A revoked run's calls answer thread-revoked and its runner stops. With no user threads nothing is revoked: D2 counted 0 revoke claims and 0 thread-revoked lines since W5. P0 to P6, B0, W0 to W6, W9 and W10 passed. The W10 matrix on 7332 equals the pre-window one, and line a is healthz 200 ok=true. Condition 11 held: 0 user threads at W0, W1 and W6, and no access.json. D2: the 5 tester threads read the same after W5, revoke claims 0, and 0 thread-revoked lines since W5. There was no rollback, restore or prune. STATE report: `agents/darkwing/work/window-repin-45dca69f6/STATE.md` on branch darkwing/window-repin-45dca69f6.
|
||||
|
||||
## Gitea #1814 (row 307)
|
||||
|
||||
Live as of the re-pin window 464010fbe to 45dca69f6 on dragon-lin (activation 20261023T185911Z-45dca69f6e4b, pointer ok at 2026-10-23 18:59:17Z UTC). Darkwing operated under Q173 with Mos's W5 go (mos-1493). The schema is 3n on both sides, so there was no migration. W5 backed up the stopped store (SCHEMA 3n, SHA256SUMS 87bd9381). Row 307 (dbbda2537) now runs live: the harness kind carries `compactions`. The new chief re194575ec18c launched on NEW. P0 to P6, B0, W0 to W6, W9 and W10 passed. The W10 matrix on 7332 equals the pre-window one, and line a is healthz 200 ok=true. Condition 11 held: 0 user threads at W0, W1 and W6, and no access.json. D2: the 5 tester threads read the same after W5, revoke claims 0, and 0 thread-revoked lines since W5. There was no rollback, restore or prune. STATE report: `agents/darkwing/work/window-repin-45dca69f6/STATE.md` on branch darkwing/window-repin-45dca69f6.
|
||||
|
||||
## Gitea #1815 (row 308)
|
||||
|
||||
Live as of the re-pin window 464010fbe to 45dca69f6 on dragon-lin (activation 20261023T185911Z-45dca69f6e4b, pointer ok at 2026-10-23 18:59:17Z UTC). Darkwing operated under Q173 with Mos's W5 go (mos-1493). The schema is 3n on both sides, so there was no migration. W5 backed up the stopped store (SCHEMA 3n, SHA256SUMS 87bd9381). Row 308 (30e6bb680, with 4874d1e83) now runs live. packages/tasks/requirements.json in the live copy is PRD 1.17 with 87 requirements; OLD had 1.15 and 85. P0 to P6, B0, W0 to W6, W9 and W10 passed. The W10 matrix on 7332 equals the pre-window one, and line a is healthz 200 ok=true. Condition 11 held: 0 user threads at W0, W1 and W6, and no access.json. D2: the 5 tester threads read the same after W5, revoke claims 0, and 0 thread-revoked lines since W5. There was no rollback, restore or prune. STATE report: `agents/darkwing/work/window-repin-45dca69f6/STATE.md` on branch darkwing/window-repin-45dca69f6.
|
||||
|
||||
## P19 (for Sage)
|
||||
|
||||
Re-pin window 464010fbe to 45dca69f6 is done on dragon-lin, 2026-10-23, with Darkwing operating under Q173 (sage-3572; Mos rulings mos-1487, mos-1491, mos-1492, mos-1493). The activation is 20261023T185911Z-45dca69f6e4b, and the pointer went ok at 18:59:17Z UTC. The store is 3n on both sides, so there was no migration; W5's stopped-store backup is SCHEMA 3n, SHA256SUMS 87bd9381. NEW carries all 141 commits OLD..NEW: rows 219, 252, 272, 292, 294, 295, 300, 301, 302, 306, 307 and 308, plus the 571 docs. The live store reads 26 tables, 97 triggers, 5 views and 28 indexes, 3n, with nothing missing. Condition 11 held, with 0 user threads at W0, W1 and W6 and no access.json. D2 held: the 5 tester threads read the same after W5, with 0 revoke claims and 0 thread-revoked lines since W5. The Console on 7332 answers healthz 200 ok=true, the W10 matrix equals the pre-window one, and R301 passed on the live copy. The standing chief is now re194575ec18c. The pm ra38826f3c6e2 that the last window left live ended with W5's bus stop, as planned, and no pm is live. Every step passed, and there was no rollback, restore or prune. STATE: `agents/darkwing/work/window-repin-45dca69f6/STATE.md`.
|
||||
@@ -0,0 +1,16 @@
|
||||
D3 start 2026-10-23T18:57:29.717Z
|
||||
total 1607996
|
||||
drwx------ 2 jwoltje jwoltje 4096 Oct 23 13:58 .
|
||||
drwx------ 19 jwoltje jwoltje 4096 Oct 23 13:57 ..
|
||||
-rw------- 1 jwoltje jwoltje 1646551040 Oct 23 13:58 data-root.tar
|
||||
-rw------- 1 jwoltje jwoltje 57 Oct 23 13:58 MEMBERS
|
||||
-rw------- 1 jwoltje jwoltje 80 Oct 23 13:58 SHA256SUMS
|
||||
-rw------- 1 jwoltje jwoltje 25 Oct 23 13:57 STAMP
|
||||
-rw------- 1 jwoltje jwoltje 0 Oct 23 13:57 WARNINGS
|
||||
size 1.6G
|
||||
MEMBERS: members 93122 tar exit 0 sessions.json sessionsVersion 2
|
||||
WARNINGS: 0 line(s)
|
||||
D3 path /home/jwoltje/.mosaic-dev/backups/d3-20261023T185729Z
|
||||
D3 STAMP 2026-10-23T18:57:29.717Z
|
||||
D3 SHA256SUMS sha256 06ceb124c6f1a3dc70239132c2046e3be39a446b2cf953f4a433d80262784506
|
||||
D3 end 2026-10-23T18:58:16.490Z D3_PASS
|
||||
Loaded 100 of 3042 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user