Download Latest Version v4.5.0 source code.tar.gz (31.5 MB)
Email in envelope

Get an email when there's a new version of OhMyOpenCode

Home / v4.5.0
Name Modified Size InfoDownloads / Week
Parent folder
README.md < 12 hours ago 13.2 kB
v4.5.0 source code.tar.gz < 12 hours ago 31.5 MB
v4.5.0 source code.zip < 12 hours ago 33.0 MB
Totals: 3 Items   64.5 MB 0

v4.5.0 β€” Publish Safety & Internal Refactor

This release hardens runtime safety (fallback loops, parent-wake stalls, publish payload) and lands the long-running prompts-core refactor that splits every agent/mode prompt into versioned markdown.

πŸ›‘οΈ Publish Safety Hardening

Three guard rails that close production-impact pre-publish gaps:

  • runtime-fallback no longer trusts isRetryable: true on 4xx errors. If a provider mis-tagged a 401/403/404 as retryable, every configured fallback model would burn in an infinite loop. The signal is now gated to absent status codes, 5xx, the configured retry_on_errors list, and {408, 425, 429}.
  • parent-wake escapes a second stuck state. When the assistant's text stream died mid-message with no pending tool call, parent-wake deferred forever and background-agent completions never reached the parent. A bounded escape path now dispatches after toolCallDeferMaxMs.
  • npm payload blocks internal-only assets. Nested .npmignore per published dot-directory + a new script/package-layout-exclusion.test.ts permanent guard. Drop a __draft-foo/SKILL.md into .opencode/skills/ and CI fails before it ships to npm.

πŸ” Ralph-Loop Liveness

Three independent stuck-state escapes for ralph-loop:

  • Oracle dispatch wait is now time-bounded (30-minute hard ceiling); previously a crashed/OOM-killed oracle session would freeze the loop forever.
  • Loop auto-stops when the latest assistant turn made zero model progress (both token counts at zero AND no assistant content).
  • The double-fire race fix no longer ignores in-flight oracle dispatches that never complete.

πŸ“ž Background-Agent Delivery

Four fixes converge on one outcome β€” completion alerts get through:

  • Debounced active parent wake flushes (no more thundering herd on burst completion).
  • Completion wakes deliver during active parent turns instead of being silently dropped.
  • Dispatched parent wake failures are isolated so one failure does not cascade.
  • Atlas subagents retry on provider usage-limit errors (no more dead-end runs).

πŸ‘₯ Team-Mode UX

  • Leaders now wake on unread mailbox messages (#4464). Idle leads no longer sleep through worker pings.
  • Model overrides preserved across team-mode boundaries.
  • Lead closes teams on its own initiative β€” no more lingering teams burning session / mailbox / member-turn budget.

🧠 Prompts-Core Migration (50+ commits, zero user-facing API change)

Every agent and mode prompt now lives in versioned markdown under packages/prompts-core/:

  • Atlas: 5 variants (default / GPT / Gemini / Kimi / Opus-4.7)
  • Prometheus: full prompt + variant table
  • Ultrawork: 4 variants (default / GPT / Gemini / planner)
  • Mode prompts: search / analyze / team / hyperplan

Companion dist-bundle test scans the built bundle for unique prompt signatures; a future Bun upgrade that silently regresses markdown inlining will fail CI loudly instead of breaking installs at first agent load.

πŸ”§ Continuation + Validators

  • fix(continuation): resolves registered agent names before dispatching prompts (#4417) β€” fixes the empty-string bug when display names like "Atlas - Plan Executor" were used.
  • fix(prompt-async-gate): retry object-form path on runtime type errors (#4417).
  • fix(thinking-block-validator): avoid duplicate thinking prepends (#4374) β€” kills the dual-thinking-streams race.

🩺 Doctor + Help JSON Schemas

oh-my-opencode doctor, sandbox, status, and acp now expose JSON schemas for their help output β€” enables shell completion, structured CLI introspection, and --help consistency.

πŸ—οΈ Internal Package Layering

Workspace split into 9 published packages: utils / model-core / prompts-core / rules-engine / agents-md-core / ast-grep-core / comment-checker-core / hashline-core / boulder-state. Internal cleanup β€” no breaking changes to the plugin API.

🌐 Web

  • Marketing site canonical domain migrated to omo.dev.
  • README translations refreshed for ja / ko / ru / zh-cn.

πŸ™ Reviewer Note

This release was gated by a publish-debate-vortex hyperultradebate β€” 6 hostile category-member agents (quick / unspecified-low / unspecified-high / deep / ultrabrain / artistry) cross-attacked the 103-commit changeset across 3 rounds. The 3 must-fix blockers it identified β€” runtime-fallback boolean guard, parent-wake stuck escape, npm payload exclusion β€” all landed in this release.


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-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

  • 52ba1257 Merge branch 'fix/pre-publish-blockers-v4.5.0'
  • 8e28e29c fix(package): block internal-only assets from publish payload
  • 5c0cc0de @Hungdoan565 has signed the CLA in code-yeongyu/oh-my-openagent#4492
  • ec552bcf fix(ralph-loop): stop loop when latest assistant turn made no model progress
  • 9810bad3 docs(publish-skill): pin Jobdori bot ID in Discord release commands
  • 91aa9154 @fcmfcm01 has signed the CLA in code-yeongyu/oh-my-openagent#4482
  • be2ed2b2 Merge pull request [#4479] from code-yeongyu/fix-4470-momus-cancels-main
  • 3b421c6e fix(background-agent): isolate dispatched parent wake failures
  • b03e08b4 Merge pull request [#4478] from code-yeongyu/fix-4164-bg-reminder-timing
  • e1fde719 Merge pull request [#4477] from code-yeongyu/fix-4374-dual-thinking-streams
  • ec7ce51e fix(background-agent): debounce active parent wake flushes
  • 6a561446 fix(background-agent): deliver completion wakes during active parent turns
  • e443e86d fix(thinking-block-validator): avoid duplicate thinking prepends
  • 037d017a Merge pull request [#4476] from code-yeongyu/fix-4464-team-leader-wake
  • 3e099108 @2wndrhs has signed the CLA in code-yeongyu/oh-my-openagent#4475
  • 58025f9b fix(team-mode): wake leaders on unread mailbox messages (#4464)
  • 759b5668 Merge pull request [#4474] from code-yeongyu/fix-4441-omo-evidence-ignore
  • 3e115948 chore(repo): untrack .omo/evidence and .omo/notepads per .gitignore
  • dc050745 @hanakokoizumi has signed the CLA in code-yeongyu/oh-my-openagent#4467
  • 939f2b8b @SoShymKing has signed the CLA in code-yeongyu/oh-my-openagent#4469
  • 03eb9fff Merge pull request [#4465] from code-yeongyu/fix-4417-atlas-path-and-start-work
  • 28efc4e8 fix(continuation): resolve registered agent name before dispatching prompt (#4417)
  • a5cee769 fix(prompt-async-gate): retry object-form path on runtime type error (#4417)
  • c25c3383 Merge pull request [#4454] from code-yeongyu/fix-4448-npm-pack-dot-dirs
  • 94d9d932 Merge pull request [#4453] from code-yeongyu/fix-4419-atlas-subagent-fallback
  • 0d0be435 Merge pull request [#4452] from code-yeongyu/fix-4449-tool-execute-after-stall
  • 9c56bf22 test(script): typecheck package layout regression
  • 72119b3a fix(package): ship dot-directory command assets
  • f57532cb fix(tool-execute-after): narrow metadata warning tools
  • dc845a88 chore(web): migrate canonical domain to omo.dev
  • 6551f389 fix(background-agent): retry Atlas subagents on usage limits
  • 767f5a61 fix(model-core): retry OpenAI usage_limit_reached fallbacks
  • 6343feb6 Merge pull request [#4450] from code-yeongyu/fix-4447-subagent-task-deny
  • 4a68db02 fix(tool-execute-after): gate metadata recovery warnings
  • 75d1ff4c fix(plugin-handlers): deny task for read-only subagents
  • 9be97de6 Merge pull request [#4435] from code-yeongyu/fix/issue-4429-team-mode-model-override
  • 9fd52cb6 feat(help): [#689] acp help JSON schema
  • eed88e41 feat(help): [#689] acp help JSON schema
  • bab9caa6 feat(help): [#688] sandbox help JSON schema
  • 1fdb88a3 feat(help): [#688] sandbox help JSON schema
  • 2c6c42f8 feat(help): [#687] status help JSON schema
  • 36e394a5 feat(help): [#687] status help JSON schema
  • a73e4db1 feat(help): [#686] doctor help JSON schema
  • 21713dcd fix(agents): preserve model overrides with team mode
  • 776da68e feat(help): [#686] doctor help JSON schema
  • ce4b11b0 fix(cli): add explicit helpOption configuration for consistent help-flag ordering
  • 3e0a975d test(dist-bundle): assert inlined prompt content survives bundling
  • 14b3523a fix(ralph-loop): time-bound oracle dispatch wait to prevent stall
  • 69c955f6 fix(parent-wake): bound assistant-text defer to escape stuck sessions
  • f05e0cbe fix(runtime-fallback): gate retryable signal on status-code allowlist
  • 222adeb6 fix(runtime-fallback): honor retryable signal
  • de7f1d88 Merge pull request [#4400] from code-yeongyu/refactor/prompts-core-oracle-cleanup
  • 8f09c02c docs: scrub remaining references to migrated files
  • d18cadb1 test(ultrawork): add byte-exact characterization test
  • e0b37b46 test(prometheus): add byte-exact characterization test
  • 9d204250 docs(keyword-detector): rewrite AGENTS.md for prompts-core migration
  • 87e28d26 docs(prometheus): rewrite AGENTS.md for thin-loader structure
  • 640d7f7b Merge pull request [#4396] from code-yeongyu/fix/session-scoped-internal-wake
  • 3d0b4c4a fix(parent-wake): block unfinished assistant wakes
  • 2ea7c492 Merge pull request [#4390] from code-yeongyu/refactor/prometheus-to-prompts-core
  • 1f32b885 refactor(prometheus): remove migrated section TypeScript files
  • 8fc429a5 refactor(prometheus): load prompt variants from prompts-core
  • 3806d93d feat(prompts-core): wire Prometheus variant table
  • fa0500e9 feat(prompts-core): add Prometheus prompt markdown variants
  • 4749eab2 Merge pull request [#4389] from code-yeongyu/refactor/mode-prompts-to-prompts-core
  • 803f030b Merge remote-tracking branch 'origin/dev' into refactor/mode-prompts-to-prompts-core
  • 528f083f Merge pull request [#4388] from code-yeongyu/refactor/atlas-to-prompts-core
  • 63ef72d1 docs(agents): document prompts-core mode prompts
  • 80361c05 chore(prompts-core): wire markdown prompt packaging
  • 2c8e2dac refactor(mode-prompts): migrate hyperplan prompt
  • e79baf59 refactor(mode-prompts): migrate team prompt
  • 3b7f51d5 refactor(mode-prompts): migrate analyze prompt
  • 5cefbdbb refactor(mode-prompts): migrate search prompt
  • c187dba5 test(keyword-detector): capture mode prompt baselines
  • 8451ecd1 docs(atlas): document prompts-core prompt ownership
  • 582c768b refactor(atlas): remove migrated TypeScript prompts
  • 4975c354 refactor(atlas): load prompt variants from prompts-core
  • 96a93650 build(prompts-core): bundle markdown prompt variants
  • 91351d73 feat(prompts-core): support bundled prompt sources
  • b77fed28 feat(prompts-core): add Atlas Opus 4.7 prompt markdown
  • 2adcec8f feat(prompts-core): add Atlas Kimi prompt markdown
  • d5995b38 feat(prompts-core): add Atlas Gemini prompt markdown
  • 19237611 feat(prompts-core): add Atlas GPT prompt markdown
  • 565d0994 feat(prompts-core): add Atlas default prompt markdown
  • a92e25a1 test(atlas): add prompt byte preservation baselines
  • 66445241 Merge pull request [#4386] from code-yeongyu/refactor/ultrawork-to-prompts-core
  • 79beeeee docs: document ultrawork prompt markdown location
  • d217efc1 build(prompts): inline markdown prompt imports
  • e772c468 refactor(ultrawork): move planner prompt to prompts-core
  • e51acd0a refactor(ultrawork): move gemini prompt to prompts-core
  • a818bbd9 refactor(ultrawork): move gpt prompt to prompts-core
  • 9c366cce refactor(ultrawork): move default prompt to prompts-core
  • 39b3cbcb chore(ultrawork): capture prompt baseline hashes
  • 46ad6bfd Merge pull request [#4385] from code-yeongyu/refactor/prompts-core-foundation
  • 436c6187 fix(prompts-core): block prompt path traversal
  • 74d5f701 chore(prompts-core): wire package typecheck
  • da0fa83f test(prompts-core): audit opencode coupling
  • c44a6bdb feat(prompts-core): add prompt loader
  • 6301bcf0 feat(prompts-core): add variant resolver
  • 4338ddb8 feat(prompts-core): add package skeleton
  • 87de0563 refactor(model-core): move model family detectors
  • e1e9f348 Merge pull request [#4382] from code-yeongyu/feat/ultrawork-prompt-tdd-evidence-tightening
  • d073bf1b feat(ultrawork): enforce TDD, scenario contract, durable notepad, reviewer gate
  • 39a549a3 Merge pull request [#4381] from code-yeongyu/fix/team-mode-closure-prompts
  • 5f1fb0c5 fix(team-mode): make lead close teams on its own initiative
  • a4dcbb6b docs(publish): use Jobdori bot for releases
  • 1473f93f Merge pull request [#4380] from code-yeongyu/fix/ralph-loop-oracle-double-fire-race
  • 9a1dd756 fix(ralph-loop): skip handleFailedVerification when oracle dispatch is in flight (#4256)
  • 3523dab0 @niStee has signed the CLA in code-yeongyu/oh-my-openagent#4378
Source: README.md, updated 2026-05-26