diff options
| author | Adam Malczewski <[email protected]> | 2026-06-07 02:20:51 +0900 |
|---|---|---|
| committer | Adam Malczewski <[email protected]> | 2026-06-07 02:20:51 +0900 |
| commit | 48c9c278e6230376d014587db6741faa396baaab (patch) | |
| tree | 2529a395ba098dcaeaa8d4286777935d36bcb363 /index.html | |
| parent | e2ffae81315e1cedabd4a7a9384b836ed93d508a (diff) | |
| download | dispatch-web-48c9c278e6230376d014587db6741faa396baaab.tar.gz dispatch-web-48c9c278e6230376d014587db6741faa396baaab.zip | |
Slice 3 wave B: tabbed multi-conversation app + model selector (DaisyUI)
- store.svelte.ts: tabs store over injected localStorage; one chat store per
conversation (Map); single WS routes chat.delta/error by conversationId;
draft (null active) mints a conversationId and becomes a tab on first send
(title from deriveTitle); GET /models catalog; default model flash; close tab
= dispose + cache.delete (local forget) + neighbour activation; restore tabs
from storage + load() on construct
- App.svelte: DaisyUI tab strip (+ / close), model selector, chat, surfaces
- AppStore: tabs/activeConversationId/activeChat/models/activeModel +
send/selectModel/newDraft/selectTab/closeTab; +localStorage inject opt
Verified: svelte-check 0/0, vitest 281 (stable x2), biome clean, build ok.
Diffstat (limited to 'index.html')
0 files changed, 0 insertions, 0 deletions
