Releases: escotilha/oxison
v0.6.0
First 0.6.0 release of oxison — point it at a repo (or an idea) and it writes the product docs, plans a roadmap, and builds the work, on Claude, Kimi, or Grok. Read-only by default, sandboxed when it writes.
Highlights
- Cross-run build memory (#37).
oxison buildcaptures grader-verified outcomes tooxison-build/memory.dband front-loads relevant priors from past runs in the same repo into each worker's prompt. Default-on (--no-memoryto disable), grader-gated, repo-scoped, and abstaining — a weak match injects nothing rather than a plausible-but-wrong prior. - Safe
--integrate(#59). When composing a roadmap into one product,oxison build --integratenow never advancesmain/masterin place — it composes onto a dedicatedoxison/integrationbranch and restores your original branch, leavingmainfor you to review andgit merge. A defense-in-depth backstop refuses to fast-forward a protected branch even if that redirect is bypassed. - External security-audit hardening (F1–F10). OCR dynamic-import RCE closed; worker base image pinned;
--api-keyargv exposure flagged; lockfiles + CI configs protected from build-worker tampering; direct-build roadmaps gated on protected paths; worker container memory/pid ceilings; document-parser DoS surface bounded (incl.pypdfGHSA-jm82-fx9c-mx94); worker log size capped; unused PyYAML dropped.
Install
Not on PyPI — install from the repo:
```bash
zero-install, pinned to this release
uvx --from "git+https://github.com/escotilha/oxison.git@v0.6.0" oxison run /path/to/repo
or
pip install "git+https://github.com/escotilha/oxison.git@v0.6.0"
```
Source-adapter extras (PDF/pptx/docx): `pip install "oxi-son[sources] @ git+https://github.com/escotilha/oxison.git@v0.6.0"\`
Requires Python ≥ 3.11 and the Claude Code CLI. Full notes: CHANGELOG.md.
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
v0.4.0 — seamless provider keys
Seamless provider keys — set a key once, never re-enter it.
Added
-
Prompt-and-save funnel. The first time you run a provider (
--provider kimi/grok) with no key, oxison prompts for it (hidden input) and offers to save it. Every run after is zero-touch.$ oxison run . --provider grok no XAI_API_KEY found for provider 'grok'. Paste your grok API key (hidden): **************** Save it for next time? [Y/n] y ✓ saved to keychain — future runs won't ask -
oxison authsubcommand to manage saved keys:oxison auth set grok # prompts hidden, or --api-key for scripts oxison auth status # which keys are saved / detected (never echoes a key) oxison auth rm grok
-
Storage: OS keychain first — macOS Keychain (
security), Linux libsecret (secret-tool) — with a0600-file fallback at~/.config/oxison/credentials. Fail-soft, zero new dependencies. -
Resolution order:
--api-key> env var > saved key > interactive prompt. The prompt is TTY-gated, so CI/headless fails fast with a clear "setXAI_API_KEY…" message instead of hanging. oxison never prints any part of a saved key.
Install:
pip install "git+https://github.com/escotilha/oxison.git@v0.4.0"Full changelog: https://github.com/escotilha/oxison/blob/v0.4.0/CHANGELOG.md
v0.3.0 — run oxison on Kimi or Grok
Run oxison's full pipeline (run / plan / ideate / build) on any Anthropic-compatible model provider — not just Anthropic.
Added
-
Model providers —
--provider kimi/--provider grok. Select a non-Anthropic backend with one flag:Provider Endpoint Key Default model kimihttps://api.moonshot.ai/anthropicKIMI_API_KEY/MOONSHOT_API_KEYkimi-k2.7-codegrokhttps://api.x.aiXAI_API_KEY/GROK_API_KEYgrok-4.3(alsogrok-build-0.1)export XAI_API_KEY=... oxison run /path/to/repo --provider grok oxison build roadmap.json --repo . --provider kimi --model kimi-k2.7-code
oxison constructs the
ANTHROPIC_BASE_URL+ANTHROPIC_AUTH_TOKENoverlay from your explicit--providerchoice and threads it through the singlebuild_envchokepoint — it never readsANTHROPIC_*from the ambient environment (the secrets boundary stays intact). Provider mode uses bare token auth (not the host OAuth login), defaults the model to the provider's (override with--model), and — for sandboxedoxison build— auto-allows the provider's API host in the worker egress allowlist. Adding another provider is one registry entry.
Install:
pip install "git+https://github.com/escotilha/oxison.git@v0.3.0"Full changelog: https://github.com/escotilha/oxison/blob/v0.3.0/CHANGELOG.md
v0.2.0 — idea → comprehension → plan → built product
oxison grows from "comprehend a repo and write docs" into a full idea → comprehension → plan → built product pipeline — and goes public.
Added
- Oxicome — multi-source ingestion. Comprehend a repo plus non-repo sources (PDF, pptx, docx, markdown, audio/video transcripts) merged into one provenance-tagged
comprehension.json. - Oxipensa — the planner.
oxison plan: turn acomprehension.jsoninto a prioritized, dependency-sequencedroadmap.json+ROADMAP.md, behind a deterministic self-correcting plan-gate. - Oxfaz — the autonomous build engine.
oxison build: a graded build loop — one write-worker per task in an isolated git worktree, a crash-safe SQLite taskstore, a protected-path grader on the actual diff, and three guardrails (iteration cap, no-progress halt, budget ceiling). - Two-layer build sandbox — srt host-allowlist (Layer 1, default) or a rootless container (Layer 2);
--no-sandboxopt-out for trusted repos. oxison build --integrate— sequential task integration. Merge each graded branch into the repo's current branch in dependency order, composing a multi-task roadmap into one product onmain.- Oxideia — greenfield mode (
oxison ideate). Start from zero — a plain-text idea plus non-repo inputs incl. website links — and get a comprehension +PRODUCT.md+ initialROADMAP, no repo required. - Portable cross-run memory store.
- Claude Code plugin + marketplace — install/run from inside Claude Code (
/plugin marketplace add escotilha/oxison→/oxison). - CI — automated per-PR Opus code review (Claude Code GitHub Action), plus ruff/mypy/pytest, gitleaks, pip-audit, bandit, and CodeQL gates.
Security
- SSRF guard on the URL adapter — scheme + private/loopback/link-local IP block on the initial URL and every redirect hop (fail-closed).
- Bounded worker SIGKILL teardown (no event-loop hang); git-failure routing through adapter-failure; direct test corpus for the protected-path gate.
Changed
- First public release; history scrubbed of internal references.
Install:
pip install "git+https://github.com/escotilha/oxison.git@v0.2.0"Full changelog: https://github.com/escotilha/oxison/blob/v0.2.0/CHANGELOG.md