summaryrefslogtreecommitdiffhomepage
path: root/src/app/views
diff options
context:
space:
mode:
authorAdam Malczewski <[email protected]>2026-10-24 18:34:12 +0900
committerAdam Malczewski <[email protected]>2026-10-24 18:34:12 +0900
commit48cdc3d19a319981a8a4128be98db3c283f81790 (patch)
tree0fa6531f3b05c81348f9d3427e9021dbb4832b5d /src/app/views
parentdaefad66bdf8dee132d701a3b43ce0d227dde241 (diff)
downloaddispatch-web-48cdc3d19a319981a8a4128be98db3c283f81790.tar.gz
dispatch-web-48cdc3d19a319981a8a4128be98db3c283f81790.zip
feat: render live text-file embeds in expandable Markdown blocks
Show rendered first/last six-line previews with expand, refresh and retry; bound and deduplicate context-guarded fetches. Verify 2586 tests twice with Node Web Storage compatibility flag, 2 live integration tests, typecheck, Biome and production build.
Diffstat (limited to 'src/app/views')
-rw-r--r--src/app/views/ChatPane.svelte11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/app/views/ChatPane.svelte b/src/app/views/ChatPane.svelte
index d132fad..b5e05bb 100644
--- a/src/app/views/ChatPane.svelte
+++ b/src/app/views/ChatPane.svelte
@@ -13,6 +13,16 @@
let { ports }: { ports: AppViewPorts } = $props();
const store = $derived(ports.store);
+ const textFiles = $derived.by(() => {
+ void store.activeWorkspaceId;
+ void store.textFileContextRevision;
+ const id = store.activeConversationId;
+ return id ? store.createTextFileClient(id) : undefined;
+ });
+ $effect(() => {
+ const client = textFiles;
+ return () => client?.dispose();
+ });
// Cache timer: Claude Code subscription models only (5-minute prompt-cache expiry).
const cacheTimer = $derived(
@@ -88,6 +98,7 @@
providerRetry={store.activeChat.providerRetry}
apiBaseUrl={store.httpBase}
cwd={store.cwd}
+ {textFiles}
{cacheTimer}
/>
{/key}