summaryrefslogtreecommitdiffhomepage
path: root/GLOSSARY.md
diff options
context:
space:
mode:
authorAdam Malczewski <[email protected]>2026-06-06 22:08:16 +0900
committerAdam Malczewski <[email protected]>2026-06-06 22:08:16 +0900
commite1c8cf3257cb33457aa882c548f5195ecc0f9854 (patch)
treed355147cdab8eb77917ad02caedf26b3d8d0be57 /GLOSSARY.md
downloaddispatch-web-e1c8cf3257cb33457aa882c548f5195ecc0f9854.tar.gz
dispatch-web-e1c8cf3257cb33457aa882c548f5195ecc0f9854.zip
Slice 1: surface system + WS transport + composition root
Pure-core feature libraries assembled at the composition root: - core/protocol: pure reducer over surface catalog/spec/error messages - features/surface-host: generic field-kind interpreter (toggle/progress/ selector/stat/button) + pure plan logic; no surface-id special-casing - adapters/ws: injected WebSocket client (effects at the edge) - app: composition root store (Svelte 5 runes over the pure reducer), host-relative surface WS URL resolution (resolveWsUrl), root App.svelte Verified green: svelte-check 0/0, vitest 84 passed, biome clean, vite build ok.
Diffstat (limited to 'GLOSSARY.md')
-rw-r--r--GLOSSARY.md30
1 files changed, 30 insertions, 0 deletions
diff --git a/GLOSSARY.md b/GLOSSARY.md
new file mode 100644
index 0000000..4bce7a7
--- /dev/null
+++ b/GLOSSARY.md
@@ -0,0 +1,30 @@
+# Glossary — canonical vocabulary (dispatch-web)
+
+> One name per concept. Shared backend terms are adopted VERBATIM (no drift).
+> New term? The orchestrator proposes the standard name and the user confirms
+> before it lands (§5.6). "Aliases to avoid" maps wrong names back to the canonical.
+
+## 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 |
+| **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 |
+| **chunk** | One ordered piece of a message (text/thinking/tool-call/result), append-only. | block, segment |
+| **AgentEvent** | An outward event the runtime emits during a turn (text-delta, tool-call, usage, done, turn-sealed, …). | — |
+| **model name** | The selectable id in `<credentialName>/<model>` form. | model id, model reference |
+| **model catalog** | The list of available model names. | model list |
+
+## Frontend-specific
+| Term | Meaning | Aliases to avoid |
+|---|---|---|
+| **surface** | A backend-declared, frontend-agnostic data contribution (fields + values + actions); rendered generically by any client. NOT UI/styling. | widget, panel-data |
+| **region** | Where a surface mounts — a coarse, semantic placement hint (NOT layout/CSS). | slot (clashes with Svelte `<slot>`) |
+| **field kind** | The semantic type of a surface field (toggle/progress/selector/stat/button/custom). | widget type, control type |
+| **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) |
+| **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. | — |