diff options
| author | Adam Malczewski <[email protected]> | 2026-06-30 01:30:06 +0900 |
|---|---|---|
| committer | Adam Malczewski <[email protected]> | 2026-06-30 01:30:06 +0900 |
| commit | bf74aeab143a49005c380706ae9847cf064fd2f2 (patch) | |
| tree | c9e93dc0ebe818e7c0d0aafeba8387afd161da3f /frontend-conversation-open-handoff.md | |
| parent | 6dd9ea9b935e5011c16faed6c869c976cf5ff172 (diff) | |
| download | dispatch-main.tar.gz dispatch-main.zip | |
Removed 40+ markdown files that were cluttering the repo root:
- frontend-*-handoff.md (28 files) — historical API contract handoffs, features all implemented
- backend-to-fe-handoff.md, backend-to-fe-handoff-2.md — old handoff docs
- broken-chat-repair-handoff.md — old repair handoff
- PLAN-mcp.md, PLAN-per-edit-diagnostics.md — old planning docs
- ai-review-report.md, crash-review-report.md — one-time review reports
- tasks.md, HANDOFF.md — outdated status docs (git log is the source of truth)
Kept: AGENTS.md, GLOSSARY.md, ORCHESTRATOR.md, README.md
Also: gitignored ai-review-report.md so future Gemini reviews don't commit it
Diffstat (limited to 'frontend-conversation-open-handoff.md')
| -rw-r--r-- | frontend-conversation-open-handoff.md | 53 |
1 files changed, 0 insertions, 53 deletions
diff --git a/frontend-conversation-open-handoff.md b/frontend-conversation-open-handoff.md deleted file mode 100644 index c4064ea..0000000 --- a/frontend-conversation-open-handoff.md +++ /dev/null @@ -1,53 +0,0 @@ -# FE handoff — conversation.open (CLI --open flag) - -Courier this to `../frontend`. All changes are ADDITIVE. - -## What shipped (backend) - -The CLI's `--open` flag (`dispatch send <id> --text "..." --open`) calls -`POST /conversations/:id/open`, which emits a `conversationOpened` bus event. The -transport-ws extension subscribes and broadcasts a new WS message to ALL connected -frontend clients. - -## New WS message (additive to `WsServerMessage`) - -```ts -interface ConversationOpenMessage { - readonly type: "conversation.open"; - readonly conversationId: string; -} -``` - -The `type` is `"conversation.open"` — add it to the FE's `WsServerMessage` union -handler. It arrives as a top-level WS message (not inside `chat.delta`). - -## What the FE needs to do - -1. **Handle the WS message** — when a `"conversation.open"` message arrives, open - (or focus) a tab for `conversationId`. The backend just signals; the FE decides - whether to actually open/focus or just notify. - -2. **Suggested behavior:** - - If the conversation is already open in a tab, focus that tab. - - If not, open a new tab for it (load its history via `GET /conversations/:id`). - - Do NOT auto-focus if the user is actively typing in another tab (optional — - your discretion). - -3. **No version bumps needed** — `@dispatch/transport-contract` already exports - `ConversationOpenMessage` (additive to `WsServerMessage` since `0.13.0`). The FE - just needs to add the `type: "conversation.open"` case to its WS message handler. - -## No other integration points - -- No new HTTP endpoints for the FE (the CLI calls `POST /conversations/:id/open`). -- No new surface types. -- No new `AgentEvent` types. -- The message is a global broadcast (sent to ALL connected clients), not per- - conversation. - -## Notes - -- The `--open` flag can be combined with `--queue` (enqueue + signal) or used - without `--queue` (blocking send + signal). -- Multiple clients (e.g. phone + laptop) all receive the broadcast — each decides - independently whether to open/focus. |
