Files
stack/agents/darkwing/work/slice1-s2b-review/node26.txt
T
jason.woltjeandClaude Opus 5.5 4f28c09069 review(bus): darkwing S2b round 1, changes (row 43, #1525)
Verdict comment 26765, queue rev 140. R1: message.send and role.revoke
verbs use gated decisions without consuming them. R2: a cross-role
decision authorizes without limit once policy makes the action gated.
Two rulings for Sage on cross-role reuse and class drift.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-05 17:35:15 -05:00

58 lines
4.8 KiB
Plaintext
Raw 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.
v26.8.1
✔ launch identity is stamped, payload identity is refused and stale holder cannot send (143.398688ms)
✔ decision classes route from policy; gated resolution is human-only, choice and target must match (253.681428ms)
✔ claim exclusion, holder release, gated revoke and rerouting to a new holder are atomic (232.027274ms)
✔ launch events require a human CLI capability; generic emit cannot forge authority events (143.975331ms)
✔ within-role decisions close atomically and invalid options or blocking omissions refuse (147.480516ms)
✔ observer capabilities read human inbox but cannot mutate or forge launch identity (75.03986ms)
✔ task action subjects and linked decision trail are complete and ordered (77.211834ms)
✔ launch binding is durable and reconnecting requires the identical trusted record (53.022592ms)
✔ business isolation includes inherited object names and cross-business message references (83.620942ms)
✔ authority never transfers between action, run, target, unresolved or replaced role holder (117.191244ms)
✔ task projection uses schema current view, skipping earlier and equal-start polls (56.885453ms)
✔ revocation permanently bars the old run from reclaiming first, including after broker restart (98.811218ms)
✔ empty message references refuse before storage; refusal-evidence failure stays a typed error (63.230338ms)
✔ both arbiters require human resolution when their cross-role route is themselves (103.848028ms)
✔ S1 adapter takes resolved limits and refs, rejects mismatched instance, never mutates input (1.819597ms)
✔ only validated broker references load; returned data and exceptions cannot expose a known token (3.072533ms)
✔ bad file modes, symlinks, repository/data paths, malformed tokens and missing dates refuse (1.386612ms)
✔ expiry refuses use and env references never become client data (0.492906ms)
✔ S1 parsed service refs work, service mismatch refuses, Gitea rotation due is a warning state (0.990136ms)
✔ opaque tokens shorter than 16 characters refuse before use (0.233019ms)
✔ human proof binds CLI entry, process start and nonce; agents and incomplete ancestry refuse (1.392617ms)
✔ process reader gets own kernel identity without exposing environment values (0.95553ms)
✔ EACCES ancestor environments skip only markers; commands and registered launches still refuse (0.60336ms)
✔ real pid 1 remains inspectable when its environment is protected (0.239057ms)
✔ broker process binds trusted launches, offers reader capabilities, refuses human mutation, closes cleanly (161.848103ms)
✔ startup token refusal returns safe code without value or partial listening broker (35.527291ms)
✔ loaded fixture token is absent from socket replies and SQLite, including refusal evidence (190.913913ms)
✔ killed broker leaves an explicit stale lock; another process cannot silently reclaim it (154.597816ms)
✔ trusted host registers later launches; socket clients never have a registration verb (155.819973ms)
✔ runtime excludes declared project roots even when host supplies no repoRoots (33.442788ms)
✔ a refused launch binding leaves the broker and existing capabilities alive; bad protocol stops it (151.50099ms)
✔ v3b prototype refusals, views and append-only mutations (924.334082ms)
✔ gated approval authorizes once, survives store reopen, and fresh approval works (221.382225ms)
✔ another run cannot consume an approval; a failed check leaves it usable (212.619226ms)
✔ two scheduled callers have exactly one grant and one consumed refusal (130.86036ms)
✔ failed commit rolls consumption back; within-role and cross-role stay reusable (224.241502ms)
✔ a decision raised gated stays single-use after policy changes its action to cross-role (152.768533ms)
✔ creates private WAL store and excludes a second writer until explicit close (103.646956ms)
✔ rollback is atomic and schema metadata is checked against trusted DDL, not just itself (157.875505ms)
✔ existing empty database and symlink runtime directory refuse, never initialize over damage (183.071258ms)
✔ crash during a transaction recovers no partial event after explicit fixture-only lock removal (147.445961ms)
✔ writer refuses mixed at/read_at forms atomically, even through trusted SQL helpers (86.047058ms)
✔ async transactions refuse before invoking their function (74.55339ms)
✔ socket capability stamps launch identity; shared views use wire, no SQL client (124.445988ms)
✔ two wire claims serialize; a lost reply never automatically retries (161.867187ms)
✔ malformed, oversized and identity-forging envelopes refuse without echoing input (115.77704ms)
✔ client preserves UTF-8 when a response divides a multibyte character (11.657736ms)
✔ committed mutation followed by dropped reply reports unknown and is never retried (114.4083ms)
ℹ tests 48
ℹ suites 0
ℹ pass 48
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 1713.351577