Skip to content

v0.50.3

Latest

Choose a tag to compare

@github-actions github-actions released this 11 Jul 15:11

Frugality-first execution: model-tier routing

The headline: ooo run now routes work down the model ladder instead of running everything on one model. Decomposed child ACs execute on the frugal tier (Claude Haiku / Codex mini-class), top-level ACs stay on standard (Sonnet), and a failing AC escalates one tier per retry — so you get real work out of Ouroboros without a Max-tier plan. RLM-style: split the goal well, and each piece becomes cheap enough for a small model to stay grounded.

  • Per-call model override across runtimes (Claude SDK, Claude worker, Codex CLI — capability-declared, truthfully; Codex MCP warm threads honestly report they cannot re-target). Live-verified: claude --resume --model genuinely re-targets the billed model.
  • economics.tiers config is now live (previously dead): frugal/standard/frontier map to real model ids per provider; legacy shipped ids in persisted configs are normalized automatically (#1324-style). model_tier MCP arg (small/medium/large) now actually drives the tier.
  • Escape hatches: OUROBOROS_MODEL_TIER_ROUTING=off kill switch; explicit OUROBOROS_EXECUTION_MODEL pin keeps routing dormant. All three routing env vars are denylisted from untrusted project .env.

Frugality proof machinery (deterministic, anti-reward-hack)

The frugality hypothesis — decomposed children stay grounded on cheaper tiers — now has its measurement rig wired live: per-AC token attribution from real runtime usage (Claude ResultMessage.usage, Codex turn.completed), a deterministic in-repo TraceGuard validator feeding observe-only deliver verdicts (journal-bound; the old prose-regex success sniffing was removed outright), a resume-durable routing contract (a kill-switched or differently-configured run keeps its policy across resume, fingerprint-verified), and an opt-in shadow-replay baseline harness (OUROBOROS_SHADOW_REPLAY, isolated-workspace only). The proof gate reports honestly — insufficient_data until real baselines exist — and every admission rule fails closed.

Also ships docs/rfc/active-conductor.md: the proposed judgment layer that lets the main session act on attention events (builds on #1599's delegated job observer).


What's Changed

  • feat(orchestrator): add model-tier routing and frugality proof by @Q00 in #1600

Full Changelog: v0.50.2...v0.50.3