Files
jason.woltjeandClaude Opus 5.5 58e85d0fa1 agents: Darkwing row 121 round 2 packet (#1615), rebased on 20d2b5788
Candidate manifest sha256 710d50866e77055b7231a53e3601bd2bab7686b722160f81ddda030875f67e9b,
30 files. Targeted gate green, 77 of 77 mutants killed, repro DIGESTS_OK.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-15 13:54:02 -05:00

104 lines
6.9 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 (7.210529ms)
✔ the shipped file is exactly the approved list (0.997354ms)
✔ the assistant's authority is message.send within role and nothing else (2.797165ms)
✔ the assistant talks to the user and the chief of staff only, and no other shipped role is limited (0.921494ms)
✔ a business grant through limits does not widen the role (2.020977ms)
✔ a launch block whose by is the assistant is refused (2.113662ms)
✔ the instance takes no credential references and no tracker (2.995707ms)
✔ an arbiter whose role definition declares messaging lists is refused, for each kind (12.354981ms)
✔ an arbiter without messaging lists is accepted beside the limited assistant (1.794345ms)
✔ the contract passes work to the chief of staff and directs no one (0.570745ms)
✔ config directory and file path follow MOSAIC_CONFIG (1.382322ms)
✔ the fixture business validates and comes back frozen (4.321231ms)
✔ two instances may share a definition (1.655369ms)
✔ top-level refusals (5.877603ms)
✔ arbiters and projects (8.08437ms)
✔ role instances (4.11319ms)
✔ Vikunja bots (15.626329ms)
✔ a role without Vikunja takes no tracker block (2.159346ms)
✔ credential references match the definition's services (2.905961ms)
✔ launch (7.855484ms)
✔ REQ-THREAD-2 REQ-LAUNCH-1 launch.threadIdleSeconds: absent is the default, a positive integer is used, anything else refuses (4.181426ms)
✔ loadBusiness: file checks (2.088052ms)
✔ loadBusiness: not a regular file (35.612542ms)
✔ loading writes nothing (0.950226ms)
✔ names that are Object.prototype properties don't count as declared (2.475049ms)
✔ the shipped example refuses as written and validates once filled in (1.009418ms)
✔ the role file loads and resolves through loadBusiness (6.957607ms)
✔ the shipped file is exactly the approved list (0.284368ms)
✔ the resolved record matches the approved list, so a widened file fails (2.156438ms)
✔ the chief of staff holds role.launch, message.send, role.end and organization.change; every other action is gated (1.876737ms)
✔ the pm does not hold role.launch (1.918297ms)
✔ a business grant of a gated action through limits does not widen the role (2.686195ms)
✔ a limit that drops role.launch leaves the chief of staff with no launch block (1.652263ms)
✔ a launch block whose by is the pm instance is refused (2.027121ms)
✔ the contract names no duty to talk to the human and the pm contract no launch (0.452426ms)
✔ the instance takes no credential references and no tracker (2.826253ms)
✔ usage errors exit 4 (284.867299ms)
✔ validate: a good business exits 0 and prints instance digests (66.864231ms)
✔ validate: project files (311.381354ms)
✔ validate: missing files and a broken system config (234.781758ms)
✔ validate: credential reference problems exit 2 and name each one (66.389679ms)
✔ validate: a token file inside the repository is refused (65.189828ms)
✔ validate: role definitions come from MOSAIC_ROLES_DIR (184.180347ms)
✔ resolve: prints one instance's record (255.064763ms)
✔ resolve: refusals (362.16787ms)
✔ parse: exactly one of file or env, plus the service's date (3.06151ms)
✔ check: a good file has no problems (0.972159ms)
✔ check never opens the file: a write-only token passes (0.429383ms)
✔ check: file problems (1.119737ms)
✔ check: token files can't live in the repository or dataRoot, even through a linked directory (1.126183ms)
✔ check: dates and environment references (0.480068ms)
✔ REQ-LIMIT-1 schema: every scope unset or zero, adjustable above four, bad values and unknown models refuse (14.872413ms)
✔ REQ-LIMIT-1 counts each exact scope at/over limit, unlimited and old tuple after model reassignment (0.810319ms)
✔ REQ-ROLE-3 writer: atomic validated revision, immutable previous bytes and authenticated actor/old/new receipt (197.943192ms)
✔ REQ-ROLE-3 writer: pre-rename fault leaves old file, post-rename recovery records commit, conflicting recovery refuses (167.556078ms)
✔ REQ-LIMIT-1 / decision145 migration prints only, preserves values, rejects ambiguity, and is idempotent (2.869435ms)
✔ REQ-LIMIT-1 shared settings validates the complete proposed selection and logs exact actor (99.278667ms)
✔ REQ-LIMIT-1 provider is table data: another provider routes separately and aliases share exact counts (1.786284ms)
✔ REQ-ROLE-3 refuses live writer locks, symlink targets and uncertain recovery without changing bytes (64.919925ms)
✔ REQ-PLUG-1 schema: plugins is optional, names known kinds and checked module names (15.300205ms)
✔ REQ-PLUG-1 REQ-ROLE-3 the setter writes plugins through the organization writer and logs old and new names (255.301675ms)
✔ REQ-PLUG-1 REQ-ROLE-3 the writer checks the bytes it writes: a Date in plugins is refused there too (38.841947ms)
✔ REQ-PLUG-1 REQ-ROLE-3 a refused setter write throws a code, changes nothing and logs nothing (1.438786ms)
✔ path and load (2.683038ms)
✔ refusals (1.886366ms)
✔ systemVars flattens the validated config (2.224648ms)
✔ precedence: system, business, project, project role, agent (5.982927ms)
✔ limits narrow the definition and never widen it (10.068349ms)
✔ role.launch stays within-role only for the instance the launch block names (5.439835ms)
✔ limits.authority without role.launch leaves the launcher with no launch block (2.748722ms)
✔ limits.authority narrows cross-role actions too (1.091267ms)
✔ classify (1.031402ms)
✔ the record carries what the broker and launcher need (1.095178ms)
✔ digest: key order doesn't matter, any value change does (7.298075ms)
✔ refusals (1.731446ms)
✔ the four shipped version 2 roles load (4.159984ms)
✔ shipped role scopes match addendum B section 2 and the SR runbook (1.423669ms)
✔ shipped authority follows the note's table (1.017526ms)
✔ every role file in roles/ loads through the validator, and a v2 contract exists (1.081695ms)
✔ version 1 files keep loading with no authority (6.638739ms)
✔ the conductor policy isn't a role (0.287336ms)
✔ a missing role file is exit 4, a symbolic link too (0.357471ms)
✔ version 2 refusals (1.168789ms)
✔ authority: closed vocabulary, no gated-only action, no overlap (1.854533ms)
✔ messaging: optional, role definitions and human, never the tester (2.220448ms)
✔ credentials: Gitea scopes (1.161654ms)
✔ credentials: Vikunja scopes are a group-to-verbs map from the grantable list (1.016553ms)
✔ credentials: services (0.425301ms)
✔ contract: a non-empty regular Markdown file beside the role file (0.571769ms)
✔ every key names known layers and a merge rule (1.26062ms)
✔ unknown keys and wrong layers refuse (0.915488ms)
✔ types (2.612126ms)
✔ merge: defaults, then the most specific layer wins (0.384919ms)
✔ merge: limits only narrow, and provenance lists each source (0.465692ms)
✔ merge doesn't change its inputs (0.207851ms)
ℹ tests 95
ℹ suites 0
ℹ pass 95
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 1907.782693