Overwriting a file told the model to run undo_edit, and undo_edit is not on the default belt. The model called it, got "unavailable tool" back, and the replaced contents stayed out of reach for the rest of the session. The undo machinery worked the whole time. Only the sentence describing it was wrong. Two other hints named tools the same way, a build gate now catches the next one, and two smaller silences got fixed alongside them.
edit_fileanswered an overwrite with "Run undo_edit on this path to restore the previous content". Forge v2 loadsundo_editon demand, so the call came back asAI_NoSuchToolErrorand the previous bytes were unreachable until a new session. The hint now namesrequest_toolsnext to the tool, so the model loads it and the undo runs.- The same shape sat in two more places: the failed web search that suggests
fetch_page, and the escape-heavy edit hint that suggestseditor. Both now say how to get the tool. - A test reads every result string in
packages/toolsand checks each tool name in it against the engine's own residency rules. A hint that names an on-demand tool without saying how to load it fails the build. That test found the two above.
empryo --headless --loop "fix the parser" --max-iterations 0 read as "no value" and ran the built-in five rounds of coder and reviewer. -1 and abc did the same. You paid for four rounds you did not ask for, with nothing on stderr. Each of those values is now refused out loud with the minimum, which is what --max-steps and --timeout have always done.
The terminal shows one system row at a time. Auto-compaction posts two in a single update: the measurement, then a warning when the new size missed its target. Only the second one ever reached the screen. You read "Compaction stopped at 3%, above the 0% target" and never read that it started at 0% and what it moved. Rows that arrive together now play in order, and a message from a later turn still takes the screen at once, so two commands in a row do not queue behind each other.
The QA suite can see the panels againThe composer's title chip repainted from ◇ V1 to ◆ V2. The screen reader matched the old glyph, stopped recognising the composer, and counted it as an open panel. Twenty-nine assertions across four seeds reported that panels no longer close on Escape while the panels were plainly gone. The reader matches the shape now, not one costume of it. The Linux and Windows bundles the patrol tests were also fourteen hours older than the code, so the last patrol only covered macOS. Rebuilt: 338 cells run green across macOS, Linux, and Windows on all three surfaces.
