RUN v3.2.7 /tmp/circe-pr2-round2-evidence ✓ round3.test.ts > a late concurrent reconciliation cannot regress a terminal outcome 5ms ✓ round3.test.ts > interrupt during an invocation prevents the remaining pending effect from starting 2ms ✓ round3.test.ts > ambiguous clarification cannot complete a pending request into execution 1ms × round2.test.ts > PR2 round 2 remaining contract paths > N1: per-proposition API also rejects a dependent whose prerequisite lacks evidence 13ms → expected { kind: 'propose', …(5) } to be undefined × round2.test.ts > PR2 round 2 remaining contract paths > N2: revised binding evidence is identical at validation and dispatch 5ms → expected '1' to be '2' // Object.is equality × round2.test.ts > PR2 round 2 remaining contract paths > N3: retargeting removes obsolete slot read evidence 2ms → expected [] to deeply equal [ 'B' ] × round2.test.ts > PR2 round 2 remaining contract paths > N4: independent target effects do not invalidate each other 3ms → expected [ 'A' ] to deeply equal [ 'A', 'B' ] ✓ round2.test.ts > PR2 round 2 remaining contract paths > control: genuine argument read deps survive every target effect 3ms ✓ additional.test.ts > invalid revision during validation revokes the old authorization 10ms ✓ additional.test.ts > an ambiguous affirmative cannot authorize a pending effect 2ms ✓ additional.test.ts > completed command ids reject different content just like in-flight ids 2ms ✓ additional.test.ts > overlapping dispatch loops invoke each frozen effect only once 2ms ✓ additional.test.ts > semantic ingestion snapshots classifier output before awaiting validation 1ms ✓ additional.test.ts > a semantic turn cannot borrow versions from a different frame 8ms ✓ additional.test.ts > turn exclusions cover executable slot refs, not only proposition summary refs 3ms ✓ additional.test.ts > synthesized batch receipts retain the idempotency key actually sent 3ms ✓ additional.test.ts > a late RUNNING acknowledgement cannot overwrite an observed terminal outcome 1ms ✓ pr2-previous.test.ts > PR2 independent required behavior > R1: non-executable 'query'/'inspect' never invokes 8ms ✓ pr2-previous.test.ts > PR2 independent required behavior > R1: non-executable 'query'/'reference' never invokes 2ms ✓ pr2-previous.test.ts > PR2 independent required behavior > R1: non-executable 'request'/'compose' never invokes 2ms ✓ pr2-previous.test.ts > PR2 independent required behavior > R2: argument-only refs retain validation and frozen preconditions 9ms ✓ pr2-previous.test.ts > PR2 independent required behavior > R2b: a stale argument target blocks execution 4ms ✓ pr2-previous.test.ts > PR2 independent required behavior > R3: rejected prerequisite blocks dependent proposition 2ms ✓ pr2-previous.test.ts > PR2 independent required behavior > R4: out-of-range relation makes whole turn uncompilable 2ms ✓ pr2-previous.test.ts > PR2 independent required behavior > R5: explicit index cannot bypass a prohibition on the selected proposition 2ms ✓ pr2-previous.test.ts > PR2 independent required behavior > R6: malformed sibling exclusion cannot be dropped by per-proposition API 1ms ✓ pr2-previous.test.ts > PR2 independent required behavior > R7: a matching frame hash cannot replace the turn frame identity 2ms ✓ pr2-previous.test.ts > PR2 independent required behavior > control: valid request still reaches executor exactly once 2ms ✓ previous.test.ts > deduplicates the same proposal while the first delivery is in flight 7ms ✓ previous.test.ts > a new confirm id cannot refreeze a transaction with a RUNNING effect 1ms ✓ previous.test.ts > a confirm for an absent transaction must not confirm a different live transaction 1ms ✓ previous.test.ts > a cancelled transaction cannot be resurrected by a revision addressed to its id 1ms ✓ previous.test.ts > caller mutation during validation cannot retarget frozen effects 1ms ✓ previous.test.ts > different runtimes do not reuse the same external idempotency key 1ms ✓ previous.test.ts > an explicitly supplied but non-covering evidence set cannot fall back to current snapshots 1ms ✓ previous.test.ts > semantic proposals retain the exact frame version rather than rebinding to a new world version 5ms ✓ previous.test.ts > an inspect/query proposition does not become an executable proposal 0ms ✓ previous.test.ts > ambiguous classification with a capability does not invoke through ingest 1ms ✓ previous.test.ts > oversized mandatory context is explicitly reported as over budget 40ms ✓ previous.test.ts > frames differing in coverage metadata have different exact-input hashes 1ms ✓ previous.test.ts > late publication cannot attach a stale neighborhood judgment to the latest generation 1ms ✓ previous.test.ts > an obligation event invalidates a judgment over prior knowledge 0ms ✓ previous.test.ts > a reused spec id rejected at a later stage cannot leave an earlier accepted value 1ms ✓ previous.test.ts > required arity-one slot validation also applies to revisions 0ms ✓ previous.test.ts > journal contains enough command identity to recognize replayed typed proposals 1ms ✓ previous.test.ts > clear-selection without refs clears the UI selection 0ms ⎯⎯⎯⎯⎯⎯⎯ Failed Tests 4 ⎯⎯⎯⎯⎯⎯⎯ FAIL round2.test.ts > PR2 round 2 remaining contract paths > N1: per-proposition API also rejects a dependent whose prerequisite lacks evidence AssertionError: expected { kind: 'propose', …(5) } to be undefined - Expected: undefined + Received: { "capability": "task.resume", "commandId": "dependent", "decisions": [ "decision:run:frame:i:o:0:1:cd868c20:w:1:operation:operation", ], "expectedVersions": [ { "ref": { "authority": "a", "id": "A", "namespace": "tasks", "type": "task", }, "token": { "authority": "a", "observedAt": "2026-09-22T09:00:00.000Z", "token": "1", }, }, ], "kind": "propose", "slots": [ { "refs": [ { "authority": "a", "id": "A", "namespace": "tasks", "type": "task", }, ], "slot": "targets", }, ], } ❯ round2.test.ts:224:21 222| expect(compileSemanticTurn(turn,{frame}).commands).toHaveLength(0); 223| const command=propositionCommand(turn,dependent,{commandId:'depend… 224| expect(command).toBeUndefined(); | ^ 225| }); 226| it('N2: revised binding evidence is identical at validation and disp… ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/4]⎯ FAIL round2.test.ts > PR2 round 2 remaining contract paths > N2: revised binding evidence is identical at validation and dispatch AssertionError: expected '1' to be '2' // Object.is equality Expected: "2" Received: "1" ❯ round2.test.ts:234:56 232| expect(r.validates[0]![0].token.token).toBe('2'); 233| expect(r.invokes).toHaveLength(1); 234| expect(r.invokes[0]!.preconditions[0].token.token).toBe('2'); | ^ 235| }); 236| it('N3: retargeting removes obsolete slot read evidence',async()=>{ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/4]⎯ FAIL round2.test.ts > PR2 round 2 remaining contract paths > N3: retargeting removes obsolete slot read evidence AssertionError: expected [] to deeply equal [ 'B' ] - Expected + Received - [ - "B", - ] + [] ❯ round2.test.ts:242:23 240| await r.runtime.command({kind:'revise',commandId:'r',expectedInten… 241| await r.runtime.command({kind:'confirm',commandId:'c',intentRevisi… 242| expect(r.applied).toEqual(['B']); | ^ 243| }); 244| it('N4: independent target effects do not invalidate each other',asy… ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[3/4]⎯ FAIL round2.test.ts > PR2 round 2 remaining contract paths > N4: independent target effects do not invalidate each other AssertionError: expected [ 'A' ] to deeply equal [ 'A', 'B' ] - Expected + Received [ "A", - "B", ] ❯ round2.test.ts:249:23 247| const r=evidenceRig('none',true);await r.runtime.command(compiled.… 248| expect(r.invokes).toHaveLength(2); 249| expect(r.applied).toEqual(['A','B']); | ^ 250| }); 251| it('control: genuine argument read deps survive every target effect'… ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[4/4]⎯ Test Files 1 failed | 4 passed (5) Tests 4 failed | 42 passed (46) Start at 18:25:23 Duration 584ms (transform 285ms, setup 0ms, collect 955ms, tests 175ms, environment 1ms, prepare 422ms)