v0.5.0 — security, correctness & performance
A security + correctness + performance release — the full CTO-audit batch (#13–#18), a CTO re-audit's hardening, and the #18 closeout. Across 6 PRs (#27–#33), each through a per-PR Opus review + full CI gate (ruff/mypy/pytest/bandit/gitleaks/pip-audit/CodeQL).
Security
- Build-worker prompt-injection hardening (#13) + a break-out-proof
<task_data>fence (a re-audit caught that the first fence was bypassable via the closing delimiter — now sanitized). - Worker-log secret redaction (CWE-532) — a prompt-injected worker that dumps
envcan't leave a credential in its log. - oxison's own saved provider keys are denied to the sandboxed worker (
~/.config/oxisonin the deny-list) — closing the injection→read-keys→exfiltrate chain. - Layer-2 container egress narrowed to the domain allowlist via in-container srt on Linux (#14).
- SSRF guard now handles IPv4-mapped IPv6 (
::ffff:127.0.0.1).
Correctness
--max-workers>1really runs concurrently now (#16) — it was serial; integration stays serial for the fast-forward invariant.- Crash-stranded
planningtasks are reconciled on startup (#15).
Performance
- Per-tick query cache +
locks_expirede-churn — a blocked build loop no longer hammers the DB every 20 ms (#17). - Single-transaction
memory.put()(~5 commits → 1) and aprune()that drops a per-key SELECT.
Internal
engine/gitutil.py+engine/types.pyextraction, deadEngineConfigfield removal, compound(status, priority, id)index.
Install:
pip install "git+https://github.com/escotilha/oxison.git@v0.5.0"Full changelog: https://github.com/escotilha/oxison/blob/v0.5.0/CHANGELOG.md