v0.5.0

feder-cr/AIHawkv0.5.0Sep 4, 2026by feder-cr

AI Summary

This release introduces a `.env` file support for configuration, updates the dependency floor for a Playwright MCP server to ensure tool compatibility, and adds a version check to prevent accidental duplicate publishes.

Key Highlights

  • Added support for a `.env` file in the current directory to store `OPENROUTER_API_KEY` and `STEALTHFOX_BINARY`.
  • Implemented a configuration priority order: `--flag` > environment variables > `.env` > default.
  • Updated dependency floor to `invisible-playwright-mcp>=0.11.0` to support new session management verbs.
  • Added a check to verify version availability on the index before publishing.

New Features

  • .env file loading and parsing
  • Configuration variable priority logic
  • Startup logging of variable names instead of values
  • Index version availability check

Full Release Notes

The key and the browser path are the two things nobody wants to retype, and a
shell profile is a bad home for them: global, invisible from the project, and
different on every machine.

**Added.** A `.env` in the directory you run from, read at startup:

```
OPENROUTER_API_KEY=sk-or-...
STEALTHFOX_BINARY=/path/to/firefox
```

Three decisions carry it. The current directory only, never a walk upwards, so
running from a subfolder cannot silently pick up somebody else's key with
nothing on screen saying which file was used. It never overrides what is already
set, so the order is `--flag` > environment > `.env` > default. And the startup
line names the variables it applied and never their values, because terminals get
pasted into issues.

**Changed.** The floor moves to `invisible-playwright-mcp>=0.11.0`, and that half
is not cosmetic. The step list gained verbs for `session_start` and
`session_status`, which only exist from 0.11.0; with the floor at 0.10.0 an
install could resolve a server offering neither, and a table naming tools the
server does not have renders something nobody can reach.

**Added.** A check that asks the index whether the version a change proposes is
still free. 0.4.0 went to the index and main then gained two more changes while
`pyproject` still named it, so a release from there would have published nothing
and reported success: the publish workflow treats an already-present version as a
deliberate no-op, which is right for a re-pushed tag and indistinguishable from
somebody forgetting to bump.