summaryrefslogtreecommitdiffhomepage
path: root/notes/restructure-plan.md
diff options
context:
space:
mode:
authorAdam Malczewski <[email protected]>2026-06-06 18:55:53 +0900
committerAdam Malczewski <[email protected]>2026-06-06 18:55:53 +0900
commit22936857685c318b71752d625808100b1a96e63e (patch)
tree5e10a73d616c206e3820a8d8568e5f3d4c8a302e /notes/restructure-plan.md
parent969afc45f895230fe3da1c737f18e64452efc8f2 (diff)
downloaddispatch-22936857685c318b71752d625808100b1a96e63e.tar.gz
dispatch-22936857685c318b71752d625808100b1a96e63e.zip
feat(frontend,wire): surface system (FE slice 1) + @dispatch/wire types-only split (B2)
FE slice 1 — backend-declared, frontend-agnostic surface system (verified live): new types-only @dispatch/ui-contract (SurfaceSpec / field kinds / region / ActionRef / catalog), surface-registry (typed service handle), transport-ws (Bun WS :24205, path-agnostic upgrade), surface-loaded-extensions (first real surface); kernel HostAPI.getExtensions; host-bin wiring; bin/up. Harness: retire AGENTS 'backend only', ORCHESTRATOR §3/§7/§8, frontend-design.md locked. B2 — wire-types split (chat-slice prerequisite): new types-only @dispatch/wire single-sources the wire ABI (AgentEvent + 11 variants; conversation model Chunk/ChatMessage/Role/TurnId/StepId + 6 chunk variants; Usage) with zero @dispatch/* deps. @dispatch/kernel re-exports via shims so its public surface is byte-identical (zero consumer blast radius). transport-contract re-exports AgentEvent from @dispatch/wire and drops its @dispatch/kernel dependency, so HTTP clients (the web frontend) consume the wire without the kernel runtime. tsc -b + biome clean; 460 vitest + 77 bun pass.
Diffstat (limited to 'notes/restructure-plan.md')
-rw-r--r--notes/restructure-plan.md6
1 files changed, 6 insertions, 0 deletions
diff --git a/notes/restructure-plan.md b/notes/restructure-plan.md
index 1c9e5e6..e6565c2 100644
--- a/notes/restructure-plan.md
+++ b/notes/restructure-plan.md
@@ -1387,6 +1387,12 @@ and permissions. Two consequences:
active" sync (§5.1) — start with fresh-summoned agents.
- TypeScript language server wired into `dispatch.toml` is a **prerequisite**
for §5.3's `lsp references` workflow (today only Luau is configured).
+ - **Vocabulary unification — `command` → `action` (P8; raised during the frontend design,
+ `notes/frontend-design.md` §9):** the frontend names a backend-invokable action
+ `action` / `action ref`; the backend's existing contribution point is `command`. Review
+ renaming `command` → `action` so both sides share ONE term. Until this review the backend
+ keeps `command` and the frontend uses `action`. Cheap today (the `command` contribution is
+ design-stage, lightly built); if pursued, fan out via `lsp references`.
- **Decided so far:**
- ~~Tool-dispatch default policy~~ — **DECIDED** (§3.3): default
`{ maxConcurrent: 1, eager: true }`.