✔ launch identity is stamped, payload identity is refused and stale holder cannot send (18.008538ms)
✔ decision classes route from policy; gated resolution is human-only, choice and target must match (18.662273ms)
✔ claim exclusion, holder release, gated revoke and rerouting to a new holder are atomic (18.267372ms)
✔ launch events require a human CLI capability; generic emit cannot forge authority events (11.043239ms)
✔ within-role decisions close atomically and invalid options or blocking omissions refuse (11.686835ms)
✔ a recommendation that is not exactly one option key refuses invalid-recommendation after the options (17.352941ms)
✔ observer capabilities read human inbox but cannot mutate or forge launch identity (11.085705ms)
✔ task action subjects and linked decision trail are complete and ordered (18.141859ms)
✔ launch binding is durable and reconnecting requires the identical trusted record (8.098816ms)
✔ business isolation includes inherited object names and cross-business message references (16.390368ms)
✔ authority never transfers between action, target, unresolved or replaced role holder; a later run of the instance keeps it (18.514279ms)
✔ task projection uses schema current view, skipping earlier and equal-start polls (10.309851ms)
✔ revocation permanently bars the old run from reclaiming first, including after broker restart (14.847657ms)
✔ empty message references refuse before storage; refusal-evidence failure stays a typed error (9.867841ms)
✔ both arbiters require human resolution when their cross-role route is themselves (16.27601ms)
✔ the shipped coder role raises task.reassign as gated to the human; task.scope.change stays cross-role (15.425566ms)
ℹ tests 16
ℹ suites 0
ℹ pass 16
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 292.732409
