Files
jason.woltje 6bad02612a lead: commit dewey's untracked evidence (721 files: queue-124-review queue-143 queue-149 queue-165-review queue-170 queue-175 queue-177 queue-184 queue-191)
Unclaimed files left in the canonical checkout. Inventory: canonical-cleanup-inventory.md (commit-as-evidence groups). detect-secrets scan clean on 2026-11-02: hits are sha256 pins, git object ids, test sentinels already in tracked tests and unit-file lines.
2026-11-02 15:05:14 -06:00

129 lines
8.3 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.
== packages/business rc=0
✔ the role file loads and resolves through loadBusiness (4.573701ms)
✔ the shipped file is exactly the approved list (0.553751ms)
✔ the assistant's authority is message.send and record.write within role (1.338263ms)
✔ the assistant talks to the user and the chief of staff only, and no other shipped role is limited (0.496983ms)
✔ a business grant through limits does not widen the role (1.10431ms)
✔ a launch block whose by is the assistant is refused (1.158792ms)
✔ the instance takes no credential references and no tracker (1.750364ms)
✔ an arbiter whose role definition declares messaging lists is refused, for each kind (2.708591ms)
✔ an arbiter without messaging lists is accepted beside the limited assistant (1.415847ms)
✔ the contract passes work to the chief of staff and directs no one (0.478655ms)
✔ REQ-HARN-2: the assistant holds the web grant, and no other role file does (0.949144ms)
✔ record.write is within-role for the eleven approved v2 agents, never gated-only (2.033939ms)
✔ the four shipped version 2 roles load (2.206494ms)
✔ shipped role scopes match addendum B section 2 and the SR runbook (0.684281ms)
✔ shipped authority follows the note's table (1.497284ms)
✔ every role file in roles/ loads through the validator, and a v2 contract exists (0.691731ms)
✔ version 1 files keep loading with no authority (0.717733ms)
✔ the conductor policy isn't a role (0.139474ms)
✔ a missing role file is exit 4, a symbolic link too (0.302609ms)
✔ version 2 refusals (1.35952ms)
✔ authority: closed vocabulary, no gated-only action, no overlap (1.402774ms)
✔ messaging: optional, role definitions and human, never the tester (1.211849ms)
✔ credentials: Gitea scopes (0.544701ms)
✔ credentials: Vikunja scopes are a group-to-verbs map from the grantable list (0.77952ms)
✔ credentials: services (0.379099ms)
✔ contract: a non-empty regular Markdown file beside the role file (0.514655ms)
✔ both definitions load, with a contract file, and are exactly the approved lists (1.929304ms)
✔ security-reviewer has no write or shell tool and classifies only the verdict as its own (3.522631ms)
✔ merge-gate's only grant is git.merge.protected cross-role, and it has no write tool (1.363613ms)
✔ neither role can be an arbiter: its messaging lists refuse the business file (row 133) (3.664869ms)
✔ every role contract carries the proactive line in its Authority section (0.555492ms)
✔ pm and chief-of-staff say where a raise goes under REQ-DEC-2 (0.360769ms)
ℹ tests 32
ℹ suites 0
ℹ pass 32
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 70.206328
== packages/bus rc=0
✔ each C-suite role file carries the same two lists: human, chief-of-staff, pm, cto (1.308523ms)
✔ chief-executive-officer: messages to and from the user, chief of staff, pm and cto pass (395.978126ms)
✔ chief-executive-officer: a message to or from the coder, reviewer or assistant is refused and logged, and nothing is stored (367.914818ms)
✔ chief-executive-officer: another C-suite role isn't on the lists either (191.943114ms)
✔ chief-financial-officer: messages to and from the user, chief of staff, pm and cto pass (208.140395ms)
✔ chief-financial-officer: a message to or from the coder, reviewer or assistant is refused and logged, and nothing is stored (236.272798ms)
✔ chief-financial-officer: another C-suite role isn't on the lists either (300.296665ms)
✔ chief-information-officer: messages to and from the user, chief of staff, pm and cto pass (253.306591ms)
✔ chief-information-officer: a message to or from the coder, reviewer or assistant is refused and logged, and nothing is stored (243.492092ms)
✔ chief-information-officer: another C-suite role isn't on the lists either (208.648647ms)
✔ chief-information-security-officer: messages to and from the user, chief of staff, pm and cto pass (226.585879ms)
✔ chief-information-security-officer: a message to or from the coder, reviewer or assistant is refused and logged, and nothing is stored (239.984115ms)
✔ chief-information-security-officer: another C-suite role isn't on the lists either (205.474889ms)
✔ chief-marketing-officer: messages to and from the user, chief of staff, pm and cto pass (229.887213ms)
✔ chief-marketing-officer: a message to or from the coder, reviewer or assistant is refused and logged, and nothing is stored (203.848465ms)
✔ chief-marketing-officer: another C-suite role isn't on the lists either (189.647742ms)
✔ merge-gate's technical raise is cross-role, goes to the cto, and only merge-gate can use the approval (221.276498ms)
✔ merge-gate has no message.send, and without a domain its raise goes to the delivery arbiter (198.982011ms)
✔ the cto must be able to message merge-gate, or the technical raise is refused (row 133) (178.125549ms)
✔ security-reviewer answers a review with its verdict alone; it holds no message.send (208.121095ms)
ℹ tests 20
ℹ suites 0
ℹ pass 20
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 3762.268889
== packages/harness rc=1
✖ raise_decision offers domain as technical or delivery only, optional, and says where a raise goes (5.70342ms)
✔ raise_decision forwards domain to decision.raise, and a call without it sends none (173.115187ms)
✔ every role sees read_spec, record writer follows its grant, citation schemas stay strict (9.679248ms)
✔ typed socket forwards read content/history and agent record writes, and cannot write a spec (203.227215ms)
✔ the PM gets its task verbs and the reads, and no launch (5.728623ms)
✔ the chief of staff gets launch, send_message, end_run and change_organization, and no task verbs (1.936961ms)
✔ request_staff is the pm's alone: staff.request over message.send, roles and counts bounded (6.680747ms)
✔ end_run sends role and reason, no decision; change_organization sends revision and the organization keys (1.210201ms)
✔ the organization keys change_organization takes are the broker's ORGANIZATION_KEYS (0.092034ms)
✔ a role without role.end or organization.change gets neither tool, and each tool follows its own grant (5.165429ms)
✔ the assistant gets send_message, the reads and the web tools (it holds the web grant), no launch (0.836782ms)
✔ list_requirements reads the requirement ids, for a task.create holder with a tracker (1.624081ms)
✔ a coder gets no launch, no resolve_decision, and no task tools without a tracker (0.792804ms)
✔ a coder with a tracker gets its own task tools and no task_reassign (0.764163ms)
✔ launch only when the business's launch block names the instance as launcher (1.354977ms)
✔ an action outside the instance's authority has no tool (0.825961ms)
✔ the review loop: push_working and request_review for the coder, fetch_review and review_verdict for the reviewer, none for the PM (3.133229ms)
✔ land_work is there only with land, after push_working, with the task and the decision (1.713597ms)
✔ callTool: one JSON line out, the result back, a refusal rejects (7.946074ms)
✔ list_tasks takes the broker's filters and pages; get_task takes a task_ref (1.778731ms)
✔ callTool sends list_tasks done false unless the session names done; other tools as given (1.875593ms)
✔ replyText: compact JSON up to the cap, an error naming the size and the cap over it (0.470999ms)
✔ web_search's query maxLength is the web layer's SEARCH_MAX_QUERY_CHARS (1.898402ms)
ℹ tests 23
ℹ suites 0
ℹ pass 22
ℹ fail 1
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 291.57564
✖ failing tests:
test at tests/raise-domain.test.mjs:11:1
✖ raise_decision offers domain as technical or delivery only, optional, and says where a raise goes (5.70342ms)
AssertionError [ERR_ASSERTION]: Expected values to be strictly deep-equal:
+ actual - expected
[
'technical',
'delivery',
+ 'human'
]
at TestContext.<anonymous> (file:///home/jwoltje/dewey-scratch/r149/packages/harness/tests/raise-domain.test.mjs:16:12)
at Test.runInAsyncScope (node:async_hooks:226:14)
at Test.run (node:internal/test_runner/test:1402:25)
at Test.start (node:internal/test_runner/test:1262:17)
at startSubtestAfterBootstrap (node:internal/test_runner/harness:387:17) {
generatedMessage: true,
code: 'ERR_ASSERTION',
actual: [ 'technical', 'delivery', 'human' ],
expected: [ 'technical', 'delivery' ],
operator: 'deepStrictEqual',
diff: 'simple'
}