From 90c438c4562793eb09358f9d1a050d2267f4fca5 Mon Sep 17 00:00:00 2001 From: Adam Malczewski Date: Sun, 7 Jun 2026 01:53:47 +0900 Subject: Slice 3 setup: Tailwind v4 + DaisyUI v5 (dracula enabled) + 'tab' vocab - add tailwindcss@4 + @tailwindcss/vite + daisyui@5; vite tailwind plugin - src/app.css: @import tailwindcss + @plugin daisyui { themes: dracula --default } (theme BUNDLED, not just named); imported in main.ts - index.html: - biome.json: enable css tailwindDirectives so @plugin parses - GLOSSARY: define FE term 'tab' (workspace slot referencing a conversation; holds conversationId + model + title; close = local forget) Verified: dracula tokens bundled in CSS, svelte-check 0/0, vitest 222, biome clean, build ok. --- GLOSSARY.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'GLOSSARY.md') diff --git a/GLOSSARY.md b/GLOSSARY.md index 4bce7a7..2d25fd3 100644 --- a/GLOSSARY.md +++ b/GLOSSARY.md @@ -7,7 +7,7 @@ ## Shared with the backend (canonical — do NOT redefine) | Term | Meaning | Aliases to avoid | |---|---|---| -| **conversation** | A single thread of turns with persisted history, id'd by `conversationId`. | tab, session, thread, chat | +| **conversation** | A single thread of turns with persisted history, id'd by `conversationId`. | session, thread, chat (and do NOT call the conversation itself a "tab" — a tab *references* one; see FE "tab") | | **conversationId** | The string id threading multi-turn history. | tabId, sessionId, chatId | | **turn** | One user message → assistant response cycle (may span steps). | — | | **step** | One LLM round-trip within a turn. | iteration | @@ -25,6 +25,7 @@ | **action / action ref** | A backend-invokable action; a field carries an *action ref* the client posts back. (Backend calls this a `command` for now.) | — | | **surface catalog** | The list of available surfaces (metadata) the FE fetches to discover them (`GET /surfaces`). | capability manifest | | **view** | RESERVED — the old-Dispatch sidebar affordance (settings / feature views); a FUTURE FE concept, NOT a surface. | (do not reuse) | +| **tab** | A FE workspace slot in the tab strip that *references* one open conversation — holds its `conversationId`, the selected **model name**, and a derived title. Distinct from the conversation itself (the backend thread): closing a tab forgets it LOCALLY (drops the slot + evicts its FE cache); the conversation persists server-side. Open tabs + the active tab are persisted locally. | (do not conflate with **conversation**) | | **feature module** | A self-contained FE feature (chat, history explorer, …); feature-as-a-library, composed at the root. | — | | **composition root** | The single place (`src/app/`) that imports + wires feature modules + the surface host. | — | | **surface interpreter** | The generic renderer: field kind → component. Knows kinds, never surface ids. | — | -- cgit v1.2.3