RUN v3.2.7 /tmp/circe-pr9-baseline-evidence ❯ packages-file-log-src-index.test.ts (9 tests | 1 failed) 12ms ✓ append-only file log > round-trips records and reads through to disk 2ms ✓ append-only file log > tolerates a torn final line and repairs the boundary before appending 1ms ✓ append-only file log > separates a final record that lost only its newline 0ms ✓ append-only file log > refuses interior corruption but tolerates a torn fragment at the end 1ms ✓ append-only file log > refuses an invalid complete record at any position 0ms ✓ append-only file log > refuses a non-file path 0ms × append-only file log > rejects corrupt UTF-8 in a completed record instead of replacing bytes 5ms → expected [Function] to throw an error ✓ append-only file log > repairs an unterminated UTF-8 fragment at the exact byte boundary 1ms ✓ append-only file log > uses the caller's label in corruption messages 0ms ❯ packages-context-file-src-index.test.ts (15 tests | 4 failed) 68ms × durable semantic context store > preserves special probability keys while decoding 13ms → expected false to be true // Object.is equality × durable semantic context store > applies the same decoded operation shape that replay will apply 6ms → expected { …(5) } to deeply equal { …(6) } ✓ durable semantic context store > replays an exact state, including generations and the store version 19ms ✓ durable semantic context store > keeps frame-grounded invalidation semantics across a restart 5ms ✓ durable semantic context store > marks a result published after a restart-stale frame as stale on arrival 7ms ✓ durable semantic context store > tolerates a torn final line and repairs it on the next append 2ms × durable semantic context store > refuses a malformed record and a store without a format header 3ms → expected [Function] to throw an error ✓ durable semantic context store > reports the position of a decodable operation that cannot be applied 1ms ✓ durable semantic context store > refuses a non-file path 0ms × durable semantic context store > rejects values JSON cannot represent without poisoning the log 1ms → expected [Function] to throw an error ✓ durable semantic context store > refuses duplicate decisions and conflicting frames without recording them 1ms ✓ durable semantic context store > reopens for appends after close and still recovers them 1ms ✓ durable semantic context store > does not read a frame-grounded belief as current when its frame is absent 0ms ✓ file context store dependency identity > replays dependency links so a peer change invalidates only once 4ms ✓ file context store dependency identity > keeps generation identity stable across restart for the same ref tuple 1ms ❯ apps-inspector-src-heldout-review.test.ts (5 tests | 4 failed) 58ms × PR9 evaluation evidence > fails when the intended command creates a failed effect without applying it 27ms → expected true to be false // Object.is equality × PR9 evaluation evidence > does not skip an unmatched transcript entry to find a later convenient answer 4ms → promise resolved "{ status: 'RESOLVED', …(2) }" instead of rejecting × PR9 evaluation evidence > accepts an injected client and never gives it scripts or expected answers 7ms → expected [] to have a length of 2 but got +0 × PR9 evaluation evidence > counts actual backend calls when an observation is redelivered 12ms → expected false to be true // Object.is equality ✓ PR9 evaluation evidence > isolates repeated evaluations under the same output directory 8ms ❯ apps-inspector-src-host.test.ts (11 tests | 8 failed) 97ms × continuing interaction host > carries discourse into the next frame instead of defaulting to empty 20ms → expected [] to deeply equal [ …(2) ] ✓ continuing interaction host > derives active scope, referents and both obligation shapes from kernel state 1ms ✓ continuing interaction host > falls back to the provided refs when discourse has no scope 0ms ✓ continuing interaction host > reconstructs the same second turn with and without a restart 28ms × continuing interaction host > keeps the turn-1 effect record recoverable after a restart 5ms → expected [] to deeply equal [ …(2) ] × continuing interaction host > replays the pinned interpretation after restart without reasking or redispatching 7ms → expected 2 to be +0 // Object.is equality × continuing interaction host > reconciles a lost invocation response after restart without invoking again 4ms → second.reconcile is not a function × continuing interaction host > allows typed confirmation to continue a gated turn after restart 4ms → second.command is not a function × continuing interaction host > does not reinterpret an abstained observation when the same identity is retried 6ms → expected 2 to be +0 // Object.is equality × continuing interaction host > recovers a pinned turn when failure happens immediately before dispatch 6ms → expected 2 to be +0 // Object.is equality × continuing interaction host > serializes simultaneous turns and persists their decision provenance before execution 15ms → expected 2 to be 1 // Object.is equality ⎯⎯⎯⎯⎯⎯ Failed Tests 17 ⎯⎯⎯⎯⎯⎯⎯ FAIL apps-inspector-src-heldout-review.test.ts > PR9 evaluation evidence > fails when the intended command creates a failed effect without applying it AssertionError: expected true to be false // Object.is equality - Expected + Received - false + true ❯ apps-inspector-src-heldout-review.test.ts:21:31 19| }); 20| const evaluation = await runHeldOutEvaluation([HELD_OUT_CASES[0]!]… 21| expect(evaluation.passed).toBe(false); | ^ 22| expect(evaluation.cases[0]!.checks).toContainEqual(expect.objectCo… 23| }); ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/17]⎯ FAIL apps-inspector-src-heldout-review.test.ts > PR9 evaluation evidence > does not skip an unmatched transcript entry to find a later convenient answer AssertionError: promise resolved "{ status: 'RESOLVED', …(2) }" instead of rejecting - Expected + Received - Error { - "message": "rejected promise", + { + "answers": [], + "latencyMs": 0, + "status": "RESOLVED", } ❯ apps-inspector-src-heldout-review.test.ts:31:42 29| ]); 30| const request = { decisions: [{ id: "later" }] } as JevDecisionReq… 31| await expect(client.complete(request)).rejects.toThrow(/no held-ou… | ^ 32| }); 33| ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/17]⎯ FAIL apps-inspector-src-heldout-review.test.ts > PR9 evaluation evidence > accepts an injected client and never gives it scripts or expected answers AssertionError: expected [] to have a length of 2 but got +0 - Expected + Received - 2 + 0 ❯ apps-inspector-src-heldout-review.test.ts:46:22 44| }); 45| expect(evaluation.passed).toBe(true); 46| expect(requests).toHaveLength(2); | ^ 47| expect(requests[0]!.model).toBe("selected-live-model"); 48| expect(requests[0]).not.toHaveProperty("scripts"); ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[3/17]⎯ FAIL apps-inspector-src-heldout-review.test.ts > PR9 evaluation evidence > counts actual backend calls when an observation is redelivered AssertionError: expected false to be true // Object.is equality - Expected + Received - true + false ❯ apps-inspector-src-heldout-review.test.ts:59:31 57| scenario.turns = [{ ...first, restartAfter: true }, first]; 58| const evaluation = await runHeldOutEvaluation([scenario]); 59| expect(evaluation.passed).toBe(true); | ^ 60| expect(evaluation.metrics.backendCalls).toBe(2); 61| expect(evaluation.metrics.effects).toBe(1); ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[4/17]⎯ FAIL apps-inspector-src-host.test.ts > continuing interaction host > carries discourse into the next frame instead of defaulting to empty AssertionError: expected [] to deeply equal [ …(2) ] - Expected + Received - [ - "decision:host:interaction:inspector:event:utterance-1:referent:sketchy", - "decision:host:interaction:inspector:event:utterance-1:operation:operation", - ] + [] ❯ apps-inspector-src-host.test.ts:71:63 69| refs: [refA, refB], 70| }); 71| expect(host.context.decisions().map((trace) => trace.id)).toEqual(… | ^ 72| expect(first.frame.interaction.activeScope?.refs.map((ref) => ref.… 73| expect(first.frame.interaction.recentReferents.length).toBe(1); ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[5/17]⎯ FAIL apps-inspector-src-host.test.ts > continuing interaction host > keeps the turn-1 effect record recoverable after a restart AssertionError: expected [] to deeply equal [ …(2) ] - Expected + Received - [ - "decision:host:interaction:inspector:event:utterance-1:referent:sketchy", - "decision:host:interaction:inspector:event:utterance-1:operation:operation", - ] + [] ❯ apps-inspector-src-host.test.ts:231:66 229| now: T1, 230| }); 231| expect(first.context.decisions().map((trace) => trace.id)).toEqu… | ^ 232| const effectIds = report.results.flatMap((result) => result.effe… 233| expect(effectIds).toHaveLength(1); ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[6/17]⎯ FAIL apps-inspector-src-host.test.ts > continuing interaction host > replays the pinned interpretation after restart without reasking or redispatching AssertionError: expected 2 to be +0 // Object.is equality - Expected + Received - 0 + 2 ❯ apps-inspector-src-host.test.ts:285:25 283| }); 284| const replay = await second.runTurn(input); 285| expect(decisions).toBe(0); | ^ 286| expect(replay.run.runId).toBe(original.run.runId); 287| expect(replay.compiled.commands).toEqual(original.compiled.comma… ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[7/17]⎯ FAIL apps-inspector-src-host.test.ts > continuing interaction host > reconciles a lost invocation response after restart without invoking again TypeError: second.reconcile is not a function ❯ apps-inspector-src-host.test.ts:316:20 314| first.close(); 315| const second = createFileContinuingInteractionHost(config); 316| await second.reconcile(effect.id, T2); | ^ 317| expect(second.state().effects.get(effect.id)!.status).toBe("SUCC… 318| expect(world.invoked).toHaveLength(1); ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[8/17]⎯ FAIL apps-inspector-src-host.test.ts > continuing interaction host > allows typed confirmation to continue a gated turn after restart TypeError: second.command is not a function ❯ apps-inspector-src-host.test.ts:350:38 348| const transactionId = second.state().presentedGateId!; 349| const intent = second.state().intents.get(second.state().transac… 350| const confirmed = await second.command({ | ^ 351| kind: "confirm", 352| commandId: "event:gated-confirm", ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[9/17]⎯ FAIL apps-inspector-src-host.test.ts > continuing interaction host > does not reinterpret an abstained observation when the same identity is retried AssertionError: expected 2 to be +0 // Object.is equality - Expected + Received - 0 + 2 ❯ apps-inspector-src-host.test.ts:407:25 405| }); 406| const replay = await retry.runTurn(input); 407| expect(decisions).toBe(0); | ^ 408| expect(replay.compiled.commands).toEqual([]); 409| expect(replay.run.runId).toBe(original.run.runId); ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[10/17]⎯ FAIL apps-inspector-src-host.test.ts > continuing interaction host > recovers a pinned turn when failure happens immediately before dispatch AssertionError: expected 2 to be +0 // Object.is equality - Expected + Received - 0 + 2 ❯ apps-inspector-src-host.test.ts:447:25 445| }); 446| const recovered = await second.runTurn(input); 447| expect(decisions).toBe(0); | ^ 448| expect(recovered.compiled.commands).toHaveLength(1); 449| expect(secondWorld.invoked.map((ref) => ref.id)).toEqual(["A"]); ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[11/17]⎯ FAIL apps-inspector-src-host.test.ts > continuing interaction host > serializes simultaneous turns and persists their decision provenance before execution AssertionError: expected 2 to be 1 // Object.is equality - Expected + Received - 1 + 2 ❯ apps-inspector-src-host.test.ts:492:23 490| const [first, second] = await Promise.all([firstPromise, secondPro… 491| 492| expect(maxActive).toBe(1); | ^ 493| expect(second.frame.utterance.text).toBe("Continue the task again.… 494| expect(host.context.decisions().map((trace) => trace.id)).toEqual([ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[12/17]⎯ FAIL packages-context-file-src-index.test.ts > durable semantic context store > preserves special probability keys while decoding AssertionError: expected false to be true // Object.is equality - Expected + Received - true + false ❯ packages-context-file-src-index.test.ts:164:75 162| expect(decoded.op).toBe("record-decision"); 163| if (decoded.op !== "record-decision") throw new Error("unexpected … 164| expect(Object.hasOwn(decoded.trace.probabilities ?? {}, "__proto__… | ^ 165| expect(decoded.trace.probabilities?.["__proto__"]).toBe(0.75); 166| }); ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[13/17]⎯ FAIL packages-context-file-src-index.test.ts > durable semantic context store > applies the same decoded operation shape that replay will apply AssertionError: expected { …(5) } to deeply equal { …(6) } - Expected + Received @@ -7,7 +7,6 @@ "authority": "tracker", "id": "a", "namespace": "tasks", "type": "task", }, - "runtimeOnly": "must be discarded consistently", } ❯ packages-context-file-src-index.test.ts:183:32 181| 182| const reopened = createFileContextStore(path); 183| expect(reopened.entity(a)).toEqual(before); | ^ 184| expect(reopened.entity(a)).not.toHaveProperty("runtimeOnly"); 185| reopened.close(); ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[14/17]⎯ FAIL packages-context-file-src-index.test.ts > durable semantic context store > refuses a malformed record and a store without a format header AssertionError: expected [Function] to throw an error - Expected: null + Received: undefined ❯ packages-context-file-src-index.test.ts:318:58 316| '{"op":"format","name":"circe-semantic-store","version":1}\n{"op… 317| ); 318| expect(() => createFileContextStore(repeatedHeader)).toThrow(/unex… | ^ 319| }); 320| ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[15/17]⎯ FAIL packages-context-file-src-index.test.ts > durable semantic context store > rejects values JSON cannot represent without poisoning the log AssertionError: expected [Function] to throw an error - Expected: null + Received: undefined ❯ packages-context-file-src-index.test.ts:366:9 364| evidence: authorityEvidence("tracker", "symbol", NOW), 365| observedAt: NOW, 366| })).toThrow(/symbol keys/); | ^ 367| const sparse = new Array(1); 368| expect(() => store.invalidate(sparse, NOW)).toThrow(/undefined/); ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[16/17]⎯ FAIL packages-file-log-src-index.test.ts > append-only file log > rejects corrupt UTF-8 in a completed record instead of replacing bytes AssertionError: expected [Function] to throw an error - Expected: null + Received: undefined ❯ packages-file-log-src-index.test.ts:81:35 79| Buffer.from('{"n":1,"evidence":"'), Buffer.from([0xff]), Buffer.… 80| ])); 81| expect(() => numberLog(path)).toThrow(/invalid UTF-8/); | ^ 82| }); 83| ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[17/17]⎯ Test Files 4 failed (4) Tests 17 failed | 23 passed (40) Start at 09:06:04 Duration 673ms (transform 447ms, setup 0ms, collect 945ms, tests 234ms, environment 1ms, prepare 273ms)