1.15.0 - the lever in the host's own words
1.15.0 - the lever in the host's own words, and as a choice rather than an exit
Two gaps in 1.14.
The commands were Claude Code's under both hosts. /model and /effort do not
exist in Codex, so the line was telling Codex to run something that does not
exist - to do nothing while believing it acted. usage.levers(host) now names
the lever in the vocabulary of whichever host will read it: Codex gets its own
model and effort controls, and the script's weaker promise is stated rather
than implied, because lowpower.js --host codex saves defaults for NEW sessions
and cannot change one already running. The effort sentence carries the command
too, where before it named no way to act at all.
And it read as an emergency exit when it is a lever to pull on purpose. The
line now says outright that the change can be made without being asked,
whenever the current setting is dearer than the work in front of you needs,
rather than only when a window is nearly gone - a mechanical rename does not
need the model a hard design decision does. An agent that only ever reads this
as a wall notice runs every trivial turn at the top setting and then wonders
where the window went. SKILL.md section 5 teaches both halves.
Also: an escape with no command names the lever and invents no syntax, instead
of printing "Use undefined." - found by two older tests going red against the
new shape, which is what those tests are for.
619 tests. A third bug pass over this plugin (concurrency between hooks, the
Codex reader against six real rollouts including a truncated one, hostile input
- a 20 MB JSONL line, 5000-todo events, path traversal in relay ids - and
packaging drift) produced six claims and zero that survived two skeptics.
Co-Authored-By: Claude Opus 5 (1M context) noreply@anthropic.com