Skip to content

Releases: code-yeongyu/oh-my-openagent

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

v3.10.0

02 Mar 06:28

Choose a tag to compare

Security Hardening & Stability

This release locks down HTTP hook execution and fixes several determinism bugs that caused subtle issues across process restarts and parallel sessions.

Hook Security

HTTP hooks now validate URL schemes before execution — only http: and https: are allowed. Previously, file://, data:, and other dangerous schemes could be used to read local files through hook URLs. The disable mechanism (disabled_hooks) now works for HTTP hooks too, not just command hooks.

Deterministic IDs

Message and part IDs generated by the hook system now include a process-unique prefix (msg_<hex>_<counter>), eliminating storage collisions when multiple OpenCode processes run against the same session store.

Hashline Edit: Now Opt-In

The hash-anchored edit tool (hashline_edit) is now disabled by default. If you relied on LINE#ID references in your workflow, add "hashline_edit": true to your config.

Performance

Image dimension parsing for the read-image-resizer hook now decodes only the first 32KB of base64 data instead of the full payload — significant memory savings for large images.

Community

New features from contributors: agent-usage-reminder fix for subagents, glob/grep relative path resolution, duplicate agent entry fix, Russian README, and more.


  • 3db46a5 feat(hashline): change hashline_edit default from true to false
  • 0dd9ac4 perf(read-image-resizer): decode only first 32KB of base64 for dimension parsing
  • 1a9e7eb fix(hook-message-injector): add process-unique prefix to message/part IDs to prevent storage collisions
  • 682a3c8 fix(hooks): prevent SSRF via URL scheme validation and extend disable mechanism to HTTP hooks
  • a666612 @mathew-cf has signed the CLA in #2233
  • a6955d7 @Chocothin has signed the CLA in #2230
  • 1a25b25 @DEAN-Cherry has signed the CLA in #2227
  • 9a505a3 @laciferin2024 has signed the CLA in #2222
  • acc2132 Merge pull request #2212 from code-yeongyu/fix/h5-collector-ordering
  • e750365 Merge pull request #2211 from code-yeongyu/fix/c2-hook-message-ids
  • 73fea69 Merge pull request #2210 from code-yeongyu/fix/c1-synthetic-part-id
  • d39b3aa Merge pull request #2151 from ualtinok/fix/agent-usage-reminder-subagent-exclusion
  • 7c9f507 fix(context-injector): use monotonic registration order instead of timestamp for deterministic sorting
  • 4d8360c fix(context-injector): use deterministic synthetic part ID for cache stability
  • 6e9f273 fix(hook-message-injector): use monotonic counter for deterministic message/part IDs
  • 2478b28 Merge pull request #2204 from ualtinok/fix/glob-directory-prefix
  • 418cf85 fix(glob): use cwd-relative search for ripgrep to fix directory prefix patterns
  • cc6ab1a feat(hooks): add read-image-resizer hook
  • 74f7992 feat(agents): add Gemini tool guide and few-shot examples to system prompt
  • 13d689c feat(agents): add Plan Agent dependency and strengthen Deep Parallel Delegation for non-Claude models
  • 29d6062 Merge pull request #2202 from ualtinok/fix/glob-grep-relative-path
  • d65ee31 Merge pull request #2208 from code-yeongyu/feat/http-hook-support
  • 4dae458 style(hooks): add blank line between interpolateEnvVars and resolveHeaders
  • 4740515 fix(agents): replace active polling with notification-based waiting for background tasks
  • 3eb53ad fix(hooks): resolve cubic review issues
  • 43dfdb2 feat(hooks): add HTTP hook handler support
  • 7cec6f7 fix(tools): resolve relative paths in glob/grep against project directory
  • 866bd50 @renanale has signed the CLA in #2201
  • 518e3c5 Merge pull request #2161 from acamq/fix/duplicate-agent-entries
  • 8512624 Merge pull request #2153 from devxoul/fix/docs-master-to-dev-branch
  • bc2eaaf Merge pull request #2160 from dwnmf/add-russian-readme
  • 0f73504 @mertyldrm has signed the CLA in #2184
  • db32ac5 @YLRong has signed the CLA in #2176
  • 2eb7994 fix(atlas): use start-work session agent for continuation gating
  • 15ad944 @1noilimrev has signed the CLA in #2166
  • 07542d3 Fix markdown blockquote structure in Russian README
  • d6dd548 fix(agents): remove duplicate remapped agent keys
  • f3cbc24 @dwnmf has signed the CLA in #2160
  • b76abeb Add Russian README
  • 21c249e fix(ci): pre-download baseline compile targets to avoid Bun extraction failures
  • 0749a8f fix(ci): make platform publish resilient to individual build failures
  • 35edcec fix(agent-usage-reminder): skip reminders for non-orchestrator subagents
  • 0cc9eda replace master branch references with dev across docs, schema URLs, and tests

Thank you to 6 community contributors:

  • @devxoul:
    • replace master branch references with dev across docs, schema URLs, and tests
  • @ualtinok:
    • fix(agent-usage-reminder): skip reminders for non-orchestrator subagents
    • fix(tools): resolve relative paths in glob/grep against project directory
    • fix(glob): use cwd-relative search for ripgrep to fix directory prefix patterns
  • @dwnmf:
    • Add Russian README
    • Fix markdown blockquote structure in Russian README
  • @acamq:
    • fix(agents): remove duplicate remapped agent keys
  • @kdcokenny:
    • Merge pull request #2160 from dwnmf/add-russian-readme
    • Merge pull request #2153 from devxoul/fix/docs-master-to-dev-branch
  • @KNN-07:
    • Merge pull request #2161 from acamq/fix/duplicate-agent-entries

v3.9.0

26 Feb 19:31

Choose a tag to compare

oh-my-opencode v3.9.0

187 files changed. +7,046/−1,891 lines. 3,391 tests. 0 failures.


🔧 Worktree-Aware Planning

/start-work now accepts --worktree — Prometheus creates plans that know which worktree they belong to. Atlas picks up the worktree path in boulder continuation. Parallel feature branches without stepping on each other.

🧠 Smarter Model Routing

Gemini 3 → 3.1 Pro across the board. GPT model detection simplified to name-based matching — cleaner, faster, no more edge cases with o-series. Kimi added to writing category fallback. Hephaestus auto-commit behavior removed — agents no longer commit without your explicit request.

🛡️ Reliability Hardening

Every major control loop got hardened:

  • Ralph Loop: Completion detection scoped to messages since loop start. In-flight guard prevents infinite re-trigger. Race condition between session reset and TUI switch eliminated.
  • Todo Continuation: Blocked todos excluded from incomplete count — no more infinite loops on dependent tasks.
  • Background Agent: Notification queue for idle sessions. Pending notifications cleaned on session delete.
  • Token Limiter: Truncation now respects newline boundaries. No more mid-line cuts in delegated prompts.
  • Compaction: Timeout + cleanup prevents indefinite hangs during rate limiting.

📊 Hashline Edit Benchmarks

New benchmark suite (46 tests) for hashline-edit contributed by @minpeter. Deduplication and validation fixes. Diff context limited to 3 lines to prevent oversized hunks.

🖥️ Platform & Compatibility

Windows: windowsHide on all Bun.spawn calls — no more stray terminal windows. Legacy hardware: baseline CPU variant binaries added. Config: existing user settings preserved when writing new defaults. Formatter config no longer silently dropped.


  • bdd86b1 fix(hephaestus): remove auto-commit policy to prevent surprise commits
  • 76cba9b Merge pull request #2159 from code-yeongyu/fix/ralph-loop-completion-scoping
  • 2955dc8 Merge pull request #2158 from code-yeongyu/fix/hashline-diff-format-compat
  • 3ab4b7f Merge pull request #2157 from code-yeongyu/fix/token-limiter-safe-truncation
  • 3540d1c Merge pull request #2156 from code-yeongyu/fix/background-pending-notif-leak
  • 9bc9dca Merge pull request #2155 from code-yeongyu/fix/ultrawork-thinking-db-write
  • f2a1412 test(ralph-loop): harden completion detector PluginInput mock
  • 190c699 fix(ralph-loop): persist session message count at loop start
  • e17a00a fix(ralph-loop): scope completion detection to messages since loop start
  • c8aa1bb test(hashline-edit): add diff format compatibility tests
  • 911710e fix(token-limiter): truncate at newline boundaries instead of raw slice
  • 050b93b fix(background-agent): clean pendingNotifications on session.deleted
  • 2ffa803 fix(ultrawork-db): write $.thinking alongside $.variant in deferred model override
  • cf97494 Merge pull request #2154 from minpeter/feat/hashline-benchmark
  • 8fb5949 fix(benchmarks): address review feedback on error handling and validation
  • 04f50ba feat(benchmarks): add hashline-edit test suites (46 tests)
  • d1a0a66 feat(benchmarks): add hashline-edit benchmark agent and deps
  • b1203b9 Fix hashline-edit deduplication and validation
  • 5820122 Merge pull request #2093 from code-yeongyu/fix/issue-1966-ultrawork-variant
  • 4efad49 Merge pull request #2149 from code-yeongyu/fix/issue-1815-1733-prompt-token-count
  • 4df69c5 fix(keyword-detector): respect ultrawork config variant instead of hardcoding "max"
  • 2ece7c3 Merge pull request #1963 from MoerAI/fix/multi-issue-1888-1693-1891
  • decff31 Merge pull request #2145 from code-yeongyu/fix/issue-1915-windows-spawn-hide
  • 0526bac Merge pull request #2148 from code-yeongyu/fix/issue-2121-legacy-hardware-baseline
  • 0c62656 Merge pull request #2146 from code-yeongyu/fix/issue-2065-1968-model-updates
  • aff43bf Merge pull request #2143 from code-yeongyu/fix/issue-2017-stop-continuation-cancel
  • 6865cee Merge pull request #2141 from code-yeongyu/fix/issue-2084-ralph-loop-inflight
  • 8721ba4 Merge pull request #2140 from code-yeongyu/fix/issue-2025-blocked-todo-continuation
  • 96d27ff Merge pull request #2134 from code-yeongyu/fix/issue-2064-config-overwrite
  • 017c18c Merge pull request #2138 from code-yeongyu/fix/issue-2062-compaction-timeout
  • fb194fc Merge pull request #2147 from code-yeongyu/fix/issue-2117-preserve-formatter-config
  • 10c25d1 Merge pull request #2144 from code-yeongyu/fix/issue-2087-look-at-hang
  • 86fcade Merge pull request #2142 from code-yeongyu/fix/issue-1922-retain-agent-keys
  • 5bc3a9e Merge pull request #2137 from code-yeongyu/fix/issue-2051-diff-context-limit
  • 810ebec Merge pull request #2136 from code-yeongyu/fix/issue-2044-atlas-task-tool
  • 8f7ed29 Merge pull request #2135 from code-yeongyu/fix/issue-2115-background-output-block
  • 7ff8352 fix(config): preserve formatter config from opencode settings
  • d425f9b fix(models): update Gemini 3 to 3.1 Pro and add Kimi to writing category fallback
  • cc5e9d1 fix(ci): add baseline CPU variant binaries for legacy hardware support
  • 269f37a fix(windows): add windowsHide to Bun.spawn calls to prevent stray terminal windows
  • 1e060e9 fix(look-at): add timeout to sync model retry to prevent process hang
  • ccb789e fix(stop-continuation): wire backgroundManager to cancel running tasks on stop
  • a6617d9 fix(ralph-loop): add inFlight guard and improve completion detection to prevent infinite loops
  • 2295161 fix(ralph-loop): add inFlight guard and improve completion detection to prevent infinite loops
  • 0516f2f fix(todo-continuation): exclude blocked todos from incomplete count to prevent infinite loops
  • df02c73 fix(agents): retain original agent keys in remapAgentKeysToDisplayNames to prevent crash
  • 52658ac fix(config): preserve existing user config when writing new defaults
  • fab820e fix(compaction): add timeout and ensure cleanup to prevent indefinite hangs on rate limit
  • 6f54404 fix(hephaestus): add explicit auto-commit instructions to agent prompt
  • a3169c9 fix(hashline-edit): limit diff context to 3 lines to prevent oversized hunks
  • 0639ce8 fix(atlas): allow task and call_omo_agent tools for subagent dispatch
  • 685b802 fix(background-task): make background_output block=true actually wait for task completion
  • 07e8d96 fix(atlas): allow task and call_omo_agent tools for subagent dispatch
  • c505989 Merge pull request #2095 from code-yeongyu/fix/issue-1934-exit-code-130-timeout
  • 088984a fix: remove Current date from env context since OpenCode already provides it
  • 0b69a6c fix(atlas): replace permanent failure lockout with 5-minute backoff
  • 5fe1640 fix(boulder): count indented checkboxes in plan progress
  • ad01f60 fix: remove seconds-precision time from env context to stop breaking token cache
  • 87d6b2b feat(agents): simplify GPT detection to name-based check, add hephaestus providers (venice uses gpt-5.3-codex)
  • b7b6721 refactor(think-mode): migrate hook from chat.params to chat.message and remove thinking config injection
  • 0c59d2d refactor(ultrawork): remove thinking config injection from model override
  • 52d366e feat(start-work): update template with --worktree flag documentation
  • 9cd6fc6 feat(atlas): inject worktree_path into boulder continuation
  • f872f5e feat(start-work): add --worktree flag support in hook
  • f500fb0 feat(start-work): add --worktree flag parsing from user request
  • 9a94e12 feat(start-work): add worktree path detection
  • 808a50d feat(boulder-state): add worktree_path field to BoulderState
  • a263188 @maou-shonen has signed the CLA in #2131
  • 155ed52 @imwxc has signed the CLA in #2129
  • ed5a2fe @spacecowboy0416 has signed the CLA in #2126
  • cd504a2 @zhzy0077 has signed the CLA in #2125
  • e556c4a @SupenBysz has signed the CLA in #2119
  • be7f408 @east-shine has signed the CLA in #2113
  • 2ab4012 Merge pull request #2111 from code-yeongyu/fix/background-notification-idle-queue
  • 840c612 fix(background-agent): queue notifications for idle parent sessions
  • 235bb58 Merge pull request #2110 from code-yeongyu/fix/boulder-continuation-agent-check
  • ace1790 test(atlas): update agent check tests to match fixed behavior
  • 31eb7f5 Merge pull request #2108 from code-yeongyu/fix/issue-2100-reset-strategy-race-condition
  • 6b5622c Merge pull request #2107 from code-yeongyu/fix/issue-2054-hephaestus-model-opt-out
  • cf0d157 Merge pull request #2106 from code-yeongyu/fix/issue-2049-ultrawork-thinking-config
  • adf6226 fix(agents/utils.test): correct hephaestus github-copilot provider test expectation
  • 9f64e2a fix(agents/utils.test): correct hephaestus github-copilot provider test expectation
  • e00f461 fix(agents/utils.test): correct hephaestus github-copilot provider test expectation
  • da6c54e Revert "fix(model-requirements): add github-copilot to hephaestus requiresProvider"
  • 1d99fdf Revert "fix(model-requirements): add github-copilot to hephaestus requiresProvider"
  • de70c3a Revert "fix(model-requirements): add github-copilot to hephaestus requiresProvider"
  • 5e07dfe fix(atlas): allow Sisyphus as last agent when boulder targets atlas explicitly
  • 2acf6fa fix(model-requirements): add github-copilot to hephaestus requiresProvider
  • 7e58729 fix(model-requirements): add github-copilot to hephaestus requiresProvider
  • 6458fe9 fix(model-requirements): add github-copilot to hephaestus requiresProvider
  • 640d9fb Merge pull request #2109 from code-yeongyu/fix/issue-1815-1733-prompt-token-count
  • fc1b6e4 fix(delegate-task): add token counting and truncation to prevent context overflow
  • a0e57c1 fix(ralph-loop): prevent race condition in reset strategy between session ID update and TUI switch
  • 997db0e fix(no-hephaestus-non-gpt): add allow_non_gpt_model config opt-out
  • 565ab8c fix(ultrawork-model-override): se...
Read more

v3.8.5

24 Feb 09:46

Choose a tag to compare

✏️ Significantly Improved Editing Accuracy

This release is the result of @minpeter's careful and sustained work to properly fix the hashline implementation that had been incorrectly ported from oh-my-pi. The effort involved deep understanding of how models actually interpret and apply structured line references — the kind of problem that looks simple on the surface but isn't.

The outcome: agent editing accuracy has improved substantially. Based on our current assessment, this implementation now outperforms the original oh-my-pi version it was ported from.

Good test harness design matters here. It's easy to write tests that pass without reflecting real model behavior — writing ones that actually do requires understanding both sides of the fence.

Beyond hashline, a number of other bugs were also resolved in this cycle.

Big shoutout to @minpeter. 🎉


  • e997e00 Merge pull request #2088 from minpeter/feat/hashline-edit-error-hints
  • b8257dc fix(hashline-edit): tolerate >>> prefix and spaces around # in line refs
  • 365d863 fix(hashline-edit): use instanceof for hash mismatch error detection
  • 1785313 fix(hashline-read-enhancer): skip hashifying OpenCode-truncated lines
  • ac962d6 fix(hashline-edit): add same-line operation precedence ordering
  • d61c0f8 fix(hashline-read-enhancer): guard against overwriting error output with success message
  • a567cd0 fix(hashline-edit): address Oracle review feedback
  • 55ad429 fix(hashline-edit): widen non-numeric prefix detection and remove duplicate try-catch
  • c6a6989 fix(hashline-read-enhancer): simplify write tool output to line count summary
  • 2aeb96c fix(hashline-edit): improve error messages for invalid LINE#ID references
  • 5fd65f2 Merge pull request #2086 from code-yeongyu/refactor/hashline-legacy-cleanup
  • b03aae5 fix: remove accidentally committed node_modules symlink
  • 8c3a0ca refactor(hashline-edit): rename legacy operation names in error messages
  • 9a2e0f1 refactor(hashline-edit): remove unnecessary barrel re-exports of internal primitives
  • d28ebd1 refactor(hashline-edit): remove HASHLINE_LEGACY_REF_PATTERN and legacy ref compat
  • fb92bab refactor(hashline-edit): remove dead applyInsertBetween function
  • 5d30ec8 Merge pull request #2079 from minpeter/feat/hashline-edit-op-schema
  • f50f3d3 fix(hashline-edit): clarify LINE#ID placeholder to prevent literal interpretation
  • 833c26a sisyphus waits for oracle
  • 60cf2de fix(hashline-edit): detect overlapping ranges and prevent false unwrap of blank-line spans
  • c7efe8f fix(hashline-edit): preserve intentional whitespace removal in autocorrect
  • 54b756c refactor(hashline): change content separator from colon to pipe
  • 1cb3627 fix(hashline-read-enhancer): handle inline tag from updated OpenCode read tool
  • 08b663d refactor(hashline-edit): enforce three-op edit model
  • fddd6f1 @Firstbober has signed the CLA in #2080
  • e11c217 fix(tools/background-task): respect block=true even when full_session=true
  • 6ec0ff7 refactor(hashline-edit): align tool payload to op/pos/end/lines

Thank you to 1 community contributor:

  • @minpeter:
    • refactor(hashline-edit): align tool payload to op/pos/end/lines
    • refactor(hashline-edit): enforce three-op edit model
    • fix(hashline-read-enhancer): handle inline tag from updated OpenCode read tool
    • refactor(hashline): change content separator from colon to pipe
    • fix(hashline-edit): preserve intentional whitespace removal in autocorrect
    • fix(hashline-edit): detect overlapping ranges and prevent false unwrap of blank-line spans
    • fix(hashline-edit): improve error messages for invalid LINE#ID references
    • fix(hashline-read-enhancer): simplify write tool output to line count summary

v3.8.4

23 Feb 17:12

Choose a tag to compare

  • 9f804c2 fix(test): sync AGENTS_WITH_TODO_DENY with tool-config-handler implementation
  • 05c0483 test(hashline-edit): cover concise responses and anchor alias normalization
  • 86671ad refactor(hashline-edit): adopt normalized single-shape edit input
  • ab76802 refactor(hashline-edit): stabilize hashes and tighten prefix stripping
  • afec1f2 @DMax1314 has signed the CLA in #2068
  • 41fe6ad fix(tools/call-omo-agent): replace as any with Record type cast in session-creator
  • b47b034 chore(assets): regenerate JSON schema
  • a37a604 refactor(config): remove unused barrel exports
  • 7a01035 refactor(agents/prometheus): remove unused barrel exports
  • f1076d9 refactor(agents/atlas): remove unused barrel exports
  • 3a5aaf6 refactor(agents): remove unused barrel exports
  • 830dcf8 refactor(features): remove empty barrel files
  • 96d5141 refactor(hooks): remove dead hook files
  • b3a6aaa refactor(shared): remove dead utility files
  • 1f62fa5 refactor(tools/call-omo-agent): remove dead code submodules
  • 2428a46 refactor(features/background-agent): remove dead code submodules
  • b709fa8 fix(plugin/hooks): remove unnecessary as any cast
  • 0dc5f56 fix(shared): fix optional chaining on modelItem
  • cd6c9cb fix(cli/run): replace as any with Record type cast
  • e5aa08b fix(tools/delegate-task): replace as any with Record type cast
  • db15f96 fix(tools/call-omo-agent): replace as any with SessionWithPromptAsync type
  • ff0e9ac fix(tools/call-omo-agent): replace as any with SDKMessage interface
  • 07113eb fix(features/task-toast-manager): replace as any with ClientWithTui type
  • 2d3d993 fix(hooks/shared): replace as any with proper Record type cast
  • a82f4ee fix(hooks/thinking-block-validator): replace as any with typed interfaces
  • 0cbc6b5 fix(hooks/session-recovery): replace @ts-expect-error with proper type cast
  • ac3a9fd fix(hooks/anthropic-context-window-limit-recovery): remove @ts-ignore comments and fix parameter types
  • 41880f8 @imadal1n has signed the CLA in #2045
  • 35ab9b1 fix: deny todo tools for prometheus and sisyphus-junior when task_system enabled
  • 6245e46 feat(hooks): add Gemini-optimized ultrawork message with intent gate
  • 76da951 feat(agents): add Gemini intent gate enforcement overlay for Sisyphus
  • 9933c66 feat(model-fallback): disable model fallback retry by default
  • 2e845c8 feat(hooks): wire pluginConfig to preemptive-compaction hook factory
  • bcf7fff feat(recovery-strategy): apply compaction model override in context window recovery
  • 2d069ce feat(preemptive-compaction): apply compaction model override from agent config
  • 09314db feat(schema): add compaction model and variant override configuration
  • 32a838a feat(hooks): add compaction-model-resolver utility for session agent model lookup
  • edf4d52 Merge pull request #2041 from code-yeongyu/fix/rewrite-overmocked-tests
  • 0bae7ec chore(tests): remove duplicate test in background-update-check (cubic feedback)
  • 7e05bd2 refactor(tests): rewrite 5 over-mocked test files to test real behavior

v3.8.3

22 Feb 06:47

Choose a tag to compare

  • 07e8a7c feat(write-existing-file-guard): allow writes outside session directory

v3.8.2

22 Feb 06:35

Choose a tag to compare

🧪 Experimental: Gemini Model Support

We've added Gemini-optimized prompts for Sisyphus, Sisyphus-Junior, Prometheus, and Atlas agents. This is experimental and not yet recommended for production use — we're still iterating on prompt quality and compatibility. Feedback welcome if you want to test it out.


🔍 Better Grep Output

The files_with_matches mode now returns clean file paths without extra formatting clutter. Easier to scan, easier to pipe into other tools.


✍️ Hashline Edit Improvements

The edit tool got several reliability upgrades:

  • Autocorrect: Common edit mistakes are now automatically fixed
  • BOM/CRLF normalization: Handles Windows-style line endings and byte-order marks gracefully
  • File creation: Can now create new files when the target doesn't exist

🛠️ Reliability & Performance

  • Ripgrep throttling: CPU usage is now capped to prevent runaway searches from freezing your system
  • Resource leak fixes: Proper process cleanup on timeout, signal handling improvements
  • Agent notifications: You'll now get alerted when an agent is waiting for your input or needs permission

Contributors

Thanks to @JiHongKim98, @acamq, and @coleleavitt for their contributions to this release!


  • 4d7b98d bun
  • a3e4f90 refactor(background-agent): wire session-idle-event-handler into manager, add unit tests
  • c0636e5 feat(agents,hooks): wire Sisyphus Gemini overlays and add Gemini verification reminder
  • 49e885d feat(agents): wire Gemini prompt routing into Sisyphus-Junior, Atlas, Prometheus
  • bf33e6f feat(agents): add isGeminiModel detection function with TDD
  • da13a2f feat(agents): add Gemini-optimized prompts for Sisyphus, Sisyphus-Junior, Prometheus, Atlas
  • 02aff32 Merge pull request #2039 from code-yeongyu/fix/grep-formatter-files-mode
  • c806a35 fix(grep): format files_with_matches output as clean file paths
  • b175c11 Merge pull request #2009 from JiHongKim98/fix/ripgrep-cpu-throttle
  • 7b55cba Merge pull request #2030 from acamq/feature/agent-input-notifications
  • 6904cba Merge pull request #2029 from coleleavitt/fix/plug-resource-leaks
  • ac81e1d fix(hashline-edit): correct offset advancement and fuzzy index mapping in merge expand
  • 9390f98 fix(hashline-edit): integrate continuation/merge helpers into expand logic and strengthen tool description
  • e6868e9 fix(hashline-edit): align autocorrect, BOM/CRLF, and tool description with oh-my-pi
  • 5d1d87c feat(hashline-edit): add autocorrect, BOM/CRLF normalization, and file creation support
  • 116f17e fix: add proc.kill fallback when process group kill fails
  • a31109b fix: kill process group on timeout and handle stdin EPIPE
  • 9153023 fix: handle signal-killed exit code and guard SIGTERM kill
  • 6aa1e96 fix: plug resource leaks and add hook command timeout
  • f265e37 fix(notification): use permission.asked and main-session fallback
  • 931c0cd feat(notification): alert when agent asks questions or needs permission
  • 02017a1 fix(tools): address PR review feedback from cubic
  • dafdca2 fix(tools): throttle ripgrep CPU usage with thread limits and concurrency control

Thank you to 3 community contributors:

  • @JiHongKim98:
    • fix(tools): throttle ripgrep CPU usage with thread limits and concurrency control
    • fix(tools): address PR review feedback from cubic
  • @acamq:
    • feat(notification): alert when agent asks questions or needs permission
    • fix(notification): use permission.asked and main-session fallback
  • @coleleavitt:
    • fix: plug resource leaks and add hook command timeout
    • fix: handle signal-killed exit code and guard SIGTERM kill
    • fix: kill process group on timeout and handle stdin EPIPE
    • fix: add proc.kill fallback when process group kill fails

v3.8.1

22 Feb 03:38

Choose a tag to compare

🚀 Background Agent Refactoring & Hashline Edit Improvements

This patch release focuses on internal stability improvements and enhanced editing capabilities.

🔧 Background Agent Stability

The background agent system has been refactored for better maintainability and testability. Inline logic from manager.ts has been extracted into focused modules, with comprehensive unit test coverage added for all extracted components. This sets the foundation for more reliable background task management.

✏️ Hashline Edit Enhancements

The hashline edit tool now supports anchor insert modes for more precise text manipulation. New strict validation ensures insertions happen exactly where intended, preventing accidental edits. Boundary echo handling and chunking deduplication have also been improved for cleaner output.

📚 Documentation Updates

The agent-model matching guide has been rewritten with a developer personality metaphor, making it easier to understand which agent to use for different types of work.


This release includes contributions from the community. Thank you for helping make oh-my-opencode better!


  • a8f0300 Merge pull request #2035 from code-yeongyu/fix/background-agent-review-feedback
  • d1e5bd6 fix: address Oracle + Cubic review feedback for background-agent refactoring
  • ed43cd4 Merge pull request #2034 from code-yeongyu/refactor/background-manager-extraction
  • 8d66d56 test(background-agent): add unit tests for extracted modules
  • d53bcfb refactor(background-agent): extract inline logic from manager.ts into focused modules
  • c1ee4c8 @coleleavitt has signed the CLA in #2029
  • ead4a1b Merge branch 'origin/dev' into dev
  • 07ec7be Merge pull request #2026 from code-yeongyu/feat/hashline-edit-anchor-modes
  • 7e68690 fix(hashline-edit): address Cubic review issues - boundary echo, chunking dedup, empty stream alignment
  • 22b4f46 feat(hashline-edit): add anchor insert modes and strict insert validation
  • a39f183 feat(hashline-edit): add anchor insert modes and strict insert validation
  • f7c5c0b feat(sisyphus): add deep parallel delegation section to prompt
  • 022a351 docs: rewrite agent-model matching guide with developer personality metaphor