any-holder: rc=1 ℹ pass 5 ℹ fail 1 
    ✖ agents: a new holder doesn't inherit what the last one left unread; decisions stay with the role
    ✖ failing tests:
read-ignored: rc=1 ℹ pass 5 ℹ fail 1 
    ✖ agents: working counts what the holder received and has not read; routed alone is not working
    ✖ failing tests:
any-business-msg: rc=1 ℹ pass 5 ℹ fail 1 
    ✖ agents: state reads only its own business, even for a run name both use
    ✖ failing tests:
any-role-msg: rc=0 ℹ pass 6 ℹ fail 0 
since-max: rc=1 ℹ pass 5 ℹ fail 1 
    ✖ agents: working counts what the holder received and has not read; routed alone is not working
    ✖ failing tests:
any-route: rc=1 ℹ pass 5 ℹ fail 1 
    ✖ agents: input needed is the role's open decisions routed to the human, gated first, then oldest
    ✖ failing tests:
closed-kept: rc=1 ℹ pass 5 ℹ fail 1 
    ✖ agents: input needed is the role's open decisions routed to the human, gated first, then oldest
    ✖ failing tests:
matches=2
seq-order: MUTATION DID NOT APPLY
any-raiser: rc=1 ℹ pass 5 ℹ fail 1 
    ✖ agents: input needed is the role's open decisions routed to the human, gated first, then oldest
    ✖ failing tests:
waiting-wins: rc=1 ℹ pass 3 ℹ fail 3 
    ✖ agents: a new holder doesn't inherit what the last one left unread; decisions stay with the role
    ✖ agents: state reads only its own business, even for a run name both use
    ✖ agents: working wins over waiting, and Input needed still shows
    ✖ failing tests:
role-gets-state: rc=1 ℹ pass 5 ℹ fail 1 
    ✖ agents: a held role with nothing on the bus is idle; a role session gets the claim rows unchanged
    ✖ failing tests:
reader-plain: rc=1 ℹ pass 5 ℹ fail 1 
    ✖ agents: a held role with nothing on the bus is idle; a role session gets the claim rows unchanged
    ✖ failing tests:
matches=2
blocking-raw: MUTATION DID NOT APPLY
working-zero: rc=1 ℹ pass 1 ℹ fail 5 
    ✖ agents: a held role with nothing on the bus is idle; a role session gets the claim rows unchanged
    ✖ agents: a new holder doesn't inherit what the last one left unread; decisions stay with the role
    ✖ agents: input needed is the role's open decisions routed to the human, gated first, then oldest
    ✖ agents: state reads only its own business, even for a run name both use
endpoint-plain: rc=1 ℹ pass 7 ℹ fail 1 
    ✖ bus routes serve the four reads from the reader view, unescaped JSON for the page to escape
    ✖ failing tests:
last-ask: rc=1 ℹ pass 0 ℹ fail 1 
    ✖ failing tests:
    ✖ S5 pages in a browser: real broker rows, inert text, Copy, routes, failures, layout and no writes
no-more-link: rc=1 ℹ pass 0 ℹ fail 1 
    ✖ failing tests:
    ✖ S5 pages in a browser: real broker rows, inert text, Copy, routes, failures, layout and no writes
no-working-detail: rc=1 ℹ pass 0 ℹ fail 1 
    ✖ failing tests:
    ✖ S5 pages in a browser: real broker rows, inert text, Copy, routes, failures, layout and no writes
matches=2
no-blocking-chip: MUTATION DID NOT APPLY
matches=2
question-raw: MUTATION DID NOT APPLY
no-state-col: rc=1 ℹ pass 0 ℹ fail 1 
    ✖ failing tests:
    ✖ S5 pages in a browser: real broker rows, inert text, Copy, routes, failures, layout and no writes
restored: sources match the candidate index
