This release includes 1 breaking change for platform teams planning a safe upgrade.
✓ No known CVEs patched in this version
Topics
+9 more
Affected surfaces
Summary
AI summaryBroad release touches Commit Summary, codex, test, and team-mode.
Full changelog
omo v4.10.0
This release makes omo easier to install, safer to recover, and more predictable across Codex, OpenCode, and Windows environments. The headline is a stronger LazyCodex/Codex runtime path, real Windows ARM publishing, Kimi K2.7-aware agent behavior, and steadier long-running work.
Codex And LazyCodex Runtime Provisioning
Codex installs can now provision the runtime pieces they need instead of assuming every machine already has the right binaries. Downloads are checksum-pinned, CODEX_HOME gets a managed runtime path, bootstrap work is serialized, installer state is easier to diagnose, and uninstall is scoped so cleanup removes omo-managed runtime state without stomping unrelated local setup.
Native Windows And Windows ARM Publishing
Windows support now covers more of the rough edges: PowerShell 5.1 bootstrap, portable Node and Git Bash provisioning, WSL misroute avoidance, safer Windows launcher checks, and the new windows-arm64 platform package. Windows-on-ARM users now get a first-class package path, with x64 fallback behavior where it is still needed.
Kimi K2.7 Agent Support
Atlas, Prometheus, Sisyphus, Sisyphus-Junior, and Metis now have Kimi K2.7-native prompt variants, and model matching detects K2.7 before generic Kimi routing. K2.7 runs should get a better instruction shape without disturbing existing model families.
Recovery And Long-Run Reliability
The parts that matter after hours of agent work are tighter: atomic config writes, wake and team delivery fixes, stale tmux pane cleanup, idempotent ulw-loop --json resume, cleaner look_at missing-file errors, steadier runtime fallback behavior, and removal of legacy session-recovery paths that could fight newer continuation logic.
Release And Compatibility Hardening
The publish path now checks platform package consistency more aggressively, fails LazyCodex marketplace sync when referenced dists are missing, and ships the Codex marketplace payload with version-stamped plugin metadata. The release also includes documentation and compatibility updates for install trust, provider routing, older sessions, team quiescence, and known Windows/OpenCode edges.
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.
- Task-system default behavior alignment so omitted configuration behaves consistently across runtime paths.
- Install and publish workflow hardening, including safer release sequencing and package/install fixes.
Commit Summary
- 9fa0c080e fix(codex): respect read-only config during bootstrap
- a8c66b441 Merge pull request #5296 from code-yeongyu/fix/prepublish-robustness-hardening
- 82e65bc24 test(release): assert platform packages stay consistent in optionalDependencies and on disk
- abe141f03 fix(look-at): return File-not-found instead of throwing on a missing JSON file
- 925667c04 fix(codex): write config.toml atomically to survive interrupted writes
- be84fd4e7 Merge pull request #5290 from code-yeongyu/fix/ulw-impact-proportional-sizing
- a7ea62ded refactor(ultrawork): tidy directive consistency from self-review
- 6a8f1818c chore(ultrawork): make package check green (biome format + schema 2.4.16)
- 4f96cb249 fix(ultrawork): size proof and QA to change impact, not an absolute test-first mandate
- dce609c7d Merge pull request #5289 from code-yeongyu/fix/ulw-loop-json-error-stdout
- 4c457cd3c Merge pull request #5287 from code-yeongyu/fix/win-arm64-platform-binary
- 022c5f3ed fix(ulw-loop): emit JSON errors on stdout in --json mode
- 0776d26d7 test(ci): tolerate not-yet-published platform packages in lock-sync gate
- 28637154b Merge pull request #5283 from code-yeongyu/fix/issue-5258-closeable
- 0543f40a2 test(release): also assert publish.yml platform lists stay in sync
- b44bf61ba feat(release): publish windows-arm64 across pipeline + optionalDependencies
- b4d9db135 fix(rules): stop windows-git-bash rule from steering bash to WSL
- a446bb3ba fix(sparkshell): hint --shell when metacharacters used without it
- e61f1da82 feat(dist): add oh-my-opencode-windows-arm64 platform package
- b38d7f754 fix(platform): resolve windows-x64-baseline fallback on win32-arm64
- 3df806303 Merge pull request #5286 from code-yeongyu/docs/sisyphus-model-support-warning
- 075a57d9e docs(model-matching): hard-warn that Sisyphus is tested ONLY on listed models
- ae7361a5d test(windows): relax OAuth callback server timeout
- f862916fe fix(windows): avoid git spawn in worktree discovery
- 38e7c188d test(codex): speed up Git Bash installer fixtures
- 3fd4e2270 Merge pull request #5284 from code-yeongyu/fix/ulw-loop-resume-idempotent
- 66f1b98c7 test(agents): align Hephaestus GPT-only fixtures
- 1c18d1e46 fix(ulw-loop): make complete-goals resume idempotent, stop ledger spam
- edf49f6d0 fix(agents): restrict Hephaestus to GPT-native models
- d58c560a2 Merge pull request #5282 from code-yeongyu/fix/ulw-plan-approval-gate-durable-state
- b3b9fde3d fix(ulw-plan): rewrite Prometheus prompt GPT-5.5-native, end approval-gate loop (lazycodex #48)
- 663f10062 Merge pull request #5281 from code-yeongyu/fix/doctor-windows-guidance-ideal-state
- aaa7cd53c docs(install): document Windows OpenCode proxy preinstall
- 6cef621ad fix(doctor): prefer canonical package identity
- 0b327eb89 fix(agents): dedupe GPT apply_patch guidance
- 7fedea0b8 Merge pull request #5262 from code-yeongyu/worktree-fix-gpt-apply-patch-guidance
- e556cdbd5 fix(agents): align GPT apply_patch guidance with upstream tool availability
- 178b26ad0 docs(known-issues): batch merge 12 known-issue entries (#5271, #5272, #5273, #5274, #5275, #5276, #5277, #5278, #5267, #5266, #5251, #5250)
- 03d5f5d8c Merge pull request #5238 from JSap0914/docs/3491-install-trust-surface
- c830f2f10 Merge pull request #5239 from JSap0914/docs/5183-bun-global-trust
- a40d0deeb Merge pull request #5246 from JSap0914/docs/4124-background-agent-temp
- 83176a6c7 Merge pull request #5248 from JSap0914/docs/2206-claude-split-routing
- 82bd07b1a Merge pull request #5249 from JSap0914/docs/614-agents-template
- ced5aa1ad Merge pull request #5252 from JSap0914/docs/4722-codex-hook-code1
- 193300ce6 Merge pull request #5265 from JSap0914/docs/1902-older-sessions
- 2fcc01e75 Merge pull request #5268 from JSap0914/docs/4184-custom-provider-limit
- d6c228a9a Merge pull request #5269 from JSap0914/docs/3803-bedrock-guidance
- 21c868c0f Merge pull request #5279 from JSap0914/docs/4990-team-quiescence
- cfd69236d Merge pull request #5212 from EvangelosMoschou/feat/tech-debt-audit-skill
- c6c42f8b1 Merge pull request #5257 from dongguri-jun/fix/team-delete-active-cancel-order
- 25f7ca10f Merge pull request #5256 from dongguri-jun/fix/team-send-message-empty-correlation-id
- 72315a993 Merge pull request #5264 from dongguri-jun/fix/opencode-qa-home-shim
- 934d3fc5b Merge pull request #5241 from ririnto/fix/5240-background-runtime-fallback
- 3607d86bb Merge pull request #5270 from EvangelosMoschou/fix/archive-tests-skip-windows
- 63a23c4eb Merge pull request #5213 from EvangelosMoschou/fix/5182-5193-sisyphus-junior-tool-overrides
- 545488a58 docs(known-issues): note team quiescence workaround
- ddf4ce643 fix(test): skip archive extraction preflight on Windows (no Python)
- 0e6786088 docs(install): add Bedrock provider guidance
- e74ddfe71 docs(known-issues): note custom provider limits
- 69d48829c fix(test): update sisyphus-junior task-allow test to match new fix (#5193)
- cd65b8695 docs(features): document older session lookup
- 00db0265e fix(opencode-qa): preserve HOME-based opencode shims
- 356894a1b Merge pull request #5261 from code-yeongyu/feat/kimi-k2-7-agent-prompts
- ec0d8aaa2 docs(agent-model-matching): explain snapshot-backed chains, recommend 4.8/K2.7 in examples
- 90d0629fd docs(agent-model-matching): add Fable 5 / Opus 4.8 / Kimi K2.7
- bad8b0dd6 refactor(metis): add a from-scratch K2.7-native Metis prompt
- d36454ebe refactor(atlas): rewrite K2.7 prompt as a from-scratch native prompt
- f45386fcd refactor(prometheus): rewrite K2.7 prompt as a from-scratch native prompt
- bef24755f refactor(sisyphus-junior): rewrite K2.7 prompt as a from-scratch native prompt
- de91b834c refactor(sisyphus): rewrite K2.7 prompt as a from-scratch native prompt
- 1fb987918 feat(atlas): Kimi K2.7-native orchestrator variant
- d7098b72d feat(prometheus): Kimi K2.7-native planner variant
- 95e2382d8 feat(sisyphus-junior): Kimi K2.7-native executor prompt
- 94a40c82a feat(sisyphus): Kimi K2.7-native orchestrator prompt
- 80ae81031 feat(model-core): detect Kimi K2.7 distinctly from K2.6
- 9602893a3 chore(gitignore): ignore local agent artifacts
- deb8629be test(codex): add marketplace e2e QA script
- 69de6295b fix(codex): reject Windows bash launchers
- 6a4192d79 test(tmux): split stale attach pane coverage
- ff35ce996 @dongguri-jun has signed the CLA in code-yeongyu/oh-my-openagent#5256
- c35329fce fix(team-mode): preserve force delete cancellation ordering
- ef9601a94 fix(team-mode): treat empty message correlation IDs as omitted
- 3222c8bf5 fix(team-mode): avoid cancelling active tasks on rejected delete
- 86241c2a7 docs(codex): add hook code 1 recovery note
- 2bc8fe2ee docs(agents): add OMO AGENTS template
- 46a09f8b6 docs(config): explain split Claude routing
- 08d4fb98a docs: explain background agent work directories
- f0b5d4f4a fix(sisyphus-junior): wire tool overrides to all delivery paths (#5182, #5193 re-review)
- a4dc397fb fix(sisyphus-junior): apply user tool/permission overrides (#5182, #5193)
- 6d39956a4 fix: skip timeout retries for completed subagents
- 19b6595a6 fix: clear completed background subagent fallback eligibility
- b14cc8f3b docs(install): add bun global trust recovery
- 3b8e3a0c5 docs(install): remove agent-facing promo steps
- 6ca975e58 @tracycam has signed the CLA in code-yeongyu/oh-my-openagent#5207
- 9e0f0dad2 feat(skill): add tech-debt-audit skill with optional CodeGraph integration
- 7363ade41 @seniorquico has signed the CLA in code-yeongyu/oh-my-openagent#5208
- 6b0f7ec70 Merge pull request #5191 from code-yeongyu/fix/inline-tmux-stale-sweep
- 4d7fd08d3 docs(codex): marketplace install path, upgrade re-approval recovery, windows bootstrap story
- 0a4ae6af9 feat(doctor): codex-components check for dists, sg resolution, and bootstrap state
- 704427cf2 feat(codex-cleanup): remove bootstrap state, markers, and provisioned runtime binaries on uninstall
- 81fc1d018 test(codex): cover Windows worker relinks
- 69c6456b4 fix(tmux): trust only loopback attach URLs
- 8523b265f @chenhaipeng has signed the CLA in code-yeongyu/oh-my-openagent#5197
- facb7af44 test(codex): handle Windows bootstrap bin links
- 9be5d99bd Merge remote-tracking branch 'origin/dev' into fix/inline-tmux-stale-sweep
- 14db67f92 feat(codex-bootstrap): version-aware bin relinking with degraded omo-cli ledger
- fb0f32f7a feat(codex-bootstrap): PowerShell 5.1 windows bootstrap with silent node provisioning
- b0c7a7ead feat(codex-bootstrap): provision pinned sg binary into CODEX_HOME runtime with degraded ledger
- 49f97a1b0 test(windows): relax command timeout assertions
- 05de66210 @JSap0914 has signed the CLA in code-yeongyu/oh-my-openagent#5195
- 89c991385 fix(tmux): persist team attach metadata
- e0b79cce6 fix(tmux): restrict stale attach pane sweep
- 340432c2c Merge remote-tracking branch 'origin/dev' into fix/inline-tmux-stale-sweep
- 97d957fab feat(codex-auto-update): skip npx self-update for marketplace-flow installs with guidance notice
- 33aba2103 feat(codex-bootstrap): bundled worker setup for config, agents, hook trust, git-bash env
- 3ea9a14b0 feat(codex-bootstrap): session-start orchestration with detached worker and versioned marker
- 37f00bcc3 feat(codex-bootstrap): install-flow detection, codex-home derivation, dual-lock serialization
- 4a29a714e fix(tmux): sweep attach panes on startup
- d223315d8 fix(tmux): add stale attach pane sweep
- dc8b2e1ee docs: drop session-recovery and auto_resume from hook references
- 136d25403 refactor(omo-opencode): remove session-recovery hook family
- 4329c934b feat(codex-sync): fail marketplace sync when any referenced dist is missing
- 12255add2 feat(codex-bootstrap): checksum-pinned asset downloader with sg and node manifests
- d3ff6ae0e feat(codex-bootstrap): add bootstrap component skeleton with SessionStart command/commandWindows
- 697ab8548 feat(ast-grep-mcp): resolve sg via OMO_AST_GREP_SG_PATH and CODEX_HOME runtime dir
- 8f61bfab3 fix(codex-lsp): keep hook mode silent when diagnostics fail at runtime
- 965f4e0fe fix(lsp-tools-mcp): give initialize a dedicated timeout instead of the request timeout
- a4dba62b1 fix(test): load root test preload for package-dir bun test runs
- eba3ea837 fix(test): build vendored lsp-daemon on demand in test preload
- f2647f146 Merge pull request #4634 from niStee/fix/github-copilot-fallback-models
- f97bbdeb8 Merge pull request #5140 from code-yeongyu/fix/look-at-json-text-4249
- 164e61c58 Merge pull request #5137 from code-yeongyu/fix/agents-md-local-links-4468
- 34a031d4f Merge pull request #5132 from code-yeongyu/fix/sourcekit-extensions-2821
- 8674a7baf Merge pull request #5125 from code-yeongyu/fix/verification-prompts-language-agnostic-5074
- 7e21226d1 test(look-at): cover json text dispatch
- cddd1f4ea fix(look-at): send json files as text parts
- f38156311 fix(docs): de-localize links added on dev and fix root-relative link depth
- 4cc13293f fix(docs): re-run portable-link transform at HEAD and relocate audit
- cd1d540e1 fix(docs): prefer relative file link examples
- 39a617ed4 fix(test): remove user-specific file URL fixtures
- 5b163cd2f fix(test): skip whitespace after the link paren in markdown audit
- 427ec623c fix(test): parse angle-bracket-wrapped link destinations in markdown audit
- b57b59bf4 fix(docs): use portable file links in agent example and test fixtures
- 96a81310e fix(docs): cover new portable markdown links
- 73fb10eeb fix(docs): harden markdown path audit
- 4c937bd2e fix(docs): use portable markdown links
- 0761fb88b style(prompts): convert em dashes to plain hyphens on touched ultrawork line
- 18528db29 fix(prompts): remove language-specific anchors from ultrawork prompts
- 62cfd270c fix(prompts): replace hardcoded tool commands with procedural detection
- 7822ea042 fix(lsp-tools-mcp): bind sourcekit-lsp to real Objective-C extensions
- 35284d10c Merge pull request #5142 from code-yeongyu/fix/team-mailbox-delivering-5101
- 7ea59b5f7 Merge pull request #5141 from code-yeongyu/fix/sync-subagent-reawaken-5112
- e7f820d9a Merge pull request #5139 from code-yeongyu/fix/installer-fallback-warning-5037
- 833e45268 Merge pull request #5138 from code-yeongyu/fix/pendingstore-callid-fallback-4636
- b7efd10c4 Merge pull request #5136 from code-yeongyu/fix/session-inspection-tool-parts-5100
- f81bb083f Merge pull request #5135 from code-yeongyu/fix/codex-service-tier-5020
- 7e031a021 Merge pull request #5134 from code-yeongyu/fix/banner-running-version-4211
- f157edf74 Merge pull request #5133 from code-yeongyu/fix/tmux-pane-close-4773
- 0a394a3a3 Merge pull request #5131 from code-yeongyu/fix/claude-plugin-root-hooks-4458
- ed5885858 Merge pull request #5130 from code-yeongyu/fix/reserved-fallback-retry-5109
- 081e21939 Merge pull request #5129 from code-yeongyu/fix/doctor-tagged-install-version-4413
- e5dfc83e7 Merge pull request #5128 from code-yeongyu/fix/stop-hook-transcript-path-5103
- 11b80fece Merge pull request #5127 from code-yeongyu/fix/team-create-empty-optionals-4699
- 0ba9f3b61 Merge pull request #5126 from code-yeongyu/fix/agent-variant-4125
- e28106243 Merge pull request #5124 from code-yeongyu/fix/run-fallback-latch-3745
- ac113b916 Merge pull request #5123 from code-yeongyu/fix/model-capability-test-globs-3635
- 897371c04 fix(model-core): add copilot haiku fallback providers
- f28c609dc ci(omo-codex): reword lazycodex PR guidance with agent redirect prompt
- f21473623 Merge pull request #5164 from LilMGenius/test/windows-lsp-prebuild-npm-shim
- 1d274aae4 Merge pull request #5180 from gdaegeun539/fix/kotlin-lsp-stdio
- 522df320d ci(omo-codex): auto-close lazycodex PRs with source guidance
- 36e4ecd35 fix(omo-codex): deliver lazycodex bug fixes as issues, never PRs
- c5d7d34cb Merge pull request #3095 from sjawhar/feat/skill-mcp-cdp
- ae27c749d chore(omo-codex): bump component dev deps to match standalone plugin repos
- 3e6811f6c Merge pull request #3094 from sjawhar/feat/look-at-multi-file
- 462d59505 Merge pull request #3983 from sjawhar/fix/session-inspection-end-first
- 632f04d01 fix(omo-codex): enforce prometheus-style gates in ulw-plan skill
- 32faa1ef7 Merge pull request #5181 from acamq/fix/windows-ci-launcher-tests
- 44da8f4f4 fix: use node as fake bun on Windows in launcher working-bun test
- cdbb9f93e fix: cross-platform launcher and POSIX wrapper tests for Windows CI
- 534615148 fix(lsp-tools-mcp): start kotlin-lsp over stdio
- e85895e1e feat(skill-mcp): add CDP endpoint URL support for Playwright MCP
- e9d16ddf4 feat(look-at): add multi-file support for look_at tool
- 6092c8ef1 feat(session-inspection): add from_end opt-in to background_output + session_read so callers can read the most-recent / final assistant message
- 73c22dfe0 test(omo-codex): make lsp prebuild npm fixture Windows-safe
- c9543daff fix(auto-update-checker): tolerate injected deps without getBundledVersion
- b79ced9bd test(claude-code-hooks): assert stop transcript path via retry harness
- 4bcc091ec test(claude-code-hooks): make stop-context test order-independent
- 850415a79 fix(todo-continuation): guard handed-back sync subagents against re-awakening
- 2036d6d3a style(auto-update-checker): replace em dashes with hyphens per repo convention
- 442c171e8 style(tool-metadata-store): replace em dash with hyphen per repo convention
- 4e58e67aa style(tests): replace em dashes with hyphens per repo convention
- b6383cffc test(team-mode): pin idle-ack loss recovery for reserved live deliveries
- 698986c4a fix(team-mode): verify pending live-delivery reached recipient context before acking on idle; requeue unconfirmed messages to inbox instead of silently dropping them
- 9fc9667d0 fix(sync-subagent): abort session on completion to prevent todo-continuation re-awakening
- 3a85f8dfb test(cli): assert TUI Claude hint uses ultimate fallback
- fde031535 fix(cli): align TUI Claude hint with ultimate fallback
- 060a48a63 test(cli): cover installer no-provider warning on CLI and TUI
- 3fbafaeca refactor(cli): keep TUI Claude hint out of #5037 scope
- e5f45f1e8 fix(cli): align installer no-provider warning with ultimate fallback
- 4ba828eb3 fix(tool-metadata-store): recover metadata across diverging session ids
- ccc4fa01a fix(session-inspection): include tool-call (tool_use) parts in full-session output so include_tool_results shows tool arguments, not just results
- 935121d1c fix(tmux): close never-activated panes once the hard timeout elapses
- bd2c5234d test(background-agent): verify onSubagentSessionDeleted callback fires on task completion
- 2c1080840 fix(tmux): close subagent pane when background task completes
- fa16f70e2 test(auto-update-checker): pin getBundledVersion to the root package version
- 27d712362 docs(codex): note service tier preservation
- 4bf7f97c4 fix(codex): preserve agent service tier
- be7aa8632 fix(lazycodex): preserve agent service tier
- 7fb62153e test(codex): cover service tier reinstall preservation
- 8196797de fix(banner): show bundled build-time version instead of cached install (#4211)
- f8ace8e81 test(lazycodex): cover service tier reinstall preservation
- d021128bf fix(plugin-hooks): inject CLAUDE_PLUGIN_ROOT into plugin-sourced hook spawn (#4458)
- fa3711ccb fix(runtime-fallback): preserve ambiguous failures from reserved-retry dispatches
- be5fdb35b fix(doctor): detect plugin installs under OpenCode packages/@ dirs
- 8581d37e5 fix(claude-code-hooks): include transcript path in Stop hook input
- a0c5b5e31 fix(team-mode): treat host-injected empty optionals as absent in team_create
- a52ec07cf fix(runtime-fallback): add explicit type annotation for reservedResult
- b2543cfbd fix(runtime-fallback): retry reserved session with backoff before giving up
- 127d16b92 refactor(omo-opencode): reuse applyAgentVariant helper for chat.params injection
- a334988da fix(cli-run): clear main-session error latch when live status shows recovery
- c37cb8812 fix: inject agent variant from config into chat.params message
- e89029da6 test(model-core): repoint test:model-capabilities globs to relocated suites
Thank you to 18 community contributors:
- @EmiyaKiritsugu3:
- fix: inject agent variant from config into chat.params message
- @wjiuxing:
- fix(runtime-fallback): retry reserved session with backoff before giving up
- fix(runtime-fallback): add explicit type annotation for reservedResult
- @PeterPonyu:
- fix(plugin-hooks): inject CLAUDE_PLUGIN_ROOT into plugin-sourced hook spawn (#4458)
- @Hungdoan565:
- test(lazycodex): cover service tier reinstall preservation
- test(codex): cover service tier reinstall preservation
- fix(lazycodex): preserve agent service tier
- fix(codex): preserve agent service tier
- docs(codex): note service tier preservation
- @YOMXXX:
- fix(banner): show bundled build-time version instead of cached install (#4211)
- @EvangelosMoschou:
- fix(tmux): close subagent pane when background task completes
- test(background-agent): verify onSubagentSessionDeleted callback fires on task completion
- feat(skill): add tech-debt-audit skill with optional CodeGraph integration
- fix(sisyphus-junior): apply user tool/permission overrides (#5182, #5193)
- fix(sisyphus-junior): wire tool overrides to all delivery paths (#5182, #5193 re-review)
- fix(test): update sisyphus-junior task-allow test to match new fix (#5193)
- fix(test): skip archive extraction preflight on Windows (no Python)
- @sjawhar:
- fix(session-inspection): include tool-call (tool_use) parts in full-session output so include_tool_results shows tool arguments, not just results
- fix(team-mode): verify pending live-delivery reached recipient context before acking on idle; requeue unconfirmed messages to inbox instead of silently dropping them
- feat(session-inspection): add from_end opt-in to background_output + session_read so callers can read the most-recent / final assistant message
- feat(look-at): add multi-file support for look_at tool
- feat(skill-mcp): add CDP endpoint URL support for Playwright MCP
- @islee23520:
- fix(cli): align installer no-provider warning with ultimate fallback
- refactor(cli): keep TUI Claude hint out of #5037 scope
- test(cli): cover installer no-provider warning on CLI and TUI
- fix(cli): align TUI Claude hint with ultimate fallback
- test(cli): assert TUI Claude hint uses ultimate fallback
- @Ruifeng-Zhang:
- fix(sync-subagent): abort session on completion to prevent todo-continuation re-awakening
- @LilMGenius:
- test(omo-codex): make lsp prebuild npm fixture Windows-safe
- @gdaegeun539:
- fix(lsp-tools-mcp): start kotlin-lsp over stdio
- @acamq:
- fix: cross-platform launcher and POSIX wrapper tests for Windows CI
- fix: use node as fake bun on Windows in launcher working-bun test
- Merge pull request #5181 from acamq/fix/windows-ci-launcher-tests
- @niStee:
- fix(model-core): add copilot haiku fallback providers
- @LYY:
- fix(prompts): replace hardcoded tool commands with procedural detection
- fix(prompts): remove language-specific anchors from ultrawork prompts
- @ririnto:
- fix(docs): use portable markdown links
- fix(docs): harden markdown path audit
- fix(docs): cover new portable markdown links
- fix(docs): use portable file links in agent example and test fixtures
- fix(test): parse angle-bracket-wrapped link destinations in markdown audit
- fix(test): skip whitespace after the link paren in markdown audit
- fix(test): remove user-specific file URL fixtures
- fix(docs): prefer relative file link examples
- fix: clear completed background subagent fallback eligibility
- fix: skip timeout retries for completed subagents
- @SpencerJung:
- fix(look-at): send json files as text parts
- test(look-at): cover json text dispatch
- @JSap0914:
- docs(install): remove agent-facing promo steps
- docs(install): add bun global trust recovery
- docs: explain background agent work directories
- docs(config): explain split Claude routing
- docs(agents): add OMO AGENTS template
- docs(codex): add hook code 1 recovery note
- docs(features): document older session lookup
- docs(known-issues): note custom provider limits
- docs(install): add Bedrock provider guidance
- docs(known-issues): note team quiescence workaround
- @dongguri-jun:
- fix(team-mode): avoid cancelling active tasks on rejected delete
- fix(team-mode): treat empty message correlation IDs as omitted
- fix(team-mode): preserve force delete cancellation ordering
- fix(opencode-qa): preserve HOME-based opencode shims
Breaking Changes
- Removed legacy session-recovery hook family from omo-opencode.
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
Related context
Related tools
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]