Files
jason.woltjeandClaude Opus 5.5 5dc0c7de74 agents: Sage row 70 round 1 packet (#1564, docs for mosaic on PATH)
Candidate 1126314bd522de838aad03689bed41f6b12a33c2d7f30b2eff1b38653f559ae0,
4 files on 48b893871. The first gate stopped at script-queue: the pre-A2
fixture check pinned the old header comment. The check now skips comment
lines (brief amended in 06e964026). Second gate: 24 suites, 0 failed.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-15 12:56:04 -05:00

101 lines
6.6 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
✔ the role file loads and resolves through loadBusiness (8.249303ms)
✔ the shipped file is exactly the approved list (1.076052ms)
✔ the assistant's authority is message.send within role and nothing else (2.841432ms)
✔ the assistant talks to the user and the chief of staff only, and no other shipped role is limited (0.972263ms)
✔ a business grant through limits does not widen the role (2.293792ms)
✔ a launch block whose by is the assistant is refused (2.417502ms)
✔ the instance takes no credential references and no tracker (3.64661ms)
✔ the contract passes work to the chief of staff and directs no one (0.787815ms)
✔ config directory and file path follow MOSAIC_CONFIG (2.230454ms)
✔ the fixture business validates and comes back frozen (7.303144ms)
✔ two instances may share a definition (2.901772ms)
✔ top-level refusals (6.590059ms)
✔ arbiters and projects (11.643519ms)
✔ role instances (4.154108ms)
✔ Vikunja bots (11.86028ms)
✔ a role without Vikunja takes no tracker block (3.337853ms)
✔ credential references match the definition's services (4.147753ms)
✔ launch (12.98169ms)
✔ loadBusiness: file checks (2.570057ms)
✔ loadBusiness: not a regular file (44.026396ms)
✔ loading writes nothing (1.242314ms)
✔ names that are Object.prototype properties don't count as declared (3.106382ms)
✔ the shipped example refuses as written and validates once filled in (1.028843ms)
✔ the role file loads and resolves through loadBusiness (11.190626ms)
✔ the shipped file is exactly the approved list (0.371752ms)
✔ the resolved record matches the approved list, so a widened file fails (3.305857ms)
✔ the chief of staff holds role.launch, message.send, role.end and organization.change; every other action is gated (2.325708ms)
✔ the pm does not hold role.launch (2.554339ms)
✔ a business grant of a gated action through limits does not widen the role (2.335106ms)
✔ a limit that drops role.launch leaves the chief of staff with no launch block (2.045776ms)
✔ a launch block whose by is the pm instance is refused (2.021139ms)
✔ the contract names no duty to talk to the human and the pm contract no launch (0.681828ms)
✔ the instance takes no credential references and no tracker (2.903702ms)
✔ usage errors exit 4 (311.011509ms)
✔ validate: a good business exits 0 and prints instance digests (71.559247ms)
✔ validate: project files (330.205583ms)
✔ validate: missing files and a broken system config (261.861821ms)
✔ validate: credential reference problems exit 2 and name each one (150.246685ms)
✔ validate: a token file inside the repository is refused (115.509175ms)
✔ validate: role definitions come from MOSAIC_ROLES_DIR (295.298749ms)
✔ resolve: prints one instance's record (464.132936ms)
✔ resolve: refusals (591.155305ms)
✔ parse: exactly one of file or env, plus the service's date (3.963491ms)
✔ check: a good file has no problems (1.18861ms)
✔ check never opens the file: a write-only token passes (0.53341ms)
✔ check: file problems (1.288577ms)
✔ check: token files can't live in the repository or dataRoot, even through a linked directory (1.294226ms)
✔ check: dates and environment references (0.619647ms)
✔ REQ-LIMIT-1 schema: every scope unset or zero, adjustable above four, bad values and unknown models refuse (25.388797ms)
✔ REQ-LIMIT-1 counts each exact scope at/over limit, unlimited and old tuple after model reassignment (1.314793ms)
✔ REQ-ROLE-3 writer: atomic validated revision, immutable previous bytes and authenticated actor/old/new receipt (38.822428ms)
✔ REQ-ROLE-3 writer: pre-rename fault leaves old file, post-rename recovery records commit, conflicting recovery refuses (20.676777ms)
✔ REQ-LIMIT-1 / decision145 migration prints only, preserves values, rejects ambiguity, and is idempotent (3.349368ms)
✔ REQ-LIMIT-1 shared settings validates the complete proposed selection and logs exact actor (20.664866ms)
✔ REQ-LIMIT-1 provider is table data: another provider routes separately and aliases share exact counts (1.868796ms)
✔ REQ-ROLE-3 refuses live writer locks, symlink targets and uncertain recovery without changing bytes (9.047791ms)
✔ REQ-PLUG-1 schema: plugins is optional, names known kinds and checked module names (15.563917ms)
✔ REQ-PLUG-1 REQ-ROLE-3 the setter writes plugins through the organization writer and logs old and new names (37.260247ms)
✔ REQ-PLUG-1 REQ-ROLE-3 the writer checks the bytes it writes: a Date in plugins is refused there too (5.011955ms)
✔ REQ-PLUG-1 REQ-ROLE-3 a refused setter write throws a code, changes nothing and logs nothing (1.844561ms)
✔ path and load (3.19451ms)
✔ refusals (3.012456ms)
✔ systemVars flattens the validated config (2.903554ms)
✔ precedence: system, business, project, project role, agent (7.791127ms)
✔ limits narrow the definition and never widen it (2.992751ms)
✔ role.launch stays within-role only for the instance the launch block names (8.023441ms)
✔ limits.authority without role.launch leaves the launcher with no launch block (2.830167ms)
✔ limits.authority narrows cross-role actions too (1.227966ms)
✔ classify (1.297062ms)
✔ the record carries what the broker and launcher need (1.343695ms)
✔ digest: key order doesn't matter, any value change does (7.081219ms)
✔ refusals (2.434611ms)
✔ the four shipped version 2 roles load (4.622523ms)
✔ shipped role scopes match addendum B section 2 and the SR runbook (1.687494ms)
✔ shipped authority follows the note's table (1.026534ms)
✔ every role file in roles/ loads through the validator, and a v2 contract exists (0.874202ms)
✔ version 1 files keep loading with no authority (1.077054ms)
✔ the conductor policy isn't a role (0.248389ms)
✔ a missing role file is exit 4, a symbolic link too (0.546342ms)
✔ version 2 refusals (2.094139ms)
✔ authority: closed vocabulary, no gated-only action, no overlap (3.499953ms)
✔ messaging: optional, role definitions and human, never the tester (2.805507ms)
✔ credentials: Gitea scopes (1.467193ms)
✔ credentials: Vikunja scopes are a group-to-verbs map from the grantable list (1.546314ms)
✔ credentials: services (3.913246ms)
✔ contract: a non-empty regular Markdown file beside the role file (0.866764ms)
✔ every key names known layers and a merge rule (1.292624ms)
✔ unknown keys and wrong layers refuse (1.053135ms)
✔ types (2.782478ms)
✔ merge: defaults, then the most specific layer wins (0.442491ms)
✔ merge: limits only narrow, and provenance lists each source (0.519525ms)
✔ merge doesn't change its inputs (0.208357ms)
ℹ tests 92
ℹ suites 0
ℹ pass 92
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 2703.426842