Skip to content

Releases: code-yeongyu/oh-my-openagent

v3.14.0

26 Mar 16:04

Choose a tag to compare

  • 1c9f414 fix(publish-ci): sync mock-heavy test isolation with ci.yml
  • 8dd0191 fix(ci): isolate mock-heavy shared tests to prevent cross-file contamination
  • 9daaeed fix(test): restore shared Bun mocks after suite cleanup
  • 3e13a4c fix(session-recovery): filter invalid prt_* part IDs from tool_use_id reconstruction
  • 8e65d6c fix(test): make legacy-plugin-warning tests isolation-safe
  • f419a3a fix(test): use Bun.spawnSync in command discovery test to avoid execFileSync mock leakage
  • 1c54fda feat(compat): package rename compatibility layer for oh-my-opencode → oh-my-openagent
  • d39891f docs: update hephaestus default model references from gpt-5.3-codex to gpt-5.4
  • d57ed97 feat(hephaestus): upgrade default model from gpt-5.3-codex to gpt-5.4
  • 6a510c0 @kuitos has signed the CLA in #2833
  • b34eab3 fix(test): isolate model-capabilities from local provider cache
  • 4efc181 fix(ci): resolve all test failures + complete rename compat layer
  • e86edca feat(doctor): warn on legacy package name + add example configs
  • a8ec927 fix(model-resolution): honor user config overrides on cold cache
  • dd85d14 fix(model-requirements): align fallback models with available provider catalogs
  • 682eead Merge pull request #2845 from code-yeongyu/fix/path-discovery-parity-followup
  • 42f5386 fix(tests): drop duplicate tilde config regression
  • 5bc019e fix(skills): remove duplicate homedir import
  • 097e2be fix(slashcommand): discover nested opencode commands with slash names
  • c637d77 fix(commands): discover ancestor opencode project commands
  • 4c8aace fix(agents): include .agents skills in agent awareness
  • 8413bc6 fix(skills): expand tilde config source paths
  • 86a62ae fix(skills): discover ancestor project skill directories
  • 961cc78 fix(shared): support opencode directory aliases
  • 19838b7 fix(shared): add bounded project discovery helpers
  • 9d4a8f2 Merge pull request #2844 from code-yeongyu/fix/opencode-followup-gaps
  • 7f74272 fix(slashcommand): use slash separator for nested commands
  • b20a34b fix(slashcommand): discover nested opencode commands
  • 12a4318 fix(commands): load .agents skills into command config
  • e4a5973 fix(agents): include .agents skills in agent awareness
  • 83819a1 fix(shared): stop ancestor discovery at worktree root
  • a391f44 Merge pull request #2842 from code-yeongyu/fix/opencode-skill-override-gaps
  • 94b4a4f fix(slashcommand): deduplicate opencode command aliases
  • 9fde370 fix(commands): preserve nearest opencode command precedence
  • b6ee7f0 fix(slashcommand): discover ancestor opencode commands
  • 28bcab0 fix(commands): load opencode command dirs from aliases
  • b5cb50b fix(skills): discover ancestor project skill directories
  • 8242500 fix(skills): expand tilde config source paths
  • 6d688ac fix(shared): support opencode directory aliases
  • da3e804 fix(shared): add ancestor project discovery helpers
  • 23df6bd Merge pull request #2841 from code-yeongyu/fix/model-fallback-test-isolation
  • 7895361 fix(tests): resolve 5 cross-file test isolation failures
  • 90919bf Merge pull request #2664 from kilhyeonjun/fix/anthropic-1m-ga-context-limit
  • 32f2c68 Merge pull request #2707 from MoerAI/fix/windows-symlink-config
  • e6d0484 Merge pull request #2710 from MoerAI/fix/rate-limit-hang
  • abd6247 Merge pull request #2752 from MoerAI/fix/quota-error-fallback-detection
  • b1e0991 Merge pull request #2756 from MoerAI/fix/plugin-display-name
  • 09fb364 Merge pull request #2833 from kuitos/feat/agent-order-support
  • d1ff8b1 Merge pull request #2727 from octo-patch/feature/upgrade-minimax-m2.7
  • 6e42b55 Merge origin/dev into feature/upgrade-minimax-m2.7 (resolve conflicts)
  • 02ab83f Merge pull request #2834 from RaviTharuma/feat/model-capabilities-canonical-guardrails
  • ce1bffb @ventsislav-georgiev has signed the CLA in #2840
  • 4d4680b @clansty has signed the CLA in #2839
  • ce877ec test(atlas): avoid shared barrel mock pollution
  • ec20a82 fix(model-capabilities): align gemini aliases and alias lookup
  • 5043cc2 fix(model-capabilities): harden canonical alias guardrails
  • 8df3a28 @anas-asghar4831 has signed the CLA in #2837
  • 087e33d Merge pull request #2832 from RaviTharuma/fix/todo-sync-priority-default
  • 46c6e1d test(todo-sync): match required priority fallback
  • 5befb60 feat(agent-priority): inject order field for deterministic agent Tab cycling
  • 55df217 fix(todo-sync): preserve missing task priority
  • 76420b3 Merge pull request #2829 from RaviTharuma/fix/model-capabilities-review-followup
  • a15f607 feat(model-capabilities): add maintenance guardrails
  • 7c0289d fix(model-capabilities): honor root thinking flags
  • 5e9231e Merge pull request #2828 from code-yeongyu/fix/content-based-thinking-gating-v2
  • f04cc0f fix(thinking-block-validator): replace model-name gating with content-based history detection
  • 613ef8e fix(model-capabilities): harden runtime capability handling
  • 99b3980 Merge pull request #2826 from RaviTharuma/feat/model-capabilities-models-dev
  • 2af9324 feat: add models.dev-backed model capabilities
  • 7a52639 Merge pull request #2673 from sanoyphilippe/fix/oauth-discovery-root-fallback
  • 5df54bc Merge pull request #2725 from cphoward/fix/spawn-budget-lifetime-semantics-clean
  • cd04e6a Merge pull request #2751 from sjawhar/fix/atlas-subagent-agent-guard
  • e974b15 Merge pull request #2701 from tonymfer/fix/lsp-initialization-options
  • 6f213a0 Merge pull request #2686 from sjawhar/fix/look-at-respect-configured-model
  • 71004e8 Merge pull request #2583 from Jrakru/fix/start-work-atlas-handoff
  • 5898d36 Merge pull request #2575 from apple-ouyang/fix/issue-2571-subagent-safeguards
  • 90aa3e4 Merge pull request #2589 from MoerAI/fix/plan-agent-continuation-loop
  • 2268ba4 Merge pull request #2262 from Stranmor/feat/prompt-file-uri-support
  • aca9342 Merge pull request #2345 from DarkFunct/fix/todo-sync-priority-null
  • a3519c3 Merge pull request #2544 from djdembeck/fix/quick-anti-loop-v2
  • e610d88 Merge pull request #2594 from MoerAI/fix/subagent-fallback-model-v2
  • ed09bf5 Merge pull request #2674 from RaviTharuma/fix/dedup-delegated-model-config
  • 1d48518 Merge pull request #2643 from RaviTharuma/feat/model-settings-compatibility-resolver
  • d6d4cec Merge pull request #2622 from RaviTharuma/feat/object-style-fallback-models
  • 9d93065 test(restack): drop stale compatibility expectations
  • f86b8b3 fix(review): align model compatibility and prompt param helpers
  • 1f5d770 refactor(delegate-task): deduplicate DelegatedModelConfig + registry refactor
  • 1e70f64 chore(schema): refresh generated fallback model schema
  • d4f962b feat(model-settings-compat): add variant/reasoningEffort compatibility resolver
  • fb08553 test(background-agent): restore spawner createTask import
  • e5c5438 fix(delegate-task): gate fallback settings to real fallback matches
  • a77a16c feat(config): support object-style fallback_models with per-model settings
  • 7761e48 Merge pull request #2592 from MoerAI/fix/gemini-quota-fallback
  • d7a1945 fix(plugin-loader): preserve scoped npm package names in plugin key parsing
  • 44fb114 fix(runtime-fallback): rename misleading test to match actual behavior
  • bf804b0 fix(shared): restrict cached Anthropic 1M context to GA 4.6 models only
  • c4aa380 Merge pull request #2734 from ndaemy/fix/remove-duplicate-ultrawork-separator
  • 993bd51 Merge pull request #2524 from Gujiassh/fix/session-todo-filename-match
  • 7327439 Merge pull request #2533 from Gujiassh/fix/background-task-metadata-id
  • bff5734 Merge pull request #2443 from tc9011/fix/github-copilot-model-version
  • f16d55a fix: add errorName-based quota detection and strengthen test coverage
  • 3c49bf3 Merge branch 'code-yeongyu:dev' into fix/oauth-discovery-root-fallback
  • 29a7bc2 fix(plugin): display friendly name in configuration UI instead of file path (fixes #2644)
  • 62d2704 fix(runtime-fallback): detect prettified quota errors without HTTP status codes (fixes #2747)
  • db32bad fix(look-at): respect configured multimodal-looker model instead of overriding via dynamic fallback
  • 5777bf9 fix(atlas): restore agent mismatch guard for subagent boulder continuation (#18681)
  • 07ea8de fix(keyword-detector): remove duplicate separator from ultrawork templates
  • 0d52519 feat: upgrade MiniMax from M2.5 to M2.7 and expand to more agents/categories
  • 031503b test(background-agent): add regression tests for spawn budget decrement on task completion
  • 5986583 fix(background-agent): decrement spawn budget on task completion, cancellation, error, and interrupt
  • 3773e37 fix(runtime-fallback): detect bare 429 rate-limit signals (fixes #2677)
  • 23a30e8 fix(windows): resolve symlinked config paths for plugin detection (fixes #2271)
  • 04637ff fix(lsp): wrap initialization config in initializationOptions field
  • 0d96e0d Fix OAuth discovery for servers with non-root resource paths
  • 719a582 fix(shared): respect cached model context limits for Anthropic providers post-GA
  • 11d942f fix(runtime-fallback): detect Gemini quota errors in session.status retry events
  • 2b6b083 fix(todo-continuation-enforcer): add plan agent to DEFAULT_SKIP_AGENTS to prevent infinite loop
  • abdd39d fix(agent-registration): always attempt fallback when model resolution fails
  • 711aac0 fix: preserve atlas handoff on start-work
  • f2b26e5 fix(delegate-task): add subagent turn limit and model routing transparency
  • a7a7799 fix(agents): add termination criteria to Sisyphus-Junior default
  • 1e0823a fix(delegate-task): report the real background task id
  • edfa411 fix(session-manager): match todo filenames exactly
  • 6d8bc95 fix: github copilot model version for Sisyphus agent
  • 229c6b0 fix(todo-sync): provide default priority to prevent SQLite NOT NULL violation
  • 3eb9711 feat: support file:// URIs in agent prompt field

Thank you to 16 community contributors:

Read more

v3.13.1

25 Mar 04:04
77424f8

Choose a tag to compare

  • 77424f8 Merge pull request #2816 from code-yeongyu/fix/keep-agent-with-explicit-model
  • 919f7e4 fix(data-path): writable directory fallback for data/cache paths
  • 78a3e98 fix(mcp-oauth): robust port binding for callback server
  • 42fb254 fix(agent): always keep agent when model is explicitly configured
  • bff74f4 Merge pull request #2695 from MoerAI/fix/provider-agnostic-fallback
  • 038b8a7 Revert "Merge pull request #2611 from MoerAI/fix/keep-default-builder-agent"
  • 0aa8bfe Merge pull request #2611 from MoerAI/fix/keep-default-builder-agent
  • 422eaa9 Merge pull request #2753 from MoerAI/fix/prometheus-model-override
  • 63ebedc Merge pull request #2606 from RaviTharuma/fix/clamp-variant-on-non-opus-fallback
  • 11f1d71 fix(prometheus): respect agent model override instead of using global opencode.json model (fixes #2693)
  • 0e610a7 fix(runtime-fallback): make fallback provider selection provider-agnostic (fixes #2303)
  • 71b1f7e fix(anthropic-effort): clamp variant against mutable request message
  • 6455b85 fix(config): keep default OpenCode Build agent enabled by default
  • 9346bc8 fix: clamp variant "max" to "high" for non-Opus Claude models on fallback

Thank you to 2 community contributors:

  • @RaviTharuma:
    • fix: clamp variant "max" to "high" for non-Opus Claude models on fallback
    • fix(anthropic-effort): clamp variant against mutable request message
  • @MoerAI:
    • fix(config): keep default OpenCode Build agent enabled by default
    • fix(runtime-fallback): make fallback provider selection provider-agnostic (fixes #2303)
    • fix(prometheus): respect agent model override instead of using global opencode.json model (fixes #2693)

v3.13.0

25 Mar 00:26

Choose a tag to compare

  • f0b5835 fix(publish): correct repo guard to oh-my-openagent (GitHub renamed repo)
  • 2a495c2 Merge pull request #2813 from code-yeongyu/fix/tmux-test-flake-20260325
  • 0edb87b test(tmux): remove flaky live env wrapper assertion
  • cca057d Merge pull request #2812 from code-yeongyu/fix/non-interactive-env-win-bash-prefix
  • e000a3b fix(non-interactive-env): force unix prefix for bash git commands
  • c19fc4b Merge pull request #2811 from code-yeongyu/fix/publish-workflow-guard-topology-20260325
  • e0de068 fix(publish): align repo guard and test topology
  • 26ac413 Merge pull request #2801 from MoerAI/fix/null-byte-sanitization
  • 81c912c Merge pull request #2800 from MoerAI/fix/background-task-fallback-chain
  • 9c348db Merge pull request #2799 from MoerAI/fix/unstable-agent-config-override
  • 2993b32 Merge pull request #2796 from guazi04/fix/circuit-breaker-false-positive-upstream
  • 0b77e2d Merge pull request #2810 from code-yeongyu/fix/webfetch-redirect-loop
  • bfa8fa2 Merge pull request #2804 from code-yeongyu/fix/b2-hashline-formatter-cache-per-project
  • 6ee680a Merge pull request #2809 from code-yeongyu/fix/2330-recursive-subagent-spawn
  • d327334 Merge pull request #2808 from code-yeongyu/fix-gemini-3-pro-cleanup
  • 07d120a Merge pull request #2807 from code-yeongyu/fix/b4-manager-model-override-1774351606
  • 8b7b1c8 Merge pull request #2806 from code-yeongyu/fix/b5-permission-merge-order
  • a1786f4 Merge pull request #2805 from code-yeongyu/fix/b3-config-filename-precedence
  • da77d8a Merge pull request #2802 from code-yeongyu/fix/b1-preemptive-compaction-epoch-guard
  • 971912e fix(webfetch): avoid rewriting successful redirect content
  • af301ab fix(webfetch): guard redirect loops in built-in flow
  • 9844644 fix(task): preserve restricted agent tools in sync continuation
  • 535ecee fix(models): remove stale Gemini 3 Pro references
  • 32035d1 fix(config): prefer canonical plugin config filenames
  • a064961 fix(todo-continuation-enforcer): acknowledge compaction epochs during idle
  • cb12b28 fix(todo-continuation-enforcer): arm compaction epochs on compaction
  • 8e239e1 fix(todo-continuation-enforcer): make compaction guard epoch-aware
  • 733676f fix(todo-continuation-enforcer): add compaction epoch state
  • d2e566b fix(preemptive-compaction): mock session history in degradation test
  • 6da4d2d fix(hashline-edit): scope formatter cache by directory
  • 3b41191 fix(background-agent): honor explicit model override in manager
  • 0b614b7 fix(permissions): preserve explicit deny over OmO defaults
  • c56a01c fix(tool-execute-before): strip null bytes from bash commands to prevent crash (fixes #2220)
  • d2d48fc fix(background-task): register fallback chain for background sessions (fixes #2203)
  • 41a43c6 fix(category-resolver): respect is_unstable_agent config override (fixes #2061)
  • cea8769 Merge pull request #2798 from code-yeongyu/fix/2353-model-selection-v2
  • 7fa2417 fix(plugin): persist selected model only for main session
  • 4bba924 Revert "Merge pull request #2797 from code-yeongyu/fix/2353-model-selection-persistence"
  • e691303 Merge pull request #2797 from code-yeongyu/fix/2353-model-selection-persistence
  • d4aee20 Merge pull request #2794 from code-yeongyu/fix/2775-thinking-block-signatures
  • bad70f5 fix(plugin): preserve selected model across messages
  • b9fa2a3 fix(background-agent): prevent circuit breaker false positives on flat-format events
  • 0e7bd59 fix(session-recovery): reuse signed thinking blocks safely
  • 0732cb8 fix(thinking-block-validator): reuse signed thinking parts
  • 500784a Merge pull request #2790 from code-yeongyu/fix/2666-mcp-schema-sanitization
  • 5e856b4 fix(schema): strip contentEncoding from MCP tool schemas for Gemini compatibility
  • 03dc903 Merge pull request #2789 from code-yeongyu/fix/2671-clearSessionState
  • 69d0b23 fix(anthropic-recovery): clear session state after successful summarize and fix timing test
  • ee8735c Merge pull request #2788 from code-yeongyu/fix/2670-uiSelectedModel-nullification
  • d8fe611 fix(agents): preserve uiSelectedModel when agent override has no model
  • 935995d Merge pull request #2668 from MoerAI/fix/session-degradation-detection
  • 23d8b88 Merge pull request #2669 from MoerAI/fix/atlas-worktree-verification
  • b4285ce Merge pull request #2787 from code-yeongyu/fix/review-fixes
  • f9d354b fix(permissions): ensure omo permission overrides take precedence over opencode defaults
  • 370eb94 Merge pull request #2786 from code-yeongyu/docs/rename-opencode-to-openagent
  • 6387065 docs: rename oh-my-opencode to oh-my-openagent
  • bebdb97 Merge pull request #2784 from code-yeongyu/fix/remove-openclaw-hyperlink
  • b5e2ead docs: remove OpenClaw hyperlink from Building in Public
  • 91922da Merge pull request #2783 from code-yeongyu/fix/building-in-public-image
  • cb3d8af docs: add screenshot to Building in Public section
  • 0fb3e20 Merge pull request #2782 from code-yeongyu/feat/building-in-public-readme
  • b37b877 docs: add Building in Public section to all READMEs
  • f854246 Merge pull request #2772 from MoerAI/fix/custom-model-resolution
  • f1eaa7b fix(shell): detect csh/tcsh and use setenv syntax (#2769)
  • ed9b4a6 Merge pull request #2780 from code-yeongyu/fix/issues-2741-2648-2779
  • a00a22a fix: remove copy-paste artifacts in hephaestus gpt-5-3-codex prompt
  • 8879581 fix: remove copy-paste artifacts in hephaestus GPT prompts
  • 230ce83 fix: resolve 3 bugs - subagent model override, empty plan completion, deep task refusal
  • 10e56ba Merge pull request #2776 from code-yeongyu/fix/background-agent-timeout-defaults
  • cddf784 Merge pull request #2770 from code-yeongyu/fix/ci-test-timeout
  • 0078b73 fix: stabilize stale timeout tests with fixed Date.now()
  • 6d7f696 fix: update stale timeout test fixtures for new 45/60 min defaults
  • fda17dd fix(background-agent): increase default stale timeouts and improve cancellation messages (fixes #2684)
  • c41d6fd fix(delegate-task): trust user-configured category models without fuzzy validation (fixes #2740)
  • 6e9128e fix: add fetch mock to install test to prevent CI timeout
  • 92509d8 fix(non-interactive-env): detect shell type for csh/tcsh env var syntax (fixes #2089)
  • 331f7ec Merge pull request #2768 from code-yeongyu/fix/issue-2117
  • 4ba2da7 fix: add tests and fix typing for formatter trigger (#2768)
  • f95d3b1 fix: emit formatter events from hashline-edit tool (fixes #2117)
  • d5d7c7d Merge pull request #2767 from code-yeongyu/fix/issue-2742
  • 6a56c0e Merge pull request #2766 from code-yeongyu/fix/issue-390
  • 94c234c Merge pull request #2765 from code-yeongyu/fix/issue-2024
  • 2ab976c Merge pull request #2764 from code-yeongyu/fix/issue-2624
  • dc66088 Merge pull request #2763 from code-yeongyu/fix/issue-2037
  • 67b5f46 Merge pull request #2762 from code-yeongyu/fix/issue-2150
  • 0e483d2 Merge pull request #2761 from code-yeongyu/fix/issue-2729
  • f5eaa64 fix: respect disabled_tools config in agent prompts (fixes #2742)
  • 4c4760a fix: trigger compaction before continue after session error recovery (fixes #390)
  • 7f20dd6 fix: add oh-my-openagent.jsonc config file detection (fixes #2624)
  • de371be fix: skip keyword injection for non-OMO agents (fixes #2024)
  • f3c2138 fix: respect OPENCODE_DISABLE_CLAUDE_CODE env vars (fixes #2037)
  • 0810e37 fix: validate serverUrl port before tmux pane spawn (fixes #2729)
  • a64e364 fix: clarify Prometheus file permission error message (fixes #2150)
  • d886ac7 @hunghoang3011 has signed the CLA in #2758
  • 30dc50d @0xYiliu has signed the CLA in #2738
  • b17e633 @ndaemy has signed the CLA in #2734
  • eec268e fix: use find() instead of calls[0] in wakeGateway test to handle background fetch calls
  • 363661c @whackur has signed the CLA in #2733
  • 261bbdf @nguyentamdat has signed the CLA in #2718
  • 8aec4c5 feat(hooks/todo-continuation-enforcer): enhance continuation message with skeptical verification guidance
  • 16cbc84 fix(cli/run): set OPENCODE_CLIENT to 'run' to exclude question tool from registry
  • 436ce71 docs(skills/github-triage): fix Phase 1 JSON parsing and large repo handling
  • d2a4942 @tonymfer has signed the CLA in #2701
  • c3b23bf @trafgals has signed the CLA in #2690
  • 50094de docs: fix remaining AGENTS hook composition text
  • 3aa2748 docs: sync hook counts after continuation hook removal
  • ccaf759 fix(hooks): remove gpt permission continuation hook
  • 521a1f7 fix(atlas): stop only after 10 consecutive prompt failures
  • 490f0f2 @walioo has signed the CLA in #2688
  • caf595e fix(build-binaries): prevent test imports from triggering binary builds
  • 1f64a45 Merge pull request #2620 from code-yeongyu/feat/openclaw-bidirectional
  • 9b2dc21 fix(ralph-loop): detect promise tags in tool_result parts for ulw verification
  • 071fab1 fix: match existing codebase session.messages() parameter shape
  • f6c24e4 fix(ralph-loop): detect promise tags in tool_result parts for ulw verification
  • 22fd976 feat(categories): change quick category default model from claude-haiku-4-5 to gpt-5.4-mini
  • 826284f Merge pull request #2676 from code-yeongyu/fix/atlas-task-session-review-followup
  • 3c7e6a3 fix(atlas): address review findings for task session reuse
  • 33ef4db Merge pull request #2640 from HaD0Yun/had0yun/atlas-task-session-reuse
  • 458ec06 fix: extract question text from questions array per opencode tool schema
  • 6b66f69 feat(gpt-permission-continuation): add context-aware continuation prompts
  • ce8957e fix(ralph-loop): harden oracle verification flow
  • a3db64b fix: address cubic review — SDK compatibility and race condition fixes
  • 8859da5 fix(atlas): harden task session reuse
  • 23c0ff6 feat(background-agent): increase default max tool calls to 4000
  • 4723319 fix(atlas): use worktree path for git verification when a...
Read more

v3.12.3

18 Mar 07:07

Choose a tag to compare

  • 1669c83 revert(todo-continuation): remove [TODO-DIAG] console.error debug logging

v3.12.2

18 Mar 05:52

Choose a tag to compare

  • 09cfd0b diag(todo-continuation): add comprehensive debug logging for session idle handling
  • d48ea02 refactor(circuit-breaker): replace sliding window with consecutive call detection
  • c5c7ba4 perf: pre-compile regex patterns and optimize hot-path string operations
  • 90aa3a3 perf(hooks,tools): optimize string operations and reduce redundant iterations
  • c2f7d05 perf(shared): optimize hot-path utilities across plugin
  • 7a96a16 perf(claude-code-hooks): defer config loading until after disabled check
  • 2da19fe perf(background-agent): use Set for countedToolPartIDs, cache circuit breaker settings, optimize loop detector
  • 952bd53 fix(background-agent): treat non-active session statuses as terminal to prevent parent session hang

v3.12.1

18 Mar 04:21

Choose a tag to compare

  • 57757a3 refactor: improve test isolation and DI for cache/port-utils/resolve-file-uri
  • 3caae14 fix(ralph-loop): abort stale Oracle sessions before ulw verification restart
  • 55ac653 feat(hooks): add todo-description-override hook to enforce atomic todo format
  • 1d5652d Merge pull request #2655 from tad-hq/infinite-circuit-target-fix
  • 76c4605 docs(start-work): update worktree and task breakdown guidance
  • b067d4a @ogormans-deptstack has signed the CLA in #2656
  • 94838ec @tad-hq has signed the CLA in #2655
  • 5d5755f fix(circuit-breaker): wire target-aware detection into background manager
  • 1fdce01 fix(circuit-breaker): target-aware loop detection via tool signatures
  • c8213c9 fix(circuit-breaker): add enabled config flag as escape hatch
  • 576ff45 Merge pull request #2651 from code-yeongyu/fix/openagent-version-in-publish
  • 9b8aca4 fix(release): set version when publishing oh-my-openagent
  • f1f20f5 Merge pull request #2650 from code-yeongyu/fix/openagent-platform-publish
  • de40caf fix(release): add oh-my-openagent dual-publish to platform and main workflows

Thank you to 1 community contributor:

  • @tad-hq:
    • fix(circuit-breaker): add enabled config flag as escape hatch
    • fix(circuit-breaker): target-aware loop detection via tool signatures
    • fix(circuit-breaker): wire target-aware detection into background manager

v3.12.0

17 Mar 10:02
d808338

Choose a tag to compare

  • d808338 @HaD0Yun has signed the CLA in #2640
  • d50c38f refactor(tests): rename benchmarks/ to tests/hashline/, remove FriendliAI dependency
  • f2d5f4c improve(hashline-edit): rewrite tool description with examples and fix lines schema
  • b788586 relax task timeouts: stale timeout 3min→20min, session wait 30s→1min
  • 90351e4 update look_at tool description to discourage visual precision use cases
  • 4ad88b2 feat(task-toast): show model name before category in toast notification
  • 2ce6971 docs: sync agent-model-matching guide with actual fallback chains
  • 0b4d092 Merge pull request #2639 from code-yeongyu/feature/2635-smart-circuit-breaker
  • 5328561 Merge pull request #2636 from code-yeongyu/fix/pre-publish-blockers
  • ae3befb fix(background-agent): apply smart circuit breaker to manager events
  • dc1a05a feat(background-agent): add loop detector helpers
  • e271b4a feat(config): add background task circuit breaker settings
  • fee938d fix(cli): cherry-pick glm-4.7-free → gpt-5-nano fallback fix from dev
  • 4d74d88 Merge pull request #2637 from code-yeongyu/fix/ulw-verification-session-tracking
  • 4bc7b1d fix(ulw-loop): add fallback for Oracle verification session tracking
  • 78dac06 Merge pull request #2590 from MoerAI/fix/subagent-circuit-breaker
  • 92bc72a fix(bun-install): use workspaceDir option instead of hardcoded cache-dir
  • a7301ba fix(delegate-task): guard skipped sentinel in subagent-resolver
  • e9887dd fix(doctor): align auto-update and doctor config paths
  • c0082d8 Merge pull request #2634 from code-yeongyu/fix/run-in-background-required
  • fbc3b4e Merge pull request #2612 from MoerAI/fix/dead-fallback-model
  • 1f7fdb4 Merge pull request #2539 from cpkt9762/fix/category-variant-no-requirement
  • 566031f fix(delegate-task): remove auto-default for run_in_background, require explicit parameter
  • 0cf386e fix(skill-tool): invalidate cached skill description on execute
  • d493f9e fix(cli-run): move resolveRunModel inside try block
  • 2c7ded2 fix(background-agent): defer task cleanup while siblings running
  • 82c7807 fix(event): clear retry dedupe key on non-retry status
  • df7e1ae fix(todo-continuation): remove activity-based stagnation bypass
  • 0471078 fix(tmux): escape serverUrl in pane shell commands
  • 1070b91 docs: remove temporary injury notice from README
  • bb31271 Merge pull request #2618 from RaviTharuma/fix/extract-status-code-nested-errors
  • c31facf @gxlife has signed the CLA in #2625
  • de66f1f fix(runtime-fallback): prefer numeric status codes over non-numeric in extraction chain
  • 427fa6d Merge pull request #2619 from code-yeongyu/revert/openclaw-one-way
  • 239da8b Revert "Merge pull request #2607 from code-yeongyu/feat/openclaw-integration"
  • 17244e2 Revert "Merge pull request #2609 from code-yeongyu/fix/rename-omx-to-omo-env"
  • 24a0f7b fix(runtime-fallback): extract status code from nested AI SDK errors
  • fc48df1 fix(cli): replace dead glm-4.7-free with gpt-5-nano as ultimate fallback
  • 4759dfb Merge pull request #2609 from code-yeongyu/fix/rename-omx-to-omo-env
  • 2c8813e fix: rename OMX_OPENCLAW env vars to OMO_OPENCLAW
  • 8213534 Merge pull request #2607 from code-yeongyu/feat/openclaw-integration
  • 450685f fix: extract session ID from properties.info.id for session.created/deleted events
  • 03b346b feat: implement OpenClaw integration
  • 90decd1 chore(schema): regenerate schema after hook enum forward-compat change
  • 47d1ad7 fix(plugin): persist ultrawork variant on same-model override and normalize Claude model IDs
  • 32a296b fix(auto-slash-command): use event-ID dedup, align precedence, enforce skill agent gate
  • 67bb9ec fix(delegate-task): resolve variant-bearing fallback models during immediate selection
  • d57c27f fix(tmux): replace hardcoded zsh with portable shell detection
  • 1339ecd fix(hashline): restore v3.11.2 legacy hash computation for backward compatibility
  • 8c4fa47 @sanoyphilippe has signed the CLA in #2604
  • 10e0c7f @Jrakru has signed the CLA in #2602
  • 48707a6 test(tmux): isolate tmux environment checks from process env
  • fe3f058 test(skill-loader): avoid node:fs mock leakage in project skill references
  • 1cfc1c8 Merge pull request #2596 from cyberprophet/fix/doctor-plugin-version-fallback
  • 8401e61 Merge pull request #2597 from code-yeongyu/fix/todo-compaction-only-guard
  • 085ca0a Merge pull request #2598 from code-yeongyu/revert-2582-fix/fix-install-test
  • 3055454 fix(background-agent): add circuit breaker to prevent subagent infinite loops
  • a7800a8 Revert "fix(test): update package name to oh-my-openagent in install test"
  • 9e7abe2 fix(todo-continuation-enforcer): skip continuation for compaction-only message history
  • 5b7ca99 fix(doctor): fall back to loadedVersion when pluginVersion is null
  • f31f50a fix(release): revert package identity to oh-my-opencode
  • 612b9c1 fix(config): clear stale context limit cache on provider updates
  • 16b0d9e fix(atlas): gate final-wave approval on real plan state
  • 1ad5db4 fix(runtime-fallback): advance session.status fallback chain
  • 988478a fix(config): allow forward-compatible disabled hooks
  • e87075b fix(background-task): restore opt-in full session output
  • fe4493c fix(model-fallback): keep model fallback opt-in by default
  • 7f75270 fix(cli): validate and detect OpenCode Go install settings
  • 532995b fix(model-fallback): align OpenAI fallback resolution across CLI and runtime
  • b63082a fix(skills): correct invalid task tool references
  • 674df1b fix(hooks): remove dead delegate-task-english-directive hook
  • 2b8ae21 fix(auto-slash-command): expire duplicate suppression after 30s
  • bbd2e86 fix(hashline): accept legacy hashes for indented anchors
  • f03de4f Merge pull request #2535 from conversun/fix/prometheus-compaction-agent-fallback
  • 65ccc9b Merge pull request #2588 from acamq/refactor/doctor-lsp-extensions
  • da788d3 fix(doctor): remove redundant extensions from verbose LSP header
  • 03da2e9 refactor(doctor): show detected LSP servers and extensions instead of hardcoded counts
  • 73685da Merge pull request #2563 from robinmordasiewicz/fix/claude-code-plugin-v3-array-format
  • 8f9bdf0 Merge pull request #2559 from MoerAI/fix/issue-2555-disabled-tools-merge
  • 2cf329a revert: remove accidentally committed built files from bce8ff3
  • e03d0e0 Merge pull request #2585 from acamq/fix/custom-agent-summaries-completeness
  • 14d7043 Merge pull request #2546 from acamq/fix/installer-paths
  • e8a3e54 fix(agents): include config agents and migrated plugin agents in customAgentSummaries
  • 2fd6f4b Merge pull request #2582 from acamq/fix/fix-install-test
  • 0f0e4c6 fix(test): update package name to oh-my-openagent in install test
  • b7c6808 Merge pull request #2532 from ricatix/fix/doctor-verbose-models
  • f248c73 Merge pull request #2507 from MoerAI/fix/issue-2287-unstable-agent-check
  • 8470a6b fix(test): isolate XDG_CONFIG_HOME in Windows CLI tests
  • f92c093 fix(installer): respect XDG_CONFIG_HOME on Windows for CLI config dir
  • aa27c75 @idrekdon has signed the CLA in #2572
  • 0d1d405 fix(discovery): add null-safe validation for v3 array entries
  • bc0ba84 fix(agent-loader): convert model object to string for opencode compatibility
  • 5073efe @robinmordasiewicz has signed the CLA in #2563
  • a7f0a4c fix(plugin-loader): support Claude Code v3 flat array format for installed_plugins.json
  • 913fcf2 remove ai slops
  • c7518ea add skills
  • 0dcfcd3 feat(cli): support both oh-my-opencode and oh-my-openagent package names
  • 6aeda59 feat(schema): generate oh-my-openagent schema alongside legacy schema
  • b0ab34b feat(shared): add plugin identity constants for package name migration
  • a00bb8b feat(skill): integrate /get-unpublished-changes and /review-work into pre-publish-review
  • b5789bf @vidwade has signed the CLA in #2561
  • 9a774f1 fix: union disabled_tools in mergeConfigs() like other disabled_* arrays
  • 6625670 @Yeachan-Heo has signed the CLA in #2554
  • f3de122 feat(hooks): add delegate-task-english-directive hook to enforce English for subagents
  • 0303488 Merge pull request #2550 from code-yeongyu/fix/deploy-blockers
  • 3e746c9 fix(review): resolve 3 review-work blocking issues
  • 786c7a8 fix(background-agent): prevent queue item loss on concurrent cancel and guard against cancelled task resurrection
  • 380889c fix(delegate-task): add exception fallback for cleanup reason and correct test mock status type
  • 04b0c6f fix(atlas): pause after final verification wave for explicit user approval
  • fd71c89 fix(background-agent): release descendant quota on pre-start task cancellation and creation failure
  • 11df837 refactor(preemptive-compaction): use shared context-limit resolver to eliminate duplicated logic
  • 457f303 fix(background-agent): clean global subagentSessions and SessionCategoryRegistry on dispose
  • 0015dd8 fix(agent-config): normalize agent names before builtin override filtering to prevent alias bypass
  • 9bce631 fix(runtime-fallback): scope visible-assistant check to current turn and cleanup retry dedupe keys
  • cbe113e fix(slashcommand): support parent config dirs in command execution path to match discovery
  • e3f6c12 fix(atlas): restrict idle-event session append to boulder-owned subagent sessions only
  • b356c50 fix(delegate-task): cancel child background tasks on parent abort and timeout in unstable agent flow
  • 3893850 test(model-fallback): update snapshots and kimi model expectations for opencode-go integration
  • 2c8a8eb fix(gpt-permission-continuation): add per-session consecutive auto-continue cap to prevent infinite loops
  • 6b2da3c fix(installer): always use .config/opencode for CLI on Windows (#2502)
  • 825e854 @cpk...
Read more

v3.11.2

08 Mar 18:07

Choose a tag to compare

  • a7d8c1c feat: dual-publish platform binaries for oh-my-openagent
  • beb89fa Merge pull request #2388 from code-yeongyu/fix/background-output-undefined-status-2387
  • dc370f7 fix: handle undefined sessionStatus in pollRunningTasks (#2387)
  • a5fe6eb @vaur94 has signed the CLA in #2385
  • ba6fc35 Merge pull request #2376 from acamq/fix/idle-notification-grace-period
  • 8a827f9 @acamq has signed the CLA in #2012
  • 4e352f9 fix(session-notification): add grace period to prevent late events from cancelling idle notifications
  • 621cad7 Merge pull request #2230 from Chocothin/fix/respect-config-question-permission
  • ab5a713 Merge pull request #2291 from SeeYouCowboi/fix/cache-dir-invalidation-stale-version
  • f67b605 fix: also invalidate plugin from CACHE_DIR in invalidatePackage
  • 65bc742 fix(tool-config): respect question permission from OPENCODE_CONFIG_CONTENT

Thank you to 4 community contributors:

  • @Chocothin:
    • fix(tool-config): respect question permission from OPENCODE_CONFIG_CONTENT
  • @SeeYouCowboi:
    • fix: also invalidate plugin from CACHE_DIR in invalidatePackage
  • @acamq:
    • Merge pull request #2291 from SeeYouCowboi/fix/cache-dir-invalidation-stale-version
    • Merge pull request #2230 from Chocothin/fix/respect-config-question-permission
    • Merge pull request #2376 from acamq/fix/idle-notification-grace-period
  • @crazyrabbit0:
    • fix(session-notification): add grace period to prevent late events from cancelling idle notifications

v3.11.1

07 Mar 18:41

Choose a tag to compare

  • adaeaca fix: add NODE_AUTH_TOKEN to publish-main job for npm auth
  • 63ed7a5 fix: update repository URLs to oh-my-openagent for npm provenance
  • e244403 ci(publish): deploy both oh-my-opencode and oh-my-openagent simultaneously

v3.11.0

07 Mar 16:59

Choose a tag to compare

First release as an oh-my-openagent

This is a first release as an oh-my-openagent. We have changed our name to make it less confused; OmO and Sisyphus is about the whole architecture- not just a plugin. Just to help opencode community spending whole day answering OmO questions, we are changing our project name. We know that the name is ultralong, so just call our plugin as 'oh-mo' or Sisyphus.

The GPT Era Begins — Sisyphus, Multimodal-Looker, and the Full Agent Catalog Now GPT-Native

Hephaestus X Sisyphus

Dear Ultraworkers,
Finally we have GPTPhus - he got sprits of Sisyphus, but with the powers of Hephaestus.

This release marks a fundamental shift in our model strategy. After extensive real-world testing—including burning through two ChatGPT Pro accounts worth of tokens—we've systematically elevated GPT-5.4 to first-class citizenship across the entire agent ecosystem. This isn't a simple model swap; it's a recognition that GPT-5.4 has earned its place as a serious alternative to Claude for complex orchestration work.

Sisyphus Goes GPT-Native (Finally)

For the first time ever, Sisyphus is properly tuned for GPT-series models. We've crafted dedicated GPT-5.4 prompts with an 8-block architecture that rivals our Opus-native prompts in sophistication. The results are remarkable: GPTPhus (GPT-powered Sisyphus) delivers orchestration quality that genuinely impressed us during testing—so much so that we burned through two ChatGPT Pro accounts validating it.

The Verdict: Opus Sisyphus remains the gold standard for general-purpose orchestration. Claude Opus 4.6's unique architectural strengths are unmatched for certain reasoning patterns. But GPTPhus is more than "good enough"—it's genuinely excellent, and for users with OpenAI-only setups, it's now a first-class option rather than a fallback.

New Fallback Chain: claude-opus-4-6 max → k2p5 → kimi-k2.5 → gpt-5.4 medium → glm-5 → big-pickle

Complete Agent Catalog Migration: GPT 5.2 → GPT 5.4

We've completed the migration of our entire agent catalog from GPT-5.2 dependencies to GPT-5.4. Every agent that previously relied on GPT capabilities now routes to the 5.4 family:

Agent Previous Primary New Primary
Oracle gpt-5.2 gpt-5.4 high
Momus gpt-5.2 gpt-5.4 xhigh
Metis gpt-5.2 gpt-5.4 high
Prometheus gpt-5.2 gpt-5.4 high
Atlas claude-sonnet + gpt-5.4 medium fallback
Multimodal-Looker gpt-5.3-codex gpt-5.4 medium

Important Distinction: GPT-5.3-codex and GPT-5.4 are fundamentally different models with different strengths. While we've migrated most agents to 5.4, Hephaestus continues to recommend GPT-5.3-codex for deep autonomous work—its specific training for extended coding sessions remains unmatched for that agent's particular workflow.

ULW-Loop: Oracle Verification Becomes Mandatory

The ultrawork loop (/ulw-loop) now requires explicit Oracle verification before completing any task. This is a significant behavioral change:

  • Before: ULW loop would attempt self-verification and potentially declare completion
  • After: Oracle agent must explicitly verify completion criteria are met
  • Impact: Higher confidence in ULW-loop results, slightly longer tail-end execution

We've also added explicit Oracle session tracking to prevent the "interrupted verification" edge cases some users reported. The system now maintains full context of any ongoing Oracle verification and handles parent session retry logic gracefully when verification fails.

Category System: GPT-5.4 Defaults

Our category-to-model mapping now defaults to GPT-5.4 for high-effort tasks:

Category Previous Default New Default
unspecified-high glm-5 gpt-5.4 high
ultrabrain gpt-5.3-codex xhigh unchanged (codex still preferred for hard logic)
deep gpt-5.3-codex medium unchanged

Note that ultrabrain and deep categories retain GPT-5.3-codex as their primary—their specific training for extended reasoning sessions remains optimal for those task types.

Model Cleanup: kimi-k2.5-free Removal

We've removed kimi-k2.5-free from all fallback chains. This model variant was deprecated by the provider and was causing unnecessary fallback delays.

Multimodal-Looker: Now GPT-5.4 Native

The multimodal-looker agent—responsible for image analysis and visual understanding—now uses GPT-5.4 medium as its primary model (was GPT-5.3-codex). This aligns visual analysis capabilities with our latest GPT-native prompts.


Full Changelog

feat

  • sisyphus: Add GPT-5.4 variant with 8-block prompt architecture; extend fallback chain with k2p5, kimi-k2.5, gpt-5.4 medium
  • multimodal-looker: Upgrade primary model from gpt-5.3-codex to gpt-5.4 medium
  • oracle: Add GPT-5.4 variant prompt with model-based routing
  • momus: Add GPT-5.4 variant prompt with model-based routing and QA scenario executability checks
  • metis: Add QA scenario executability checks alongside analysis capabilities
  • sisyphus-junior: Add GPT-5.4 and GPT-5.3-codex model-specific prompt routing
  • hephaestus: Add generic GPT prompt fallback with model-specific routing
  • ulw-loop: Require Oracle verification before completion; add explicit Oracle session tracking
  • ultrawork: Enforce manual QA execution and acceptance criteria workflow
  • delegate-task: Add model field to TUI metadata; make sync subagent timeout configurable; use explicit high variant for unspecified-high category
  • atlas: Add Final Verification Wave to orchestration workflow; enforce checkbox completion before next task
  • gpt-5.4: Amplify parallel tool-calling with XML behavioral contracts
  • start-work: Add auto_commit config option
  • look-at: Add automatic image format conversion for HEIC/RAW/PSD files
  • dispatch: Wire marketplace plugin commands into slash command dispatch

fix

  • atlas: Skip compaction in last-agent recovery; add full eligibility checks to delayed retry callback
  • ulw-loop: Retry parent session after failed verification
  • plugin: Ignore compaction session agent updates
  • preemptive-compaction: Allow re-compaction after context grows and use model-specific limits
  • librarian: Correct tool name from websearch_exa_web_search_exa to websearch_web_search_exa
  • tmux: Correct health check endpoint to /global/health
  • session-notification: Ensure notification fallback on terminal-notifier failure
  • doctor: Quote paths and respect version channels in fix messages
  • config: Initialize config context in plugin runtime to prevent warnings
  • chat-headers: Skip x-initiator override for @ai-sdk/github-copilot models
  • tool-config: Stop overriding external_directory permission (respect user setting)
  • background-task: Clarify timeout unit is milliseconds in tool description
  • model-fallback: Apply transformModelForProvider in getNextFallback
  • task: Disambiguate background task_id metadata; align with opencode contract
  • install: Build dist for git-based plugin installs
  • look-at: Add catch block to prevent TUI crash on unexpected errors; temp dir cleanup, Windows compat
  • delegate-task: Resolve timeout detection and config drift in sync poller
  • model-resolution: Normalize model format and remove dead config flag

refactor

  • kimi-k2.5-free: Remove from all fallback chains and reorder multimodal-looker accordingly
  • model-resolution: Deduplicate model resolution utility functions
  • installer: Remove dead Antigravity auth plugin code
  • ultrawork: Rename gpt5.2.ts to gpt.ts and align with 5.4 style
  • sisyphus: Extract prompt builders into subdirectory with GPT-5.4 variant
  • prompts: Align all GPT prompts with 5.4 system prompt style across agents

docs

  • agent-model-matching: Refresh Sisyphus chain description and model tables
  • installation: Refresh provider model mappings
  • orchestration: Align model tables with current runtime
  • AGENTS.md: Regenerate hierarchy across all modules
  • README: Remove security warning banners and fix table formatting

Migration Notes

For OpenAI-Only Users

Sisyphus now works out of the box with OpenAI-only configurations. Previously you would fall back to Hephaestus; now you get full Sisyphus orchestration with GPT-5.4 medium.

For Users with Kimi k2.5 Free

The kimi-k2.5-free model has been removed from all fallback chains. If you were relying on this (free) model, the system will now fall through to the next available model in your configured providers.

For ULW-Loop Users

Tasks will now take slightly longer to complete as Oracle verification is mandatory. The tradeoff is significantly higher confidence in completion correctness.


Thank You to Our Contributors

17 community PRs merged in this release, including fixes for flaky tests, doctor paths, model format normalization, notification click targets, and more. Special thanks to all first-time contributors!

Contributors: @rluisr, @MoerAI, @devxoul, @wousp112, @JimMoen, @acamq, @mertyldrm, @YLRong, @1noilimrev, @ualtinok, @Wangmerlyn, @Vacbo, @Romanok2805, @RaviTharuma, @brandonwebb-vista, @guazi04, @SeeYouCowboi, @chan1103, @SwiggitySwerve, @markarranz, @yhc509, @janghoon-ju, @wangjingu, @ilovingjny, @nous-labs