Release notes

FEATURE

The system repairs its own connections and peacefully coexists with other tools

Previously, if Claude's connection hook (the small script that relays your usage data) was accidentally deleted or became outdated, you had to manually run setup commands to fix it. Now, every time usage starts, it quietly checks its own health; if it spots a missing file or an old version, it instantly repairs itself without you ever noticing. If you happen to be running third-party connection tools alongside it, it won't aggressively overwrite their settings. Instead, it asks exactly once if you want to enable "coexistence" mode, and then never bothers you about it again. It's like a plumber who used to require a phone call every time a pipe came loose, but now does silent maintenance rounds; and if he sees another contractor working, he politely asks how to coordinate—and only asks once.

FEATURE

Hidden doctor command available, and burn warnings stop crying wolf

If you ever run into tricky issues, you can now use a hidden --doctor command to print a full English diagnostic report, making it much easier to search for solutions online. Even better, the weekly burn-rate warning on your dashboard has stopped being so dramatic. Previously, if you blasted through prompts for just 10 minutes, the system would panic and project that you'd drain your entire week's quota in 8 hours. It now observes you for a full 30 minutes to confirm you're actually sustaining a high burn rate before sounding the alarm, and the warning text across all five languages now explicitly adds an "at current pace" disclaimer. It's like your car's range estimator: instead of flashing an empty tank warning just because you floored the gas pedal to pass a truck, it now watches your average speed over the last half hour, honestly noting "this is based on how heavy your foot is right now."

Original changelog

Original changelogThe system repairs its own connections and peacefully coexists with other tools
**Hook self-heal: broken installs fix themselves, silently**: every startup now runs `setup_hook.self_heal()`, which silently repairs three clearly-safe scenarios: (1) first-run (`is_setup()==False` and no `statusLine` key in settings) → invokes `setup()`; (2) hook script version is out of date (`needs_update()==True`) → `update_hook()`; (3) settings points to a missing hook file with state `us-direct`/`us-forwarder` → re-runs `_copy_hook_script()` + `_copy_forwarder_script()`. When state is `external`/`legacy-tt`, all three skip (no silent override of third-party tools). Each action appends to `settings["usage"]["selfHealLog"]` (FIFO, 20 entries). Failures are swallowed; stderr is printed only when `USAGE_DEBUG=1`.
**Coexistence prompt consolidated**: when an external statusLine tool is detected, usage shows a single NSAlert with two buttons ("Enable Coexistence Mode" / "Keep Current Setup"). Either button sets `settings["usage"]["forwarderModePromptDismissed"]=True` and the prompt never appears again. Replaces the previous three-button repair dialog in `main.py:health_check()`; the "remind me later (24h cooldown)" path is removed. Users who previously chose "Do Not Ask Again" on the old dialog will be re-prompted once (one click resolves it).
Original changelogHidden doctor command available, and burn warnings stop crying wolf
**`--doctor` hidden CLI flag**: `python3 main.py --doctor` prints a plain-text diagnostic report (English-only for easier GitHub issue searches) covering hook state, version, script file status, status file mtime, external hook detection (recognizes `ccusage` / `lord-kali` keywords), forwarder prompt ack state, last 5 self-heal log entries, and Codex sessions scan count. Hidden from `--help` via `argparse.SUPPRESS` so it doesn't distract typical users. New `doctor.py` renderer module.
**Weekly burn warning no longer over-reacts to short bursts**: previously the weekly warning extrapolated from the most recent 10-minute sample window, so a single large prompt could trigger a scary "8 hours until empty" warning that vanished once the user took a break. The weekly warning now uses a 30-minute sample window with a 30-minute minimum span, requiring sustained high usage for at least half an hour before triggering. Session warnings keep the 10-minute window (session resets are frequent, can't be too strict). `burn_rate.ROLLING_WINDOW_SECONDS` was raised from 15 to 60 minutes so the longer window has enough history.
**Burn warning text now says "at current pace"**: all 5 languages' burn warning strings now explicitly include "按目前速度 / At current pace / 現在のペース / 현재 속도", making it clear that this is a momentary extrapolation rather than a stable prediction.