diff options
| author | Adam Malczewski <[email protected]> | 2026-06-11 14:48:30 +0900 |
|---|---|---|
| committer | Adam Malczewski <[email protected]> | 2026-06-11 14:48:30 +0900 |
| commit | bfbad3af79cab23f52be0f6388311a5798b7fd04 (patch) | |
| tree | 7bda9843aca8d7fad589ba0b7b5579e2627a3585 /packages/kernel | |
| parent | 58e2ad559cccc8b35c513818e253b04e60af69b8 (diff) | |
| download | dispatch-bfbad3af79cab23f52be0f6388311a5798b7fd04.tar.gz dispatch-bfbad3af79cab23f52be0f6388311a5798b7fd04.zip | |
feat(cache-warming): CR-3 — manual warm resets timer + nextWarmAt/lastWarmAt surface
FE CR-3 (backend-handoff-cache-warming-timer.md). The inversion: session-orchestrator's
warm() (the single chokepoint for manual /chat/warm AND the automatic timer) emits a
warmCompleted bus event; cache-warming subscribes and does ALL post-warm handling. So a
manual warm now re-arms the timer + refreshes the surface with NO transport-http change
(core can't depend on the standard cache-warming ext).
- session-orchestrator: warmCompleted event hook + emit from warm() on success
- cache-warming: warmCompleted subscriber unifies result handling (manual + automatic);
adds nextWarmAt/lastWarmAt state + a custom 'cache-warming-timer' surface field
- fix: createWarmService was missing the emit dep (deps.emit?. silently no-oped) →
wired it + made emit REQUIRED so it can't regress
Live-verified vs claude haiku: manual POST /chat/warm now logs cache-warming 'warm
complete' ~2s after the turn (not the 4-min timer) → manual warm reaches the warmer.
800 vitest + 109 bun green; tsc -b 0; biome clean.
Diffstat (limited to 'packages/kernel')
0 files changed, 0 insertions, 0 deletions
