Skip to content

feat: add paseo doctor health check#95

Open
zimakki wants to merge 6 commits intomainfrom
feat/doctor-health-check
Open

feat: add paseo doctor health check#95
zimakki wants to merge 6 commits intomainfrom
feat/doctor-health-check

Conversation

@zimakki
Copy link
Copy Markdown
Collaborator

@zimakki zimakki commented Mar 9, 2026

Summary

  • Adds paseo doctor CLI command that diagnoses Paseo setup: agent binaries, config validity, and runtime info
  • Adds GET /api/doctor HTTP endpoint on the daemon for remote diagnostics
  • Shared check logic lives in packages/server/src/server/doctor/ as a pure module with no daemon dependency

Checks performed

Check What it does
provider.{claude,codex,opencode}.binary Detects agent binary via which/where
provider.{claude,codex,opencode}.version Runs --version on detected binary
config.valid Validates config.json parses correctly
config.listen Validates listen address format
runtime.node Reports Node.js version
runtime.paseo Reports Paseo daemon version

Usage

# Local checks (no daemon needed)
paseo doctor

# JSON output
paseo doctor --json

# Remote (hits running daemon)
paseo doctor --remote

UI

CleanShot 2026-03-09 at 13 47 28@2x

Test plan

  • Unit tests pass (7 tests in run-doctor-checks.test.ts)
  • Manual test: paseo doctor table output renders correctly with ✓/⚠/✗ indicators
  • Manual test: paseo doctor --json returns valid structured report
  • Manual test: paseo doctor --remote against running daemon
  • Manual test: curl localhost:6767/api/doctor returns JSON report

zimakki added 6 commits March 9, 2026 12:44
Adds a unified diagnostic system for Paseo setup:
- Doctor module in packages/server with provider, config, and runtime checks
- GET /api/doctor HTTP endpoint on the daemon
- `paseo doctor` CLI command (local checks by default, --remote for daemon)
- Tests for the doctor report shape and summary correctness
- Fix TypeScript error: extract host field for getDaemonHost call
- Use async execFile + Promise.all for parallel provider checks
- Load config once in runConfigChecks instead of twice
Add a "Diagnostics" section that lets users run a health check against
their connected daemon via GET /api/doctor. Displays grouped check
results with status icons and a summary line.
The check IDs use dots (provider.claude.binary) not dashes, so the
grouping filter never matched and only the summary line was visible.
Fixed the prefix matching and made detail text selectable so users
can copy paths (e.g., Claude binary location).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant