Skip to content

Releases: Q00/ouroboros

v0.36.0

07 May 17:52
@Q00 Q00

Choose a tag to compare

What's Changed

Features

ooo auto Pipeline

  • Stream live phase trace in ooo auto CLI (#713)
  • Block risky-fallback answers for regulated/destructive topics (#738)
  • Surface invoked_by in pipeline result and CLI summary (#704)
  • Add AutoProgressEvent callback contract (#705)
  • Surface authoring vs run backend in ooo auto status (#709)
  • Tag seed_origin in persisted auto state (#698)
  • Persist source-tagged auto answer log (#720)
  • Allowlisted gateway provenance on AutoPipelineState (#701)
  • Expose MCP progress metadata
  • Feed repo facts into interview answers
  • Expose unknown-run handoff guidance

Plugin & Backends

  • Plugin manifest loader + vendored 0.1 schemas (#745)
  • Capability registry for backends (#670)
  • Hermes interview driver support (#671)
  • Route ooo auto to /ouroboros:auto skill via hook (#741)

Bug Fixes

  • Harden Hermes background seed execution
  • Limit Hermes quiet timeout opt-out to seed execution
  • Cover synchronous seed cwd validation
  • Truthful resume/retry semantics across surfaces (#739)
  • Label authoring blockers with phase + backend (#711)
  • Persist interview session id before first question generation (#723)
  • Clear stale reconciliation metadata on attach; scope invalid reconcile errors (#718)
  • Honor state interview-phase timeout in driver (#696)
  • Preserve preferences across onboarding upgrades

Documentation

  • Split PLUGIN LAYER -> Skills Registry vs UserLevel Programs (#744)
  • UserLevel plugin layer RFC (#743)
  • Clarify --runtime semantics and pin dispatch behavior (#722)
  • Clarify --runtime phase semantics for ooo auto (#708)

Testing & Maintenance

  • End-to-end dispatch-to-Seed regression for ooo auto (#700)
  • Pin codex/non-opencode authoring path stays in-process (#710)
  • Guard packaged auto MCP dispatch
  • Make parent cancellation assertion deterministic
  • Format Hermes timeout tests

Full Changelog: v0.35.0...v0.36.0

What's Changed

  • fix(welcome): preserve prefs across onboarding upgrades by @shaun0927 in #663
  • test(watchdog): make parent cancellation assertion deterministic by @shaun0927 in #664
  • test(codex): guard packaged auto MCP dispatch by @shaun0927 in #669
  • feat(auto): feed repo facts into interview answers by @shaun0927 in #666
  • feat(auto): expose MCP progress metadata by @shaun0927 in #667
  • fix(auto): expose unknown run handoff guidance by @shaun0927 in #668
  • fix(auto): honor state interview-phase timeout in driver by @shaun0927 in #696
  • fix(auto): clear stale reconciliation metadata on attach and scope invalid reconcile errors by @shaun0927 in #718
  • feat(auto): allowlisted gateway provenance on AutoPipelineState (#691) [1/3] by @shaun0927 in #701
  • docs(auto): clarify --runtime phase semantics for ooo auto (#690) by @shaun0927 in #708
  • test(auto): pin codex/non-opencode authoring path stays in-process (#690) by @shaun0927 in #710
  • feat(auto): persist source-tagged auto answer log by @shaun0927 in #720
  • docs(auto): clarify --runtime semantics and pin dispatch behavior by @shaun0927 in #722
  • test(auto): end-to-end dispatch-to-Seed regression for ooo auto (#637) by @shaun0927 in #700
  • feat(backends): add capability registry by @Q00 in #670
  • feat(auto): tag seed_origin in persisted auto state by @shaun0927 in #698
  • feat(auto): surface authoring vs run backend in ooo auto (#690) by @shaun0927 in #709
  • feat(auto): add AutoProgressEvent callback contract by @shaun0927 in #705
  • feat(auto): surface invoked_by in pipeline result and CLI summary (#691) [3/3] by @shaun0927 in #704
  • feat(auto): stream live phase trace in ooo auto CLI by @shaun0927 in #713
  • fix(auto,interview): persist interview session id before first question generation by @shaun0927 in #723
  • fix(auto): label authoring blockers with phase + backend (#690) by @shaun0927 in #711
  • feat(providers): support hermes interview driver by @Q00 in #671
  • feat(auto): block risky-fallback answers for regulated/destructive topics (#640) by @shaun0927 in #738
  • fix(auto): truthful resume/retry semantics across surfaces (#688) by @shaun0927 in #739
  • feat(hook): route 'ooo auto' to /ouroboros:auto skill by @shaun0927 in #741
  • docs(rfc): UserLevel plugin layer by @shaun0927 in #743
  • docs(architecture): split PLUGIN LAYER → Skills Registry vs UserLevel Programs by @shaun0927 in #744
  • fix(mcp): harden Hermes background seed execution by @Q00 in #755
  • feat(plugin): manifest loader + vendored 0.1 schemas by @shaun0927 in #745

Full Changelog: v0.35.0...v0.36.0

v0.35.0

06 May 13:14
@Q00 Q00

Choose a tag to compare

What's Changed in v0.35.0

Features

  • Codex auth-plane diagnostics + tool_started callback (#656) — surface nested Codex CLI auth failures (codex_auth failure category, structured non-secret context) and emit a new tool_started callback so external chat renderers (Hermes/Discord) can show in-flight nested MCP work before completion
  • MCP doctor: Codex OAuth readiness check (#657) — backend-aware check_codex_oauth_auth distinguishes "Codex backend active but auth.json missing" from "intentional API-key Codex profile" with actionable remediation, no longer treating OPENAI_API_KEY as the primary signal
  • Render started tool events in debug interviews (#658) — ouroboros init start --debug and PM debug surfaces now render the new tool_started callback alongside the existing completed-tool callback
  • install.sh preserves user backend across upgrades (#654) — re-running install.sh / ouroboros setup --non-interactive now respects the persisted orchestrator.runtime_backend; new --runtime / OUROBOROS_INSTALL_RUNTIME / --reconfigure hooks for explicit control

Bug Fixes

  • install.sh [all] extras drift (#660) — uv install path now mirrors pyproject.toml's full extras (added missing tui/textual, dashboard/streamlit+plotly+pandas); pin specifiers tightened to match pyproject <1.0.0 upper bounds
  • Codex codex_auth classifier too broad (#661) — _looks_like_codex_auth_failure now requires both an auth phrase and a Codex/OpenAI-specific marker (api.openai.com, openai.com, or codex); generic 401s from nested tools/MCP no longer get misrouted to the wrong remediation
  • MCP doctor accepts Codex API-key auth — doctor no longer fails when an intentional API-key Codex profile is in use without auth.json
  • Auto resume after interview max rounds (#651) — interview_driver now in the recoverable-tool whitelist, so blocked auto sessions can resume cleanly when the rounds bound is raised; CLI bound override now honoured (raise-only invariant)
  • .env directory paths no longer crash config import — config import handles directory paths at expected .env locations

Tests

  • Version-pin parity for install.sh [all] (#662) — verbatim pkg>=A,<B spec match against pyproject.toml so future drift in pin ranges fails CI loudly
  • kiro permission-mode isolation (#653) — fixture forces ConfigError so dev machines with custom ~/.ouroboros/config.yaml no longer fail flaky on contract-default tests
  • Codex OAuth doctor tests formatting

Refactoring

  • Auto goal facts preserved through Seed gating (#652) — explicit auto goal facts keep their identity across the gating boundary

Full Changelog: v0.34.0...v0.35.0

What's Changed

  • fix(config): skip .env path when it's a directory by @bindon in #655
  • test(kiro): isolate llm permission_mode from developer config by @Q00 in #653
  • feat(install): preserve user backend across upgrades by @Q00 in #654
  • Preserve explicit auto goal facts through Seed gating by @shaun0927 in #652
  • Expose Codex auth-plane failures to chat bridges by @shaun0927 in #656
  • Teach MCP doctor to verify Codex OAuth readiness by @shaun0927 in #657
  • Render started tool events in debug interviews by @shaun0927 in #658
  • fix(install): align uv [all] extras with pyproject contract by @Q00 in #660
  • fix(codex): tighten codex_auth classifier; document tool_started callback by @Q00 in #661
  • test(install): enforce version-pin parity between install.sh and pyproject by @Q00 in #662

New Contributors

Full Changelog: v0.34.0...v0.35.0

v0.34.0

06 May 05:57
@Q00 Q00

Choose a tag to compare

What's Changed in v0.34.0

Features

  • Copilot CLI runtime (#1f07a9c8) — first-class Copilot agent runtime
  • Kiro runtime backend (#2fc7a3c8) — Kiro as a first-class runtime
  • Stage enum + runtime_profile.stages config (#538) — slice 1 of #519
  • Agent OS runtime_profile (Codex backend) (#505) — runtime profile foundation
  • AgentProcess lifecycle projection (#628) — project lifecycle state from events
  • Directive emission at StepAction sites (#477464ef) — slice 1 of #472
  • Auto persisted session status (ouroboros auto --status) — inspect blocked sessions

Bug Fixes

  • Auto resume after interview max rounds (#651) — interview_driver now in recoverable whitelist; CLI bound override allowed when raised
  • Gemini CLI permission_mode (#634) — coerce defaultacceptEdits, fail fast on unknown modes
  • Hermes timeouts — reject non-finite values; make stream timeouts configurable
  • Codex auto doctor (#648#650) — respect supported MCP surfaces, prevent silent fallback
  • Path containment for seed-encoded paths (#631) — security hardening
  • Ralph project directory boundaries (#599) — keep mutations inside requested project
  • Auto MCP tool hardfail (#644) — fail closed on unavailable dispatch
  • Worker-profile preservation — preserve user keys in [profiles.ouroboros-worker]

Refactoring

  • Centralize Codex runtime_profile mapping (#70ae1379)
  • Consolidate seed-path containment helper (#635)
  • Tighten JobManager runner cleanup boundary (#633)

Documentation

  • Simplified Chinese README translation (#71c49b52)
  • AgentProcess lifecycle migration contract (#3203d06d)
  • ControlContract / StepAction directive boundaries (#621, #623, #629)

Maintenance

  • Ralph MCP loop ownership (#617, #618)
  • AC verdict/execution outcome separation (#613)
  • Numerous Ralph dispatch/lineage hardening commits

Full Changelog: v0.33.0...v0.34.0

What's Changed

  • docs(readme): add Simplified Chinese translation by @whtis in #611
  • Keep Ralph mutations inside the requested project directory by @shaun0927 in #599
  • fix(interview): include initial user turn on first question by @shaun0927 in #591
  • feat(orchestrator): Agent OS runtime_profile (Codex backend, supersedes #488) by @shaun0927 in #505
  • fix(ralph): add --project-dir to specify explicit target for evolve_step by @fuleinist in #610
  • feat(evolution): emit Directive at StepAction sites (slice 1 of #472) by @shaun0927 in #525
  • feat(orchestrator): Stage enum + runtime_profile.stages config (slice 1 of #519) by @shaun0927 in #538
  • test(core): add unit tests for project_paths module by @MyoungSoo7 in #612
  • (feat/kiro-cli-adapter) Kiro CLI runtime backend by @BangShinChul in #606
  • docs(ralph): clarify skill-driven loop contract by @shaun0927 in #616
  • docs: clarify execution versus evaluation contract by @shaun0927 in #619
  • fix: separate task completion from AC verdict summaries by @shaun0927 in #613
  • feat(mcp): add a first-class Ralph loop job by @shaun0927 in #617
  • docs(agent-process): define the lifecycle migration contract by @shaun0927 in #620
  • control: document live StepAction directive boundary by @shaun0927 in #623
  • control: define ControlContract schema boundary by @shaun0927 in #621
  • docs: clarify legacy execution AC events by @shaun0927 in #626
  • docs: describe execution monitoring as task progress by @shaun0927 in #625
  • test(ralph): lock job cancellation contract by @shaun0927 in #627
  • feat(agent-process): project lifecycle state from events by @shaun0927 in #628
  • docs(control): map ControlContract follow-up lanes by @shaun0927 in #629
  • control: preserve contract identity in lineage projection by @shaun0927 in #630
  • fix(security): enforce path containment for seed-encoded paths by @Q00 in #631
  • Clarify auto CLI command shape by @shaun0927 in #643
  • refactor(mcp): tighten JobManager runner cleanup boundary by @Q00 in #633
  • refactor(mcp): consolidate seed-path containment into a shared helper by @Q00 in #635
  • fix(orchestrator): make HermesCliRuntime stream timeouts configurable by @Q00 in #636
  • Expose persisted auto session status by @shaun0927 in #645
  • Fail closed when auto MCP dispatch is unavailable by @shaun0927 in #644
  • Ground auto runtime answers in supplied repo facts by @shaun0927 in #646
  • fix(orchestrator): honour permission_mode in Gemini CLI runtime by @Q00 in #634
  • reports: render worker execution as task completion by @shaun0927 in #624
  • docs(ralph): route the skill through ouroboros_ralph by @shaun0927 in #618
  • Fail closed for ooo auto in Codex rule surfaces by @shaun0927 in #648
  • Add Codex doctor checks for ooo auto dispatch by @shaun0927 in #649
  • Lock packaged ooo auto dispatch metadata by @shaun0927 in #650
  • feat(copilot): live model discovery, setup wizard, full docs and tests by @rogerbarreto in #647
  • fix(auto): unblock resume after interview hits max_rounds by @Q00 in #651

New Contributors

Full Changelog: v0.33.0...v0.34.0

v0.33.0

04 May 15:52
@Q00 Q00

Choose a tag to compare

What's Changed

Features

  • ooo auto — Autonomous workflow mode: New surface for running Ouroboros autonomously via CLI and MCP. Includes bounded supervisor loop, recovery contracts, and working-directory validation
  • Codex task profiles: Apply per-task runtime profiles to Codex agent sessions (feat(codex): apply profiles to agent runtime, feat(codex): add task profile defaults)
  • Usage-limit pause & replay: Sessions now gracefully pause on usage-limit failures and resume cleanly with replayed state
  • Auto onboarding CLI/MCP surface: ooo auto exposed through both CLI and MCP with normalized interview envelopes

Bug Fixes

  • fix(claude): force UTF-8 stdio for hook scripts (#602)
  • fix(claude): resolve plugin hook scripts from plugin root (#601)
  • fix(claude): fall back to python for hook executable (720161a)
  • fix(claude): use partial content on max turns (#593)
  • fix(mcp): serve resources from persisted state (#596)
  • fix(evolution): replace fixed generation timeout with watchdog (56b4b2e)
  • fix(evolution): rebuild Reflect/Wonder adapter on llm.backend config drift (#562, 9e5adb7)
  • fix(codex): preserve explicit model overrides, distinguish profile fallback, sync defaults
  • fix(profiles): track explicit model intent, resolve empty model sentinels
  • Prevent interview prompts from seeing hidden Claude built-ins (#597)
  • Keep seed extraction resilient to transient Claude CLI exits
  • Stable watchdog progress timeout test; carry exact execution IDs on AC runtime events
  • Resolve legacy parents in AC tree projections; fix recursive Sub-AC ownership identity
  • Clear stale pause replay state on resume progress

Documentation

  • Add Contract Ledger schema RFC (docs(rfc))
  • Mark evolution loop bridge limitation as resolved (docs(mcp-bridge))
  • Remove internal remediation report (#604)
  • Document ooo auto workflow (CLI skill and MCP surface)

Maintenance

  • Preserved prepositional auto flag mentions, quoted goal extensions, and literal controls across multiple merge commits
  • Abort Codex setup on malformed config
  • Persist absolute MCP auto working directories
  • Route sentinel models and devil consensus profiles

Full Changelog: v0.32.0...v0.33.0

What's Changed

  • fix(init): respect configured interview backend by @shaun0927 in #592
  • fix(persistence): include sessions without started events by @shaun0927 in #590
  • fix(evolution): rebuild Reflect adapter on llm.backend config drift (#562) by @minsing-jin in #563
  • Replace fixed evolve-step timeout with progress-aware watchdog by @andrew-adamson in #569
  • Use opaque execution node identities for recursive AC ownership by @andrew-adamson in #571
  • docs(mcp-bridge): mark evolution loop bridge limitation as resolved (closes #475 partial) by @shaun0927 in #533
  • Fix interview Claude tool envelope by @shaun0927 in #597
  • fix(mcp): serve resources from persisted state by @Q00 in #596
  • fix(claude): use partial content on max turns by @shaun0927 in #593
  • docs(mcp): remove internal remediation report by @Q00 in #604
  • fix(claude): resolve plugin hooks from plugin root by @Q00 in #601
  • fix(claude): force UTF-8 stdio for hook scripts by @Q00 in #602
  • fix(claude): fall back to python for hook executable by @Q00 in #605
  • Add provider-neutral task profiles for Codex-backed Ouroboros work by @andrew-adamson in #570
  • Pause sessions on usage limit failures by @andrew-adamson in #572
  • docs(rfc): add Contract Ledger schema by @shaun0927 in #522
  • Retry transient Claude CLI exits during seed extraction by @shaun0927 in #600
  • Split ooo auto core quality primitives by @shaun0927 in #565
  • Split ooo auto bounded supervisor loop by @shaun0927 in #566
  • Split ooo auto CLI and MCP surface by @shaun0927 in #567
  • Split ooo auto workflow documentation by @shaun0927 in #568

Full Changelog: v0.32.0...v0.33.0

v0.32.0

03 May 09:51
@Q00 Q00

Choose a tag to compare

What's Changed

Agent OS Kernel (Phase 2 — M3 / M6)

This release lands two major milestones of the Phase 2 Agent OS RFC.

M3 — I/O Journal (#517, 4 slices)

Every LLM call and tool dispatch is now wrapped in a structured, privacy-aware journal. Adapters gain a four-line IOJournalRecorder context manager that owns call-ID allocation, timing, content hashing, and event emission — no boilerplate at each callsite.

  • Foundation (llm.call.* / tool.call.* event factories)
  • IOJournalRecorder context-manager API with record_llm_call() / record_tool_call()
  • Wired into AnthropicAdapter and LiteLLMAdapter
  • Per-MCP-call context scope via use_io_journal_recorder() ContextVar

M6 — AgentProcess cooperative lifecycle (#518, slice 1)

The five lifecycle verbs (spawn, pause, resume, cancel, replay) land as a unified interface for long-running workflows (ralph, evolve_step, execute_seed). Cooperative semantics: the work loop checks flags at deterministic checkpoints; in-flight LLM/tool calls finish naturally.

  • AgentProcessHandle — cooperative flags (should_cancel, wait_unpaused)
  • Every lifecycle transition emits a control.directive.emitted journal event
  • replay() stub reserved for slice 3

AgentRuntimeContext + ControlBus + BridgeAwareMixin (#474, #475, #524)

The composition root is now threaded through all MCP handlers. EvolveStepHandler and LateralThinkHandler inherit BridgeAwareMixin; ControlBus on AgentRuntimeContext provides the reactive pub/sub surface for control directives.

Bug Fixes

  • ControlBus shutdown: bounded drain with cancel-timeout; fail-closed on unquiesced tasks; owned shutdown lifecycle
  • I/O Journal privacy: fail-closed for invalid preview mode; warn-once for invalid privacy enum
  • Codex: surface stdout error events in ProviderError; preserve MCP ownership during artifact refresh
  • OpenCode: fix setup config path resolution
  • Brownfield: share store for serve --db; failure-safe init; refcount ownership to prevent close-while-in-use; reject invalid scan roots
  • LineageProjector now folds control.directive.emitted events

Docs (RFC)

  • MCP Mesh wire format and Coordinator handshake
  • Disposable Memory process model and artifact_ref
  • Agent OS kernel terminology locked

Agent OS Architecture (main)

┌──────────────────────────────────────────────────────────────────────┐
│                  Ouroboros Agent OS (v0.32.0 / main)                 │
├──────────────────────────────────────────────────────────────────────┤
│                                                                      │
│  ┌────────────────────────────────────────────────────────────────┐  │
│  │                       MCP Tool Layer                          │  │
│  │                                                               │  │
│  │   EvolveStepHandler        LateralThinkHandler                │  │
│  │         │                          │                          │  │
│  │         └──────── BridgeAwareMixin ┘                          │  │
│  │                inject_runtime_context()                       │  │
│  └───────────────────────────┬────────────────────────────────────┘  │
│                              │ AgentRuntimeContext                   │
│  ┌───────────────────────────▼────────────────────────────────────┐  │
│  │                     Runtime Kernel                            │  │
│  │                                                               │  │
│  │   ┌──────────────────────┐     ┌────────────────────────────┐ │  │
│  │   │    AgentProcess      │     │       ControlBus           │ │  │
│  │   │  spawn()             │─────►  subscribe(pred, handler)  │ │  │
│  │   │  pause() / resume()  │emit │  publish(event)            │ │  │
│  │   │  cancel()            │     │  unsubscribe(handle)       │ │  │
│  │   │  replay() [slice 3]  │     └────────────────────────────┘ │  │
│  │   └──────────┬───────────┘             ↑ control.directive    │  │
│  │              │ cooperative flags        │        .emitted      │  │
│  │   ┌──────────▼────────────────────────────────────────────┐   │  │
│  │   │             AgentProcessHandle                        │   │  │
│  │   │  status │ should_cancel │ wait_unpaused │ process_id  │   │  │
│  │   └────────────────────────────────────────────────────────┘   │  │
│  └────────────────────────────────────────────────────────────────┘  │
│                                                                      │
│  ┌────────────────────────────────────────────────────────────────┐  │
│  │                    I/O Journal Layer (M3)                     │  │
│  │                                                               │  │
│  │   AnthropicAdapter ──┐                                        │  │
│  │   LiteLLMAdapter  ───┼──► IOJournalRecorder  (per MCP call)  │  │
│  │                      │      record_llm_call()                 │  │
│  │   use_io_journal_    │      record_tool_call()                │  │
│  │     recorder() ctx ──┘   [ContextVar-scoped per task]        │  │
│  └──────────────────────────────────────┬─────────────────────────┘  │
│                                         │ events                     │
│  ┌──────────────────────────────────────▼─────────────────────────┐  │
│  │                  EventStore  (Persistence)                    │  │
│  │                                                               │  │
│  │  llm.call.requested  llm.call.returned                        │  │
│  │  tool.call.started   tool.call.returned                       │  │
│  │  control.directive.emitted ────► LineageProjector             │  │
│  └────────────────────────────────────────────────────────────────┘  │
└──────────────────────────────────────────────────────────────────────┘

Full Changelog: v0.31.1...v0.32.0

What's Changed

  • fix(mcp): isolate brownfield startup tests + serialize handler init (follow-up to #487) by @shaun0927 in #507
  • docs(agent-os): lock kernel terminology by @Q00 in #557
  • Fix OpenCode setup config path resolution by @shaun0927 in #540
  • Preserve Codex MCP ownership during artifact refresh by @shaun0927 in #556
  • fix(providers): surface codex stdout error events in ProviderError (#560) by @minsing-jin in #561
  • docs(rfc): add MCP Mesh wire format and Coordinator handshake by @shaun0927 in #520
  • docs(rfc): add Disposable Memory process model and artifact_ref by @shaun0927 in #521
  • feat(events): fold control.directive.emitted onto LineageProjector by @shaun0927 in #523
  • feat(orchestrator): introduce ControlBus on AgentRuntimeContext by @shaun0927 in #524
  • feat(mcp): add inject_runtime_context helper to bridge_mixin (slice 1 of #474) by @shaun0927 in #526
  • feat(mcp): accept AgentRuntimeContext in tool factories (slice 2 of #474) by @shaun0927 in #527
  • feat(mcp): wire composition root through AgentRuntimeContext (slice 3 of #474) by @shaun0927 in #529
  • feat(mcp): EvolveStepHandler inherits BridgeAwareMixin (slice 1 of #475) by @shaun0927 in #530
  • feat(mcp): LateralThinkHandler inherits BridgeAwareMixin (slice 2 of #475) by @shaun0927 in #531
  • feat(orchestrator): AgentProcess interface + cooperative lifecycle (M6 / slice 1 of #518) by @shaun0927 in #537
  • feat(events): I/O Journal foundation (M3 / slice 1 of #517) by @shaun0927 in #532
  • feat(events): IOJournalRecorder context manager (M3 / slice 2 of #517) by @shaun0927 in #534
  • feat(providers): wire IOJournalRecorder into AnthropicAdapter (M3 / slice 3 of #517) by @shaun0927 in #535
  • feat(providers): wire IOJournalRecorder into LiteLLMAdapter (M3 / slice 4 of #517) by @shaun0927 in #536
  • fix(events): fail closed for invalid IO journal preview mode by @Q00 in #583
  • fix(orchestrator): own ControlBus shutdown lifecycle by @Q00 in #584
  • feat(events): scope IO journal recorders per MCP call by @Q00 in #585

Full Changelog: v0.31.1...v0.32.0

v0.31.1

29 Apr 17:13

Choose a tag to compare

What's Changed

  • fix(parallel): honor configured worker caps by @andrew-adamson in #489
  • feat(orchestrator): Gemini CLI runtime backend (follow-up to #312) by @shaun0927 in #504
  • fix(router): preserve Windows literal path payloads through skill dispatch by @shaun0927 in #481
  • fix(brownfield): scan repos with any origin remote by @andrew-adamson in #486
  • fix(mcp): share brownfield store for serve --db by @andrew-adamson in #487
  • fix(router): preserve quoted Windows literal path payloads by @shaun0927 in #510
  • fix(interview): allow reopening seed-ready interviews to honor session challenges by @Q00 in #509

Full Changelog: v0.31.0...v0.31.1

v0.31.0

29 Apr 15:13
@Q00 Q00

Choose a tag to compare

What's Changed

Features

  • Render seed ontology in execution contract (d5d66a8)

Bug Fixes

  • interview: restore per-dimension gap signal without closure pressure (35c0380)
  • interview: remove closure pressure from question prompt (f283c06)
  • router: normalize trailing line endings (40d3cae)
  • router: preserve multiline payload whitespace (e8534e0)
  • router: preserve parsed multiline prompts (bb7a456)
  • router: dispatch multiline run payloads (bebda68)
  • skills: rename resume skill (0bacf6d)
  • execution: cap AC decomposition depth at 2 to prevent sub-AC explosion (63b290a)
  • core: avoid duplicating acceptance criteria in execution prompt (c00aad5)
  • core: keep seed contract prompt scoped to execution (5489f3f)
  • core: include ontology field types in seed contract prompt (decc797)

Documentation

  • List resume-session in command summary (2ce45c8)

Full Changelog: v0.30.0...v0.31.0

What's Changed

  • feat(core): render seed ontology in execution contract by @Q00 in #495
  • fix(skills): rename resume skill by @Q00 in #503
  • fix(router): dispatch multiline run payloads by @Q00 in #501
  • fix: harden interview closure prompt + router multiline dispatch by @Q00 in #506

Full Changelog: v0.30.0...v0.31.0

v0.30.0

26 Apr 18:11
@Q00 Q00

Choose a tag to compare

What's Changed

Features

  • CLI: add ooo resume to recover in-flight sessions after MCP disconnect (#433)
  • MCP: add streamable HTTP serve transport
  • MCP: add compact monitoring relay views
  • MCP: suggest lateral persona from stagnation
  • Resilience: add in-run lateral recovery
  • Events: add control.directive.emitted event factory
  • Core: introduce Directive StrEnum for control-plane decisions

Bug Fixes

MCP

  • clarify job wait execution progress note
  • gate job wait changes on execution deltas
  • surface subtask-only job wait progress
  • align job wait progress signals
  • surface live progress in job wait
  • avoid stale execution monitor cache
  • keep workflow progress in compact monitor
  • count all Sub-AC events in job status
  • preserve monitoring tool default views
  • cancel linked job runner tasks (#464)
  • preserve personas precedence
  • reject blank lateral persona
  • avoid excluded lateral personas
  • clarify streamable HTTP serve contract

Interview

  • surface ambiguity-gate save_state failures as hard errors
  • enforce streak gate + shortfall persistence on explicit done path
  • require summaries for completed long contexts
  • preserve initial context overflow
  • require summary before downstream prompts
  • share prompt-safe initial context
  • trim history to total prompt budget
  • budget total prompt payload
  • reject oversized initial contexts
  • preserve full initial context overflow
  • retain overflow context across rounds
  • cap initial context prompt

PM / Bigbang

  • require long context summary before PM seed
  • exclude summary recovery from PM flow
  • align long context recovery with base interview
  • keep long-context interviews compatible
  • cap recorded initial context summaries

Documentation

  • position Ouroboros as Agent OS (README)
  • clarify user config setup (MCP)
  • make workflow seed examples valid (MCP)
  • add onboarding workflow guides (MCP)
  • tie control event factory to Phase 2 Event Journal framing
  • tie Directive module to Phase 2 control-plane framing

Refactoring & Tests

  • make control.directive.emitted target-oriented per #476 review
  • restore monitoring coverage after rebase
  • dedupe overlapping streak/shortfall regression tests
  • format compact monitoring updates / prompt budget trim / claude adapter diagnostics test

Full Changelog: v0.29.2...v0.30.0

What's Changed

  • feat(mcp): suggest lateral persona from stagnation by @Q00 in #465
  • feat(cli): add 'ooo resume' to recover in-flight sessions after MCP disconnect by @shaun0927 in #433
  • fix(interview): cap initial context prompt by @Q00 in #463
  • docs(mcp): add onboarding workflow guides by @Q00 in #466
  • feat(core): introduce Directive StrEnum for control-plane decisions by @shaun0927 in #477
  • feat(events): add control.directive.emitted event factory by @Q00 in #492
  • feat(mcp): add streamable HTTP serve transport by @andrew-adamson in #485
  • fix(interview): enforce streak check on explicit 'done' path by @shaun0927 in #428
  • fix(mcp): cancel linked job runner tasks by @Q00 in #464
  • feat(mcp): add compact monitoring relay views by @Q00 in #483
  • fix(mcp): clarify job wait execution progress note by @Q00 in #498

New Contributors

Full Changelog: v0.29.2...v0.30.0

v0.29.2

22 Apr 17:36
@Q00 Q00

Choose a tag to compare

What's Changed

Bug Fixes

  • fix(mcp): protect startup stdin during shell env loading (#482)
  • fix(interview): guard seed-ready closure (#484)
  • fix(evaluate): replace language presets with AI-driven mechanical.toml (#454)

Full Changelog: v0.29.1...v0.29.2

What's Changed

  • fix(evaluate): replace language presets with AI-driven mechanical.toml by @Q00 in #454
  • fix(interview): guard seed-ready closure by @Q00 in #484
  • fix(mcp): protect startup stdin during shell env loading by @justinpbarnett in #482

New Contributors

Full Changelog: v0.29.1...v0.29.2

v0.29.1

21 Apr 18:33
@Q00 Q00

Choose a tag to compare

What's Changed

Bug Fixes

  • mcp: prevent start_execute_seed UUID scope crash (#470)
  • mcp: avoid replaying failed tool calls
  • mcp: avoid retrying timed-out tool calls
  • mcp: reconnect stale client transports (#467)
  • runtime: drop initial_context on interview resume so InterviewHandler continues the session
  • router: extract_first_argument returns full argument payload instead of just the first token
  • tests: make OpenCode config tests platform-agnostic (#469)

Refactoring

  • router: extract shared ooo skill-dispatch router; remove OpenClaw channel workflow (#459)

Maintenance

  • tests: format MCP manager tests

Contributors

  • fix(tests): make OpenCode config tests platform-agnostic by @Sathvik-1007 in #469
  • refactor(router): extract shared ooo skill-dispatch router, remove OpenClaw channel workflow by @Q00 in #459
  • fix(mcp): reconnect stale client transports by @Q00 in #467
  • fix(mcp): prevent start execute seed uuid4 scope crash by @Q00 in #470

Full Changelog: v0.29.0...v0.29.1