๐ฉน 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.
- 9c81de5 Merge pull request #6300 from code-yeongyu/release/v4.19.1-source-state
- 499b523 Merge pull request #6293 from code-yeongyu/fix/config-watch-rejection-reregister
- 166d2e1 Merge pull request #6294 from code-yeongyu/fix/windows-flaky-coalesced-flush-wait
- ad0085b test(background-agent): await guaranteed flush-settle signal, not a poll-cap race
- 97b0502 Merge pull request #6290 from code-yeongyu/fix/139-marketplace-root-manifest
- c3d0e68 fix(script): also write marketplace.json to the lazycodex repo root
- 4ae3be4 Merge pull request #6289 from code-yeongyu/test/136-codex-only-install-exit-status
- 85a1bec Merge pull request #6285 from code-yeongyu/fix/108-sync-component-clis
- 8cfd05c Merge pull request #6287 from code-yeongyu/fix/137-npm-ci-lock-drift
- 66a174f 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.
- 102caa9 Merge pull request #6288 from code-yeongyu/fix/131-orca-duplicate-agent-roles
- 1dfb1f5 Merge pull request #6286 from code-yeongyu/fix/111-no-excuse-ts-resolution
- 4368a37 test(codex-install): parity test expects npm install after outside-plugin file dep rewrite
- 855ff8f fix(script): normalize managed bin target path to POSIX for win32 validation
- 5b302c9 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.
- 5b2a11b 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.
- 0e4841e Merge pull request #6284 from code-yeongyu/fix/windows-ci-timing-flakes
- 90eb338 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.
- 1bf0f43 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.
- d59736a Merge pull request #6281 from code-yeongyu/fix/133-sessionstart-timeout-headroom
- 96b8c97 Merge pull request #6282 from code-yeongyu/fix/128-service-tier-optout
- b7ff3f1 Merge pull request #6280 from code-yeongyu/fix/138-doctor-codex-win-shim
- 04c4551 Merge pull request #6278 from code-yeongyu/fix/117-antigravity-gemini-transform
- 4c6f187 Merge pull request #6279 from code-yeongyu/fix/124-ulw-plan-ultrawork-collision
- 0d9180a docs(codex): document and lock the explorer/librarian service-tier opt-out
- 401dda2 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.
- d477599 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.
- 454cb16 Merge pull request #6276 from code-yeongyu/fix/129-stop-resume-path-traversal
- 1db84c9 Merge pull request #6277 from code-yeongyu/fix/125-postcompact-gpt56-budget
- d0b8690 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.
- 71557af 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.
- 9e428f5 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.
- 6041587 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.
- 2999a17 Merge pull request #6271 from code-yeongyu/docs/codegraph-daemon-hygiene
- 5627301 docs: codegraph daemon opt-in and process hygiene
- d60e751 Merge pull request #6262 from code-yeongyu/feat/omo-process-hygiene
- 6d95836 test(codegraph): guard held-open watchdog facade test on win32
- f4a3101 Merge remote-tracking branch 'origin/dev' into feat/omo-process-hygiene
- 8e3c629 fix(codegraph): destroy held-open test streams so bun test exits on win32
- c44f565 Merge pull request #6265 from code-yeongyu/feature/upgrade-agent-gpts-to-5-6-sol
- 8ff0aeb test(opencode): keep fallback coverage zero-growth
- 2c6872c fix(mcp-stdio-core): make isProcessAlive never throw so the watchdog cannot wedge on Windows
- 64dec99 test(models): pin Sol fallback progression
- cafc9e7 fix(models): close Sol routing review gaps
- 9271f83 fix(agents): align Sol prompt identity and guardrails
- 35ab4c0 test(opencode): split model fallback coverage
- 2173bfc feat(models): route active GPT defaults through 5.6 Sol
- 58b3176 Merge remote-tracking branch 'origin/dev' into feat/omo-process-hygiene
- 6554b3c test(omo-opencode): normalize separators before stripping trailing slash in root assertion
- d128431 test(process-sweep): use a valid NodeJS.Platform value for forced kill paths
- 0243dc4 test(omo-opencode): fix backslash regex in plugin-root assertion
- b62b3fa test(process-sweep): pin kill paths to injected posix platform and normalize separators in root assertion
- 8aac3c9 fix(mcp-stdio-core): reword watchdog comment to keep the package harness-neutral
- 703b67c Merge pull request #6261 from code-yeongyu/code-yeongyu/omo-config-watch
- a6dd5bf merge: sync origin/dev into omo-config-watch
- c8bffd2 test(utils): add process-sweep family matrix tests
- 20ee9ea feat(utils): family-based omo process sweep (codegraph + lsp)
- 2ce0f2a fix(omo-codex): terminate codegraph bridge when parent dies
- e41cbc6 fix(lsp,git-bash): exit MCP server processes when the parent dies
- 8183828 feat(lsp-daemon): add version-reap module and tests
- 4fef012 feat(lsp-daemon): reap older-version daemons at startup
- 5632e6a feat(mcp-stdio-core): parent-liveness watchdog for stdio servers
- d772785 Merge pull request #6251 from code-yeongyu/feat/codegraph-daemon-optin
- e3d1e47 Merge pull request #6253 from code-yeongyu/docs/refresh-model-defaults
- d30753d Merge remote-tracking branch 'origin/dev' into feat/codegraph-daemon-optin
- cda0487 test(codegraph): compute expected CODEGRAPH_INSTALL_DIR via join for win32
- 538df74 Merge pull request #6252 from code-yeongyu/fix/inprocess-resident-false-lost
- b0ff7ee Merge latest dev into fix/inprocess-resident-false-lost
- de67397 Merge origin/dev into fix/inprocess-resident-false-lost
- e96b6f7 docs: refresh model defaults to current fallback chains
- a3aab70 fix: preserve live in-process residents during reconcile
- a09cb9b Merge remote-tracking branch 'origin/dev' into feat/codegraph-daemon-optin
- bf033ac feat(omo-config-core): export config path resolution helpers
- 3e29a58 fix(codegraph): forward CODEGRAPH_DAEMON_IDLE_TIMEOUT_MS through the child env allowlist
- 6d53dc8 Merge pull request #6249 from code-yeongyu/fix/purge-gpt55-fallbacks
- 391e354 Merge pull request #6250 from code-yeongyu/fix/lsp-daemon-accurate-failure-labels
- abb059f test(opencode): align fallback selection coverage
- 9c7d4c1 fix(lsp-daemon): report cancelled and timed-out requests accurately
- aec6aa8 feat(omo-opencode): codegraph daemon opt-in and exclusion parity
- 7cb3738 test(models): cover gpt-5.5 fallback removal
- 05179d0 fix(models): purge gpt-5.5 fallback rungs
- 720dcd0 Merge pull request #6248 from code-yeongyu/feature/ulw-loop-batch-efficiency-v2
- 5912b94 Merge pull request #6247 from code-yeongyu/fix/kimi-k3-defaults
- 8ade283 chore(ulw-loop): record reviewer blocker evidence
- 3e2adaf Merge remote-tracking branch 'origin/dev' into fix/kimi-k3-defaults
- 05c47ef test(defaults): cover Kimi K3 builtin routing
- 80a5734 fix(ulw-loop): close independent review blockers
- c91d58d feat(omo-codex): opt-in shared codegraph daemon mode
- 7332547 fix(defaults): promote builtin Kimi fallbacks to K3
- 71752b3 Merge pull request #6246 from code-yeongyu/feature/ulw-plan-mode-announcement
- de9c545 Merge pull request #6245 from code-yeongyu/feat/realtime-tool-progress
- 26f929b chore(ulw-loop): record final gajae-adoption verification
- 3c661ed chore(ulw-loop): record codex-qa evidence for gajae-adoption features
- 45516ec chore(skills): regenerate synced codex ulw-plan skill copy
- 35837c5 feat(skills): enforce mandatory opening announcement in ulw-plan
- 26352f6 Merge remote-tracking branch 'origin/dev' into feat/realtime-tool-progress
- b36ecdd fix(ulw-loop): allow batch-final aggregate completion
- 3b0897b fix(ulw-loop): default batched steering CLI source
- 1c41f2f docs(ulw-loop): document auto-advance, batch steering, validation batches
- 05df4b1 feat(ulw-loop): enforce validation-batch review boundaries
- 4b5e237 feat(ulw-loop): add validation-batch schema to create-goals
- b424d63 fix(codegraph): exempt live detached daemons from zombie sweep
- ce628f8 feat(ulw-loop): add steer --proposals-json atomic batch steering
- b7f73f1 feat(ulw-loop): fuse next-goal auto-advance into checkpoint
- 6a6b37e Merge pull request #6243 from code-yeongyu/fix/defaults-oracle-gpt56-opus48
- 072882c test(opencode): record isolated Oracle routing QA
- 5c6af0e test(opencode): align fallback routing coverage
- 6b050e0 feat(opencode): route Oracle through GPT-5.6 Sol
- d47e52e feat(models): update Opus aliases and migration targets
- 58d1fd3 feat(codegraph): optional daemon mode in codegraph env builder
- fb0fb5e Merge pull request #6242 from code-yeongyu/feat/codegraph-141-upgrade
- 44f56d5 test(codegraph): block win32 hang probe in cmd.exe stdin instead of a lingering grandchild
- 4c11aba test(codegraph): bound win32 hang fake to 4s and retry probe-dir cleanup past the lock window
- 2586ef7 test(codegraph): use index-signature env access in probeEnv (TS4111)
- 0bdc353 test(codegraph): inherit system PATH for the win32 status probe
- 2634a6f test(codegraph): make store-upgrade hook tests cross-platform
- 60dfdbb build(codegraph): rebuild vendored codex component dist for the 1.4.1 pin
- a2e27a9 fix(codegraph): align MCP init guidance with CodeGraph 1.4.1 output shapes
- 7e499c5 test(codegraph): pin 1.0.1-era store handling under the 1.4.1 binary
- 0f3be70 build(codegraph): bump vendored CodeGraph pin to 1.4.1
- 9b45c0d Merge pull request #6239 from code-yeongyu/fix/lazycodex-model-routing
- 67fb6a7 fix(codex): update lazycodex agent model routing
- 50d9307 Merge pull request #6210 from acamq/fix/notepad-auto-scaffold-on-start-work
- 96194aa Merge pull request #6140 from MoerAI/fix/6131-lsp-diagnostics-silent-server
- 438142a test(lsp-core): record QA evidence for the #6131 stale-cache fallback guard
- d9fb51e fix(lsp-core): guard silent-server diagnostics fallback with version-current pull cache
- 28571cd Merge remote-tracking branch 'origin/dev' into fix/6131-lsp-diagnostics-silent-server
- d3c72a8 Merge pull request #5924 from Hungdoan565/codex/docs-glm52-model-guide-5848-20260706
- bd49665 docs(model-matching): clarify GLM model detection
- ec01135 docs(model-matching): narrow GLM selector wording
- aefc478 Merge remote-tracking branch 'origin/dev' into review/pr-5924-repair
- 012aa3f docs(model-matching): correct GLM fuzzy fallback guidance
- 9255f47 Merge pull request #5925 from Hungdoan565/codex/docs-scarce-premium-models-5821-20260706
- ee1e997 docs(orchestration): remove stale Momus criteria
- 29a4977 docs(model-matching): clarify experimental GLM 5.2 guidance
- 1f4aef3 docs(orchestration): update Momus approval contract
- acb7f8e docs(orchestration): align dual-review diagrams
- adf00f0 docs(orchestration): correct premium model placement
- cdc560b Merge origin/dev into codex/docs-glm52-model-guide-5848-20260706
- 0738f98 Merge origin/dev into codex/docs-scarce-premium-models-5821-20260706
- 799c0fd Merge pull request #5926 from Hungdoan565/codex/docs-opencode-auto-update-5367-20260706
- 067f3fa docs(known-issues): preserve plugin config scope
- f324cfb Merge branch 'dev' into codex/docs-opencode-auto-update-5367-20260706
- 0023507 Merge pull request #5938 from Hungdoan565/codex/docs-community-model-tools-5346-20260707
- d3b3db9 Merge pull request #5936 from Hungdoan565/codex/docs-agent-policy-boundary-5404-20260707
- 7dee018 docs(installation): clarify community tool boundaries
- 9341766 Merge pull request #5937 from Hungdoan565/codex/docs-brownfield-kiss-5280-20260707
- 2c6dfb1 Merge origin/dev into codex/docs-agent-policy-boundary-5404-20260707
- f79569a Merge pull request #5942 from Hungdoan565/codex/docs-known-issue-5911-worktree-status-20260707
- 24b4265 Merge origin/dev into codex/docs-agent-policy-boundary-5404-20260707
- 9622bc6 docs(orchestration): qualify brownfield guidance
- 404da72 docs(known-issues): note worktree merge status gap
- 1345dfe docs(notepad): notepads are auto-scaffolded; use edit/bash-append not write
- 27beb30 feat(start-work): auto-scaffold notepad files on plan commit
- 8af3985 Merge pull request #6197 from acamq/fix-remove-stale-release-framining
- 04717bf fix(release): remove stale framing block from generated release notes
- 13e072c fix(lsp-core): resolve clean diagnostics for silent no-pull servers instead of freshness timeout
- 3c3f16d docs(installation): note community model tools
- 70227d7 docs(orchestration): clarify Sisyphus display names
- ae1dbc7 docs(orchestration): document brownfield KISS mode
- a96e0f9 docs(agents): clarify policy enforcement boundary
- 43401d6 docs(known-issues): document OpenCode update cache workaround
- 2e83c47 docs(orchestration): guide scarce premium model placement
- 04e86f7 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