Releases: tyejcoleman/tokenroom
Releases · tyejcoleman/tokenroom
Release list
v0.6.0
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].
v0.5.1
Fixed
- Weekly "HOT pace" no longer false-fires right after the reset.
enrichWeekly
flaggedhotwhenever the extrapolated pace exceeded 1.15× sustainable, even when only
a sliver of the week had elapsed — so a short burst in the first hours (e.g. 4% used in
~4h) projected "you'll exhaust the week" with 96% left, which isn't actionable. HOT now
additionally requires that a material share of the weekly budget is actually used
(seven_day.used_pct >= 15, ≈ one day's sustainable allowance); below that the stamp
shows the calm "cruising" form. Deliberately a usage floor (not an elapsed-time floor),
so a genuine heavy early burn still surfaces.
v0.5.0
Changed
- Aggressive descent on the rate-limit window (ADR-19). The agent now works at FULL
SPEED until 5% remains (was: "descend, small atomic steps" from 10%), is told to be
velocity-mindful but keeps working from 5% down to a 1% floor, and only does
finishing-moves at ≤1% (was: "start nothing new" at 5%). The 1–5% band keeps a stranding
guard (prefer small divisible steps, checkpoint often, defer huge/indivisible new tasks),
and the velocity-aware overrides still keep full speed when the window resets before it
would exhaust. Adds a1-band to every governor profile so the floor message fires.
Added
- Multi-session burn awareness (ADR-20). The stamp now discloses the combined burn
rate across all sessions (≈tok/min) and how many are actively burning, and flags an
anomalous burner — a session burning ≥3× the median of the others — naming whether
it's this session (ease off) or another (the shared window can drop fast; re-check
often). Flow samples are tagged bysession_idto attribute per-session burn.
v0.4.2
Changed
- Two resources, two opposite postures — made unmistakable. Context is a burn-through
resource; quota (rate-limit) is a wary, paced one. The mid-turn "context getting low"
nudge now leads with "BURN IT, don't conserve it" and states outright that low context
is never a reason to slow, stop, hand back control, wrap up, or get cautious — the only
thing it asks is that you keep the handoff current, then keep working at full speed until
auto-compaction fires and refreshes you. It closes by contrasting the two budgets so the
agent never applies quota-caution to context (or context-fearlessness to quota). The
intelligent, reset-aware quota guidance (descend/defer unless the window resets before
you'd run dry) is unchanged — that resource stays wary. - Default context nudge held to the core (~4% left).
ctx_bandsdefault lowered from
[8, 4]to[4], so the handoff nudge fires once near the ceiling instead of at 8% —
the agent uses nearly all its context before prepping a handoff. The token-floored
"super close to auto-compaction" message remains the final safety net;powersavekeeps
its earlier 10% heads-up for thrift.
v0.4.1
Changed
- Power through to auto-compaction — stop getting "scared" near the context ceiling.
Field report: agents were stopping/handing back control as context filled, which prevents
the very auto-compaction that would refresh them and continue the task. The skill now
states it outright: stopping near the ceiling strands the task; keep producing work
until Claude Code auto-compacts, then resume from the handoff. Removed "context at the
compaction floor" from the legitimate stop-conditions list — only quota (rate-limit)
ever justifies stopping; context never does. - Non-redundant handoff cadence (throughput). The mid-turn ctx logic no longer nags for
a handoff once one was saved recently (kills the redundant 6%→3% re-saving). Cadence is
now: refresh at task boundaries, plus one velocity-timed "super close to
auto-compaction" nudge (fires once, bypasses the throttle, suppressed if already saved).
Updates surface "handoff already saved Nm ago" and a "≈N tool calls at this pace" estimate
(from per-tool-call context growth) so the agent knows it's captured and how close it is. - Context handoff-nudge held later — utilize context to the core.
ctx_bandslowered so the
"context getting low" nudge fires near the ceiling (~4–8% left) instead of at 25%/40%. The
handoff is one cheap call that only needs to land before compaction, and the velocity-timed
"super close" message remains the final safety net — so the agent uses nearly all its context
before prepping a handoff, rather than slowing down early.
Added
- Current time + timezone awareness. Every prompt stamp now leads with the user's local wall
clock (e.g.now Thu, Jun 18, 17:53 America/Los_Angeles) so the agent can reason about
time-of-day, scheduling, and deadlines. Labelled distinctly from quota to avoid the
clock-time/budget conflation the stamp already guards against. - Reset-aware quota guidance. Mid-task advice no longer says "descend / slow down" when the
5h window will RESET before the velocity engine projects exhaustion (or a reset is ≤10 min
away) — the real risk is running dry before the reset, not a low %. Deterministic from
resets_at+projected_exhaustion; optimism requires a positive signal, so unknown burn
stays cautious.
v0.4.0
Added
- Continuity handoff doc — the agent's living, canonical working-doc (T2.29, ADR-18).
A newhandoffMCP tool (the fourth write surface) lets the agent maintain an evolving
markdown document a fresh instance reads to resume fully: mission, current state,
progress, exact next steps, key references, decisions + why, the user's own
directives/corrections, system/process improvements discovered, and open questions.
Stored at~/.headroom/continuity/<session>.md, latest-wins, capped per section, session-
guarded, pruned after 7 days. Re-injected at SessionStart(source=compact) as a pointer +
digest (ADR-11 style — the doc lives on disk, so point, don't dump). Richer and more
durable than the tersecheckpoint.headroom handoff [--path]prints the current doc.
Changed
- Skill: context-pressure is a write-the-handoff signal, not a stop sign. Field report:
agents were getting "tired"/cautious as compaction approached and slowing down or stopping.
The "near the context ceiling" section is rewritten into a handoff ritual — keep a living
handoff doc, refresh it when context runs low, then keep working at full speed; let the
window burn to the floor because compaction is automatic and your doc + ground truth are
re-injected right after it. The mid-turn ctx band update now says the same. (Wording
eval-gated per ADR-9; validating in soak.)
v0.3.3
Changed
- Skill: "a clean boundary is a checkpoint, not a stop." Agents were treating natural
pause points (tests green, a commit landed) as stopping points even with healthy budget
and work remaining. The skill now says to continue through, and to stop ONLY when:
nothing valuable is left, a genuine blocker needs the user, or budget is truly dry
(≲2%). The worth-it test brakes both ways — no premature stop, no runaway. Completes the
anti-timidity / descent-profile arc. (Wording eval-gated per ADR-9; validating in soak.)
Docs
- Product-boundary docs: the self-evolving harness is Keyoku's, not headroom's
(EVOLVING-HARNESS.md); headroom is the awareness/sensor layer and friction feed. The
suggestminer was prototyped and deferred (design kept inSUGGEST.md) — thinness
applied to ourselves.
v0.3.2
Added
- Weekly cruise control: the 7d window is paced, not just measured — pace ratio
(used-fraction vs elapsed-fraction), sustainable %/day allowance, and projected weekly
exhaustion, surfaced in stamps ("weekly pace is HOT… ≈5%/day sustains"), HUD
(week 26% left ⚠hot pace),fit_checkadvice, andburn.weeklyin the state schema.
Agents throttle bulk work when hot and cruise the week to its reset without going dark.