Problem
The largest issue class in this tracker is "numbers are wrong or missing", and a big fraction of those are environment problems, not parser bugs: unsupported Node version making SQLite providers silently empty (#250), provider paths not found (five separate OpenCode-shows-nothing reports: #364 #360 #346 #341 #392), unpriced models at $0 (#629). Today none of this is self-diagnosable; users file a bug because the product fails silently.
Proposed fix
A codeburn doctor command that prints, per provider:
- data path(s) probed and whether they exist
- whether parsing succeeded, and how many sessions/calls were found
- why a provider is empty when it is (path missing, unreadable, Node too old for zstd/sqlite, cache stale)
- unpriced models encountered, with the model-alias / price-override one-liner to fix them
- environment summary: Node version, platform, relevant env vars (CLAUDE_CONFIG_DIR etc.)
Exit non-zero when something is broken so it can be pasted into bug reports. Most of the probing logic already exists inside provider detection; doctor mainly needs to surface it instead of swallowing it.
Why it matters
Every hour spent triaging a "shows zero" issue is an hour not spent on real parser bugs. Doctor converts that class into a self-serve check, and doubles as the first debugging step we ask reporters to run.
Problem
The largest issue class in this tracker is "numbers are wrong or missing", and a big fraction of those are environment problems, not parser bugs: unsupported Node version making SQLite providers silently empty (#250), provider paths not found (five separate OpenCode-shows-nothing reports: #364 #360 #346 #341 #392), unpriced models at $0 (#629). Today none of this is self-diagnosable; users file a bug because the product fails silently.
Proposed fix
A
codeburn doctorcommand that prints, per provider:Exit non-zero when something is broken so it can be pasted into bug reports. Most of the probing logic already exists inside provider detection; doctor mainly needs to surface it instead of swallowing it.
Why it matters
Every hour spent triaging a "shows zero" issue is an hour not spent on real parser bugs. Doctor converts that class into a self-serve check, and doubles as the first debugging step we ask reporters to run.