一键导入
daemon-troubleshooting
Use when daemon notifications, worker command ingest, session routes, or local injection behavior are failing
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use when daemon notifications, worker command ingest, session routes, or local injection behavior are failing
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
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
| name | daemon-troubleshooting |
| description | Use when daemon notifications, worker command ingest, session routes, or local injection behavior are failing |
Use this when daemon behavior regresses in production or parity tests.
/session-start, /stop, /sessions).systemctl status pigeon-daemon.service --no-pager
journalctl -u pigeon-daemon.service -n 120 --no-pager
curl -s http://127.0.0.1:4731/health
CCR_API_KEY, CCR_WORKER_URL, or CCR_MACHINE_IDbackend_endpoint on session)inbox status transitions and ack handlingonQuestionReply must use the SDK client's in-process fetch, not globalThis.fetch. In TUI mode, no HTTP server listens on ctx.serverUrl (localhost:4096). See opencode-plugin-architecture skill for the internalFetch pattern.internalFetch is extracted from (ctx.client as any)._client?.getConfig?.().fetch.callback_data, not generate its own. Check extractTokenFromCallbackData() in packages/worker/src/notifications.ts.pending_questions row was already deleted.pending_questions table TTL (4h). Old questions are evicted./question-asked was called (daemon has no HTTP request logging by default; add temporary logging if needed).opencode-serve.service is down or unhealthy. Check: systemctl status opencode-serve.service and curl http://127.0.0.1:4096/global/health.journalctl -u opencode-serve.service -n 50.ls -la ~/.config/opencode/plugins/opencode-pigeon.ts./kill returns "Session not found" from worker
/sessions/register after late discovery. If /kill is sent immediately after /launch, there may be a race condition -- retry after a few seconds.nvim_socket is set on session:
curl -s http://127.0.0.1:4731/sessions | jq '.[] | {id, nvim_socket}'
nvim --server /tmp/nvim.sock --remote-expr "luaeval('require(\"pigeon\").list()')"
Should return registered PTY instances. Empty/error means plugin not loaded.list() call above shows registered instances. If empty, the Claude session didn't register its PTY."nvim RPC timed out" — nvim process unresponsive or socket stale"instance not found" — session PTY not registered in pigeon.lua; check hook ran after nvim loaded pluginUse parity harness for full-path validation:
cd ~/projects/pigeon
npm run --workspace @pigeon/daemon parity:harness