Prova E2E Telegram Crabbox

Usado ao revisar, reproduzir ou comprovar o comportamento do OpenClaw Telegram com um usuário real do Telegram no Crabbox, incluindo fluxos de revisão de PR que necessitam de gravação do Telegram Desktop controlada pelo agente, comandos do usuário-driver TDLib, credenciais alugadas do Convex, observação WebVNC e artefatos com corte de movimento.

O que é Prova E2E Telegram Crabbox?

A habilidade 'Prova E2E Telegram Crabbox' permite que agentes de IA mantenham uma sessão de usuário real do Telegram no ambiente Crabbox da OpenClaw, executando testes de ponta a ponta para revisão de PRs ou reprodução de bugs quando provas bot-to-bot não são suficientes. Ela gerencia o aluguel de credenciais descartáveis do Convex, inicia o Telegram Desktop e uma instância mock do OpenClaw Telegram SUT, grava a área de trabalho a 24fps, e fornece comandos para enviar mensagens, ver capturas de tela, inspecionar transcrições via TDLib, e finalizar a sessão com artefatos de vídeo/GIF com corte de movimento. Suporta workflows determinísticos com respostas mock, visualização via WebVNC, e publicação de GIFs de prova diretamente em PRs. É ideal para cenários onde o agente precisa depurar interações reais com o Telegram, mantendo a sessão ativa por minutos enquanto testa e coleta evidências visuais, sem usar contas pessoais ou expor credenciais.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/clawdbot/clawdbot/tree/main/.agents/skills/telegram-crabbox-e2e-proof

Installed? Explore more Programação e Desenvolvimento skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

O que Prova E2E Telegram Crabbox faz?

Use isso para revisão de PR do Telegram ou reprodução de bugs quando a prova bot-to-bot não é suficiente. O objetivo é permitir que o agente mantenha uma sessão de usuário real do Telegram aberta até que esteja satisfeito, então anexe prova visual.

Não use contas pessoais. Não adicione credenciais ao repositório, prompt ou pacote de artefatos. O executor aluga a conta descartável compartilhada do Convex.

Início

Execute a partir do repositório OpenClaw e branch em teste:

proof_cmd="${OPENCLAW_TELEGRAM_USER_PROOF_CMD:-openclaw-telegram-user-crabbox-proof}"
"$proof_cmd" start \
  --tdlib-url http://artifacts.openclaw.ai/tdlib-v1.8.0-linux-x64.tgz \
  --output-dir .artifacts/qa-e2e/telegram-user-crabbox/pr-review

Isso inicia uma sessão retida:

  • aluga a credencial exclusiva telegram-user do Convex
  • restaura TDLib e Telegram Desktop com a mesma conta de usuário
  • inicia um mock do OpenClaw Telegram SUT a partir do checkout atual
  • seleciona o chat Telegram configurado no desktop Linux visível
  • inicia uma gravação de desktop a 24fps
  • escreve .artifacts/qa-e2e/telegram-user-crabbox/pr-review/session.json

Mantenha a sessão ativa enquanto investiga. É válido para o agente testar por minutos, executar vários comandos, usar WebVNC, inspecionar transcrições, e só finalizar quando o comportamento for compreendido.

Para reproduções visuais determinísticas, coloque a resposta mock exata em um arquivo e passe para start:

proof_cmd="${OPENCLAW_TELEGRAM_USER_PROOF_CMD:-openclaw-telegram-user-crabbox-proof}"
"$proof_cmd" start \
  --tdlib-url http://artifacts.openclaw.ai/tdlib-v1.8.0-linux-x64.tgz \
  --mock-response-file .artifacts/qa-e2e/telegram-user-crabbox/reply.txt \
  --output-dir .artifacts/qa-e2e/telegram-user-crabbox/pr-review

O executor padrão é --class standard, --record-fps 24, --preview-fps 24, e --preview-width 1920. Mantenha esses padrões a menos que a prova precise de algo diferente.

Durante o Teste

Para prova visual, primeiro envie ou identifique uma mensagem de marcação inferior, então abra o grupo/tópico diretamente pelo id da mensagem:

proof_cmd="${OPENCLAW_TELEGRAM_USER_PROOF_CMD:-openclaw-telegram-user-crabbox-proof}"
"$proof_cmd" view \
  --session .artifacts/qa-e2e/telegram-user-crabbox/pr-review/session.json \
  --message-id <id-da-mensagem>

Isso usa o Telegram Desktop diretamente com tg://privatepost, não xdg-open. Também redimensiona o Telegram para 650x1000 na posição testada do desktop para que o corte possa isolar o painel do chat mesmo que o Telegram mantenha um layout de divisão/barra lateral. Não pressione Escape depois disso; Escape pode fechar o chat selecionado.

Comportamento inferior importa:

  • vincular profundamente à mensagem mais nova mantém o Telegram fixado no final, então mensagens posteriores aparecem ao vivo na gravação
  • vincular profundamente a uma mensagem mais antiga não rola automaticamente para novas chegadas; vincule novamente ao marcador mais novo/final em vez de clicar na seta para baixo
  • o GIF cortado usa intencionalmente o painel do chat, não o desktop inteiro ou a janela inteira do Telegram

Envie como o usuário real do Telegram:

proof_cmd="${OPENCLAW_TELEGRAM_USER_PROOF_CMD:-openclaw-telegram-user-crabbox-proof}"
"$proof_cmd" send \
  --session .artifacts/qa-e2e/telegram-user-crabbox/pr-review/session.json \
  --text /status

Para comandos de barra, omita o nome de usuário do bot; o executor direciona o bot SUT.

Execute comandos arbitrários no Crabbox:

proof_cmd="${OPENCLAW_TELEGRAM_USER_PROOF_CMD:-openclaw-telegram-user-crabbox-proof}"
"$proof_cmd" run \
  --session .artifacts/qa-e2e/telegram-user-crabbox/pr-review/session.json \
  -- bash -lc 'source /tmp/openclaw-telegram-user-crabbox/env.sh && python3 /tmp/openclaw-telegram-user-crabbox/user-driver.py transcript --limit 20 --json'

Comandos úteis do user-driver remoto:

source /tmp/openclaw-telegram-user-crabbox/env.sh
python3 /tmp/openclaw-telegram-user-crabbox/user-driver.py status --json
python3 /tmp/openclaw-telegram-user-crabbox/user-driver.py chats --json
python3 /tmp/openclaw-telegram-user-crabbox/user-driver.py transcript --limit 20 --json
python3 /tmp/openclaw-telegram-user-crabbox/user-driver.py send --text '/status@{sut}'
python3 /tmp/openclaw-telegram-user-crabbox/user-driver.py probe --text '@{sut} Reply exactly: USER-E2E-{run}' --expect USER-E2E-

Capture o desktop atual sem encerrar a sessão:

proof_cmd="${OPENCLAW_TELEGRAM_USER_PROOF_CMD:-openclaw-telegram-user-crabbox-proof}"
"$proof_cmd" screenshot \
  --session .artifacts/qa-e2e/telegram-user-crabbox/pr-review/session.json

Verifique o estado do aluguel e obtenha o comando WebVNC:

proof_cmd="${OPENCLAW_TELEGRAM_USER_PROOF_CMD:-openclaw-telegram-user-crabbox-proof}"
"$proof_cmd" status \
  --session .artifacts/qa-e2e/telegram-user-crabbox/pr-review/session.json

Finalizar

Sempre finalize ou mantenha explicitamente o box:

proof_cmd="${OPENCLAW_TELEGRAM_USER_PROOF_CMD:-openclaw-telegram-user-crabbox-proof}"
"$proof_cmd" finish \
  --session .artifacts/qa-e2e/telegram-user-crabbox/pr-review/session.json \
  --preview-crop telegram-window

finish para a gravação, cria artefatos MP4/GIF com corte de movimento, captura uma captura de tela final e logs, libera a credencial do Convex, para o SUT local e encerra o aluguel do Crabbox. --preview-crop telegram-window também cria um GIF de geometria fixa a partir da janela de prova do Telegram testada para tabelas limpas de PR lado a lado; o vídeo/GIF completo do desktop permanece no diretório de artefatos. Passe --keep-box apenas quando um humano precisar continuar a depuração VNC após a credencial ser liberada.

Após qualquer falha ou interrupção, verifique a limpeza:

crabbox list --provider aws

Se um arquivo de sessão existir e a credencial ainda puder estar alugada, execute finish com esse arquivo de sessão antes de tentar novamente.

Anexar Prova

Anexe apenas o artefato visual útil ao PR, a menos que logs sejam necessários. O executor é apenas GIF por padrão:

proof_cmd="${OPENCLAW_TELEGRAM_USER_PROOF_CMD:-openclaw-telegram-user-crabbox-proof}"
"$proof_cmd" publish \
  --session .artifacts/qa-e2e/telegram-user-crabbox/pr-review/session.json \
  --pr <número-do-pr> \
  --summary 'GIF de sessão Crabbox com usuário real do Telegram'

Isso copia apenas o GIF útil para um pacote de publicação temporário e comenta esse GIF. Se finish --preview-crop telegram-window produziu um GIF cortado, publish usa esse; caso contrário, usa telegram-user-crabbox-session-motion.gif. Use --full-artifacts apenas quando o PR precisar de logs ou saída JSON. Nunca publique cargas de credenciais, arquivos env locais, bancos de dados TDLib, perfis do Telegram Desktop ou arquivos de sessão brutos.

Para prova antes/depois, execute uma sessão no main e uma no cabeçalho do PR, então publique apenas os GIFs pretendidos de um pacote limpo:

mkdir -p .artifacts/qa-e2e/telegram-user-crabbox/pr-123/comparison
cp <saída-main>/telegram-user-crabbox-session-motion-telegram-window.gif \
  .artifacts/qa-e2e/telegram-user-crabbox/pr-123/comparison/main-before.gif
cp <saída-pr>/telegram-user-crabbox-session-motion-telegram-window.gif \
  .artifacts/qa-e2e/telegram-user-crabbox/pr-123/comparison/pr-after.gif
crabbox artifacts publish \
  --repo openclaw/openclaw \
  --pr 123 \
  --dir .artifacts/qa-e2e/telegram-user-crabbox/pr-123/comparison \
  --summary 'Prova antes/depois Telegram' \
  --no-comment

Em seguida, publique uma tabela markdown concisa com essas duas URLs. Não publique diretórios de trabalho que contenham capturas de tela, vídeos brutos, logs, JSON de sessão ou experimentos de corte, a menos que esses artefatos sejam explicitamente necessários.

Verificação Rápida

Para uma verificação única rápida, use:

proof_cmd="${OPENCLAW_TELEGRAM_USER_PROOF_CMD:-openclaw-telegram-user-crabbox-proof}"
"$proof_cmd" --text /status

Isso é um atalho start/send/finish. Prefira a sessão retida para revisão de PR, reprodução de problemas ou qualquer tarefa onde o agente possa precisar de várias tentativas.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

1password

Set up and use 1Password CLI for sign-in, desktop integration, and reading or injecting secrets.

acp-router

Route plain-language requests for Claude Code, Cursor, Copilot, OpenClaw ACP, OpenCode, Gemini CLI, Grok Build, Qwen, Kiro, Kimi, iFlow, Factory Droid, Kilocode, or explicit ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions ("telephone game" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation. Codex chat binding defaults to the native Codex app-server plugin unless ACP is explicit or background spawn needs ACP.

add-model-provider

Add and live-prove a model provider with non-interactive config one-liners, without exposing credentials.

agent-transcript

Requested GitHub PR/issue agent transcripts: redact, trim, preview, and insert safely.

apple-notes

Create, view, edit, delete, search, move, or export Apple Notes via the memo CLI on macOS.

apple-reminders

List, add, edit, complete, or delete Apple Reminders and reminder lists via remindctl.

auto-qa

Run OpenClaw-wide autonomous QA and live/stress campaigns across independent subsystem lanes, with verified fixes and a resumable evidence report.

autoreview

Structured code review through the shared OpenClaw agent-skills installation.

bear-notes

Create, search, and manage Bear notes via grizzly CLI.

blacksmith-testbox

Run Blacksmith Testbox for CI-parity checks, secrets, hosted services, migrations, or builds local cannot reproduce.

block-kit

Use proactively for structured or interactive Slack replies, and when asked to author or validate native Slack Block Kit JSON.

blogwatcher

Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.

blucli

BluOS CLI (blu) for discovery, playback, grouping, and volume.

bluebubbles

Send and manage iMessages via BlueBubbles, including attachments, tapbacks, edits, replies, and groups.

browser-automation

Use when controlling web pages with the OpenClaw browser tool, especially multi-step flows, login checks, tab management, or recovery from stale refs/timeouts.

camsnap

Capture frames or clips from RTSP/ONVIF cameras and local webcams, including USB pan/tilt/zoom control.

canvas

Present HTML on connected OpenClaw node canvases, navigate/eval/snapshot, and debug canvas host URLs.

channel-message-flows

Use when running QA Lab channel message flow evidence.

clawdtributor

Clawtributor PRs here, last week or another window: discover conversation refs, recheck GitHub, rank by impact.

clawhub

Search ClawHub for plugins by default, or skills when explicitly requested; install, verify, update, uninstall, publish, or sync skills.

Habilidades Relacionadas