Skip to content

[telegram-bot] Epic: Integração com Telegram (Etapa 1 de Mobile/Remoto) #127

Description

@alltomatos

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

  • Fase 0: Integração Telegram no framework Integration (packages/core) — conectar/armazenar token, validar via getMe
  • Fase 1: Serviço de bot (long-polling) — mapear chat↔sessão, encaminhar prompt, responder via SSE
  • Fase 2: UI de Configurações (desktop) — conectar/desconectar bot, status
  • Fase 3: Modo webhook (opcional, pra VPS com HTTPS público) como alternativa ao polling
  • Fase 4: Validar uso remoto (via Servidores + web UI) e documentar deploy em VPS
  • Fase 5: Testes (unitários + E2E com Telegram API mockada)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions