v0.4.0
feder-cr/AIHawkv0.4.0Sep 3, 2026by feder-cr
AI Summary
This release removes the keyless mode, requiring an OpenRouter API key to launch the UI, and replaces manual placeholder commands with the `invisible-playwright` library for browser automation.
Key Highlights
- The keyless mode is removed; the UI now refuses to start without an OpenRouter API key.
- Manual placeholder commands (literal-command placeholder) are deprecated in favor of the `invisible-playwright` library.
- Documentation and testing updates ensure API key security and clarify the distinction between agents and manual browser control.
- Wiki pages are updated to remove references to `aihawk do` and direct users to the library for manual execution.
Breaking Changes
- The keyless mode is removed; `aihawk ui` now requires an OpenRouter API key to start.
- Manual placeholder commands (literal-command placeholder) are no longer supported.
Full Release Notes
⛔ **Breaking: the keyless mode is gone.** `aihawk ui` without an OpenRouter key used to start on a literal-command placeholder (`go`, `read`, `click`, `type`, `tab`, `shot`). It now refuses to start, and the refusal says why and where to go: an agent is a model with a browser, and driving the browser by hand without a model is what the invisible_playwright library is for - same engine, Playwright's whole API, `pip install invisible-playwright`. If you were using the placeholder, the library is strictly more capable; if you need time, pin `aihawk==0.3.0`. **What moved in the tests, because the guarantee history matters here.** The 0.3.0 notes recorded four guarantees that died with `do`, one of them "no key anywhere exits 1 and names both ways to supply one". That guarantee is reborn: keyless `ui` is refused before the browser is ever constructed, and the test asserts the refusal names both key routes AND the library. The OPENAI_API_KEY test now asserts refusal instead of placeholder fallback - what must not happen is unchanged: someone's OpenAI credential must never be sent to OpenRouter. The option-surface tests supply a key to reach the link they inspect. Nothing in the test suite ever depended on the placeholder itself; the web-service tests always brought their own stub brains. **The 0.3.0 known issue is closed.** The wiki no longer documents `aihawk do` anywhere, and the pages that were built on it teach what actually exists: the cron and monitoring guides now carry a model-free library script (executed, with its output quoted), the diagnostic page's "replay without a model" moved from the placeholder to the library (executed likewise), and the page about running without an API key is gone, with every inbound link rewritten. The wiki published with this release reflects all of it.