NEXO 7.9.30 — Hotfix import sys in agent_runner

Published 2026-04-26. Hotfix release over v7.9.29.

v7.9.29 added a fail-closed warning to src/agent_runner.py::_apply_llm_endpoint_override for the case where override mode is active but no proxy bearer can be resolved. The warning emits via sys.stderr.write(...) — but the file did not import sys. Ruff F821 caught the undefined-name reference in CI on the test tests/test_fase4_lint_baseline.py::TestRuffPasses::test_ruff_check_src_returns_zero, which failed the 7.9.29 publish workflow before it reached the npm publish step. No npm artifact ever shipped for v7.9.29.

v7.9.30 adds the missing import. Local pytest in 7.9.29 had not flagged it because the warning path is only hit in override mode, and the unit-test sweep that exercised that path used monkeypatch, which masks unresolved names at the time of patch. CI re-ran ruff over src/ from a clean checkout and surfaced it.

What v7.9.30 ships: exactly the same hardening as v7.9.29 plus the missing import — bearer in Authorization: Bearer via auth_token, call-time config dir resolution, caller-controllable Idempotency-Key, strict bearer source so a real ANTHROPIC_API_KEY never leaks to a custom proxy, real end-to-end wire tests via a local BaseHTTPRequestHandler. v7.9.30 is the first npm release that carries the 7.9.29 override-path hardening.

The v7.9.29 git tag stays on the repo for traceability but should not be deployed; nexo-brain@7.9.30 on npm is the equivalent and supersedes it.

Full changelog entry →