The first stable release under the new name (0.6.0-rc.1 claimed tokenroom on npm
2026-07-01). Gated on — and released with — the batched ADR-9 wording eval for every
post-0.3 wording item (ADR-19/20/22/23/24): PASSED, all equipped assertions green on
the Sonnet tier with clean naive-harm baselines for the ADR-24 items
(eval/v3-wording/results/2026-07-02-batched-post-0.3-wording.md).
Fixed (since 0.6.0-rc.1)
- Account-switch banner no longer false-fires on a same-account window rollover, and
the pair advisor will never recommend switching to the profile you are already on
(ADR-24 hardening). - Hooks never mislead: every quota-consuming hook honors the per-account show-gate
(ADR-21), and a malformedresume.jsonsuppresses the readiness stamp instead of
garbling it (ADR-5). - Eval harness:
eval/v3-wording/gained the seven batched post-0.3 scenarios
(S-R/S-G/S-B/S-Q/S-W/S-E/S-K) + rubric.
Added
- Multi-account profiles + smart switch advice (ADR-24). For users toggling two
subscription accounts via/login:- Instant switch detection — the payload is ground truth: a statusline render whose
account key differs from the session's mapping remaps in that same tap invocation
(payload wins, always), logs anaccount_switchevent, and the next stamp announces
the switch once with the NEW account's numbers. Fixes the field capture 2026-07-01
where a session stamped "0% left" for ~20 minutes after switching to an account at 98%. - Echo honesty — the tap tracks when window VALUES last moved
(values_changed_at); a critical figure frozen >5 min while a sibling account has
values-newer data is stamped as a possible pre-switch echo ("figures refresh on the
next completed turn"), never asserted as fresh. - Named profiles are identity (ADR-21's phase keys give isolation, not identity):
tokenroom account label <name>/list/fold <key> <name>/
config-dir <name> <path>, stored in~/.tokenroom/profiles.json. Heuristic folding
only ever HINTS (doctor +account list); zero profiles → behavior unchanged. - Pair-aware descent — low active window + a fresh other profile → stamps and
mid-turn bands say "finish this unit at full speed, then switch (/login or
tokenroom switch) for zero downtime; defer only if BOTH profiles are thin"; the 1%
floor becomes land-and-switch. Healthy active → HUD-only tersealt '<label>' ≈X%. tokenroom switch(profile decision table + recommended move) and
tokenroom run [--profile X](launchclaudeunder the best/named profile's
config dir via the officialCLAUDE_CONFIG_DIRenv var — launch-time selection only;
auth files are never read or written, nothing is swapped mid-session).- New stamp/advice wording joins the batched ADR-9 eval before the npm release.
- Instant switch detection — the payload is ground truth: a statusline render whose
Fixed
- MCP tools no longer report whichever account rendered last (ADR-21 gap). The server
now resolves quota via the tap's session map: one recently-active account → that
account's state; two or more active in the last 10 minutes → quota is withheld with an
explicitattribution: "ambiguous — quota withheld …"on
resource_state/estimate_remaining/fit_check/plan_resumeinstead of ever
returning the wrong account's numbers.
Changed
- Renamed: headroom → tokenroom (ADR-23). The practical owner of the name "headroom"
is headroomlabs-ai/headroom (55k★, whose CLI binary is literallyheadroom— a direct
bin conflict), with a commercial extraheadroom.com in the same niche;tokenroomwas
verified free on npm 2026-07-01. Everything user-visible renames with it: package
tokenroom, bintokenroom, state dir~/.tokenroom(installer COPIES~/.headroom
across once, never moves/deletes it), envTOKENROOM_DIR/TOKENROOM_DISABLE(clean
break),[tokenroom]stamp prefix (mechanical branding; ADR-9 eval batched to the
harden round), MCP servertokenroom, skilltokenroom, repo
github.com/tyejcoleman/tokenroom. Install now REPLACES any pre-rename headroom
statusline/hooks/skill/MCP/CLAUDE.md-block artifacts in place — never duplicates them —
and uninstall removes both namings;doctorhints while a stale~/.headroomremains.
Historical records (past CHANGELOG entries, prior ADR bodies, eval results/fixtures)
keep the old name.
Removed
- ARM mode (armed resume, the autonomous headless executor) — removed entirely
(ADR-22, supersedes ADR-16).src/arm.mjs, the launchd plist machinery, headless
claude -pinvocation,headroom resume --arm/--disarm, theresume-runentry
point, theauto_armconfig flag, and their tests are gone. The 2026-06-15 platform
change moved programmatic use (claude -p, SDK) to a separate monthly API-priced
credit pool, so an armed resume no longer salvages expiring subscription quota — it
spends new metered credits. Autonomous continuation moves to the separate Conductor
package on official in-session surfaces (Stop hook + scheduled wakeups + cron
routines), carrying ADR-16's consent principle with it. The awareness half stays
untouched:plan_resume, the resume-plan file, the HUD reset countdown /
✓ deferred work ready, readiness stamps, andheadroom resume [--clear].