RUN v3.2.7 /tmp/circe-pr5-evidence ✓ recovery-round5.test.ts (3 tests) 28ms ✓ recovery-round2.test.ts (8 tests) 53ms ✓ recovery.test.ts (15 tests) 85ms ✓ controls.test.ts (5 tests) 122ms ✓ boundary.test.ts (2 tests) 142ms ✓ ownership.test.ts (3 tests) 190ms ✓ pr2-previous.test.ts (11 tests) 171ms ✓ additional.test.ts (9 tests) 154ms ✓ identity.test.ts (3 tests) 189ms ✓ round2.test.ts (5 tests) 221ms ✓ recovery-round4.test.ts (5 tests) 49ms ✓ previous.test.ts (18 tests) 251ms ✓ recovery-round3.test.ts (5 tests) 42ms ❯ jev-review.test.ts (9 tests | 3 failed) 116ms ✓ N1: the sole model request carries utterance and materialized candidate evidence 32ms × N2: the shared one-read decoder does not upgrade an ambiguous status through repeated getter reads 18ms → expected 'RESOLVED' to be 'AMBIGUOUS' // Object.is equality × N3: the workflow does not auto-bind the shared decoder status-switch case 13ms → expected 1 to be +0 // Object.is equality × N4: throwing response accessors become recorded errors, not a rejected workflow promise 9ms → unreadable answers ✓ N5: evaluation counts failed backend attempts as calls 20ms ✓ N6: a model ERROR response is counted as a backend failure 7ms ✓ N7: one workflow callback fault is reported and does not discard the remaining evaluation frames 4ms ✓ N8 control: valid Jev results stay detached and obey ambiguous backend status 4ms ✓ N9 control: valid two-frame evaluation records two calls and reported latency 6ms ✓ disk-round4.test.ts (3 tests) 30ms ✓ disk-round3.test.ts (7 tests) 19ms ✓ round3.test.ts (3 tests) 19ms ✓ disk.test.ts (11 tests) 25ms ✓ disk-round2.test.ts (6 tests) 27ms ✓ base-decoder-check.test.ts (2 tests) 14ms ⎯⎯⎯⎯⎯⎯⎯ Failed Tests 3 ⎯⎯⎯⎯⎯⎯⎯ FAIL jev-review.test.ts > N2: the shared one-read decoder does not upgrade an ambiguous status through repeated getter reads AssertionError: expected 'RESOLVED' to be 'AMBIGUOUS' // Object.is equality Expected: "AMBIGUOUS" Received: "RESOLVED" ❯ jev-review.test.ts:31:35 29| const analysis=analyzePerceptionResult([spec],raw); 30| expect(analysis.issues).toEqual([]); 31| expect(analysis.decoded?.status).toBe('AMBIGUOUS'); | ^ 32| expect(reads).toBe(1); 33| }); ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/3]⎯ FAIL jev-review.test.ts > N3: the workflow does not auto-bind the shared decoder status-switch case AssertionError: expected 1 to be +0 // Object.is equality - Expected + Received - 0 + 1 ❯ jev-review.test.ts:39:34 37| const backend:PerceptionBackend={id:'getter',model:'test',async decid… 38| const run=await runPerceptionWorkflow({backend,frame:await frame(),wo… 39| expect(run.state.accepted.size).toBe(0); | ^ 40| expect(run.status).toBe('AMBIGUOUS'); 41| }); ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/3]⎯ FAIL jev-review.test.ts > N4: throwing response accessors become recorded errors, not a rejected workflow promise Error: unreadable answers ❯ Object.get answers [as answers] jev-review.test.ts:44:145 42| 43| it('N4: throwing response accessors become recorded errors, not a reje… 44| const backend:PerceptionBackend={id:'throwing',model:'test',async dec… | ^ 45| const run=await runPerceptionWorkflow({backend,frame:await frame(),wo… 46| expect(run.status).toBe('ERROR'); ❯ analyzePerceptionResult ../circe-pr5-review/packages/perception/src/validation.ts:262:29 ❯ runPerceptionWorkflow ../circe-pr5-review/packages/perception/src/orchestrator.ts:328:22 ❯ jev-review.test.ts:45:12 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[3/3]⎯ Test Files 1 failed | 19 passed (20) Tests 3 failed | 130 passed (133) Start at 18:35:53 Duration 2.09s (transform 1.82s, setup 0ms, collect 7.77s, tests 1.95s, environment 6ms, prepare 2.94s)