一键导入
worker-troubleshooting
Use when worker endpoints fail, notifications are not sent, webhook auth breaks, or command routing regresses
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use when worker endpoints fail, notifications are not sent, webhook auth breaks, or command routing regresses
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | worker-troubleshooting |
| description | Use when worker endpoints fail, notifications are not sent, webhook auth breaks, or command routing regresses |
Use this skill for diagnosing regressions in auth, notifications, webhook processing, or command delivery.
CCR_API_KEY)wrangler tail)curl -s https://ccr-router.jonathan-mohrbacher.workers.dev/health
Authenticated endpoint check:
curl -s -o /tmp/sessions.json -w "%{http_code}" \
-H "Authorization: Bearer $(cat /run/secrets/ccr_api_key)" \
"https://ccr-router.jonathan-mohrbacher.workers.dev/sessions"
Expected: HTTP 200.
401 on /sessions or /notifications/send
401 Unauthorized on webhook route
X-Telegram-Bot-Api-Secret-Token mismatch/notifications/send call to allowed chatcd ~/projects/pigeon/packages/worker
export CLOUDFLARE_API_TOKEN="$(cat /run/secrets/cloudflare_api_token)"
wrangler tail --format=pretty
/sessions (response uses session_id, machine_id)message.reply_to_message.message_id, or/cmd <token> <command>, orcmd:<token>:<action>machines table last_poll_at within 30s)For question notifications, the daemon embeds its token in button callback_data as cmd:TOKEN:q0, cmd:TOKEN:q1, etc. The worker extracts this token via extractTokenFromCallbackData() in notifications.ts and stores it in the messages table. This ensures button press lookups succeed.
If button presses return "Session expired":
extractTokenFromCallbackData() is parsing the replyMarkup correctly.messages table has the daemon token, not a worker-generated one.curl -s https://ccr-router.jonathan-mohrbacher.workers.dev/health
Expected: ok
Use when deploying pigeon code changes across all machines after merging to main
Use when you need to understand worker architecture, endpoint flow, and command routing behavior before making changes
Use when you need to understand daemon route flow, storage model, worker connectivity, and command injection architecture before making changes
Use when you need to understand the OpenCode plugin event lifecycle, session state transitions, and daemon API contracts
Use when developing or refactoring OpenCode plugin handlers, tests, and daemon integration payloads
Use when you need to understand the swarm IPC subsystem — tables, routes, the per-target arbiter, the session→directory registry, and the wire envelope — before changing it