v3.15.0
mvanhorn/last30days-skillv3.15.0Jul 15, 2026by mvanhorn
AI Summary
Completely reworks the `doctor` command into a four-state audit system with post-mortem analysis and live probe capabilities.
Key Highlights
- Four-state audit (Working, Turned On - Unverified, Not Working, Could Be On)
- New `doctor --postmortem` mode to analyze last run failures
- New `doctor --probe` mode for bounded live source verification
- CLI health markers for techmeme, arXiv, and trustpilot sources
New Features
- Post-mortem analysis of last report
- Live probe mode with configurable timeouts
- Enhanced `doctor --json` output with audit_state and mode details
Full Release Notes
## doctor: four-state audit, post-mortem, live probe `doctor` is reworked from a flat config prediction into a genuine audit, plus the modes to diagnose real runs. ### Added - **Four-state audit** — every source is grouped into **WORKING** (verified this run/last run or keyless-always-on), **TURNED ON - UNVERIFIED** (configured/opted-in, no run evidence), **NOT WORKING** (configured but failing, or the last run errored), or **COULD BE ON** (available, not yet configured). One labeled line per source — nothing is buried in a cluster anymore. - **`doctor --postmortem`** — reads the last run's `last-report.json` and reports what actually broke per source (Failed / Partial / Succeeded / Skipped, with details and fix hints). - **`doctor --probe`** — a bounded live test that verifies WORKING instead of guessing; also auto-fires on a plain `doctor` when there's no fresh run. Per-source deadline (`LAST30DAYS_DOCTOR_PROBE_TIMEOUT`, default 10s) so a slow source can't hang it. Scoped to free HTTP + keyless CLI sources; credit-gated sources are never probed and stay UNVERIFIED. - **CLI health** — sources needing a downloaded binary carry a `[CLI: name ✓]` marker and a dedicated CLI-health block. **techmeme, arXiv, and trustpilot** are now audited (they run in research but were previously invisible on the health surface). - **Backup + comment sub-lanes** — Reddit SC backfill, YouTube SC transcript/search backstop (with a yt-dlp-rate-limit note), X cookie-vs-`XAI_API_KEY` dual path, and youtube/tiktok/instagram comment lanes render as indented sub-lines. - `doctor --json` gains `audit_state`, `cli`, `backups`, `comments`, `run_outcome`, and a top-level `mode` — all additive. ### Fixed - Threads no longer reports Ready when it won't run: SC-gated opt-in sources honor `INCLUDE_SOURCES`, so Threads shows COULD BE ON until opted in. TikTok/Instagram stay on-by-default. **Full PR:** #826