summaryrefslogtreecommitdiffhomepage
path: root/src/features/chat/index.ts
diff options
context:
space:
mode:
authorAdam Malczewski <[email protected]>2026-06-22 01:31:29 +0900
committerAdam Malczewski <[email protected]>2026-06-22 01:31:29 +0900
commit8a04c21b718f5e88583f82d0604902e0cf411041 (patch)
tree28508f5697c35a9d0c8b71b71d71f95dd7a50297 /src/features/chat/index.ts
parent250575df308469c58477a53865f8763084612e5f (diff)
downloaddispatch-web-8a04c21b718f5e88583f82d0604902e0cf411041.tar.gz
dispatch-web-8a04c21b718f5e88583f82d0604902e0cf411041.zip
feat(compaction): conversation compacting + auto-compact threshold
Consume the compaction handoff ([email protected], [email protected]). Re-pinned file: deps + re-mirrored .dispatch/*.reference.md. - New 'Compaction' sidebar view (CompactionView.svelte): - 'Compact now' button → POST /conversations/:id/compact (loading indicator + result: 'N messages summarized, M kept') - Auto-compact threshold number input → GET/PUT /conversations/:id/compact-threshold (0 = disabled, default 350000) - Re-mounts per conversation via {#key} - App store: compactNow() + compactThreshold reactive state + setCompactThreshold(), seeded on focus change (like reasoning-effort + cwd) - conversation.compacted WS handler: reloads the SAME conversation's history (ID unchanged — old history forked to an archive, not a tab switch) - WS adapter parses newConversationId field on ConversationCompactedMessage - conformance guards + tests cover the new type 686 tests green.
Diffstat (limited to 'src/features/chat/index.ts')
-rw-r--r--src/features/chat/index.ts2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/features/chat/index.ts b/src/features/chat/index.ts
index 9b94392..9c65cd4 100644
--- a/src/features/chat/index.ts
+++ b/src/features/chat/index.ts
@@ -17,6 +17,8 @@ export {
export type { ChatStore, ChatStoreDependencies } from "./store.svelte";
export { createChatStore } from "./store.svelte";
export { default as ChatView } from "./ui/ChatView.svelte";
+export type { CompactNowResult, SaveCompactThresholdResult } from "./ui/CompactionView.svelte";
+export { default as CompactionView } from "./ui/CompactionView.svelte";
export { default as Composer } from "./ui/Composer.svelte";
export { default as ModelSelector } from "./ui/ModelSelector.svelte";
export { default as ReasoningEffortSelector } from "./ui/ReasoningEffortSelector.svelte";