feat(health-check): add 9router health workflow#126
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: be79ee9f44
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| - `9router-health` workflow — Monitors host-gated 9router liveness, provider-error | ||
| signatures, stream failures, and log bloat with public-repo-safe local configuration. |
There was a problem hiding this comment.
Update README workflow table for new 9router workflow
Adding 9router-health to the changelog without updating the README creates documentation drift for users who rely on the workflow catalog; the repository guideline in AGENTS.md explicitly requires keeping README skill/workflow tables in sync when workflows are added or versioned. In the current tree, the README workflow table (README.md lines 145–155) still omits 9router-health, so discovery and version visibility are immediately inconsistent after this commit.
Useful? React with 👍 / 👎.
…og retention, stale-config protection, first-run discovery
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit c1fb507. Configure here.
| - `port: <local-port>` | ||
| - `base_url: http://<host-or-ip>:<port>` | ||
| - `log_dir: ~/path/to/9router/logs` | ||
| - `restart_command: <local-service-restart-command>` |
There was a problem hiding this comment.
Required restart_command suppresses alerts despite being unused
Medium Severity
restart_command is listed in the required schema, but the Remediation Posture explicitly disables automatic restarts and no signature's suggested action references this value. When any required key is missing, the first-run logic enters report-only mode with "send no alerts," meaning a host that simply omits an unused restart_command loses all alerting — including P1 process-down notifications. The sibling bridge-health workflow avoids this by keeping restart commands in a separate optional section rather than in the required config schema.
Additional Locations (2)
Reviewed by Cursor Bugbot for commit c1fb507. Configure here.


Summary
workflows/9router-health/workflow for host-gated 9router monitoringCLAUDE.local.md, with public AGENT.md placeholders only/api/health, provider-error signatures, stream-failure ratio, and log bloat within the existing health-check patternScope
workflows/9router-health/AGENT.mdworkflows/9router-health/agent_notes.mdworkflows/9router-health/logs/.gitkeepCHANGELOG.mdentry for the workflowHost gating and PII discipline
CLAUDE.local.md(installed,port,base_url,log_dir,restart_command,stderr_log,log_bloat_threshold_gb)HEARTBEAT_OK, log non-applicability, and send no notificationsSeverity / signature table
9router-process-down,9router-local-probe-failed, severe9router-stream-failures9router-anthropic-429-storm,9router-credential-404,9router-temperature-deprecate, moderate9router-stream-failures9router-log-bloat,9router-stuck-or-idle-ambiguousPerformance / exec rules
gtimeoutfor/api/healthprobes when availablebridge-healthdisciplineDry-run evidence (Cora local, delivery suppressed)
node:91124:100.123.215.95:20128/api/health:200566→ normalized degraded / P2 as expected001386 MBwith5 GBthreshold0recent[STREAM]linesworkflows/9router-health/logs/2026-05-20-173832-dryrun.mdRollout plan
mainafter reviewdelivery.mode: noneTracking
~/.openclaw-bosun/workspace/memory/plans/2026-05-20-9router-health-check.md~/.openclaw-bosun/workspace/memory/plans/2026-05-20-9router-preflight.md