diff options
| author | Adam Malczewski <[email protected]> | 2026-06-25 11:27:43 +0900 |
|---|---|---|
| committer | Adam Malczewski <[email protected]> | 2026-06-25 11:27:43 +0900 |
| commit | c1bc7bfaaca7bdf4d9b2973f5dc88605217a7866 (patch) | |
| tree | 204de76d526a052712bba0a97bfe8a5d8935ea64 /packages/cli/src/main.ts | |
| parent | 59c481dc96aa40b8c8f0a81bb294a77d4e5aa533 (diff) | |
| download | dispatch-c1bc7bfaaca7bdf4d9b2973f5dc88605217a7866.tar.gz dispatch-c1bc7bfaaca7bdf4d9b2973f5dc88605217a7866.zip | |
feat(cli): add --workspace filter to 'dispatch list'
The backend already supported GET /conversations?workspaceId= but the CLI
never sent it. Wire the list command to that filter:
- args.ts: parse --workspace / -w on 'list' (placed before the --catch-all
so the single-dash -w shorthand isn't taken for a positional prefix);
add workspaceId? to the list ParsedCommand.
- http.ts: add workspaceId? to FetchConversationsOpts; send ?workspaceId=
(after q/status, preserving URLSearchParams order).
- main.ts: forward parsed.workspaceId into fetchConversations; update USAGE.
Composable with --status and the <prefix> short-id arg. 'Open conversations
in workspace X' is now: dispatch list --workspace X (status defaults to
active,idle). No contract changes — purely additive CLI wiring.
Tests: +4 args (incl. composability + missing-value error), +2 http
(exact ?workspaceId= URL + combined status/workspaceId with %2C encoding).
typecheck EXIT 0, biome clean (364 files), full suite 1558 passed.
Live-verified against an isolated server.
Diffstat (limited to 'packages/cli/src/main.ts')
| -rw-r--r-- | packages/cli/src/main.ts | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/packages/cli/src/main.ts b/packages/cli/src/main.ts index b61be07..cba0de7 100644 --- a/packages/cli/src/main.ts +++ b/packages/cli/src/main.ts @@ -24,7 +24,7 @@ import { extractLastText, formatConversationList, renderEvent } from "./render.j const USAGE = `Usage: dispatch models [--server <url>] - dispatch list [<prefix>] [--status <active|idle|closed>] [--all] [--server <url>] + dispatch list [<prefix>] [--status <active|idle|closed>] [--workspace <id>] [--all] [--server <url>] dispatch stop <conversationId> [--server <url>] dispatch compact <conversationId> [--server <url>] dispatch read <conversationId> [--server <url>] @@ -61,6 +61,7 @@ async function main(): Promise<void> { server: parsed.server, ...(parsed.query !== undefined && { query: parsed.query }), ...(status !== undefined && { status }), + ...(parsed.workspaceId !== undefined && { workspaceId: parsed.workspaceId }), }, ); const table = formatConversationList(result.conversations, Date.now()); |
