EmpryoEmpryo.beta
‹ all releases
3.6.3-betaAug 27, 2026current

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.

An overwrite can be undone again
  • edit_file answered an overwrite with "Run undo_edit on this path to restore the previous content". Forge v2 loads undo_edit on demand, so the call came back as AI_NoSuchToolError and the previous bytes were unreachable until a new session. The hint now names request_tools next 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 suggests editor. Both now say how to get the tool.
  • A test reads every result string in packages/tools and 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.
A refused `--max-iterations` says so

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.

Compaction reports what it achieved

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 again

The 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.