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.