计划执行与检查节点
executing-plans
按既定实施计划完成工作,保持过程检查和反馈。
wakewire-inspect【效率与协作】Triage wakewire delivery problems — events not arriving, failed or held deliveries, duplicates, rate-limit digests. Use when the user asks why an expected event didn't show up in a thread, or wakewire tools report failures.
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
You are debugging wakewire deliveries. Work the pipeline in order: source → route → queue → sink.
wakewire_status shows queue depth, adapter reachability, and per-source counters (received, rejected, connected, lastEventAt, lastError).
rejected climbing → webhook signature failures. The secret in GitHub and the one stored at setup time don't match; re-run wakewire_source_setup_github.connected: false with lastError → OAuth expired or label missing; re-run wakewire auth gmail, check the label exists.adapter.codexReachable: false → the daemon can't spawn/reach codex; deliveries will sit in held and retry automatically.wakewire_deliveries (filter with {status: "failed"}, {routeId: ...}, {limit: ...}). Status meanings:
queued / delivering — in progress.delivered — done; threadId/turnId say where it went.held — retrying with backoff (Codex app closed, thread busy, network). error has the reason, nextAttemptAt the next try. This self-heals; nothing to fix unless it persists.failed — permanent (bad template field, deleted thread/route, or max retries). Read error.skipped-duplicate — same source delivery id seen before (webhook redelivery). Expected, not a bug.coalesced — folded into a digest turn because the route exceeded its rate limit; coalescedInto points at the digest delivery.The renderedPrompt field shows exactly what was (or would be) injected — use it to debug template issues.
match in wakewire_route_list against the delivery log — repo must be owner/repo, branch filters only apply to pushes, gmail labels must match exactly.wakewire_route_toggle.skipped-duplicate (see above).After fixing a template or route, wakewire_replay with the failed delivery id re-renders against the current config and enqueues it again — no need to wait for a new event. Replays bypass duplicate detection by design.