Skip to content

Releases: escotilha/oxison

v0.6.0

19 Jun 00:37
e0bfb4b

Choose a tag to compare

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 build captures grader-verified outcomes to oxison-build/memory.db and front-loads relevant priors from past runs in the same repo into each worker's prompt. Default-on (--no-memory to 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 --integrate now never advances main/master in place — it composes onto a dedicated oxison/integration branch and restores your original branch, leaving main for you to review and git 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-key argv 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. pypdf GHSA-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

16 Jun 04:19
267a9aa

Choose a tag to compare

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 env can't leave a credential in its log.
  • oxison's own saved provider keys are denied to the sandboxed worker (~/.config/oxison in 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>1 really runs concurrently now (#16) — it was serial; integration stays serial for the fast-forward invariant.
  • Crash-stranded planning tasks are reconciled on startup (#15).

Performance

  • Per-tick query cache + locks_expire de-churn — a blocked build loop no longer hammers the DB every 20 ms (#17).
  • Single-transaction memory.put() (~5 commits → 1) and a prune() that drops a per-key SELECT.

Internal

  • engine/gitutil.py + engine/types.py extraction, dead EngineConfig field 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

15 Jun 23:23
8bed4ce

Choose a tag to compare

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 auth subcommand 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 a 0600-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 "set XAI_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

15 Jun 22:35
b8c5a95

Choose a tag to compare

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
    kimi https://api.moonshot.ai/anthropic KIMI_API_KEY / MOONSHOT_API_KEY kimi-k2.7-code
    grok https://api.x.ai XAI_API_KEY / GROK_API_KEY grok-4.3 (also grok-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_TOKEN overlay from your explicit --provider choice and threads it through the single build_env chokepoint — it never reads ANTHROPIC_* 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 sandboxed oxison 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

15 Jun 21:42
951b8b6

Choose a tag to compare

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 a comprehension.json into a prioritized, dependency-sequenced roadmap.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-sandbox opt-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 on main.
  • 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 + initial ROADMAP, 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