Objetivo
Permitir usar o opencode via um bot do Telegram — conectável tanto rodando junto ao desktop (long-polling, sem porta exposta) quanto rodando numa VPS (mesmo serviço, hospedado, acessível também pela conexão de "Servidores" remotos já existente no app e pela web UI).
Contexto
Analisamos a arquitetura mobile do projeto Orca (stablyai/orca) como referência: eles usam WebSocket E2EE com pareamento por QR — overkill pro nosso objetivo aqui. Pra Telegram não precisamos de pairing nem Bearer auth público: o bot roda do lado do servidor (desktop ou VPS) e fala com a Bot API do Telegram, reaproveitando a API REST de sessões e o SSE de eventos que já existem no opencode.
Escopo desta etapa
- Conectar um bot do Telegram (token) via Configurações, igual a um provedor.
- Um bot conectado mapeia conversas do Telegram para sessões do opencode (prompt/resposta).
- Deve funcionar tanto no app desktop (processo local) quanto num servidor opencode rodando numa VPS.
- Reaproveitar a tela de "Servidores" (conexão remota) e a web UI pra gerenciar/usar isso remotamente.
Fora de escopo (por enquanto)
- Pairing E2EE estilo Orca.
- Mobile app nativo (fica pra epic separada
mobile-vps-api, que já existe com suas próprias issues).
Sub-issues
Objetivo
Permitir usar o opencode via um bot do Telegram — conectável tanto rodando junto ao desktop (long-polling, sem porta exposta) quanto rodando numa VPS (mesmo serviço, hospedado, acessível também pela conexão de "Servidores" remotos já existente no app e pela web UI).
Contexto
Analisamos a arquitetura mobile do projeto Orca (stablyai/orca) como referência: eles usam WebSocket E2EE com pareamento por QR — overkill pro nosso objetivo aqui. Pra Telegram não precisamos de pairing nem Bearer auth público: o bot roda do lado do servidor (desktop ou VPS) e fala com a Bot API do Telegram, reaproveitando a API REST de sessões e o SSE de eventos que já existem no opencode.
Escopo desta etapa
Fora de escopo (por enquanto)
mobile-vps-api, que já existe com suas próprias issues).Sub-issues
Integration(packages/core) — conectar/armazenar token, validar viagetMe