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>
1.0 KiB
1.0 KiB
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
/sessionslistsctx.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 /unbindclears 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