github code-yeongyu/oh-my-openagent v3.16.0

13 hours ago

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

  • c5b6d59 Merge pull request #3227 from code-yeongyu/fix/installer-and-auto-update
  • d781b75 Merge pull request #3226 from code-yeongyu/fix/plan-progress-and-trust
  • bdf6e41 Merge pull request #3225 from code-yeongyu/fix/agent-name-safety
  • c37e440 Merge pull request #3224 from code-yeongyu/fix/oauth-wiring
  • e1cbbed Merge pull request #3223 from code-yeongyu/fix/core-runtime-bugs
  • 5abab08 test(tmux): add missing tmux exports to zombie-pane mock module
  • 7f8ed7b test(tmux): add missing tmux exports to zombie-pane mock module
  • 600d68d test(tmux): add missing tmux exports to zombie-pane mock module
  • d53be83 test(tmux): add missing tmux exports to zombie-pane mock module
  • 4c0225a test(tmux): add missing tmux exports to zombie-pane mock module
  • 2f4bd48 fix(ci): isolate mock.module tests per-file to prevent cross-contamination
  • 9fb7cfb fix(ci): isolate mock.module tests per-file to prevent cross-contamination
  • 28b9f77 fix(ci): isolate mock.module tests per-file to prevent cross-contamination
  • dc1546c fix(ci): isolate mock.module tests per-file to prevent cross-contamination
  • 70955b2 fix(ci): isolate mock.module tests per-file to prevent cross-contamination
  • 85fa939 test(skill-mcp): fix connection env var tests after oauth-handler import changes
  • 119c233 test(background): fix variant propagation test to match parent-context resolution
  • 6d8d82d fix(installer): enforce minimum OpenCode version check during install
  • 389b194 fix(installer): actually upgrade pinned plugin version instead of preserving old entry
  • bbbbf68 fix(ralph-loop): update template to reflect 500 iteration cap
  • 0cb938e fix(boulder): count only top-level checkboxes in simple-mode plan progress
  • aa0de17 fix(start-work): preserve non-ASCII characters in plan name normalization
  • 001d29e fix(skill-mcp): treat opencode-project and local scopes as untrusted for env var access
  • 15e3b14 fix(auto-update): match both canonical and legacy plugin names in entry finder
  • 359f741 fix(delegate-task): strip ZWSP from agent names on background launch path
  • 917ae4d fix(keyword-detector): narrow ULW auto-start to leading keyword position only
  • 0479693 fix(oauth): wire post-request 401/403 handler into skill-mcp withOperationRetry
  • 63ba16b fix(oauth): wire refresh mutex into provider.refresh() for concurrent deduplication
  • 80c74c8 fix(background): prevent double-decrement of descendant quota in processKey error cleanup
  • 1cf4119 fix(background): use parent session variant in notifyParentSession instead of child task variant
  • ed16dc0 fix(chat-params): complete maxOutputTokens migration in session prompt params
  • 06b825d fix(start-work): reuse registered opencode agent names
  • 2462964 fix(start-work): use canonical display name for command routing
  • 8925ec3 fix(start-work): align command routing with exported agent keys
  • 4394129 fix(compaction): harden continuation directive markers
  • cd95172 fix(start-work): keep native command agents on config keys
  • aa1a18c Merge pull request #3218 from code-yeongyu/fix/3216-plugin-scope-filter
  • b285672 fix(plugin-loader): filter project-scoped plugins by cwd
  • c2816e7 @dhruvkej9 has signed the CLA in #3217
  • d22c3f2 test(plugin-interface): fix Atlas display name expectation
  • 2c6a161 test(runtime-fallback): fix OpenAI auto-retry test expectations
  • 902b2f9 test(ci): update workflow test to match actual CI command
  • 4d9652c test(start-work): update display name expectations for ZWSP fix
  • 94449e0 test(delegate-task): update isPlanAgent test for exact match fix
  • 1a04a6e test(ralph-loop): update iteration cap expectation to 500
  • ab0e1e3 fix(oauth): refresh-once handler for 401/403 responses
  • 7ba41d3 fix(oauth): atomic storage writes for token safety
  • 7be285e feat(oauth): add per-server refresh mutex
  • cdd6e88 fix(installer): add upgrade path safety checks
  • 01f7d5e feat(installer): export version compatibility and backup utilities
  • 2f86a17 feat(installer): add config backup utility for safe upgrades
  • 7022a7e feat(installer): add version compatibility checking utilities
  • a09b905 fix(installer): add installedVersion to DetectedConfig type
  • d490b4d fix(ralph-loop): harden Oracle VERIFIED detection
  • 0bf5dc2 fix(token-limit): normalize detection across providers
  • c3fe0ae fix(background): propagate variant in parent notifications
  • 14f4390 fix(ultrawork): add iteration cap to prevent infinite loops
  • 8090ee6 fix(compaction): persist recovery cap across cycles
  • f2fac9b test(runtime-fallback): update tests for quota STOP classification
  • 8169dbe docs: update for v3.16.0 release
  • b7d9521 feat(installer): add opencode v1.4.0 minimum version check
  • 35f778d test(skill-mcp): add scope field to test fixtures
  • fa140b0 fix(skill-loader): propagate scope to MCP connections
  • 5e0bd87 test(runtime-fallback): add provider matrix quota tests
  • 05efb20 feat(skill-mcp): add scope field to connection types
  • b81fdef fix(skill-mcp): redact sensitive data from connection errors
  • 7751402 fix(runtime-fallback): classify quota exhaustion as STOP not retryable
  • a419857 fix(delegate-task): use exact match for isPlanFamily to allow Metis/Momus
  • 78e6d78 fix(plugin): verify event hook compatibility with v1.4.0
  • e52dd34 fix(plugin): migrate chat.params to maxOutputTokens for v1.4.0
  • e8d83b5 fix(zwsp): strip zero-width chars in delegate-task tools
  • 317e2c6 fix(zwsp): strip zero-width chars in start-work-hook
  • 3724093 fix(zwsp): strip zero-width chars from agent headers in command-config-handler
  • 130e67a fix(zwsp): strip zero-width chars in boulder-continuation-injector
  • 5188df9 fix(types): revert task-tool type inference workarounds
  • 18771c8 fix(schema): restore z.toJSONSchema native v4 API
  • f4eabf9 chore(deps): upgrade @opencode-ai/{plugin,sdk} to 1.4.0 and restore zod v4
  • 9a9b5be @teneburu has signed the CLA in #3203
  • 8f129eb fix(test): update plugin tests to use getAgentListDisplayName for agent assertions
  • 0452343 fix(start-work): use getAgentListDisplayName for Atlas agent selection
  • 557c2db feat(start-work): add plan name normalization and quote stripping
  • 83a80e2 fix(ci): add skipLibCheck to script tsconfig to avoid bun-types/@types/node conflicts
  • a00fe13 fix(test): update normalizeAgentForPrompt expectations to dash format
  • dcecf04 Merge pull request #3189 from code-yeongyu/fix/issue-3146
  • 6eb527c fix: remove ZWSP from agent display names (#3146)
  • b269f11 Merge pull request #3181 from code-yeongyu/fix/issue-3144
  • 2f19cd2 Merge pull request #3178 from code-yeongyu/fix/issue-3164
  • b77c256 fix(jsonc): strip BOM before parsing (#3164)
  • bb1bad8 fix(cli): include fallback_models when writing agent model config (#3144)
  • e8c8376 fix(boulder): support both structured and simple plan formats in getPlanProgress
  • cf04f51 Merge pull request #3185 from code-yeongyu/fix/issue-2462
  • 62cc74b Merge pull request #3187 from code-yeongyu/fix/issue-2687
  • 4e6e761 Merge pull request #3186 from code-yeongyu/fix/issue-2689
  • 505c7ef Merge pull request #3184 from code-yeongyu/fix/issue-3163
  • aade99e Merge pull request #3183 from code-yeongyu/fix/issue-2932
  • d64cd66 Merge pull request #3182 from code-yeongyu/fix/issue-2964
  • 2465205 fix: propagate project skills to background task sessions (#2687)
  • fc009ca fix: register custom user agents in delegate-task resolver (#2689)
  • a9c7398 fix: detect token-limit errors in todo-continuation to prevent infinite loop (#2462)
  • ee8410c fix: allow variant override even with agent model config (#3163)
  • 5622d15 fix: prevent background agent race condition in session prompt (#2932)
  • b2e7ddf fix: inject agent identity into system prompt for built-in agents (#2964)
  • be56290 Merge pull request #3179 from code-yeongyu/fix/issue-3066
  • b4b9aea Merge pull request #3177 from code-yeongyu/fix/issue-3168
  • 062b8cd Merge pull request #3169 from code-yeongyu/fix/sisyphus-junior-model
  • 6ebe1bf Merge pull request #3176 from code-yeongyu/fix/issue-3113
  • 5b53f6f Merge pull request #3175 from code-yeongyu/fix/issue-3129
  • 5db6bfd Merge pull request #3174 from code-yeongyu/fix/issue-3033
  • b4baec7 Merge pull request #3173 from code-yeongyu/fix/issue-3081
  • 0ab2370 fix(start-work): add CHECKED_CHECKBOX_PATTERN for plan progress tracking (#3066)
  • 73d407f fix(mcp): bypass env var allowlist for trusted skill MCP configs (#3168)
  • 717c976 fix(keyword-detector): start ralph-loop when ulw keyword detected (#3113)
  • eb8d719 fix(auto-update): align PACKAGE_NAME with published package name (#3129)
  • b1c536d fix(look-at): make multimodal-looker prompt conditional on Read availability (#3033)
  • aa528e4 fix: propagate variant field in all promptAsync continuation paths (#3081)
  • bf2c104 Merge pull request #3172 from code-yeongyu/fix/bom-strip-jsonc
  • daae6ed fix(jsonc-parser): strip UTF-8 BOM before parsing to fix Windows "InvalidSymbol at offset 0" errors
  • 889294a fix(model-fallback): respect user model override for sisyphus-junior category sessions (#2941)
  • 12106ff Merge pull request #3167 from code-yeongyu/fix/agent-header-validation
  • f8c6260 fix(agent-names): use HTTP-header-safe display names and config keys for API calls (#3138)
  • ebfd4a4 Merge pull request #3166 from code-yeongyu/fix/delegate-description-optional
  • bd37e66 fix(delegate-task): make description optional with auto-generation from prompt (#3162)
  • 10eb8b9 @Melivo has signed the CLA in #3160
  • 3e8fd5f fix(start-work): always hand off to atlas regardless of current session agent (#3155)
  • 23180c6 fix(schema): use zodToJsonSchema instead of z.toJSONSchema for zod v3 compat
  • b7c8a00 fix(tests): isolate atlas background launch client setup
  • 1928097 fix(tests): stabilize prometheus md-only state
  • 41af547 fix(schema): use Zod native JSON schema output
  • 0340993 fix(tests): inject plugin loader dependencies
  • 320dc02 fix(tests): inject create-managers dependencies
  • 0de7453 fix(tests): fix globalThis.fetch pollution between test files
  • e62d5d7 fix(agents): strip ZWSP ordering prefixes in session state, config lookups, and override protection
  • 178b635 feat(agents): add ZWSP stable-sort prefixes for core agent list ordering
  • 88280d0 fix(agents): keep prometheus and atlas in canonical core order
  • 0c1202e fix(tests): resolve CI test isolation failures in OAuth refresh and ralph-loop
  • 61083d4 fix(oauth+errors): OAuth silent refresh, quota STOP patterns, compaction loop cap
  • 6c4e0b6 fix(agents): enforce Sisyphus->Hephaestus->Prometheus->Atlas assembly order
  • 56f2a9d fix(ralph-loop): detect oracle VERIFIED tool results in session messages
  • 137c245 fix(prompt): prevent immediate BackgroundOutput polling after background task launch
  • 5ad011d fix(compaction): cap recovery attempts to prevent infinite compaction loop (#3127)
  • f69234a fix(error-classifier): quota/billing errors are non-retryable STOP (fixes #3126)
  • 9438c89 Merge pull request #3148 from MoerAI/fix/remove-installer-subscription-upsell
  • bd723b5 fix(tests): repair test regressions from zod v3 downgrade
  • 4659f14 fix(tests): update model-fallback snapshots after installer fallback chain fix
  • 213cee2 fix(types): resolve zod v3 type inference differences in task tools
  • 2052694 fix(deps): downgrade zod to v3 for opencode compatibility (#3151)
  • 22d0895 Merge pull request #3136 from andrescera/fix/atlas-zwsp-header-leak
  • f69bb45 fix(cli): dedupe generated installer fallback models
  • 57b1529 fix(cli): preserve installer fallback chains in generated config (#3144)
  • 2f10ff4 fix(cli): replace subscription upsell with informational note (fixes #3069)
  • b482e6c fix: remove ZWSP sort prefix from Atlas agent name

Thank you to 2 community contributors:

  • @andrescera:
    • fix: remove ZWSP sort prefix from Atlas agent name
  • @MoerAI:
    • fix(cli): replace subscription upsell with informational note (fixes #3069)

Don't miss a new oh-my-openagent release

NewReleases is sending notifications on new releases.