summaryrefslogtreecommitdiffhomepage
path: root/packages/cli/src/http.ts
diff options
context:
space:
mode:
authorAdam Malczewski <[email protected]>2026-06-25 11:27:43 +0900
committerAdam Malczewski <[email protected]>2026-06-25 11:27:43 +0900
commitc1bc7bfaaca7bdf4d9b2973f5dc88605217a7866 (patch)
tree204de76d526a052712bba0a97bfe8a5d8935ea64 /packages/cli/src/http.ts
parent59c481dc96aa40b8c8f0a81bb294a77d4e5aa533 (diff)
downloaddispatch-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/http.ts')
-rw-r--r--packages/cli/src/http.ts2
1 files changed, 2 insertions, 0 deletions
diff --git a/packages/cli/src/http.ts b/packages/cli/src/http.ts
index 42fcfec..e13842a 100644
--- a/packages/cli/src/http.ts
+++ b/packages/cli/src/http.ts
@@ -98,6 +98,7 @@ interface FetchConversationsOpts {
readonly server: string;
readonly query?: string;
readonly status?: string;
+ readonly workspaceId?: string;
}
export async function fetchConversations(
@@ -107,6 +108,7 @@ export async function fetchConversations(
const params = new URLSearchParams();
if (opts.query !== undefined) params.set("q", opts.query);
if (opts.status !== undefined) params.set("status", opts.status);
+ if (opts.workspaceId !== undefined) params.set("workspaceId", opts.workspaceId);
const qs = params.toString();
const url = qs.length > 0 ? `${opts.server}/conversations?${qs}` : `${opts.server}/conversations`;
const res = await deps.fetchImpl(url);