summaryrefslogtreecommitdiffhomepage
path: root/packages/kernel
diff options
context:
space:
mode:
authorAdam Malczewski <[email protected]>2026-06-11 14:48:30 +0900
committerAdam Malczewski <[email protected]>2026-06-11 14:48:30 +0900
commitbfbad3af79cab23f52be0f6388311a5798b7fd04 (patch)
tree7bda9843aca8d7fad589ba0b7b5579e2627a3585 /packages/kernel
parent58e2ad559cccc8b35c513818e253b04e60af69b8 (diff)
downloaddispatch-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