diff options
| author | Adam Malczewski <[email protected]> | 2026-06-21 21:47:24 +0900 |
|---|---|---|
| committer | Adam Malczewski <[email protected]> | 2026-06-21 21:47:24 +0900 |
| commit | fd81987fcec0178ae2c466800b428e1b1dfc4ab0 (patch) | |
| tree | 646e39ed43c64f763721553ba7a7821d62730df8 /.dispatch/wire.reference.md | |
| parent | 90ab92626555bb6a764a3c15fc03ac3e36966226 (diff) | |
| download | dispatch-web-fd81987fcec0178ae2c466800b428e1b1dfc4ab0.tar.gz dispatch-web-fd81987fcec0178ae2c466800b428e1b1dfc4ab0.zip | |
feat(ws): handle conversation.open broadcast — open/focus tab from CLI --open
Consume the conversation.open handoff ([email protected], [email protected]).
Re-pinned file: deps + re-mirrored .dispatch/*.reference.md.
- WS adapter (logic.ts + index.ts): parse + route the new top-level
"conversation.open" WsServerMessage to an onConversationOpen handler
- app store: openConversation(id) opens (or focuses) a tab — creates a chat
store, loads history, subscribes to live turns, creates+selects the tab
- conformance guard + WS adapter tests cover the new type
- backend also shipped conversation metadata endpoints (GET /conversations,
GET /conversations/:id/last, GET/PUT /conversations/:id/title) — mirrored
but not yet consumed by the FE
682 tests green.
Diffstat (limited to '.dispatch/wire.reference.md')
| -rw-r--r-- | .dispatch/wire.reference.md | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/.dispatch/wire.reference.md b/.dispatch/wire.reference.md index c2c4d43..e96c353 100644 --- a/.dispatch/wire.reference.md +++ b/.dispatch/wire.reference.md @@ -4,9 +4,13 @@ > types WITHOUT following the `file:` dep symlink out of this repo (which hangs on a permission > prompt). Your CODE still imports `@dispatch/wire` normally — this file is for READING only. > -> **Orchestrator:** SNAPSHOT of `[email protected]` (message queue + steering). Regenerate +> **Orchestrator:** SNAPSHOT of `[email protected]` (conversation metadata). Regenerate > whenever `@dispatch/wire` changes. > +> **2026-06-21 delta (conversation.open handoff — package bumped `0.8.0` → `0.9.0`, ADDITIVE):** +> adds `ConversationMeta` — metadata for a conversation (id, title, createdAt, lastActivityAt), +> returned by `GET /conversations` (the list endpoint, see `[email protected]`). +> > **2026-06-21 delta (message-queue + steering handoff — package bumped `0.7.0` → `0.8.0`, ADDITIVE):** > adds the per-conversation **message queue** + **steering** feature. While a turn is GENERATING, > a client enqueues a user message (via the `chat.queue` WS op or `POST /conversations/:id/queue`, @@ -577,4 +581,19 @@ export interface TurnSteeringEvent { readonly turnId: string; readonly text: string; } + +// ─── Conversation metadata ─────────────────────────────────────────────────── + +/** + * Metadata for a conversation, returned by `GET /conversations` (the list + * endpoint). The title defaults to the first user message (truncated) and can + * be set via `PUT /conversations/:id/title`. `createdAt` is set on first write; + * `lastActivityAt` is updated on every append. + */ +export interface ConversationMeta { + readonly id: string; + readonly createdAt: number; + readonly lastActivityAt: number; + readonly title: string; +} ``` |
