What’s New

oh-my-openagent

AI

oh-my-openagent release notes.

Latest v4.19.3 · by oh-my-openagentWebsitecode-yeongyu/oh-my-openagent

Changelog

v4.19.3

Added
  • Ground interaction and UI-behavior work with curated beui.dev-based reference patterns in shared skill library
Changed
  • Harden config migration to automatically reclaim stale migration locks instead of blocking startup
  • Preserve migration transform diagnostics so changes are visible during migration
  • Create backup directories only when migration actually runs instead of always
  • Route config migration through unified path for Codex-side integrations
  • Re-tier visual-engineering and artistry category chains for improved model routing to frontend, design, and creative problem-solving tasks
  • Introduce single binary approval gate and hard completion contract for release workflow to prevent stalled half-announced releases
Fixed
  • Fix legacy config root discovery on Windows and in setups where project lives outside home directory
  • Rebuild four flaky CI test suites around explicit synchronization to reduce timing-dependent failures
  • Resolve reviewer-tier contradiction in ulw-loop planning
Removed
  • Remove legacy ~/.omo/config.jsonc loader and consolidate omo.jsonc as the only config surface
oh-my-openagent v4.19.3 — Config migration you can trust

A stability-focused patch: the unified omo.jsonc config surface is now the single source of truth, migration is far more resilient across platforms, model routing got a tune-up, and CI got noticeably more deterministic.

One config, safer migration

The legacy ~/.omo/config.jsonc loader is gone — omo.jsonc is now the only config surface, and the docs walk through exactly how migration works. Migration itself got hardened where it used to bite: stale migration locks are reclaimed automatically instead of wedging startup, transform diagnostics are preserved so you can see exactly what changed, backup directories are only created when a migration actually runs, and legacy config roots are discovered correctly on Windows and in setups where your project lives outside your home directory. Codex-side config migration now flows through the same unified path.

Smarter model routing for design and creative work

The visual-engineering and artistry category chains were re-tiered, so frontend/design and creative problem-solving tasks route to the models that currently do them best.

Interaction design, grounded

Interaction and UI-behavior work is now anchored to a curated beui.dev-based reference in the shared skill library, giving agents concrete interaction patterns to draw from instead of improvising.

A calmer, more deterministic pipeline

Four flaky CI test suites were rebuilt around explicit synchronization instead of timing luck, and the release workflow itself now carries a single, binary approval gate plus a hard completion contract — releases can no longer stall half-announced.

Also included: ulw-loop planning fixes (reviewer-tier contradiction resolved, clearer team-mode decision rule).


v4.19.2

Added
  • Team messages now use injection-driven delivery so leads and members can continue working instead of waiting for empty turns
  • Task surfaces now expose clearer role, model, turn, token, and throughput details
  • Sisyphus now has a dedicated Claude Opus 5 prompt tuned for evidence-driven execution and strict stop behavior
  • Session discovery for oh-my-pi and gajae-code session stores
  • Ultrawork hidden directive injection for Senpi
Changed
  • Background task output is now non-blocking and completion notifications are authoritative instead of blocking polls
  • CodeGraph now runs as a managed shared daemon by default with pinned-runtime validation and process-tree cleanup
  • Model routing and documentation have moved to Claude Opus 5 as the recommended model
  • start-work --make-pr and --ship flags now carry delivery intent through continuations
  • TypeScript dependency upgraded to 7.0.2
Fixed
  • cmux-backed subagent panes attach directly, avoid duplicate respawns, protect authenticated contexts, and clean up native sessions correctly
  • CodeGraph now skips sweep for excluded projects on Windows
  • CodeGraph enforces managed process lifecycle to prevent stale helpers and mismatched binaries
  • Goal command provenance is now preserved in native command handoff
  • ast-grep version probe output no longer leaks to parent process stderr
  • Ultrawork requires obsessive live todos in GPT and GLM variants
  • Ultrawork mandates goal registration and history-mimicking atomic commits
oh-my-openagent v4.19.2 — Smarter handoffs, cleaner runtimes

This release tightens the machinery around long-running agent work. Completion and team messages now arrive through authoritative notifications instead of blocking polls, CodeGraph runs as a managed shared daemon by default, and terminal-backed subagents behave predictably in cmux environments.

Notification-driven agent coordination

Background task output is now an immediate status or transcript peek, while completion notifications carry the final result automatically. Team messages use the same injection-driven model, so leads and members can keep working instead of spending turns on empty waits. The task surfaces also expose clearer role, model, turn, token, and throughput details.

Managed CodeGraph by default

OpenCode and LazyCodex now prefer the shared CodeGraph daemon automatically. Pinned-runtime validation, process-tree cleanup, and tighter lifecycle ownership prevent stale helpers and mismatched binaries while preserving a configuration opt-out for isolated per-session mode.

Claude Opus 5-ready orchestration

Sisyphus now has a dedicated Claude Opus 5 prompt, and the recommended model routing and documentation have moved to Opus 5. The new prompt is tuned for the same evidence-driven execution and strict stop behavior used by the rest of the current model families.

Cleaner delivery workflows and terminals

start-work --make-pr and --ship carry delivery intent through continuations, while cmux-backed subagent panes attach directly, avoid duplicate respawns, protect authenticated contexts, and clean up native sessions correctly.

Also included: hidden ultrawork directive injection for Senpi, oh-my-pi and gajae-code session discovery, quieter ast-grep version probing, native goal-command provenance fixes, and more deterministic CI and live QA fixtures.

  • 3f917a94c Merge pull request #6360 from code-yeongyu/release/v4.19.2-source-state
  • 6fbdf4599 Merge pull request #6359 from code-yeongyu/fix/codegraph-windows-exclusion
  • b3e263b61 fix(codex): skip codegraph sweep for excluded projects
  • 7fcfeb57f Merge pull request #6358 from code-yeongyu/feat/team-steer-only
  • 29c53c9dd docs(qa): note CI synchronize trigger in steer-only evidence
  • b75d9ebed Merge pull request #6357 from code-yeongyu/feature/codegraph-daemon-default-on
  • 5a41124d7 Merge remote-tracking branch 'origin/dev' into feature/codegraph-daemon-default-on
  • c27bf70b8 feat(codegraph): enable daemon by default
  • 53b775745 feat(omo-config): add codegraph daemon setting
  • aa7d3c523 Merge pull request #6353 from code-yeongyu/docs/prompt-sweep-injection
  • 6090d31ed Merge origin/dev into docs/prompt-sweep-injection
  • be979a5a5 Merge pull request #6350 from code-yeongyu/feat/team-injection
  • 0cd7ab9e1 Merge origin/dev into feat/team-injection
  • 6f1025edb Merge origin/dev into feat/team-injection
  • 1639e4d8f docs(prompts)!: teach injection-driven waiting across shipped prompt surfaces
  • 27b3bbaee Merge pull request #6346 from code-yeongyu/feat/task-output-peek
  • 2da97a0f8 feat(team): injection-driven member inbox and crash liveness events
  • f69e07350 fix(team): deliver idle injections as follow-ups
  • 0f7b86827 feat(team)!: replace team_wait with injected lead inbox delivery
  • ec823b854 chore(qa): lane QA fixtures and scanner updates
  • b17479d0e Merge pull request #6347 from code-yeongyu/feature/agent-sessions-oh-my-pi-gajae-code
  • 57d6e01c4 test(omo-codex): classify the generated pi_family scanner copy
  • d59aa6dd4 docs(shared-skills): document oh-my-pi and gajae-code session stores
  • dfc912c7f feat(shared-skills): scan oh-my-pi and gajae-code session stores
  • 430b7e68f feat(task): make task_output non-blocking and completion notifications authoritative
  • 3a56234e3 Merge pull request #6344 from code-yeongyu/feat/ultrawork-hidden-injection
  • 2e2b9b748 fix(shared-skills): realign the debugging description with its TS source
  • cd6f6cbce feat(programming): dependency-upgrade rules, cross-process test isolation, caller-response logging
  • 000542bda feat(debugging): add intermittent/flaky failure triage reference
  • 22b667a80 fix(audits): use TypeScript 7 native parser API
  • acc14b765 Merge commit '843390730ffe08638204c40fcbac0fae7cc49422' into ulw/merge-20260726
  • 8029c6c28 Merge pull request #6337 from code-yeongyu/fix/codegraph-process-lifecycle
  • 13acc2635 test(codegraph): use platform managed binary names
  • 51c08b310 test(codegraph): stabilize Windows timeout fixture
  • 468b148df Merge remote-tracking branch 'origin/dev' into fix/codegraph-process-lifecycle
  • 793485d1c fix(codegraph): enforce managed process lifecycle
  • 843390730 chore(deps): bump typescript to 7.0.2
  • c34557db0 Merge pull request #6333 from code-yeongyu/feature/opus5-model-migration
  • d422a21d5 fix(models): migrate recommendations to opus 5
  • d5a277e59 Merge pull request #6332 from code-yeongyu/feat/ulw-goal-todo-commit-discipline
  • 73a85a9b2 fix(ultrawork): require obsessive live todos in the GPT and GLM variants
  • 11003d6f2 fix(ulw-loop): pin goal registration and obsessive update_plan todos in the skill
  • 6a99b9082 fix(ultrawork): mandate goal registration and history-mimicking atomic commits
  • 50aae4272 Merge pull request #6331 from code-yeongyu/fix/sg-probe-banner-leak-6330
  • 580cbeb0e fix(utils): keep sg version probe stderr out of the parent process
  • c155fa863 Merge pull request #6321 from code-yeongyu/feature/sisyphus-claude-opus-5-prompt
  • 86ae07264 feat(sisyphus): add Claude Opus 5-native prompt variant
  • 346a054bc Merge pull request #6316 from code-yeongyu/fix/ci-flaky-test-timeouts
  • 8140f01a1 Merge pull request #6315 from code-yeongyu/fix/goal-command-blank-terminal
  • 4a84d2c3b fix(test): stabilize flaky CI tests timing out under load
  • a6f7378bc test(goal): cover native command handoff
  • 008a6c826 fix(goal): preserve native command provenance
  • 13b2701d1 Merge pull request #5811 from Yoonkeee/fix/cmux-subagent-attach
  • 5fbac89b3 test(hooks): avoid transcript mock order coupling
  • 4d77bf6df docs(qa): refresh post-merge verification
  • 7806d24e4 Merge remote-tracking branch 'origin/dev' into review/pr-5811-cmux-eligibility
  • 3a19d2a3c test(tmux): normalize Windows cwd expectation
  • 2b0e6ab4e docs(qa): record final cmux review evidence
  • e9ffb1e97 fix(tmux): enforce native session cleanup
  • e61267caa fix(cmux): reject authenticated container spawns
  • 56255ff51 fix(cmux): delegate background panes and protect auth
  • 4418ec3ee Merge remote-tracking branch 'origin/pr-5811-head' into review/pr-5811-cmux-eligibility
  • 7da0e4d3c fix(tmux): support inline cmux pane lifecycle
  • 709bf027b Fix #5809: accept cmux-compat environment without TMUX in pane gates
  • 9e766ec7e Merge remote-tracking branch 'origin/dev' into review/pr-5811-cmux-eligibility
  • e81b4dc43 Merge pull request #6308 from code-yeongyu/feature/start-work-pr-options
  • f85b39f86 feat(start-work): honor recorded PR delivery mode across continuation directives
  • cab6771cd feat(start-work): parse --make-pr/--ship and inject a PR delivery block
  • cf390e038 feat(start-work): add --make-pr/--ship options and mandate goal+todo discipline
  • 953017515 feat(ulw-plan): end planning with a structured handoff explanation
  • dcadfadab test(tmux): update attach command expectations
  • f73a79103 Fix #5809: mark deferred inline cmux attach as attach-activated
  • 7e2a8b94b Fix #5809: cover graceful pane close for cmux eager panes
  • 43e20de8d Fix #5809: mark cmux subagent sessions attach-activated to skip respawn
  • a7c908f70 Fix #5809: add cmux-detect and attach-command edge tests
  • f506d8728 Fix #5809: spawn cmux subagent pane with opencode attach directly (tmux-core)

Thank you to 1 community contributor:

  • @Yoonkeee:
    • Fix #5809: spawn cmux subagent pane with opencode attach directly (tmux-core)
    • Fix #5809: add cmux-detect and attach-command edge tests
    • Fix #5809: mark cmux subagent sessions attach-activated to skip respawn
    • Fix #5809: cover graceful pane close for cmux eager panes
    • Fix #5809: mark deferred inline cmux attach as attach-activated
    • test(tmux): update attach command expectations
    • Fix #5809: accept cmux-compat environment without TMUX in pane gates

v4.19.1

Added
  • Family-based process sweep at startup cleans up stale codegraph and LSP helpers
  • Stdio MCP server processes now carry a parent-liveness watchdog that exits when parent dies
  • LSP daemon reaps older-version daemons on startup
  • Opt-in shared codegraph daemon mode available via OMO_CODEGRAPH_DAEMON across OpenCode and Codex
  • ulw-loop gained atomic batch steering with steer --proposals-json and validation-batch review boundaries
  • Next-goal auto-advance is fused into the checkpoint so multi-goal loops advance with fewer round trips
Changed
  • GPT defaults including the Oracle reviewer now route through GPT-5.6 Sol with aligned prompt identity and guardrails
  • Builtin Kimi fallbacks are promoted to K3
  • Vendored CodeGraph binary is pinned to 1.4.1 with MCP init guidance aligned to new output shapes
  • ulw-plan now enforces its mandatory opening announcement
  • Stop-resume writes are contained to the session state directory
  • Cold-start SessionStart hook timeouts are raised to 15 seconds
Fixed
  • Silent language servers that never push diagnostics no longer stall behind freshness timeout with clean diagnostics resolution for no-pull servers
  • LSP daemon reports cancelled and timed-out requests accurately instead of mislabeling them
  • bun test now exits cleanly on win32 with held-open streams destroyed and isProcessAlive never throws
  • codex.cmd shim resolves for doctor spawns
  • Duplicate role registration is avoided
  • npm-install lock drift after local dependency rewrites is fixed
  • Lazycodex marketplace payload bundles component CLIs correctly
Removed
  • Retired gpt-5.5 fallback rungs are purged to prevent silent fallback to older models
🩹 oh-my-openagent v4.19.1 — Quieter, tougher, and routed through Sol

A stability-first patch. Nothing changes about how you drive omo, but a lot changes about how well it behaves underneath: GPT defaults now route through GPT-5.6 Sol, stray background processes get swept instead of piling up, and a wave of Windows and Codex install fixes lands so the rough edges from v4.19.0 are gone.

🧠 GPT defaults now run on GPT-5.6 Sol

Active GPT defaults — including the Oracle reviewer — now route through GPT-5.6 Sol, with the prompt identity and guardrails aligned to match. The retired gpt-5.5 fallback rungs are purged so nothing silently falls back to an older model, and the builtin Kimi fallbacks are promoted to K3. You get the newer, stronger routing automatically with no config change.

🧹 No more orphaned background processes

omo now runs a family-based process sweep at startup that cleans up stale codegraph and LSP helpers, and every stdio MCP server (LSP, git-bash, codegraph bridge) now carries a parent-liveness watchdog that exits the moment its parent dies. The LSP daemon also reaps older-version daemons on startup. If you ever noticed leftover helper processes lingering after a session, that class of leak is closed.

🔎 CodeGraph 1.4.1 + opt-in shared daemon

The vendored CodeGraph binary is pinned to 1.4.1, with MCP init guidance aligned to its new output shapes. A new opt-in shared codegraph daemon mode (OMO_CODEGRAPH_DAEMON) is available across OpenCode and Codex for teams that want a single long-lived index instead of per-session spawns.

🩺 Sharper LSP diagnostics

Silent language servers that never push diagnostics no longer stall behind a freshness timeout — omo now resolves clean diagnostics for no-pull servers and guards the fallback with a version-current pull cache. The LSP daemon also reports cancelled and timed-out requests accurately instead of mislabeling them.

⚙️ ulw-loop batch efficiency

The ulw-loop gained atomic batch steering (steer --proposals-json), validation-batch review boundaries, and next-goal auto-advance fused into the checkpoint, so multi-goal loops advance with far fewer round trips. ulw-plan now enforces its mandatory opening announcement, and stop-resume writes are contained to the session state dir.

🪟 Windows & Codex install hardening

A broad reliability pass for Windows and Codex users: bun test now exits cleanly on win32 (held-open streams destroyed, isProcessAlive never throws), the codex.cmd shim resolves for doctor spawns, cold-start SessionStart hook timeouts are raised to 15s, duplicate role registration is avoided, npm-install lock drift after local dep rewrites is fixed, and the lazycodex marketplace payload bundles its component CLIs correctly.

🎯 Model routing fixes

antigravity-gemini-3-flash ids are no longer rewritten to an invalid -preview id, and GPT-5.6 (sol/terra/luna) now carry proper 372k PostCompact context budgets so compaction stops applying the 200k fallback.


  • 9c81de52a Merge pull request #6300 from code-yeongyu/release/v4.19.1-source-state
  • 499b52358 Merge pull request #6293 from code-yeongyu/fix/config-watch-rejection-reregister
  • 166d2e1ab Merge pull request #6294 from code-yeongyu/fix/windows-flaky-coalesced-flush-wait
  • ad0085b2b test(background-agent): await guaranteed flush-settle signal, not a poll-cap race
  • 97b05026f Merge pull request #6290 from code-yeongyu/fix/139-marketplace-root-manifest
  • c3d0e683d fix(script): also write marketplace.json to the lazycodex repo root
  • 4ae3be456 Merge pull request #6289 from code-yeongyu/test/136-codex-only-install-exit-status
  • 85a1bec60 Merge pull request #6285 from code-yeongyu/fix/108-sync-component-clis
  • 8cfd05ce8 Merge pull request #6287 from code-yeongyu/fix/137-npm-ci-lock-drift
  • 66a174fe3 test(install): regression-lock codex-only install failure exit status\n\nProves cli/tui installers exit non-zero when a codex-only Codex install fails, preserving the platform=both partial-success path. Reported in lazycodex#136.
  • 102caa9bf Merge pull request #6288 from code-yeongyu/fix/131-orca-duplicate-agent-roles
  • 1dfb1f56f Merge pull request #6286 from code-yeongyu/fix/111-no-excuse-ts-resolution
  • 4368a3798 test(codex-install): parity test expects npm install after outside-plugin file dep rewrite
  • 855ff8f93 fix(script): normalize managed bin target path to POSIX for win32 validation
  • 5b302c91f fix(codex-bootstrap): do not re-register roles already declared in config.toml\n\nAvoids 13 duplicate-role warnings under Orca-mirrored CODEX_HOME. Reported in lazycodex#131.
  • 5b2a11b54 fix(codex-install): use npm install when the local file dep rewrite changed package.json\n\nAvoids npm ci EUSAGE after the rewrite desyncs the lock. Reported in lazycodex#137, approach from oh-my-openagent#6202.
  • 0e4841e4b Merge pull request #6284 from code-yeongyu/fix/windows-ci-timing-flakes
  • 90eb338c0 fix(programming): resolve typescript from caller project in check-no-excuse-rules\n\nDynamic caller-scoped resolution so the script works from an installed skill cache. Reported in lazycodex#111.
  • 1bf0f4363 fix(script): bundle component bin CLIs and drop nested gitignore from marketplace payload\n\nNested component .gitignore beat the lazycodex root negation so start-work-continuation and ulw-loop dist CLIs were skipped by git add. Reported in lazycodex#108.
  • d59736a10 Merge pull request #6281 from code-yeongyu/fix/133-sessionstart-timeout-headroom
  • 96b8c9700 Merge pull request #6282 from code-yeongyu/fix/128-service-tier-optout
  • b7ff3f1a6 Merge pull request #6280 from code-yeongyu/fix/138-doctor-codex-win-shim
  • 04c45517d Merge pull request #6278 from code-yeongyu/fix/117-antigravity-gemini-transform
  • 4c6f1872a Merge pull request #6279 from code-yeongyu/fix/124-ulw-plan-ultrawork-collision
  • 0d9180a54 docs(codex): document and lock the explorer/librarian service-tier opt-out
  • 401dda2d2 fix(codex): raise cold-start SessionStart hook timeouts to 15s\n\nTelemetry/auto-update/codegraph SessionStart manifests 5s -> 15s to survive Windows cold starts. Reported in lazycodex#133.
  • d47759973 fix(codex-install): resolve codex .cmd shim on Windows for doctor spawn\n\nAdd codex to the win32 cmd-shim set so doctor spawns codex.cmd instead of ENOENTing. Reported in lazycodex#138.
  • 454cb1630 Merge pull request #6276 from code-yeongyu/fix/129-stop-resume-path-traversal
  • 1db84c906 Merge pull request #6277 from code-yeongyu/fix/125-postcompact-gpt56-budget
  • d0b86901e fix(ultrawork): stop ulw-plan/ulw-research from triggering ultrawork mode\n\nNegative lookahead carves ulw-plan and ulw-research out of the trigger pattern; ultrawork/ulw/ulw-loop still match. Reported in lazycodex#124.
  • 71557afab fix(model-core): keep antigravity-gemini-3-flash out of the -preview rewrite\n\nNegative lookbehind so antigravity-prefixed gemini-3-flash ids are not rewritten to an invalid -preview id. Reported in lazycodex#117.
  • 9e428f568 fix(rules): add GPT-5.6 context budgets for PostCompact\n\nAdd gpt-5.6-sol/terra/luna at 372k so PostCompact stops applying the 200k fallback. Reported in lazycodex#125.
  • 60415873e fix(ulw-loop): contain stop-resume writes to the session state dir\n\nValidate goal-id path containment before writing auto-resume counter/stuck files, denying resumes for ids that escape the session state dir. Reported in lazycodex#129.
  • 2999a1790 Merge pull request #6271 from code-yeongyu/docs/codegraph-daemon-hygiene
  • 562730173 docs: codegraph daemon opt-in and process hygiene
  • d60e7511c Merge pull request #6262 from code-yeongyu/feat/omo-process-hygiene
  • 6d9583674 test(codegraph): guard held-open watchdog facade test on win32
  • f4a31019f Merge remote-tracking branch 'origin/dev' into feat/omo-process-hygiene
  • 8e3c6299f fix(codegraph): destroy held-open test streams so bun test exits on win32
  • c44f565d4 Merge pull request #6265 from code-yeongyu/feature/upgrade-agent-gpts-to-5-6-sol
  • 8ff0aeb52 test(opencode): keep fallback coverage zero-growth
  • 2c6872cf7 fix(mcp-stdio-core): make isProcessAlive never throw so the watchdog cannot wedge on Windows
  • 64dec99cd test(models): pin Sol fallback progression
  • cafc9e794 fix(models): close Sol routing review gaps
  • 9271f83dc fix(agents): align Sol prompt identity and guardrails
  • 35ab4c0d8 test(opencode): split model fallback coverage
  • 2173bfc51 feat(models): route active GPT defaults through 5.6 Sol
  • 58b3176cb Merge remote-tracking branch 'origin/dev' into feat/omo-process-hygiene
  • 6554b3ce8 test(omo-opencode): normalize separators before stripping trailing slash in root assertion
  • d128431b4 test(process-sweep): use a valid NodeJS.Platform value for forced kill paths
  • 0243dc4a6 test(omo-opencode): fix backslash regex in plugin-root assertion
  • b62b3fa8b test(process-sweep): pin kill paths to injected posix platform and normalize separators in root assertion
  • 8aac3c9b0 fix(mcp-stdio-core): reword watchdog comment to keep the package harness-neutral
  • 703b67c40 Merge pull request #6261 from code-yeongyu/code-yeongyu/omo-config-watch
  • a6dd5bf90 merge: sync origin/dev into omo-config-watch
  • c8bffd2c9 test(utils): add process-sweep family matrix tests
  • 20ee9eabd feat(utils): family-based omo process sweep (codegraph + lsp)
  • 2ce0f2a14 fix(omo-codex): terminate codegraph bridge when parent dies
  • e41cbc635 fix(lsp,git-bash): exit MCP server processes when the parent dies
  • 818382852 feat(lsp-daemon): add version-reap module and tests
  • 4fef01293 feat(lsp-daemon): reap older-version daemons at startup
  • 5632e6a6e feat(mcp-stdio-core): parent-liveness watchdog for stdio servers
  • d772785b9 Merge pull request #6251 from code-yeongyu/feat/codegraph-daemon-optin
  • e3d1e47a3 Merge pull request #6253 from code-yeongyu/docs/refresh-model-defaults
  • d30753d65 Merge remote-tracking branch 'origin/dev' into feat/codegraph-daemon-optin
  • cda04875a test(codegraph): compute expected CODEGRAPH_INSTALL_DIR via join for win32
  • 538df7478 Merge pull request #6252 from code-yeongyu/fix/inprocess-resident-false-lost
  • b0ff7ee77 Merge latest dev into fix/inprocess-resident-false-lost
  • de67397fb Merge origin/dev into fix/inprocess-resident-false-lost
  • e96b6f75b docs: refresh model defaults to current fallback chains
  • a3aab709c fix: preserve live in-process residents during reconcile
  • a09cb9bd7 Merge remote-tracking branch 'origin/dev' into feat/codegraph-daemon-optin
  • bf033ac46 feat(omo-config-core): export config path resolution helpers
  • 3e29a584f fix(codegraph): forward CODEGRAPH_DAEMON_IDLE_TIMEOUT_MS through the child env allowlist
  • 6d53dc8d6 Merge pull request #6249 from code-yeongyu/fix/purge-gpt55-fallbacks
  • 391e3543c Merge pull request #6250 from code-yeongyu/fix/lsp-daemon-accurate-failure-labels
  • abb059f72 test(opencode): align fallback selection coverage
  • 9c7d4c1df fix(lsp-daemon): report cancelled and timed-out requests accurately
  • aec6aa814 feat(omo-opencode): codegraph daemon opt-in and exclusion parity
  • 7cb37389a test(models): cover gpt-5.5 fallback removal
  • 05179d010 fix(models): purge gpt-5.5 fallback rungs
  • 720dcd0b6 Merge pull request #6248 from code-yeongyu/feature/ulw-loop-batch-efficiency-v2
  • 5912b9491 Merge pull request #6247 from code-yeongyu/fix/kimi-k3-defaults
  • 8ade283be chore(ulw-loop): record reviewer blocker evidence
  • 3e2adaf4a Merge remote-tracking branch 'origin/dev' into fix/kimi-k3-defaults
  • 05c47ef3e test(defaults): cover Kimi K3 builtin routing
  • 80a57345f fix(ulw-loop): close independent review blockers
  • c91d58d5d feat(omo-codex): opt-in shared codegraph daemon mode
  • 7332547f5 fix(defaults): promote builtin Kimi fallbacks to K3
  • 71752b396 Merge pull request #6246 from code-yeongyu/feature/ulw-plan-mode-announcement
  • de9c5457d Merge pull request #6245 from code-yeongyu/feat/realtime-tool-progress
  • 26f929b33 chore(ulw-loop): record final gajae-adoption verification
  • 3c661ed2a chore(ulw-loop): record codex-qa evidence for gajae-adoption features
  • 45516ec6f chore(skills): regenerate synced codex ulw-plan skill copy
  • 35837c547 feat(skills): enforce mandatory opening announcement in ulw-plan
  • 26352f678 Merge remote-tracking branch 'origin/dev' into feat/realtime-tool-progress
  • b36ecdd17 fix(ulw-loop): allow batch-final aggregate completion
  • 3b0897bc0 fix(ulw-loop): default batched steering CLI source
  • 1c41f2fff docs(ulw-loop): document auto-advance, batch steering, validation batches
  • 05df4b1fd feat(ulw-loop): enforce validation-batch review boundaries
  • 4b5e237ce feat(ulw-loop): add validation-batch schema to create-goals
  • b424d6371 fix(codegraph): exempt live detached daemons from zombie sweep
  • ce628f877 feat(ulw-loop): add steer --proposals-json atomic batch steering
  • b7f73f184 feat(ulw-loop): fuse next-goal auto-advance into checkpoint
  • 6a6b37ebc Merge pull request #6243 from code-yeongyu/fix/defaults-oracle-gpt56-opus48
  • 072882cf3 test(opencode): record isolated Oracle routing QA
  • 5c6af0eb9 test(opencode): align fallback routing coverage
  • 6b050e0de feat(opencode): route Oracle through GPT-5.6 Sol
  • d47e52e95 feat(models): update Opus aliases and migration targets
  • 58d1fd355 feat(codegraph): optional daemon mode in codegraph env builder
  • fb0fb5e2e Merge pull request #6242 from code-yeongyu/feat/codegraph-141-upgrade
  • 44f56d504 test(codegraph): block win32 hang probe in cmd.exe stdin instead of a lingering grandchild
  • 4c11abaf5 test(codegraph): bound win32 hang fake to 4s and retry probe-dir cleanup past the lock window
  • 2586ef703 test(codegraph): use index-signature env access in probeEnv (TS4111)
  • 0bdc3537b test(codegraph): inherit system PATH for the win32 status probe
  • 2634a6fff test(codegraph): make store-upgrade hook tests cross-platform
  • 60dfdbb78 build(codegraph): rebuild vendored codex component dist for the 1.4.1 pin
  • a2e27a931 fix(codegraph): align MCP init guidance with CodeGraph 1.4.1 output shapes
  • 7e499c5af test(codegraph): pin 1.0.1-era store handling under the 1.4.1 binary
  • 0f3be7079 build(codegraph): bump vendored CodeGraph pin to 1.4.1
  • 9b45c0d30 Merge pull request #6239 from code-yeongyu/fix/lazycodex-model-routing
  • 67fb6a736 fix(codex): update lazycodex agent model routing
  • 50d9307ea Merge pull request #6210 from acamq/fix/notepad-auto-scaffold-on-start-work
  • 96194aaf8 Merge pull request #6140 from MoerAI/fix/6131-lsp-diagnostics-silent-server
  • 438142a57 test(lsp-core): record QA evidence for the #6131 stale-cache fallback guard
  • d9fb51e65 fix(lsp-core): guard silent-server diagnostics fallback with version-current pull cache
  • 28571cd26 Merge remote-tracking branch 'origin/dev' into fix/6131-lsp-diagnostics-silent-server
  • d3c72a873 Merge pull request #5924 from Hungdoan565/codex/docs-glm52-model-guide-5848-20260706
  • bd496651f docs(model-matching): clarify GLM model detection
  • ec0113523 docs(model-matching): narrow GLM selector wording
  • aefc478cf Merge remote-tracking branch 'origin/dev' into review/pr-5924-repair
  • 012aa3f27 docs(model-matching): correct GLM fuzzy fallback guidance
  • 9255f472c Merge pull request #5925 from Hungdoan565/codex/docs-scarce-premium-models-5821-20260706
  • ee1e997d0 docs(orchestration): remove stale Momus criteria
  • 29a4977a5 docs(model-matching): clarify experimental GLM 5.2 guidance
  • 1f4aef3de docs(orchestration): update Momus approval contract
  • acb7f8e97 docs(orchestration): align dual-review diagrams
  • adf00f02f docs(orchestration): correct premium model placement
  • cdc560b02 Merge origin/dev into codex/docs-glm52-model-guide-5848-20260706
  • 0738f9860 Merge origin/dev into codex/docs-scarce-premium-models-5821-20260706
  • 799c0fd87 Merge pull request #5926 from Hungdoan565/codex/docs-opencode-auto-update-5367-20260706
  • 067f3fa0c docs(known-issues): preserve plugin config scope
  • f324cfb5d Merge branch 'dev' into codex/docs-opencode-auto-update-5367-20260706
  • 00235071f Merge pull request #5938 from Hungdoan565/codex/docs-community-model-tools-5346-20260707
  • d3b3db9ef Merge pull request #5936 from Hungdoan565/codex/docs-agent-policy-boundary-5404-20260707
  • 7dee01882 docs(installation): clarify community tool boundaries
  • 93417663a Merge pull request #5937 from Hungdoan565/codex/docs-brownfield-kiss-5280-20260707
  • 2c6dfb1d9 Merge origin/dev into codex/docs-agent-policy-boundary-5404-20260707
  • f79569af4 Merge pull request #5942 from Hungdoan565/codex/docs-known-issue-5911-worktree-status-20260707
  • 24b426582 Merge origin/dev into codex/docs-agent-policy-boundary-5404-20260707
  • 9622bc6e5 docs(orchestration): qualify brownfield guidance
  • 404da72d2 docs(known-issues): note worktree merge status gap
  • 1345dfe99 docs(notepad): notepads are auto-scaffolded; use edit/bash-append not write
  • 27beb30dd feat(start-work): auto-scaffold notepad files on plan commit
  • 8af398565 Merge pull request #6197 from acamq/fix-remove-stale-release-framining
  • 04717bff7 fix(release): remove stale framing block from generated release notes
  • 13e072cc7 fix(lsp-core): resolve clean diagnostics for silent no-pull servers instead of freshness timeout
  • 3c3f16d03 docs(installation): note community model tools
  • 70227d75b docs(orchestration): clarify Sisyphus display names
  • ae1dbc79a docs(orchestration): document brownfield KISS mode
  • a96e0f908 docs(agents): clarify policy enforcement boundary
  • 43401d671 docs(known-issues): document OpenCode update cache workaround
  • 2e83c47df docs(orchestration): guide scarce premium model placement
  • 04e86f728 docs(model-matching): add GLM 5.2 Sisyphus guidance

Thank you to 3 community contributors:

  • @Hungdoan565:
    • docs(model-matching): add GLM 5.2 Sisyphus guidance
    • docs(orchestration): guide scarce premium model placement
    • docs(known-issues): document OpenCode update cache workaround
    • docs(agents): clarify policy enforcement boundary
    • docs(orchestration): document brownfield KISS mode
    • docs(orchestration): clarify Sisyphus display names
    • docs(installation): note community model tools
    • docs(known-issues): note worktree merge status gap
  • @MoerAI:
    • fix(lsp-core): resolve clean diagnostics for silent no-pull servers instead of freshness timeout
    • feat(models): route active GPT defaults through 5.6 Sol
    • test(opencode): split model fallback coverage
    • fix(agents): align Sol prompt identity and guardrails
    • fix(models): close Sol routing review gaps
    • test(models): pin Sol fallback progression
    • test(opencode): keep fallback coverage zero-growth
    • Merge pull request #6265 from code-yeongyu/feature/upgrade-agent-gpts-to-5-6-sol
  • @acamq:
    • fix(release): remove stale framing block from generated release notes
    • Merge pull request #6197 from acamq/fix-remove-stale-release-framining
    • feat(start-work): auto-scaffold notepad files on plan commit
    • docs(notepad): notepads are auto-scaffolded; use edit/bash-append not write
    • Merge pull request #6210 from acamq/fix/notepad-auto-scaffold-on-start-work

v4.19.0

Added
  • Add first-class support for Kimi K3 with dedicated prompt variants for Sisyphus, Sisyphus-Junior, and Atlas, plus model-family detection and fallback routing in model-core
  • Add Goal feature with state, persistence, parser, config migration, and /goal command to replace Ralph Loop
  • Ship hyperplan adversarial-planning skill in omo-senpi with Boulder state platform support and codegraph MCP registration
  • Ship default shared and local skills out of the box in Senpi session platform
  • Wire start-work continuation for Codex
Changed
  • Replace legacy Ralph Loop wiring with Goal feature, with automatic config migration for existing Ralph Loop configs
  • Update transition detection, plugin/config compatibility, and install surfaces across package detection
  • Update task and tool behavior including delegate-task contract and runtime registration behavior
  • Harden install and publish workflow with safer release sequencing and package/install fixes
Fixed
  • Fix Senpi residency claims to release correctly when tasks are marked lost
  • Wire TTL cleanup into session start with proper live-handle guards in Senpi task system
  • Improve record store reliability by caching and reusing file descriptors in Senpi
  • Optimize lead poller to scan incrementally in Senpi task system
  • Fix Codex V2 thread-cap preservation
  • Add stricter ulw-plan parsing and validation in Codex
  • Add Playwright MCP custom-arg support in Codex
  • Improve codegraph git-marker handling safety in Codex
🚀 oh-my-openagent v4.19.0 — Open models just took the crown

This release ships with first-class support for Kimi K3, the 2.8-trillion-parameter open-weight frontier model from Moonshot AI that is now beating Claude Fable 5 on the Arena.ai Frontend Code leaderboard. OSS must win — and with K3, it just did.

🤖 Kimi K3 is a first-class citizen

Sisyphus, Sisyphus-Junior, and Atlas now carry dedicated Kimi K3 prompt variants calibrated for K3's reasoning style, plus model-family detection and fallback routing in model-core. Whether you route through OpenRouter or Moonshot's API directly, omo recognizes K3 and picks the right prompts automatically.

🎯 Goals replace Ralph Loop

The legacy Ralph Loop wiring is gone. In its place: a clean Goal feature with state, persistence, parser, config migration, and a /goal command. Existing Ralph Loop configs migrate automatically, so nothing breaks.

🛠️ Senpi task engine gets serious

The Senpi task system received a deep reliability pass: residency claims release correctly when tasks are marked lost, TTL cleanup is wired into session start with proper live-handle guards, the record store caches and reuses file descriptors, and the lead poller scans incrementally. These changes make long-running multi-agent workflows noticeably more stable.

🔌 Senpi platform expansion

omo-senpi now ships with the hyperplan adversarial-planning skill, a Senpi session platform for Boulder state, codegraph MCP registration, and default shared + local skills out of the box. Start-work continuation is also wired for Codex.

🐛 Lazycodex / Codex reliability fixes

Codex users get fixes for V2 thread-cap preservation, stricter ulw-plan parsing and validation, Playwright MCP custom-arg support, and safer codegraph git-marker handling.

🌍 Why this release matters

Kimi K3 is the largest open-weight model ever released, and independent benchmarks place it ahead of Claude Opus 4.8 and GPT-5.5 while trading blows with Claude Fable 5 and GPT-5.6 Sol. The frontier is no longer a closed garden. This release makes sure omo users can ride that wave the moment it hits.

📝 A personal note from the maintainer

Today I did not use Claude Opus 4.8 once. Kimi K3 and the open-weights wave handled the work.


Minor Compatibility and Stability Release

This release carries compatibility-facing behavior changes and operational hardening. Read the summary below before upgrading or publishing.

  • Rename transition updates across package detection, plugin/config compatibility, and install surfaces.
  • Task and tool behavior updates, including delegate-task contract and runtime registration behavior.
  • Install and publish workflow hardening, including safer release sequencing and package/install fixes.
Commit Summary
  • 14083b89f Merge pull request #6193 from code-yeongyu/release/v4.19.0-source-state
  • b56483fc7 Merge pull request #6192 from code-yeongyu/feat/kimi-k3-junior-atlas-prompts
  • 22b91b662 feat(agents): add Kimi K3 prompt variants for Sisyphus-Junior and Atlas
  • 9aff020ab Merge pull request #6188 from code-yeongyu/docs/goal-replaces-ralph-docs
  • 1b6c47740 docs: replace ralph-loop with goal feature in user docs
  • 731bdaef6 Merge pull request #6187 from code-yeongyu/docs/init-deep-refresh-20260717
  • cd407ed11 docs: refresh hierarchical AGENTS.md knowledge base to 7d664b96b
  • fe1c3dfb1 Merge pull request #5948 from Hungdoan565/codex/docs-known-issue-5850-ulw-native-plan-20260707
  • 582e57d58 Merge latest dev into PR 5948 repair
  • 7d664b96b Merge pull request #6186 from code-yeongyu/fix/windows-team-wait-commit-order
  • 215f92df2 Merge latest dev into PR 5948 repair
  • 5459b09d0 Merge pull request #5949 from Hungdoan565/codex/docs-known-issue-5839-oracle-token-20260707
  • 58a8c1c60 docs: cover both native plan storage paths
  • 22b231e05 Merge origin/dev into codex/docs-known-issue-5839-oracle-token-20260707
  • 7676ff474 Merge dev and clarify native plan fallback scope
  • 9a1a7da6c Merge pull request #5952 from Hungdoan565/codex/docs-known-issue-5809-cmux-attach-20260707
  • f17ad7b3f Merge origin/dev into codex/docs-known-issue-5839-oracle-token-20260707
  • e9862bda1 Merge remote-tracking branch 'origin/dev' into HEAD
  • d3ba2254c Merge pull request #5957 from Hungdoan565/codex/docs-known-issue-5746-tmux-eager-attach-20260707
  • a526042df Merge remote-tracking branch 'origin/dev' into HEAD
  • 746ef6348 Merge pull request #6184 from code-yeongyu/feature/goal-replaces-ralph
  • f7a293055 Merge dev into codex/docs-known-issue-5809-cmux-attach-20260707
  • 900f0688f Merge remote-tracking branch 'origin/dev' into review/pr-5957-head
  • a2ce120a1 Merge pull request #5953 from Hungdoan565/codex/docs-known-issue-5806-ulw-followup-20260707
  • 2ea9a61dd feat(goal): add ralph_loop config migration tests and fix precedence
  • c98cbd506 feat(goal): remove Ralph Loop user-facing wiring and migrate tests
  • cc97af58b Merge latest dev into docs-known-issue-5806-ulw-followup
  • 0ef32ffe4 Merge pull request #5950 from Hungdoan565/codex/docs-known-issue-5838-visual-qa-20260707
  • bbcbd4e42 Merge latest dev into docs-known-issue-5806-ulw-followup
  • 1db88ba8d Merge dev into docs-known-issue-5806-ulw-followup
  • 9355d9fe6 feat(goal): wire goal hook into plugin and chat flow
  • 6af312ded Merge origin/dev into codex/docs-known-issue-5838-visual-qa-20260707
  • 1d9cfd152 refactor(omo-opencode)!: drop shared/ skill aliases and protections
  • 9a5b2d135 feat(goal): add goal state controller and model tools
  • acda5862b Merge remote-tracking branch 'origin/dev' into review/pr-5957-head
  • 1d69f8501 Merge remote-tracking branch 'origin/dev' into review/pr-5957-head
  • f23c9efdc feat(goal): add goal foundation types, persistence, prompts, parser, config, and /goal command
  • 76eef171e Merge pull request #6173 from code-yeongyu/fix/momus-terra-high
  • 475149c03 Merge pull request #6178 from code-yeongyu/feature/kimi-k3-sisyphus
  • 6f9a1ac7c fix(ulw-research): restore valid YAML frontmatter after alias removal
  • b85bf047c Merge remote-tracking branch 'origin/dev' into review/pr-5957-head
  • 092efa490 refactor(prompts): migrate shared/ulw-plan → ulw-plan
  • 507a5c65b docs: recommend kimi-k3 and update sisyphus model guidance across docs and READMEs
  • c216ff236 feat(omo-opencode): add sisyphus kimi-k3 prompt variant with anti-overthinking calibration
  • 011fa228c feat(model-core): add isKimiK3Model detector, sisyphus fallback entry, and supplemental capabilities
  • c6aca8ff8 refactor(skills-loader-core)!: remove shared/ canonical alias machinery
  • 94773b4af refactor(shared-skills): finish ultraresearch→ulw-research rename; move lcx-* to codex
  • 7a3103de8 Merge pull request #5959 from Hungdoan565/codex/docs-known-issue-5604-delegation-routing-20260707
  • 433e95172 test(momus): fix warm-cache registration for terra high
  • eab6b618f docs(momus): reflect gpt-5.6-terra high reviewer default
  • 0192c7a1e fix(momus): run Codex reviewer at gpt-5.6-terra high
  • 06d9351f1 fix(momus): run OpenCode reviewer at gpt-5.6-terra high
  • b35240052 Merge dev and clarify delegation routing gap
  • 89cbb391d Merge branch 'dev' into codex/docs-known-issue-5746-tmux-eager-attach-20260707
  • 09557b20a Merge pull request #5963 from Hungdoan565/codex/docs-known-issue-5529-reasoning-effort-20260707
  • 1a6292a6a docs(known-issues): clarify compatible provider scope
  • 0f49ac382 Merge branch 'dev' into codex/docs-known-issue-5529-reasoning-effort-20260707
  • 5ef852a32 Merge pull request #6166 from code-yeongyu/code-yeongyu/fix-5976-durable-review-state
  • 3fe1edfb8 fix(ulw-plan): bind review launch identity
  • eec76390e fix(ulw-plan): harden review lifecycle state
  • ab58ff74a fix(ulw-plan): persist reviewer intake state
  • 6457ca1da Merge pull request #5973 from waynefeng92/dev
  • a5fd5d56c test(boulder-state): cover empty state objects
  • 2aa961854 Merge current dev for PR #5973 review
  • fb7d4b66f Merge pull request #5984 from EvangelosMoschou/fix/5977-handoff-session-id
  • 625c359ee fix(auto-slash-command): substitute runtime placeholders atomically
  • 16658f79c Merge pull request #5983 from EZotoff/fix/duplicate-user-args
  • 97fafb79f fix(auto-slash-command): preserve unconsumed user args
  • 238c65280 Merge pull request #6000 from cpt-sd76vg/fix/dedupe-subagent-skills2
  • 7265aeacb Merge remote-tracking branch 'origin/dev' into review/pr-6000-live
  • 79004bf85 fix(delegate-task): remove duplicate available_skills from non-plan subagent prompts
  • 81180f375 Merge pull request #6023 from alois-tr01/fix/playwright-mcp-custom-args
  • 52349d0cc Merge dev into fix/playwright-mcp-custom-args
  • 2622e145e Merge pull request #6042 from datell1357/fix/codegraph-invalid-git-marker
  • f5561aa4d Merge dev into fix/playwright-mcp-custom-args
  • 53384ef27 Merge branch 'dev' into fix/codegraph-invalid-git-marker
  • 1ef8be0a6 fix(codegraph): validate redirected git markers
  • 4b8b44b9e Merge pull request #6154 from code-yeongyu/code-yeongyu/fix-6094-ulw-plan-contract
  • cb573dd51 Merge branch 'dev' into fix/codegraph-invalid-git-marker
  • 3b8602219 fix(opencode): validate repeated plan sections
  • e59281563 fix(plans): preserve child heading scope
  • 6c97bacf5 fix(plans): harden markdown boundaries
  • 9733dda9a fix(plans): align task and fence parsing
  • 3a1bde438 fix(plans): unify checklist progress parsing
  • a2f8c3c95 test(codex): preserve final-gate fixture grammar
  • af2741a6d fix(opencode): validate each plan section
  • 4c86e5401 fix(plans): enforce canonical checklist grammar
  • 066344e2c fix(codex): parse structured plan rows
  • f8e715a14 fix(boulder): parse structured plan rows
  • 44edbb71b fix(opencode): warn on empty plan sections
  • 309b38e8a docs(codex): mirror ulw-plan task grammar
  • aa4a8d9e2 docs(skills): define ulw-plan task grammar
  • 13e560820 Merge pull request #6153 from code-yeongyu/code-yeongyu/fix-6101-preserve-thread-cap
  • c32bca008 fix(codex): preserve semantic V2 thread caps
  • 674f1991d test(codex): pin explicit V2 cap preservation
  • 84a849f47 fix(codex): default absent V2 thread caps
  • e0f365c89 fix(codex): preserve session V2 thread caps
  • 2dd05329f Merge pull request #6053 from code-yeongyu/code-yeongyu/fix-broken-test-surface-20260712
  • 01411d892 Merge remote-tracking branch 'origin/dev' into sweep/pr-6053-review
  • a98df4baf Merge remote-tracking branch 'origin/dev' into sweep/pr-6053-review
  • 1dddf271e fix(ci): reject ambiguous pack manifests
  • 0d16fd71c Merge branch 'dev' into code-yeongyu/fix-broken-test-surface-20260712
  • 804342731 fix(ci): validate npm pack manifest entries
  • 57abb3bdd fix(ci): support npm 12 pack manifests
  • 718b87e90 fix(codegraph): validate Git worktree root
  • cf68ba2eb fix(codegraph): 유효하지 않은 Git 마커 수정 방지
  • 4e10e9c08 test(playwright): sync omo-opencode mirror test with the new facade shape
  • 822537f33 fix(playwright): let users override @playwright/mcp args for sandboxed envs
  • 6336dee6e fix(boulder): treat empty {} as invalid state in readBoulderState
  • 46c83da9e docs(known-issues): note GPT reasoning effort conflict
  • 5b04a08ec docs(known-issues): note delegation routing failure gap
  • dbfff9806 docs(known-issues): note tmux focus attach behavior
  • 48d29a6fc docs(known-issues): note ULW follow-up mode gap
  • 30afb5017 docs(known-issues): note cmux pane attach gap
  • 56fcc122f docs(known-issues): note LazyCodex visual QA gap
  • ea35adc4a docs(known-issues): note Oracle verification token gap
  • c765d0a9a docs(known-issues): note ULW native plan fallback

Thank you to 3 community contributors:

  • @Hungdoan565:
    • docs(known-issues): note ULW native plan fallback
    • docs(known-issues): note Oracle verification token gap
    • docs(known-issues): note LazyCodex visual QA gap
    • docs(known-issues): note cmux pane attach gap
    • docs(known-issues): note ULW follow-up mode gap
    • docs(known-issues): note tmux focus attach behavior
    • docs(known-issues): note delegation routing failure gap
    • docs(known-issues): note GPT reasoning effort conflict
  • @alois-tr01:
    • fix(playwright): let users override @playwright/mcp args for sandboxed envs
    • test(playwright): sync omo-opencode mirror test with the new facade shape
  • @cpt-sd76vg:
    • fix(delegate-task): remove duplicate available_skills from non-plan subagent prompts

v4.18.2

Changed
  • Plan agent now inherits fallback_models from Prometheus for consistent degradation across all agents
  • Plugin discovery now honors XDG_CONFIG_HOME and treats OPENCODE_CONFIG_DIR additively across Linux, WSL, and Windows
  • Test-suite hook dependencies are now injected instead of relying on process-global module mocks, removing cross-file bun test pollution
  • Custom provider fallback priority is now preserved in plan agent configuration
Fixed
  • GPT-5.6 sessions no longer spend model rounds on empty polls; waiting discipline now replays accumulated context in one sized call, re-validates only when inputs change, and requires explicit STOP conditions for subagent spawns
  • Interrupting an agent mid-task no longer silently re-arms the todo-continuation enforcer; continuation boundaries and interruption provenance are now tracked
  • Prose tokens like @ts-ignore, @latest, or (@path) in skill and command bodies are no longer mangled; resolver leaves non-file tokens untouched while real file references still inline
  • Category-skill reminder is now delivered as a synthetic message part instead of appended to tool.execute.after output, preventing reminder text from leaking into model-visible results
  • LSP proxy, per-user daemon, and codegraph stdio bridge now bound their startup, cancel pending acquisitions on parent close, and propagate closed-stdio errors instead of hanging
  • Windows port-probe test flake stabilized
oh-my-opencode v4.18.2 — Stability & Waiting-Discipline Patch

A stability-focused patch across both editions (OpenCode Ultimate + Codex Light / lazycodex). No config changes, no new flags — upgrade in place.

⏱️ GPT-5.6 stops burning time on empty polls

Long GPT-5.6 sessions were spending real model rounds on nothing — one recent run logged 91 empty stdin polls at ~134k tokens each, plus full re-validation of every criterion on every increment. Ultrawork, ulw-loop, and Hephaestus now carry a waiting discipline: a status poll replays the accumulated context so a long command finishes in one sized call, validation re-runs only when its inputs actually changed (with one final full pass), and subagent spawns require an explicit STOP condition. Applied to both editions.

🔁 Continuation no longer re-arms after you interrupt

Interrupting an agent mid-task could silently re-arm the todo-continuation enforcer and resume against your intent. Continuation boundaries and interruption provenance are now tracked, so an intentional interruption stays interrupted (#6109).

🧩 Plan agents inherit their fallback models

The plan agent now inherits fallback_models from Prometheus, so a planning session degrades to the same backup chain as the rest of your agents instead of dropping fallback entirely. Custom provider fallback priority is also preserved.

📝 Prose @tokens stay intact in skills and commands

Literal tokens like @ts-ignore, @latest, or (@path) in skill/command bodies were being mangled into [file not found: ...] fragments. The resolver now leaves any @token that isn't a real file untouched, while real @file references still inline (#5978).

🧹 Category-skill reminders no longer corrupt tool output

The category+skill reminder was appended to tool.execute.after output, leaking reminder text into Read/Bash/edit results the model saw. It's now delivered as a single synthetic message part (#6001).

🔌 LSP / MCP startup is bounded and cancellable

The LSP proxy, per-user daemon, and codegraph stdio bridge now bound their startup, cancel pending acquisitions on parent close, and propagate closed-stdio errors instead of hanging or swallowing them. Codex's final Boulder gate is enforced and review lanes are bound to the full commit SHA.

🪟 Plugin discovery respects XDG_CONFIG_HOME

loadOpencodePlugins now reuses the shared config-dir resolver, so plugin discovery honors XDG_CONFIG_HOME and treats OPENCODE_CONFIG_DIR additively (custom wins over default) across Linux, WSL, and Windows.

🛠️ Also in this release
  • Hephaestus delegation-table contract aligned; GPT-5.6 Copilot capability + OpenAI fast-tier alias handling.
  • Windows port-probe test flake stabilized.
  • Test-suite hardening: hook dependencies are now injected instead of relying on process-global module mocks, removing cross-file bun test pollution that could produce order-dependent failures.

Minor Compatibility and Stability Release

This release carries compatibility-facing behavior changes and operational hardening. Read the summary below before upgrading or publishing.

  • Rename transition updates across package detection, plugin/config compatibility, and install surfaces.
Commit Summary
  • 23cb030bb Merge pull request #6156 from code-yeongyu/release/v4.18.2-source-state
  • d87596e58 Merge pull request #6114 from code-yeongyu/code-yeongyu/fix-windows-port-utils-flake
  • 64a069bcd test(utils): stabilize port probe sequence
  • b9d448894 Merge pull request #6155 from code-yeongyu/fix/test-mock-pollution-publish-gate
  • 4a33c1e8f Merge pull request #6082 from H-TTTTT/feat/6032-copilot-gpt-5-6
  • fb2d5d9dc Merge pull request #6152 from code-yeongyu/code-yeongyu/fix-6087-hephaestus-delegation-contract
  • 3962c9152 test(models): refresh GPT-5.6 fallback QA
  • c21e8ed0f test(hooks): make mock.module victims order-independent under single-process bun test
  • 82bf7be14 fix(hephaestus): align delegation table contract
  • 896ac48cb test(models): publish GPT-5.6 fallback QA
  • b7a2e33ac Merge pull request #6091 from FNDEVVE/fix/openai-fast-capability-alias
  • 97d45a627 Merge branch 'dev' into fix/openai-fast-capability-alias
  • 400463b54 Merge pull request #6150 from code-yeongyu/docs/codemode-prompt-orchestration
  • 2704556aa fix(models): preserve custom provider fallback priority
  • c75c47e87 Merge remote-tracking branch 'origin/dev' into sweep/pr-6091-review
  • 4635c0cb5 Merge pull request #5988 from MoerAI/fix/start-work-wrapper-at-path-5978
  • 5201f5435 Merge remote-tracking branch 'origin/dev' into sweep/pr-6091-review
  • 0e83e42fa Merge pull request #6151 from code-yeongyu/fix/hephaestus-gpt56-waiting-discipline
  • 047804213 Merge pull request #6149 from code-yeongyu/code-yeongyu/fix-6109-continuation-rearm
  • 82bb52a90 Merge pull request #6095 from c436zhan/fix/plan-fallback-models
  • 875593285 Merge pull request #6084 from Zeno2019/fix/migrate-plural-config-dirs-pattern-a
  • 9c8d1a27c docs(prompts): emphasize code-mode orchestration
  • a5b008094 docs(prompts): sharpen Hephaestus discovery
  • 293065bd2 fix(hephaestus): add GPT-5.6 waiting discipline and bounded re-validation to both editions
  • 3ec4afb20 Merge pull request #6147 from code-yeongyu/code-yeongyu/fix-6112-final-gate-ledger
  • 425c37107 fix(opencode): stop continuation rearming
  • b3dff9c6f fix(opencode): preserve interruption provenance
  • 1e8013feb fix(opencode): track continuation boundaries
  • 714d6cd82 test(config): isolate plural config directory tests
  • 469702b86 fix(opencode): wire inherited plan fallbacks
  • 43ea85f6e Merge pull request #6083 from H-TTTTT/fix/6001-clean-category-skill-reminder
  • 2e5fc7191 Merge remote-tracking branch 'origin/dev' into fix/openai-fast-capability-alias
  • 8357bada0 fix(model-core): restrict gateway alias hosts
  • f2ae890b6 fix(codex): sync durable review evidence rules
  • bf5f9d6a2 fix(codex): bind loop review lanes to full SHA
  • ba0383d7b fix(codex): persist review lane SHA records
  • 40a398107 fix(codex): defer completed plans to final gate
  • 05faacf04 fix(codex): enforce final Boulder gate
  • a1ceb8808 Merge pull request #6146 from code-yeongyu/fix/ultrawork-gpt56-waiting-discipline
  • fb5f2efd7 Merge remote-tracking branch 'origin/dev' into fix/ultrawork-gpt56-waiting-discipline
  • 9c49524a2 fix(ultrawork): teach codex directive GPT-5.6 waiting discipline and bounded re-validation
  • 520813ee0 Merge pull request #6144 from code-yeongyu/code-yeongyu/fix-lsp-mcp-startup-timeout
  • 9a00d7887 fix(codex): bound component LSP startup
  • 91e8a745e fix(codex): bound aggregate LSP startup
  • 6aa73b829 fix(lsp): bound MCP proxy startup
  • 42f5078b8 fix(hooks): deliver category-skill reminder as a synthetic text part
  • 99758f164 chore(evidence): re-encode #5978 QA artifacts from UTF-16 to UTF-8 so they render in the PR diff
  • 04d11b0e7 fix(models): resolve transformed warm-cache models
  • f72654521 fix(models): preserve Vercel GPT-5.6 resolution
  • 001b333f7 feat(models): add GitHub Copilot GPT-5.6 fallbacks
  • b5f385c24 test(file-reference-resolver): add real-OpenCode QA proving #5978 fix
  • dec381ed2 Merge pull request #6117 from code-yeongyu/code-yeongyu/lsp-daemon-migration-residual
  • 6dde357ee fix(codex): preserve final bridge output errors
  • 35bba7c0a fix(codex): terminate codegraph on bridge failure
  • 1f9d7f00c fix(mcp): release failed-write listeners
  • 61ce4dc1d fix(mcp): propagate nonterminal stdio errors
  • ed570112f fix(codex): await codegraph stdio writes
  • de0cf88e0 fix(mcp): handle closed stdio output
  • e1f081cfa fix(lsp): cancel diagnostic client acquisition
  • 6b3838cf6 test(lsp): keep reuse probe input open
  • 6e9b77aec fix(lsp): clean up proxy lifecycle
  • 044bad05d fix(lsp): cancel pending daemon startup
  • 682efe4f4 Merge pull request #6113 from code-yeongyu/docs/init-deep-20260714
  • 176bfbcb9 test(lsp): label captured QA artifacts
  • 5dcd20691 test(lsp): fail smoke on output errors
  • 6977a0569 fix(lsp): own proxy cancellation lifecycle
  • 5f20b08f9 docs(agents): document adapter support edges
  • c0e000b19 test(lsp): exit cancellation smoke after cleanup
  • 3066ebbb6 test(lsp): trace cancellation smoke cleanup
  • c03123dc8 docs(agents): correct layering boundaries
  • c14acd551 test(lsp): allow bounded Windows smoke teardown
  • ca9b56665 test(lsp): use production endpoint in cancellation QA
  • bc482eff5 docs(agents): sync release and launcher facts
  • 19cb0add2 Merge branch 'dev' into docs/init-deep-20260714
  • 1a01f743e test(lsp): stabilize diagnostics freshness timing
  • 8bc8e4839 docs(agents): reconcile hierarchy guidance
  • c7f3c6866 test(lsp): make cancellation QA clone-safe
  • ba4aa8cac test(lsp): track cancellation contract probes
  • be8e34b60 fix(lsp): cancel proxy requests on parent close
  • 71aa48ba6 fix(hashline): isolate environment parser
  • dc8c11ff0 docs(agents): clarify source snapshot and launchers
  • 39217292d fix(hashline): require explicit test credentials
  • d927c9d12 docs(agents): correct repository map drift
  • a211ba5c4 docs(agents): refresh repository knowledge map
  • 7bad0509d fix(opencode): inherit plan fallback models
  • 9f38f5c42 fix(model-core): accept gateway OpenAI fast aliases
  • bfff7d69f test(omo-opencode): cover GPT-5.6 fast routing
  • 8bd180417 test(model-core): pin OpenAI fast snapshot inheritance
  • 622131c16 fix(model-core): scope GPT-5.6 fast aliases to OpenAI
  • d0f238a17 fix(plugin-loader): reuse getOpenCodeConfigDirs in loadOpencodePlugins
  • ffcb970fb fix(cc-hooks): migrate config-loader to plural config dirs
  • 805be798d fix(skills): migrate skills reader to plural config dirs
  • 85c90e139 fix(agents): migrate agents reader to plural config dirs
  • 6d7ce96ed test(config): add contract tests for getOpenCodeConfigDirs additive semantics
  • ba40721bf fix(file-reference-resolver): leave unresolved @tokens untouched

Thank you to 4 community contributors:

  • @MoerAI:
    • fix(file-reference-resolver): leave unresolved @tokens untouched
    • test(file-reference-resolver): add real-OpenCode QA proving #5978 fix
    • chore(evidence): re-encode #5978 QA artifacts from UTF-16 to UTF-8 so they render in the PR diff
  • @Zeno2019:
    • test(config): add contract tests for getOpenCodeConfigDirs additive semantics
    • fix(agents): migrate agents reader to plural config dirs
    • fix(skills): migrate skills reader to plural config dirs
    • fix(cc-hooks): migrate config-loader to plural config dirs
    • fix(plugin-loader): reuse getOpenCodeConfigDirs in loadOpencodePlugins
  • @FNDEVVE:
    • fix(model-core): scope GPT-5.6 fast aliases to OpenAI
    • test(model-core): pin OpenAI fast snapshot inheritance
    • test(omo-opencode): cover GPT-5.6 fast routing
    • fix(model-core): accept gateway OpenAI fast aliases
  • @H-TTTTT:
    • fix(models): resolve transformed warm-cache models

v4.18.1

Changed
  • LSP tooling across OpenCode, Codex, and Senpi now converges on the same hardened daemon runtime with authenticated local IPC, private runtime directories, endpoint and ownership checks, version validation, and conservative stale-process cleanup
  • Diagnostics now wait for fresh results instead of returning stale state
  • Directory checks now preserve complete counts
  • Rename operations now preflight workspace edits, detect conflicts, and synchronize document state after a successful change
  • Codex upgrades will only terminate a legacy daemon when ownership is proven
  • Context overflow is now classified separately so OpenCode can complete native compaction without the runtime fallback interrupting it
  • Ultrawork and delegated tasks now carry explicit observable stop conditions and evidence requirements
  • Review and QA approvals are now bound to the exact content or review lane, reducing duplicate work without allowing stale approval to cover changed code
  • Senpi now uses the shared LSP daemon instead of its adapter-local implementation
Fixed
  • Continuing a background task that is still running now returns an actionable error instead of reporting a false success
Removed
  • Senpi project-local .pi/lsp-client.json files can no longer provide executable command or env values
Safer, Shared LSP Runtime

LSP tooling across OpenCode, Codex, and Senpi now converges on the same hardened daemon runtime. Diagnostics wait for fresh results instead of returning stale state, directory checks preserve complete counts, and rename operations preflight workspace edits, detect conflicts, and synchronize document state after a successful change.

The daemon now uses authenticated local IPC, private runtime directories, endpoint and ownership checks, version validation, and conservative stale-process cleanup. Codex upgrades will only terminate a legacy daemon when ownership is proven.

More Predictable Agent Continuations and Compaction

Continuing a background task that is still running now returns an actionable error instead of reporting a false success. Context overflow is also classified separately so OpenCode can complete native compaction without the runtime fallback interrupting it.

Ultrawork and delegated tasks now carry explicit observable stop conditions and evidence requirements. Review and QA approvals are bound to the exact content or review lane, reducing duplicate work without allowing stale approval to cover changed code.

Senpi LSP Migration Note

Senpi now ships and uses the shared LSP daemon instead of its adapter-local implementation. For safety, project-local .pi/lsp-client.json files can no longer provide executable command or env values. Move custom server commands and environment variables to the user-level ~/.pi/lsp-client.json; project files may continue to define non-executable settings such as extensions, language IDs, and priorities.

Release Layers
  • Pure components: shared daemon security, fresh diagnostics, safer workspace edits, and reusable post-edit diagnostics.
  • OpenCode: shared runtime integration, correct running-task continuation errors, native compaction preservation, and tighter agent completion contracts.
  • Codex / LazyCodex: packaged LSP runtime, ownership-safe legacy cleanup, and commit/tree-bound review and QA gates.

Minor Compatibility and Stability Release

This release carries compatibility-facing behavior changes and operational hardening. Read the summary below before upgrading or publishing.

  • Task and tool behavior updates, including delegate-task contract and runtime registration behavior.
  • Install and publish workflow hardening, including safer release sequencing and package/install fixes.
Commit Summary
  • 80c3c81eb Merge pull request #6116 from code-yeongyu/release/v4.18.1-source-state
  • e3754dbf6 Merge pull request #6096 from impartshadow/fix/5966-running-continuation-false-success
  • dd6db6aa8 Merge pull request #6115 from code-yeongyu/docs/skill-verify-gates-20260714
  • 56c57a4f2 test(background-agent): cover running resume rejection
  • ab0411bb7 docs(prompts): bind ulw-loop evidence to tree hash instead of commit
  • 2e5e9eb90 docs(skills): drop review-work gate from work-with-pr verify loop
  • b19f65257 Merge pull request #6107 from naiba-forks/fix/context-overflow-native-compaction
  • 18ad5cb32 Merge pull request #6112 from code-yeongyu/fix/dedupe-commit-bound-reviews
  • 0657c2f29 docs(skills): fail Gate B from any lane, scoped or full-run
  • 9d71ac54c fix(prompts): bind review reuse to lane/SHA pairs and lane-scoped Gate B dispatch
  • 034fb56e3 fix(omo-codex): make the continuation final gate commit-bound
  • 158402e48 fix(prompts): scope review reuse to lanes so security and context lanes still run
  • 64eef1f4d Merge pull request #6111 from code-yeongyu/fix/ulw-gpt56-stop-line-binding
  • e3dfc6746 Merge pull request #6108 from code-yeongyu/code-yeongyu/fix-windows-team-tasklist-flake
  • e8bb713c1 fix(omo-codex): make start-work global review gate pass commit-bound
  • d55b5761a docs(ulw-loop): final quality gate approval satisfies same-SHA PR review gates
  • 12a47f12d fix(codex-rules): make hephaestus review-work approvals commit-bound
  • 628dae95c docs(skills): bind work-with-pr Gate B review approval to the PR head SHA
  • 3d33d1d41 fix(ultrawork): bind the declared WHEN TO STOP line to the full STOP GOAL
  • 3097c6b3d Merge pull request #6110 from code-yeongyu/feature/ulw-gpt56-stop-contract
  • 5c3ffbb15 fix(ultrawork): scope WHEN TO STOP to the run and propagate the stop contract to child prompts
  • 01506cc64 chore(release): regenerate v4.18.0 artifacts
  • 57e19bcbe fix(hephaestus): bind the GPT-5.6 stop contract and propagate it to spawns
  • ba3b01c06 fix(ultrawork): give the GPT ULW prompt a binding stop contract
  • 6f69134d9 test(codex): terminate Windows daemon trees
  • 3322c3d40 test(team-tasklist): verify pure adapter exports
  • c41c84384 test(team-tasklist): stabilize store coverage
  • cba9db4ec test(team-tasklist): stabilize list coverage
  • d570882ab test(team-tasklist): stabilize update coverage
  • 78a756dd4 test(team-tasklist): stabilize claim coverage
  • a0c156308 test(codex): retry Windows fixture cleanup
  • e9ba2377d test(codex): wait for LSP daemon teardown
  • 98e2b2d87 test(lsp): preserve Windows legacy endpoint paths
  • 104da03c4 fix(runtime-fallback): preserve native context compaction
  • b58312540 test(lsp): fix Windows Codex reaper fixtures
  • ca9467f42 test(lsp): fix Windows path fixtures
  • e6f2df59c test(lsp): stabilize cross-platform compatibility gates
  • 3455fa35f fix(lsp-daemon): verify fallback socket ownership
  • da0f9cd74 refactor(opencode): align LSP MCP daemon context
  • ef470ca12 refactor(codex): use shared LSP daemon contract
  • 22020db3d feat(lsp-daemon): secure shared daemon runtime
  • cf65a63ab feat(lsp-core): harden shared LSP orchestration
  • d6bbba552 fix(background-agent): reject running task continuation

Thank you to 1 community contributor:

  • @naiba:
    • fix(runtime-fallback): preserve native context compaction

v4.18.0

Added
  • Added layout-mechanics layer in OMO's frontend skill with shared spatial vocabulary including stack, cluster, content limiter, sidebar, switcher, cover, frame, reel, imposter, overlay stack, fixed sidenav shell, list-detail, and sticky aside
  • Added bun run install:codex-dev command to install local source build with an unmistakable dev version stamp
Changed
  • Every GPT-5.6 Hephaestus intent line must now declare the exact observable condition that ends the turn
  • Ultrawork must now register the goal through create_goal, include a binding WHEN TO STOP, and rank user problem resolution above ledger ceremony
  • Spawned subagents must now receive GOAL, STOP WHEN, and EVIDENCE so the parent can control completion by an observable contract
  • Frontend layouts now declare what scrolls, how regions shrink, and how the screen survives empty, long, unbroken, narrow, and RTL content
  • Development builds now display unmistakable dev version stamp in cache path, plugin metadata, per-turn (OmO dev) prefix, and omo get-local-version output, while skipping update checks for non-semver stamps
Fixed
  • Fixed a Codex run that kept going for eight hours by coupling the intent gate and stop gate across the main agent, ultrawork, and subagents
  • The Codex installer now strips inherited npm 12 allow-scripts configuration only from dependency-install subprocesses, preventing an outer npx policy from breaking the plugin install
GPT-5.6 That Actually Knows When to Stop

We just fixed a real Codex run that kept going for eight hours. This was not one bad loop; it was the full runaway stack: a main-agent model that does not treat stopping as the default, an ultrawork prompt designed to keep summoning help, subagents that also keep going, and a harness whose subagent lifecycle is difficult to control once all of those forces combine.

We are genuinely proud of this one. OMO now couples the intent gate and stop gate instead of treating completion as an afterthought:

  • Every GPT-5.6 Hephaestus intent line must declare the exact observable condition that ends the turn.
  • Ultrawork must register the goal through create_goal, include a binding WHEN TO STOP, and rank “is the user’s problem actually solved?” above ledger ceremony.
  • The moment the stop goal holds, the agent must answer and stop immediately: no extra verification loop, polish pass, review cycle, or bonus refactor.
  • Every spawned subagent must receive GOAL, STOP WHEN, and EVIDENCE, so the parent can control completion by an observable contract instead of trusting a vague “done.”

This is specifically tuned for gpt-5.6-sol and the persistent behavior that makes it such a strong autonomous worker. OMO keeps that persistence where it is useful, then gives it a hard, coordinated stopping boundary across the main agent, ultrawork, and subagents. For GPT-5.6 users, this update is strongly recommended; this control layer is the reason the OMO Codex experience can be substantially more disciplined than a stock harness run.

Frontend Layout Mechanics, Inspired by StyleGallery

A big shoutout to changeroa/StyleGallery. Its layout work directly inspired the new layout-mechanics layer in OMO’s frontend skill, distilled part by part rather than copied as a generic style preset:

  • Layout Brief inspired declaring scroll ownership, fixed/sticky/static regions, constraints, viewport-vs-container responsiveness, and content stress before CSS is written.
  • scroll-body-shell inspired the bounded app-shell contract: auto minmax(0, 1fr) auto, a single named scroll body, and the load-bearing min-block-size: 0 fix.
  • ram-grid inspired the overflow-safe intrinsic grid using repeat(auto-fit, minmax(min(16rem, 100%), 1fr)).
  • StyleGallery’s pattern catalog inspired OMO’s shared spatial vocabulary: stack, cluster, content limiter, sidebar, switcher, cover, frame, reel, imposter, overlay stack, fixed sidenav shell, list-detail, and sticky aside.
  • Layout Gate and the Dashboard recipe inspired the strict boundary between spatial mechanics and visual taste, plus source-order, scroll, reflow, and decision-priority checks.

OMO keeps its own visual direction, motion rules, image workflow, and QA system. The adopted lesson is narrower and extremely useful: app layouts must declare what scrolls, how regions shrink, and how the screen survives empty, long, unbroken, narrow, and RTL content.

Safer Codex Development and Installation

Codex contributors can now run bun run install:codex-dev to install the local source build with an unmistakable dev version stamp. The cache path, plugin metadata, per-turn (OmO dev) prefix, and omo get-local-version output all reveal that the development build is active, while update checks are skipped for non-semver stamps.

The Codex installer also strips inherited npm 12 allow-scripts configuration only from dependency-install subprocesses, preventing an outer npx policy from breaking the plugin install while preserving registry, authentication, proxy, build, and skill-sync environment behavior.

Layered Impact
  • omo pure components: minor. Shared frontend and programming skills gain reusable layout and behavioral-test contracts; Codex ultrawork prompts gain the coordinated goal/stop model.
  • omo opencode: minor. OpenCode receives the new frontend layout-mechanics skill and recognizes visibly stamped local development builds.
  • omo codex / LazyCodex: minor. GPT-5.6 stop control, subagent contracts, development stamping, and npm 12 installation isolation all ship in the Codex marketplace payload.

No breaking changes or migration steps are required.


  • c7c903f66 Merge pull request #6106 from code-yeongyu/release/v4.18.0-source-state
  • bb0f6fbb6 Merge pull request #5832 from JSap0914/fix/session-exists-by-id-5810
  • 7138dba01 Merge pull request #5690 from Hungdoan565/codex/fix-git-status-rename-path-20260628
  • fb8b6227a Merge pull request #6104 from code-yeongyu/fix/ulw-test-authoring-contract
  • 71959157b docs(ultrawork): require mutation proof for test-only regression coverage
  • ffec49237 Merge pull request #6102 from code-yeongyu/docs/prompt-test-rule-hardening
  • 53dc9f0a1 docs(rules): forbid prose assertions and mechanism-prescribing delegation
  • 921d08ff8 Merge pull request #6099 from code-yeongyu/fix/hephaestus-gpt56-registration
  • bbba1a15d test(agents): verify registered GPT-5.6 prompt
  • c9fe21744 Merge pull request #6100 from code-yeongyu/feature/hephaestus-56-subagent-stop-contract
  • 3262f8502 test(agents): strengthen GPT-5.6 registration coverage
  • 4cdac71d6 feat(omo-codex): require GOAL/STOP WHEN/EVIDENCE in Hephaestus 5.6 spawn messages
  • 33eb742ef test(agents): cover Hephaestus GPT-5.6 registration
  • 403ce788c Merge pull request #6098 from code-yeongyu/feat/lazycodex-dev-install
  • 5b5cbb8bc docs(omo-codex): document the dev-install workflow and dev version stamp
  • 7b1f02cf8 feat(omo-codex): dev install stamped as version dev via LAZYCODEX_DEV_VERSION
  • 830ec1e29 Merge pull request #6092 from code-yeongyu/fix/ulw-when-to-stop
  • 6b3f22691 fix(ultrawork): require a when-to-stop declaration in every goal contract
  • c05d0ca7e Merge pull request #6090 from code-yeongyu/fix/ulw-stop-goal-round2
  • 8482f2c9a fix(codex-rules): declare a binding stop condition in the hephaestus intent line
  • 6a096c2d1 fix(ultrawork): mandate create_goal registration and rank problem-actually-solved above all stop criteria
  • a0a89aa6d fix(codex-rules): make hephaestus gpt-5.6 stop mandatory and immediate at the stop goal
  • c57619895 Merge pull request #6089 from code-yeongyu/fix/ulw-stop-goal-5.6
  • 33759ba0c fix(ultrawork): make the STOP GOAL explicit in codex directive and ulw-loop stop rules
  • 03753d38c fix(codex-rules): name the stop goal in hephaestus gpt-5.6 and stop the moment it holds
  • 68942f882 Merge pull request #6086 from code-yeongyu/code-yeongyu/fix-omo-codex-npm12-allow-scripts
  • 389a0d168 chore(omo-codex): regenerate npm install env handling
  • 065fbb9cd Merge pull request #6085 from code-yeongyu/feat/frontend-layout-mechanics
  • c5ba41787 fix(codex-install): isolate npm 12 allow-scripts config
  • 7528cffd2 feat(shared-skills/frontend): add layout-mechanics ruleset from StyleGallery
  • 57f064934 fix(opencode): check session existence by id
  • 520f793d2 fix(utils): parse git status rename destinations

Thank you to 3 community contributors:

  • @Hungdoan565:
    • fix(utils): parse git status rename destinations
  • @JSap0914:
    • fix(opencode): check session existence by id
  • @MoerAI:
    • Merge pull request #5690 from Hungdoan565/codex/fix-git-status-rename-path-20260628
    • Merge pull request #5832 from JSap0914/fix/session-exists-by-id-5810

v4.17.1

Changed
  • Batch task launches are capped before work is queued
  • Senpi QA gate now requires real child completion and output
  • Rename transition updates across package detection, plugin/config compatibility, and install surfaces
  • Install and publish workflow hardening, including safer release sequencing and package/install fixes
Fixed
  • Interrupted process-backed tasks now resume only from trusted current runtime state
  • Team members retain their scoped messaging runtime after recovery
  • Corrupt team state fails closed
  • Independent team waits cannot consume one another's messages
  • Failed child start is reported per item instead of hiding already-started work
  • Publication is now pinned to the exact prepared source commit across npm, platform binaries, and LazyCodex
  • Explicit GPT-5.6 Sol overrides retain their intended reasoning level across gateway model IDs
Safer Durable Task Recovery

Interrupted process-backed tasks now resume only from trusted current runtime state. Team members retain their scoped messaging runtime after recovery, corrupt team state fails closed, and independent team waits cannot consume one another’s messages.

Bounded, Observable Task Fan-Out

Batch task launches are capped before work is queued. A failed child start is reported per item instead of hiding already-started work, and the Senpi QA gate now requires real child completion and output.

Release and Routing Integrity

Publication is now pinned to the exact prepared source commit across npm, platform binaries, and LazyCodex, so provenance and payloads agree. Explicit GPT-5.6 Sol overrides also retain their intended reasoning level across gateway model IDs.


Minor Compatibility and Stability Release

This release carries compatibility-facing behavior changes and operational hardening. Read the summary below before upgrading or publishing.

  • Rename transition updates across package detection, plugin/config compatibility, and install surfaces.
  • Install and publish workflow hardening, including safer release sequencing and package/install fixes.
Commit Summary
  • ed0241d1a Merge pull request #6080 from code-yeongyu/release/v4.17.1-source-state
  • 616d30bdd Merge pull request #6079 from code-yeongyu/fix/publish-skill-fastpath
  • 930664124 Merge remote-tracking branch 'origin/dev' into fix/publish-skill-fastpath
  • e52cd8f47 test(ci): cover provenance dispatch summary
  • 298b743f3 fix(publish): make /publish ship-only, stop auto-triggering pre-publish review
  • 017d70c46 fix(release): pin publication provenance to source
  • c1a741dd9 fix(codex): align model and team spawn contracts
  • 23312138c Merge pull request #6068 from code-yeongyu/code-yeongyu/cleanup-codex-toml-parser
  • 848ffce93 Merge origin/dev into code-yeongyu/cleanup-codex-toml-parser
  • 82864f8e0 Merge pull request #6070 from code-yeongyu/fix/visual-qa-tag-emission
  • 12e2637e8 Merge origin/dev into code-yeongyu/cleanup-codex-toml-parser
  • e47aa9b87 fix(skills): emit [product]/[evidence] tag reviewers and unify backoff dashes
  • c660246be Merge pull request #6069 from code-yeongyu/fix/qa-loop-contradictions
  • af27b971a fix(skills): resolve QA-loop contradictions and evidence-vs-product churn
  • 5cfa6066c Merge remote-tracking branch 'origin/dev' into code-yeongyu/cleanup-codex-toml-parser
  • 734b1b420 refactor(omo-codex): reuse TOML string parser
  • 6e4c82627 Merge pull request #6065 from code-yeongyu/code-yeongyu/cleanup-shared-skill-helpers
  • 955214b12 Merge remote-tracking branch 'origin/dev' into code-yeongyu/cleanup-shared-skill-helpers
  • e1e09aef6 feat(team-core): lead unread recipient + leadSessionId + consumed-ledger + consumer lease
  • 58000e267 Merge pull request #6064 from code-yeongyu/fix/ulw-loop-test-timeouts
  • 4ccba96df fix: increase bun:test timeout for load-sensitive async tests in ulw-loop
  • 5071a7c82 Merge pull request #6063 from code-yeongyu/fix/release-4-17-1-blockers
  • 20887c5d4 Merge pull request #6057 from code-yeongyu/code-yeongyu/cleanup-root-contract-tests
  • fbb56162b docs(skills): align review and Hephaestus guidance
  • d66fe09e2 fix(release): build from prepared installer version
  • 7c55a25f4 fix(skills): preserve full evidenced planning scope
  • 8bbabd65f fix(ulw-loop): route planning by uncertainty
  • e38bc3fa1 fix(teammode): gate fallback on visible capabilities
  • b5040f937 Merge remote-tracking branch 'origin/dev' into code-yeongyu/cleanup-shared-skill-helpers
  • d8a71f0a0 refactor(skills): reuse path resolver
  • 99f124606 refactor(skills-loader): reuse initiator marker
  • e564bd4ec refactor(utils): own skill path resolution
  • efc99280a Merge origin/dev into code-yeongyu/cleanup-root-contract-tests
  • f7eb7dd2d Merge pull request #6060 from code-yeongyu/fix/plan-prompts-scope-narrowing
  • 19aabe5e1 fix(skills): make full-request scope the ulw-plan default
  • d0e2e0863 fix(agents): remove scope-narrowing MVP language from metis prompts
  • 412405b0f Merge origin/dev into code-yeongyu/cleanup-root-contract-tests
  • 0f69b09da Merge pull request #6059 from code-yeongyu/code-yeongyu/cleanup-lsp-record-predicate
  • 7a9a0d005 Merge remote-tracking branch 'origin/dev' into code-yeongyu/cleanup-lsp-record-predicate
  • 11363611b Merge remote-tracking branch 'origin/dev' into code-yeongyu/cleanup-root-contract-tests
  • 8ca9a8804 Merge pull request #6058 from code-yeongyu/fix/hephaestus-review-gate-overtrigger
  • d5fa06820 fix(codex-rules): scope review-work gate to PR handoffs instead of fuzzy 'significant work'
  • 76e7e762a Merge pull request #6056 from code-yeongyu/fix/hephaestus-sol-high-default
  • 14c892c11 Merge remote-tracking branch 'origin/dev' into code-yeongyu/cleanup-lsp-record-predicate
  • 7f648cace refactor(lsp-daemon): reuse record predicate
  • a67f3d190 test(root): remove source-shape sentinels
  • 2c4c7f05b test(agents): preserve hephaestus override coverage
  • dc253ff13 fix(model-core): raise hephaestus sol default
  • d269b23ed Merge pull request #6052 from code-yeongyu/fix/teammode-transport-fallback
  • e1014230f Merge pull request #6055 from code-yeongyu/chore/ultimate-browsing-dep-bump
  • 655f0f753 chore(ultimate-browsing): bump documented runtime dependency pins to latest
  • f261104b3 Merge pull request #6054 from code-yeongyu/fix/ultrawork-plan-routing
  • 1f58a541b fix(omo-codex): align plan agent and hephaestus routing with uncertainty-based planning
  • 22d66b0c8 fix(ultrawork): mirror uncertainty-based plan trigger in gpt variant
  • 691e76a81 fix(ultrawork): size planning by design uncertainty, not step count
  • 316e635db docs(omo-codex): sync teammode component AGENTS.md with transport fallback protocol
  • d49f5f8c5 fix(omo-codex): teammode transport chain with tool_search check and subagent fallback

v4.17.0

Added
  • Exploration and deep-analysis categories use new Luna and Terra routes for stronger reasoning
  • Interrupted ULW runs can now resume automatically through a bounded Stop hook
  • Spawn guards and reviewer preflight checks prevent runaway fan-out and stop stale evidence from being relabeled as proof for a newer HEAD
Changed
  • LazyCodex now selects low-, medium-, or high-difficulty workers based on change size and risk instead of routing every implementation through one general executor
  • New installs default to GPT-5.6 Sol with a 372K context window
  • Evidence is isolated by attempt and tied to the commit that produced it, checked before the final reviewer starts
  • Senpi task TUI now shows resolved model details and contextual status, control, and output excerpts
  • Prompt and skill changes are now tested at behavioral seams—parsed values, runtime sentinels, and shipped-artifact equality—rather than fragile sentence matching or word-count tests
Fixed
  • Rows are width-bounded and terminal control sequences are sanitized to prevent narrow terminals and untrusted task output from distorting the interface
  • Codex bundles no longer ship nested component MCP manifests with invalid relative daemon paths
Codex Work That Scales to the Task

LazyCodex now selects low-, medium-, or high-difficulty workers from the actual change size and risk instead of routing every implementation through one general executor. New installs default to GPT-5.6 Sol with a 372K context window, while exploration and deep-analysis categories use the new Luna and Terra routes. The result is cheaper handling for narrow work and stronger reasoning where a change genuinely needs it.

ULW Loops Recover and Prove the Right Revision

Interrupted ULW runs can now resume automatically through a bounded Stop hook. Evidence is isolated by attempt, tied to the commit that produced it, and checked before the final reviewer starts. Spawn guards and reviewer preflight checks prevent runaway fan-out and stop stale evidence from being relabeled as proof for a newer HEAD.

More Useful, Safer Task Output

The Senpi task TUI now shows resolved model details and contextual status, control, and output excerpts. Rows are width-bounded and terminal control sequences are sanitized, so narrow terminals and untrusted task output no longer distort the interface.

Cleaner Plugin Installs and Honest Prompt QA

Codex bundles no longer ship nested component MCP manifests with invalid relative daemon paths. Prompt and skill changes are now tested at behavioral seams—parsed values, runtime sentinels, and shipped-artifact equality—rather than fragile sentence matching or word-count tests that block legitimate prose improvements.


Minor Compatibility and Stability Release

This release carries compatibility-facing behavior changes and operational hardening. Read the summary below before upgrading or publishing.

  • Rename transition updates across package detection, plugin/config compatibility, and install surfaces.
  • Task and tool behavior updates, including delegate-task contract and runtime registration behavior.
  • Install and publish workflow hardening, including safer release sequencing and package/install fixes.
Commit Summary
  • b4673bf07 Merge pull request #6050 from code-yeongyu/fix/ulw-size-tier-guidance
  • 9741e995a feat(omo-codex): size-drive the ulw worker-tier selection
  • d6a4631f6 Merge pull request #6049 from code-yeongyu/fix/ulw-agent-tier-config
  • cdc710aae feat(omo-codex): emphasize code-mode parallel fan-out in hephaestus gpt-5.6 discovery
  • 339e85b49 refactor(omo-codex): remove redundant lazycodex-executor agent; gate the workers
  • e0734a8a6 fix(ultrawork): add answer-when-answerable stop rule to codex directive
  • 7e26cae44 Merge pull request #6047 from code-yeongyu/fix/ulw-loop-evidence-commit-identity
  • be7ea8f95 fix(ulw-loop): make the tool surface V2-native for GPT-5.6 (sol/terra)
  • 940849332 Merge pull request #6048 from code-yeongyu/fix/codex-ulw-explore-first-plan-gate
  • 1cc0be6c4 fix(ulw-loop): bind QA evidence to its capture commit to stop stale-HEAD relabeling
  • 1a079089e test(ultrawork): pin explore-first scope-gated planning invariants
  • 647cf1f29 fix(ultrawork): gather context before scope-gated planning in codex directive
  • 09514c223 Merge pull request #6046 from code-yeongyu/fix/omo-codex-drop-nested-mcp-manifest
  • 367d3b007 chore(package): ship git-bash-mcp package.json for vendored-MCP parity
  • 661f9a3fe fix(lazycodex-sync): drop nested component .mcp.json from the marketplace bundle
  • 740f034cf fix(codex-install): drop nested component .mcp.json from the plugin cache
  • 28024d963 Merge pull request #6045 from code-yeongyu/fix/team-mode-deflake-windows-ci
  • 7baf2bdb1 test(team-mode): give concurrency cases an explicit 30s per-test timeout
  • 860e01cdc test(team-mode): make launch-concurrency probe waits event-driven
  • 1a2c5dcdd Merge pull request #6044 from code-yeongyu/feat/lazycodex-gate-reviewer-high
  • e278bc735 Merge pull request #6041 from code-yeongyu/feat/lazycodex-default-model-gpt-5.6-sol
  • b70edfc76 feat(lazycodex): drop gate-reviewer reasoning effort to high
  • 13addbf1d Merge pull request #6040 from code-yeongyu/feat/lazycodex-worker-medium-qa-plan-retune
  • 8d610cf64 test(omo-codex): pin gpt-5.6-sol default; keep v1 legacy paths covered
  • 81c0d8faa feat(omo-codex): default install model to gpt-5.6-sol/372k/high
  • eda430f3b Merge pull request #6039 from code-yeongyu/fix/stop-continuation-session-suppression
  • 45ac7be80 feat(lazycodex): retune worker-medium, qa-executor, and plan model tiers
  • c611246f0 fix(stop-continuation): stop continuation from every /stop-continuation entry point
  • 17104e1f6 Merge pull request #6038 from code-yeongyu/fix/worker-toml-nickname-charset
  • 7124b08c2 test(codex-plugin): pin the codex nickname charset for bundled agent TOMLs
  • 37d9b83ed fix(ultrawork-agents): worker nicknames violate codex role-loader charset
  • 2ce3caec6 Merge pull request #6036 from code-yeongyu/feat/ulw-loop-infra-hooks
  • 384cb0d26 fix(ulw-loop): harden Stop-hook deferral and resume directive per review
  • f00b58114 feat(ulw-loop): register the spawn-guard PreToolUse root manifest
  • bfd32af67 feat(ulw-loop): spawn fan-out cap and gate-reviewer artifact preflight guard
  • 067f34b0e Merge pull request #6035 from code-yeongyu/docs/omomomo-command-roster
  • ee2958b78 feat(ulw-loop): register the Stop resume hook on the root manifest surface
  • 68ea25839 feat(ulw-loop): auto-resume interrupted runs via Stop hook with two-strike cap
  • 235c0dc3d docs: fix stale agent roster in omomomo command copies
  • bbdd08042 Merge pull request #6034 from code-yeongyu/docs/model-claims-audit
  • 2b25d6492 Merge pull request #6031 from code-yeongyu/feat/ulw-loop-gate-middle-states
  • c44d199f6 docs: fix omomomo agent roster, landing writing label, sync pre-publish-review skill
  • 0b83b6aba docs(reference): sync agent and category chain tables with model-core
  • 80ef1c81f docs(guide): correct stale model claims in orchestration, installation, overview, matching
  • d463a2c73 docs: fix stale agent chains in READMEs across all languages
  • a88c7f1fa fix(ulw-loop): make component tests pass on win32 CI
  • 87b52059b fix(ci): run ulw-loop component suite before the plugin bundling build
  • 2e40dbde2 style(ulw-loop): sort quality-gate imports per biome
  • 1433f3842 chore(omo-codex): regenerate bundled installer from current source
  • aaf328fb7 docs(ulw-plan): migrate scaffold evidence templates to the attempt directory
  • fe552e683 fix(ulw-loop): make attempt containment separator-agnostic and CI-gate the component suite
  • 683fe5775 docs(ultrawork-agents): route evidence path templates through currentAttemptDir
  • b250866ee feat(ulw-loop): expose currentAttemptDir in status --json and goal handoff text
  • b62899523 feat(ulw-loop): enforce attempt-scoped evidence directories at the final quality gate
  • bccf3fa39 feat(ulw-loop): accept WATCH and reasoned not_applicable at the quality gate
  • d9f01f5e8 fix(ulw-loop): stage final gate spawn after reviewer artifacts exist and bound re-review
  • a9d76d87c Merge pull request #6030 from code-yeongyu/feature/lazycodex-difficulty-tier-routing
  • e6c0dc6e5 fix(start-work): keep the corrected v2 agent_type claim authoritative in the synced skill
  • 64624942f test(lazycodex): pin the extended SubagentStop verifier matcher
  • 29526d71c test(lazycodex-install): pin explorer/librarian effort chain to the luna/low target
  • e5f959b01 feat(lazycodex): enforce evidence receipts for difficulty-tier workers
  • 142e503be feat(start-work): delegate implementation by difficulty tier on Codex
  • ec8d5acca fix(ultrawork): restore child-liveness guidance and compress tier rows under word budget
  • 2b9d08457 feat(lazycodex): difficulty-tier delegation guidance in ulw-loop workflow and directive
  • 89766ee18 fix(lazycodex-install): chain explorer/librarian reasoning defaults to luna/low for upgraders
  • bacfe64d1 feat(lazycodex): add difficulty-tier worker agents and route explorer/librarian to luna
  • d75996574 Merge pull request #6029 from code-yeongyu/fix/ulw-verifier-calibration
  • 4851d1817 chore(lazycodex): regenerate tracked init-deep skill with backoff prose
  • a9e2e1286 fix(review-work): inline-blocker reject contract and wait backoff
  • dd06e341a fix(ultrawork): bound the verification gate loop and delta-scope re-reviews
  • 72bb08646 fix(lazycodex): rebalance reviewer burden-of-proof and inline REJECT blockers
  • fb74d777b Merge pull request #6027 from code-yeongyu/docs/gpt-5-6-model-label-sync
  • 47809d570 fix(web): correct model labels on landing page
  • 511956e76 docs: sync localized README ultrabrain routing with gpt-5.6-sol default
  • e001a917d Merge pull request #6026 from code-yeongyu/feat/gpt-5-6-category-defaults
  • 54a375c64 test(omo-opencode): assert unspecified-low xhigh variant in delegate default test
  • 1249bdd49 docs: reflect gpt-5.6 terra/luna category defaults in guides and examples
  • 9a6036a0b feat(omo-opencode): adopt gpt-5.6 terra/luna builtin category defaults
  • 9d51fb6b1 feat(model-core): route deep to gpt-5.6-terra xhigh, unspecified-low to gpt-5.6-luna xhigh

v4.16.3

Added
  • LazyCodex codex team mode can now run on native MultiAgentV2 agents with Codex App threads as fallback transport
Changed
  • Hephaestus, Momus, deep, and ultrabrain now prefer GPT-5.6 Sol with role-appropriate reasoning levels, with GPT-5.5 as compatibility fallback
  • OpenCode and LazyCodex select GPT-5.6-aware prompts and rule variants tuned to the model's tool surface
  • GLM fallback chains move to GLM 5.2
  • Team state records one immutable transport and validates agent and thread identities accordingly while preserving durable worktree, messaging, integration, and archive workflow
  • LazyCodex now resolves multi-agent behavior from the same custom model_catalog_json that Codex uses, including relative catalog paths beside config.toml
  • Managed Explorer, Librarian, and Momus defaults advance to their new model-appropriate efforts without overwriting custom model or effort choices
Fixed
  • GPT-5.6/V2 installs remove stale V2 disables and incompatible agents.max_threads settings
  • Unknown root models no longer receive a risky thread-limit key
  • Symlinked plugin-cache entrypoints execute correctly
  • Optional lifecycle tools are no longer assumed to exist
  • Dynamic bundled rules are reinjected when a session changes model
  • OpenCode background tasks now finalize and notify their parent when provider, model, or credential errors are terminal even if the failed session shell still exists
  • Live-listener routing verifies that the listener actually owns the target session before sending a parent wake, preventing completed work from disappearing into the wrong server instance

GPT-5.6 Orchestration, Hardened End to End

This patch makes GPT-5.6 the first-class path for OMO's deepest work while tightening the handoffs that keep long-running agent workflows alive.

GPT-5.6 for Deep Work and Review

Hephaestus, Momus, deep, and ultrabrain now prefer GPT-5.6 Sol with role-appropriate reasoning levels, while GPT-5.5 remains the compatibility fallback. OpenCode and LazyCodex also select GPT-5.6-aware prompts and rule variants, so the model gets guidance tuned to its actual tool surface instead of inheriting older assumptions. GLM fallback chains move to GLM 5.2.

Native MultiAgentV2 Teams in LazyCodex

Codex team mode can now run on native MultiAgentV2 agents when that complete tool surface is available, with Codex App threads retained as the fallback transport. Team state records one immutable transport, validates agent and thread identities accordingly, and preserves the existing durable worktree, messaging, integration, and archive workflow across both paths.

Safer Codex Installation and Rule Switching

LazyCodex now resolves multi-agent behavior from the same custom model_catalog_json that Codex uses, including relative catalog paths beside config.toml. GPT-5.6/V2 installs remove stale V2 disables and incompatible agents.max_threads settings, while unknown root models no longer receive a risky thread-limit key. Managed Explorer, Librarian, and Momus defaults advance to their new model-appropriate efforts without overwriting custom model or effort choices. Symlinked plugin-cache entrypoints execute correctly, optional lifecycle tools are no longer assumed to exist, and dynamic bundled rules are reinjected when a session changes model.

Background Agents Stop Waiting Forever

OpenCode background tasks now finalize and notify their parent when provider, model, or credential errors are terminal even if the failed session shell still exists. Live-listener routing also verifies that the listener actually owns the target session before sending a parent wake, preventing completed work from disappearing into the wrong server instance.

No manual configuration migration is required. Explicit GPT-5.5 selections, custom LazyCodex agent efforts, and Codex App thread teams remain supported.


Minor Compatibility and Stability Release

This release carries compatibility-facing behavior changes and operational hardening. Read the summary below before upgrading or publishing.

  • Rename transition updates across package detection, plugin/config compatibility, and install surfaces.
  • Task and tool behavior updates, including delegate-task contract and runtime registration behavior.
  • Install and publish workflow hardening, including safer release sequencing and package/install fixes.
Commit Summary
  • 46a55adb1 Merge pull request #6022 from code-yeongyu/fix/codex-v2-catalog-guards-qa
  • 7e45232fa chore(codex): regenerate installer bundle
  • cb11103e5 test(codex): pin bundled agent model matrix
  • 60a8c5584 fix(codex): advance managed agent efforts
  • 6d69dc03d fix(codex): clean stale V2 installer guards
  • 5eb76107b fix(codex): resolve V2 runtime catalog paths
  • 916916105 Merge pull request #6021 from code-yeongyu/fix/preserve-explicit-gpt55-pins
  • bdf7bb49f fix(config): preserve explicit GPT-5.5 pins
  • 5c795d27b chore(skills): pin pre-publish review to Sol
  • f33957d8d Merge pull request #6018 from code-yeongyu/fix/release-model-default-docs
  • 3af258783 Merge pull request #6020 from code-yeongyu/fix/release-bg-terminal-errors
  • 0eb507b3b Merge pull request #6019 from code-yeongyu/fix/release-rules-dynamic-model
  • 7beada44e Merge pull request #6017 from code-yeongyu/fix/release-rules-hephaestus-truncation
  • cf9cc748a docs: align root model defaults
  • 8054baec4 docs: fix ultrabrain release model claim
  • 39692c963 test(background): cover alive terminal cleanup
  • effa6990c fix(background): classify terminal provider errors
  • f12a6b6b6 Merge pull request #6016 from code-yeongyu/fix/release-codex-installer-bundle
  • 4f957b39c fix(omo-codex): invalidate dynamic rules on model switch
  • 882c2284c fix(rules): limit Hephaestus truncation exemption
  • 738626605 docs: refresh GPT-native routing guidance
  • 9de07f9fe docs: complete current model fallback chains
  • c3d416678 docs: align release model default tables
  • 0a1fdfa92 fix(codex): regenerate installer bundle guards
  • 0744e084d Merge pull request #6015 from code-yeongyu/fix/codex-sync-skills-optional-lifecycle
  • a2e7f6ac8 Merge pull request #6014 from code-yeongyu/fix/codex-multi-agent-unknown-model-safety
  • a33ad7467 fix(codex): guard optional subagent lifecycle tools in generated Codex guidance
  • 9fb311045 fix(codex): resolve multi-agent version from model_catalog_json
  • 33e204c7e fix(codex): installer never introduces agents.max_threads without a root model
  • c5565dfbc fix(codex): skip v2 disable and agents.max_threads when effective model is unknown
  • 33b80556f Merge pull request #6013 from code-yeongyu/fix/live-route-session-affinity
  • bcb1e0953 fix(omo-opencode): verify live listener owns the session before routing parent wakes
  • 7719ac328 fix(utils): allow affinity as a prompt dispatch route reason
  • f1a8df12e Merge pull request #6012 from code-yeongyu/feature/omo-codex-gpt-5-6-prompt-rewrite
  • b15f2c034 chore(omo-codex): trim lazycodex-executor worktree preamble
  • de2451477 feat(omo-codex): rewrite planner-support subagent prompts for gpt-5.6
  • cf4138267 feat(omo-codex): align hephaestus gpt-5.6 rule with opencode structure
  • 14d6b2e36 Merge pull request #5998 from EvangelosMoschou/fix/5971-bg-task-death-notifies-parent
  • ae3ca8332 Merge pull request #6011 from code-yeongyu/feature/codex-teammode-v2-fallback
  • 6a3b09a65 Merge pull request #6010 from code-yeongyu/feat/momus-gpt-5-6-xhigh
  • 0348fd9db docs(codex): document teammode transports and V2-aware research routing
  • 773706e38 feat(codex): route teammode through MultiAgentV2 with codex_app fallback
  • dd22ebe49 docs: reflect momus gpt-5.6-sol xhigh default in model guides
  • a6e5abf48 feat(utils): migrate momus configs pinned to old gpt-5.5 default
  • 2dfbc2675 feat(agents): add GPT-5.6 momus prompt with xhigh reasoning
  • ac933d0da feat(model-core): route momus to gpt-5.6-sol xhigh as primary
  • d81aed4ae chore(omo-codex): set QA executor model to gpt-5.6-terra medium
  • e1edf918e feat(omo-codex): route verification agents to gpt-5.6 series
  • 9d109585e feat(omo-codex): run Momus reviews at ultra
  • 1b8bc2dfb raise omo-codex gate reviewer reasoning effort to ultra
  • 7124986b7 feat(omo-codex): model-gate Hephaestus bundled rule into gpt-5.5/gpt-5.6 variants
  • 7ef8db14c docs: update model matching guide, examples, and references for gpt-5.6-sol and glm-5.2
  • be29e0d7f test(omo-opencode): pin gpt-5.6-sol defaults for hephaestus, deep, and ultrabrain
  • 6dd171cbb feat(model-core): replace glm-5.1 with glm-5.2 in agent and category fallback chains
  • 38c703dfa docs(omo-codex): document V2-aware installer and symlink-safe entry guards
  • ddac08fee gpt-5.6 model migration across agents/categories/config; symlink-safe codex CLI entry-guard
  • b765b543d lazycodex: set explorer/librarian to gpt-5.6-terra medium, plan to gpt-5.6-sol xhigh
  • e4de69f0d fix(bg-agent): terminate task + notify parent on terminal session errors (#5971)

Thank you to 1 community contributor:

  • @EvangelosMoschou:
    • fix(bg-agent): terminate task + notify parent on terminal session errors (#5971)