v0.26.1
feder-cr/AIHawkv0.26.1Sep 9, 2026by github-actions[bot]
AI Summary
This release fixes a critical bug where the browser engine binary path was incorrectly saved to session files, causing browsers to launch on the wrong engine or fail to launch when the local path did not exist on the target machine. The engine is now resolved dynamically at runtime using the launch plan rather than being persisted to the file.
Key Highlights
- Engine path is no longer saved to session files, improving portability
- Browsers now restore on the correct engine specified by the launch plan
- Fixed issues with locally built engines that lacked published assets
Breaking Changes
- Declaring a browser without an engine context is no longer allowed
Full Release Notes
⛔ LEAVING THE ENGINE OUT OF THE FILE WAS READ AS LEAVING IT OUT OF THE BROWSER. `WHO_A_BROWSER_IS` keeps `binary_path` out of what a session writes down, and that is right: it is a path on THIS machine, and a session carried to another one must resolve an engine rather than insist on a path that means nothing there. But a browser restored from that file was then declared with no engine at all, so it came back on whatever the seal resolved instead of on the one the person had named. Not only a developer's problem. Somebody running `aihawk ui --binary <their build>` and reopening a session got browsers on a DIFFERENT engine than the one they asked for, silently. On a locally built one - a seal with no published assets - they got no browser at all, because there was nothing to download and nothing to run. Found by reading what the interface's own agent said while working: it reported that the browsers had died and could not relaunch, and recovered by closing and reopening every one of them under the same name. That works precisely because `browser_open` goes through the launch plan and a restore does not, which is the shape of the defect stated by the workaround. The engine is a property of the PROCESS, so `plan.engine_here()` is the one place that knows what this build was told to run, and both the launch plan and the restore read it from there. Same shape as the system prompt that a saved conversation used to carry back in place of the current one: the file says what happened, the build says what it runs on. Two known-bads, both killed: declare without the engine, and put `binary_path` into what the session file saves - which would make a session that only opens on the machine that wrote it.