summaryrefslogtreecommitdiffhomepage
path: root/src/features/chat
diff options
context:
space:
mode:
authorAdam Malczewski <[email protected]>2026-06-22 14:07:30 +0900
committerAdam Malczewski <[email protected]>2026-06-22 14:07:30 +0900
commit4e1d041c0ee34fa1b74b0d5ecbd432cdacf696e9 (patch)
tree1d4b482b2193631d96be3eb107974c1c6133220d /src/features/chat
parent06185717c61343e732002d782294f7de54c183b0 (diff)
downloaddispatch-web-4e1d041c0ee34fa1b74b0d5ecbd432cdacf696e9.tar.gz
dispatch-web-4e1d041c0ee34fa1b74b0d5ecbd432cdacf696e9.zip
feat: trim chunks during generation via step-complete syncTail (CR-6)
The backend now persists chunks at step boundaries during generation (CR-6). The FE calls syncTail on each step-complete event to fetch the newly committed chunks. applyHistory clears the provisional array when new committed chunks arrive mid-generation (they're duplicates of what was folded from live events). The accumulating chunk (current in-progress step) is kept. This means trimTranscript can now drop oldest committed chunks uniformly during a long turn — no unbounded provisional growth. The browser never holds more than chatLimit chunks, even mid-generation. 3 new tests: clears provisional on new committed during generation, keeps provisional when no new chunks, keeps accumulating when clearing. 689 tests green.
Diffstat (limited to 'src/features/chat')
-rw-r--r--src/features/chat/store.svelte.ts5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/features/chat/store.svelte.ts b/src/features/chat/store.svelte.ts
index 9beabfc..f6c23fc 100644
--- a/src/features/chat/store.svelte.ts
+++ b/src/features/chat/store.svelte.ts
@@ -284,6 +284,11 @@ export function createChatStore(deps: ChatStoreDependencies): ChatStore {
if (transcript.sealedTurnId !== null) {
void syncTail();
void syncMetrics();
+ } else if (msg.event.type === "step-complete") {
+ // CR-6: backend persists chunks at step boundaries. Fetch them
+ // as committed so trimTranscript can unload oldest chunks
+ // uniformly — no unbounded provisional growth during long turns.
+ void syncTail();
}
},