RUN v4.1.1 /Users/sawyerhood/.bb-machines/bee.getbb.app/checkouts/bb/.claude/worktrees/wf_21e66a79-f02-23/apps/server ✓ @bb/server test/services/threads/repro-2066-unit-pr2067.test.ts > #2066 unit (PR #2067 signature) > replaces the previous revision of the same request shape 1ms ✓ @bb/server test/services/threads/repro-2066-unit-pr2067.test.ts > #2066 unit (PR #2067 signature) > keeps one entry for a single streaming thread regardless of revision count 1ms × @bb/server test/services/threads/repro-2066-unit.test.ts > #2066 unit > replaces the previous revision of the same request shape 2ms → Cannot read properties of undefined (reading 'value') × @bb/server test/services/threads/repro-2066-unit.test.ts > #2066 unit > is bounded only by the global LRU for a single streaming thread 0ms → Cannot read properties of undefined (reading 'value') ✓ @bb/server test/services/threads/pr-2067-adversarial.test.ts > PR #2067 adversarial > an oversized newer revision evicts the previous cacheable revision (claimed in PR body, untested there) 1ms ✓ @bb/server test/services/threads/pr-2067-adversarial.test.ts > PR #2067 adversarial > a replacement is most-recently-used for LRU purposes 1ms ✓ @bb/server test/services/threads/pr-2067-adversarial.test.ts > PR #2067 adversarial > a stale revision request never returns the newer cached value 0ms ✓ @bb/server test/services/threads/pr-2067-adversarial.test.ts > PR #2067 adversarial > bounded: N revisions of one shape never exceed one entry 1ms ✓ @bb/server test/services/threads/timeline-cache.test.ts > createThreadTimelineCache > builds once for the same key and serves cached on repeat 1ms ✓ @bb/server test/services/threads/timeline-cache.test.ts > createThreadTimelineCache > rebuilds and replaces the prior revision for the same request shape 0ms ✓ @bb/server test/services/threads/timeline-cache.test.ts > createThreadTimelineCache > retains separate request shapes independently 0ms ✓ @bb/server test/services/threads/timeline-cache.test.ts > createThreadTimelineCache > does not cache responses above the row cap (streaming expanded turns) 0ms ✓ @bb/server test/services/threads/timeline-cache.test.ts > createThreadTimelineCache > evicts least-recently-used entries beyond maxEntries 0ms ✓ @bb/server test/services/threads/timeline-cache.test.ts > buildThreadTimelineCacheKey > differs when any projection input differs 0ms ✓ @bb/server test/services/threads/timeline-cache.test.ts > buildThreadTimelineCacheKey > distinguishes older-page cursors 0ms ✓ @bb/server:isolated test/public/repro-2066-timeline-cache-retention.test.ts > #2066 timeline cache retains superseded revisions > keeps one resident response per appended event for the same request shape 357ms ⎯⎯⎯⎯⎯⎯⎯ Failed Tests 2 ⎯⎯⎯⎯⎯⎯⎯ FAIL @bb/server test/services/threads/repro-2066-unit.test.ts > #2066 unit > replaces the previous revision of the same request shape TypeError: Cannot read properties of undefined (reading 'value') ❯ Object.getOrBuild src/services/threads/timeline-cache.ts:68:23 66| entries.delete(paramsKey); 67| entries.set(paramsKey, cached); 68| return cached.value; | ^ 69| } 70| ❯ test/services/threads/repro-2066-unit.test.ts:63:11 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/2]⎯ FAIL @bb/server test/services/threads/repro-2066-unit.test.ts > #2066 unit > is bounded only by the global LRU for a single streaming thread TypeError: Cannot read properties of undefined (reading 'value') ❯ Object.getOrBuild src/services/threads/timeline-cache.ts:68:23 66| entries.delete(paramsKey); 67| entries.set(paramsKey, cached); 68| return cached.value; | ^ 69| } 70| ❯ test/services/threads/repro-2066-unit.test.ts:74:13 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/2]⎯ Test Files 1 failed | 4 passed (5) Tests 2 failed | 14 passed (16) Start at 09:28:29 Duration 2.28s (transform 1.25s, setup 0ms, import 1.98s, tests 369ms, environment 0ms)