Skip to content

ultracodex 0.4.0

Choose a tag to compare

@YuanpingSong YuanpingSong released this 07 Jul 03:19

The multi-vendor release. One [route] table now sends each agent in a workflow to the backend best cast for it — implementation on one vendor, gates on a second, adversarial review on a third, one journal for all of it.

OpenCode backend

Route any label to opencode and it runs on whatever provider your opencode speaks — hosted or local. The adapter drives opencode serve's HTTP API: synchronous turns, SSE activity + live usage ticks, graceful /abort, session-resume repair turns, and wire structured output (json_schema) that degrades to a prompt contract mid-call when a provider rejects it. Tested against opencode 1.16.2.

[route]
"impl:*" = "opencode"
"review:*" = "claude"
"*" = "codex"

[backends.opencode]
model = "deepseek/deepseek-chat"

Read the sandbox note before routing untrusted content here — opencode has no OS sandbox; ultracodex doctor now prints the full posture (docs/operations.md).

Executor Contract v1

The backend seam is now a documented, versioned contract — docs/executor-contract.md: every adapter declares a capability descriptor (schema / resume / interrupt / usage / activity / sandbox), the engine owns the degradation rules for whatever a backend lacks (journaled as warnings, never silent), and a shared 10-assertion conformance kit runs against every adapter via a scripted fake of its harness. All three backends pass. Want a fourth? The contract + kit are designed so you never read engine source — the OpenCode adapter was built exactly that way.

The kit caught three real bugs in the existing adapters on day one (an abort that leaked process trees, validation against the wrong schema form, a missing wire-rejection fallback). All fixed here.

Verified recursively

The acceptance test for this release was a run on this repository: OpenCode implemented doctor's new opencode section, Codex gated it with the full test suite, Claude adversarially reviewed it (found real issues, requested changes, approved the fix) — five agents, three vendors, one journal, green. Every build wave of the release was itself executed by ultracodex fleets.

Also

  • ultracodex doctor: opencode section (binary + version pin + security posture) when a route targets opencode.
  • Hardened dead-runner detection in ps-less sandboxes.
  • 338 → 465 tests; suite stays hermetic (scripted fakes for all three harnesses, no API keys in CI).

Zero-config behavior is unchanged: without a config file everything runs on Codex, exactly as before.