Attach via /sessions picker instead of creating parallel agents; mirror the same session trajectory to phone and Web (Codex-style remote). Co-authored-by: Cursor <cursoragent@cursor.com>
30 lines
1.0 KiB
Markdown
30 lines
1.0 KiB
Markdown
# Design: Telegram remote control for live DSH sessions
|
|
|
|
Date: 2026-08-14
|
|
Status: Approved (ship MVP)
|
|
|
|
## Goal
|
|
|
|
Phone Telegram remote-controls **live** DeepSeek Harness agents in the same `dsh web` process (Codex-style). Web session is source of truth; Telegram attaches — does **not** create parallel agents.
|
|
|
|
## MVP
|
|
|
|
- Auth allowlist + long poll
|
|
- `/sessions` lists `ctx.agents.list()` / `roots()` with inline keyboard
|
|
- Bind chat → live `Agent`; plain text → `agent.followup`
|
|
- Mirror `session/event` (`turn/start`, `assistant/message`) to all Telegram chats bound to that session id
|
|
- `/unbind` clears binding only (never dispose host agent)
|
|
- Empty live list → prompt to open a Web conversation first
|
|
|
|
## Non-goals (later)
|
|
|
|
- Disk resume / history search
|
|
- Auto-create parallel agents
|
|
- Streaming edit-in-place, media, webhook
|
|
|
|
## Binding rules
|
|
|
|
- One Telegram chat → at most one bound agent; re-select replaces
|
|
- Multiple chats may bind the same live agent (all receive mirrors)
|
|
- On `stop()`: clear bindings only; do not dispose live agents
|