Skip to content

oh-my-openagent

v4.19.1 Breaking

This release includes 2 breaking changes for platform teams planning a safe upgrade.

Published 4d AI Coding Tools
✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

ai ai-agents anthropic chatgpt claude claude-skills
+9 more
codex cursor gemini ide openai opencode orchestration tui typescript

Summary

AI summary

Broad release touches codegraph, ulw-loop, orchestration, and models.

Full changelog

🩹 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

Breaking Changes

  • Purged gpt-5.5 fallback rungs; all active GPT defaults now route exclusively through GPT‑5.6 Sol with no silent fallbacks.
  • Promoted builtin Kimi fallbacks to K3, removing the older Kimi behavior.

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track oh-my-openagent

Get notified when new releases ship.

Sign up free

About oh-my-openagent

omo; the best agent harness - previously oh-my-opencode

All releases →

Related context

Earlier breaking changes

  • v4.19.0 Removes legacy Ralph Loop wiring; introduces Goal feature with automatic config migration.
  • v4.6.0 Removed broken direct public binary entrypoints from platform launcher packages, keeping them internal.
  • v4.6.0 Removed legacy context-window monitor hook path from active hooks and config surfaces.
  • v4.4.0 Removes top‑level `lsp` config key; migration required to `.opencode/lsp.json`.

Beta — feedback welcome: [email protected]