From b346a50c3757b3df6086f11b995847144a5e07e8 Mon Sep 17 00:00:00 2001 From: Adam Malczewski Date: Tue, 23 Jun 2026 03:27:01 +0900 Subject: feat: workspaces — session-orchestrator + transport-http + transport-ws + cli (Wave 2+3) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit session-orchestrator: workspaceId on StartTurnInput/EnqueueInput; effective cwd resolution (getCwd → getEffectiveCwd); auto-create workspace on turn start; warm parity (same effective cwd). 93 tests (+8). transport-http: workspace routes (GET/PUT/DELETE /workspaces, title, default-cwd); workspaceId threading on POST /chat + queue; ?workspaceId= filter on GET /conversations; DELETE /conversations/:id/cwd (clears explicit cwd); GET /conversations/:id/lsp uses effective cwd; slug validation. 166 tests. transport-ws: workspaceId threading on chat.send + chat.queue. 32 tests. cli: --workspace/-w flag; ConversationMeta test fakes fixed. 123 tests. Full typecheck EXIT 0, biome clean. 1283 vitest + 199 transport bun pass (1 pre-existing tool-shell failure unrelated to workspaces). --- packages/cli/src/main.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'packages/cli/src/main.ts') diff --git a/packages/cli/src/main.ts b/packages/cli/src/main.ts index 5935bab..9dfc317 100644 --- a/packages/cli/src/main.ts +++ b/packages/cli/src/main.ts @@ -29,8 +29,8 @@ const USAGE = `Usage: dispatch compact [--server ] dispatch read [--server ] dispatch open [--server ] - dispatch send --text "..." [--queue] [--open] [--cwd ] [--effort ] [--server ] - dispatch --text "..." [--file ] [--cwd ] [--conversation ] [--effort ] [--server ] [--show-reasoning] [--open] + dispatch send --text "..." [--queue] [--open] [--cwd ] [--effort ] [--workspace ] [--server ] + dispatch --text "..." [--file ] [--cwd ] [--conversation ] [--effort ] [--workspace ] [--server ] [--show-reasoning] [--open] dispatch --help Effort levels: low, medium, high (default), xhigh, max`; @@ -171,6 +171,7 @@ async function main(): Promise { message: parsed.text, ...(parsed.cwd !== undefined && { cwd: parsed.cwd }), ...(parsed.reasoningEffort !== undefined && { reasoningEffort: parsed.reasoningEffort }), + ...(parsed.workspaceId !== undefined && { workspaceId: parsed.workspaceId }), }; const { events } = await streamChat( { fetchImpl: globalThis.fetch }, -- cgit v1.2.3