Skip to content

Release history

oh-my-openagent releases

omo; the best agent harness - previously oh-my-opencode

All releases

119 shown

No immediate action
v4.7.5 Bug fix

LSP MCP packaging fix

No immediate action
v4.7.4 Maintenance

Routine maintenance and dependency updates.

Review required
v4.7.3 Mixed
Breaking upgrade

Config migration, Ultrawork deduplication, LazyCodex quieting

Review required
v4.7.2 Maintenance

Routine maintenance and dependency updates.

No immediate action
v4.7.1 Bug fix

omo-codex fixes

Review required
v4.7.0 Breaking risk
Auth Breaking upgrade

LazyCodex updates + ULW loop + bug reports

No immediate action
v4.6.0 Breaking risk

OpenCode stability + LazyCodex install

Review required
v4.5.12 Mixed
Auth RBAC

Transitions, tool behavior, install hardening

No immediate action
v4.5.1 New feature

OpenCode 1.15 DB support

Review required
v4.5.0 Breaking risk
Auth Breaking upgrade

Publish safety, Ralph‑loop, Background‑Agent, Team‑Mode, Prompts‑Core

Config change
v4.4.0 Breaking risk
Breaking upgrade

security-research, race fix, model restore, tooling hardening, lsp removal

No immediate action
v4.3.1 Bug fix

Desktop crashes, agent duplicates, comment checker

Review required
v4.3.0 Breaking risk
Auth RBAC

Breaking changes — review before upgrading.

Upgrade now
v4.2.3 Breaking risk
Auth RCE / SSRF

rules-core, ast-grep-mcp, web overhaul

No immediate action
v4.2.2 Maintenance

Routine maintenance and dependency updates.

No immediate action
v4.2.1 Bug fix

Fallback error fix + Boulder session resolution

No immediate action
v4.2.0 Breaking risk

Prompt‑async gate fixes duplicates

Upgrade now
v4.1.2 Security relevant
Auth Breaking upgrade

Exclude hidden agents

No immediate action
v4.1.1 Bug fix

Background wake defer

Review required
v4.1.0 New feature
Dependencies

Boulder work tracking

v4.0.0 Breaking risk
⚠ Upgrade required
  • Enable Team Mode by setting `team_mode.enabled = true` in your config and restarting the service (off by default).
  • `delegate_task` now requires one goal per call when using the `deep` category; adjust workflows accordingly.
Breaking changes
  • `delegate_task` for `deep` category now enforces one goal per call; bundle goals into separate calls.
Notable features
  • Team Mode with orchestration via `team_create`, `team_send_message`, `team_task_create` and real‑time tmux layout.
  • Hyperplan skill – five adversarial agents dissect plans before code execution.
  • Security‑research skill – three vulnerability hunters + two PoC engineers audit codebases in parallel.
Full changelog

🎉 v4.0.0 — Finally, Team Mode

You waited. We cooked. Team Mode lands today.

This is the release that turns oh-my-opencode from "one agent with subagents" into a real multi-agent system — multiple agents, real-time coordination, side-by-side tmux visualization, all of it.

👥 Team Mode

A lead agent orchestrates a team of category-specialized members, all running in parallel and communicating through dedicated tools (team_create, team_send_message, team_task_create). Watch every member work simultaneously in a dedicated tmux layout — focus and grid windows let you zoom into one teammate without losing the bigger picture.

It powers everything new in this release:

  • hyperplan skill — 5 hostile agents tear apart your plan from orthogonal angles before a single line of code is written
  • security-research skill — 3 vulnerability hunters + 2 PoC engineers auditing your codebase in parallel, with severity calibrated by actual exploitability
  • Hand-tuned member prompts so the team contract isn't accidentally bypassed via delegate_task

Opt in: set team_mode.enabled = true in your config and restart opencode. Off by default — enable it when you want it.

🧠 Model-Specific Agent Prompts

GPT-5.2 and GPT-5.3-codex now ship with category-tailored system prompts. Oracle, Momus, and the deep category each get a model-specific overlay tuned to that model's strengths.

🛡️ Reliability Hardening

  • Ralph loop stops cascading runtime errors — retries are guarded, atlas re-attempts boulders, ultrawork has full retry coverage.
  • Desktop plugin boots cleanly without Bun on Electron — bun:sqlite is hidden from the Node ESM loader.
  • Agent name sanitization — backslashes/quotes can no longer poison agent launches.
  • Doctor catches unexpected failures with actionable diagnostics instead of silent exit 137.
  • Credit-balance fallback — low balance correctly classifies as quota_exceeded and triggers the fallback chain.
  • PostHog billing trimmed — feature flags disabled, plugin_loaded event removed.

📚 Docs

Team mode and tmux-subagent features documented end-to-end across EN / KO / JA / RU / ZH-CN READMEs. New AGENTS.md sections for team-mode and tmux-subagent internals.

⚠️ Behavioral Changes

  • delegate_task (deep category): one goal per call is now enforced. Bundle multiple goals into parallel calls, not one bundled call.
  • When team mode is enabled, members orchestrate via team_* tools, not delegate_task.

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

  • 6b49e3bd test agent runtime sort behavior
  • ee938aa0 fix full-suite isolation regressions
  • 102b5f96 fix(delegate-task): require one goal per deep call
  • 788fbec0 fix desktop plugin startup without Bun
  • 4bcbbdd9 Merge pull request #3832 from herjarsa/fix/desktop-electron-bun-protocol-compat
  • df48af33 Merge pull request #3830 from code-yeongyu/fix/posthog-billing-optimization
  • 98615104 @herjarsa has signed the CLA in code-yeongyu/oh-my-openagent#3832
  • 3a93a40e fix(desktop): hide bun:sqlite import from Node.js/Electron ESM loader
  • 8586cb89 fix(posthog): disable feature flags, remove plugin_loaded event for billing optimization
  • 10f9559c Merge pull request #3810 from code-yeongyu/fix/ralph-loop-retry-runtime-errors-v2
  • dfc7dfae feat(delegate-task): add GPT-5.3-codex specialized deep category prompt
  • 5eea7024 feat(agents): add GPT-5.2 specialized prompts for oracle and momus
  • ebe26eab fix(ralph-loop): guard runtime error retries
  • 83ec3528 merge dev into continuation runtime retry
  • 2c70938d test(ralph-loop): cover ultrawork runtime retry
  • 6a2d19d6 fix(atlas): retry boulder after runtime errors
  • cd88e356 chore(gitignore): ignore session/debugging artifacts and tool caches
  • 40ded422 chore(drafts): remove stale gpt-5.5 prompt drafts
  • 51908052 @oyi77 has signed the CLA in code-yeongyu/oh-my-openagent#3823
  • 1ad0fd4a Merge pull request #3748 from code-yeongyu/fix/simple-github-bugs-1948-3564
  • ef66516e Merge pull request #3801 from code-yeongyu/fix/directory-agents-non-string-output
  • 7bd863b2 Merge pull request #3813 from code-yeongyu/fix/agent-name-backslash-sanitize
  • d9ef03f1 test(agent): guard queueItem assertion against empty queue race
  • 25d183fb fix(agent): sanitize backslash/quote from agent name in launch() and background-executor
  • 66a6f42d fix(todo-continuation-enforcer): preserve overload countdown
  • 89c95995 fix(team-mode): gate tmux layout cleanup by config
  • b4791c85 fix(team-mode): keep tmux visualization in caller window
  • 675f7880 fix(team-mode): resolve caller tmux window target
  • 9dd0e9fb Merge pull request #3622 from MoerAI/fix/truncate-tool-error-output
  • 44948872 Merge pull request #3612 from MoerAI/fix/doctor-exit-137-handling
  • 462d774d Merge pull request #3610 from MoerAI/fix/credit-balance-too-low-fallback
  • 29713229 fix(doctor): catch unexpected failures and provide actionable diagnostics (fixes #3345)
  • a22416d2 fix(error-classifier): classify credit balance too low as quota_exceeded for fallback (fixes #3571)
  • 7ac11096 Merge pull request #3636 from lucasyounger/codex/fix-3629-worktree-plan-path
  • 37d981ef Merge pull request #3634 from auyua9/fix/ast-grep-pattern-hints
  • 0a7306c6 Merge pull request #3637 from ihoooohi/fix/claude-thinking-legacy-alias-collision
  • 7e43beaa Merge pull request #3620 from MoerAI/fix/sisyphus-prompt-plan-reference
  • 62a7356d Merge pull request #3621 from MoerAI/fix/skill-tool-respects-plugins-config
  • 9b87fd50 Merge pull request #3744 from Arcadi4/dev
  • 6a341fcb Merge pull request #3595 from samuele-ruffino96/feature/opencode-go-model-upgrade
  • f31860b1 fix(docs): resolve model table inconsistencies in installation guide
  • df7f64db fix(docs): correct Explore and Librarian fallback chains in installation guide
  • 467a4a5e fix(test): use toContain instead of providers[0].toBe for multi-provider entries
  • b7d77da8 fix(capabilities): add kimi-k2.6 to supplemental model entries
  • 1e93d37d docs(opencode-go): update docs and fallback chain tables to reflect glm-5.1, kimi-k2.6, qwen3.5-plus
  • 6cd40df4 feat(opencode-go): upgrade glm-5 → glm-5.1 and kimi-k2.5 → kimi-k2.6 in fallback chains
  • 0727d9a1 fix(opencode-go): replace non-existent minimax-m2.7-highspeed with qwen3.5-plus
  • ad2255e5 Merge pull request #2227 from DEAN-Cherry/docs/speed-up-fallback
  • d1a7c8f1 Merge pull request #3096 from s2mr/fix/git-master-language-agnostic-support
  • b0c7c9f0 Merge pull request #3811 from code-yeongyu/feat/readme-dori-image-update-v2
  • abba70cb Merge pull request #3691 from islee23520/chore/gpt-5.5-followup-cleanup
  • 4deecdf9 Merge pull request #3358 from lrq3000/patch-1
  • 56243933 Merge pull request #3783 from matchai/feat/walk-up-config-discovery
  • c04f7723 docs(readme): replace dated star-count copy in banner with timeless site catchphrases
  • 2bdd9121 docs(install): extend rebrand to all bunx/npx oh-my-* commands for consistency
  • 766cdaf8 docs: align GPT-5.5 model references
  • 3aa6ff90 Merge pull request #3741 from hashen10/patch-1
  • f940cb43 docs(install): Update installation commands for humans in documentation to oh-my-openagent
  • 13c70cff docs(config): document hierarchical config discovery
  • eb1e1047 refactor(config): tighten walk-up config discovery from oracle review
  • cc1d9cf0 feat(config): walk up directory tree to merge ancestor plugin configs
  • 47b5c566 fix(ralph-loop): retry runtime errors immediately
  • 3bf0b897 Merge pull request #3809 from code-yeongyu/feat/readme-dori-image-update
  • 8e171996 fix(ralph-loop): retry runtime errors immediately
  • a0be4963 docs(readme): update Sisyphus Labs banner to new Dori branding
  • 53fc2a57 fix(bug-report): keep required: true for latest version checkbox
  • fe0fcd56 Update bug report template for openagent
  • 01c8a2a9 feat(shared): add findProjectOpencodePluginConfigFiles walker
  • 44216a53 Merge pull request #3578 from xiaolai/fix/nlpm-agents-missing-frontmatter
  • 3749656a Merge pull request #3784 from matchai/chore/remove-redundant-env-restore
  • 9e4a621f Merge pull request #3008 from YanzheL/fix/configuration-schema-issues
  • 573a5301 Merge pull request #3006 from YanzheL/docs/fix-sisyphus-tasks-config-reference
  • 227c1149 Merge pull request #3044 from haimingZZ/docs/fix-install-guide-link
  • 17f51acd Merge pull request #3009 from YanzheL/fix/ollama-ndjson-markup
  • 3dd12545 Merge pull request #3007 from YanzheL/fix/example-schema-urls
  • cedcd2d8 Merge pull request #3808 from code-yeongyu/feat/team-mode
  • 35426eb2 docs(readme): add Vercel to adopters list across all languages
  • cf3e05c9 Merge pull request #3807 from code-yeongyu/feat/team-mode
  • 44de4c53 docs(readme): rebrand Sisyphus Labs banner to Dori across all languages
  • 612680a8 Merge pull request #3493 from code-yeongyu/feat/team-mode
  • 8bcd236b docs(readme): align English banner wording with Korean source of truth
  • 4e5980d7 fix(tmux): avoid Bun global in runner bundle
  • 8003d1a1 test(ci): isolate stateful tests in CI runner
  • 786b0651 test(background-task): mock notification shell chain
  • 2fd6be06 test(cli): update model fallback snapshots
  • 2d37df48 refactor(team-mode): use dedicated focus and grid windows for team layout
  • 503df291 fix(team-mode): register spawned sessions early
  • cb819307 fix(team-mode): stop tmux freeze when many teammates spawn
  • e6cd50cc fix(team-mode): preserve tmux focus during layout
  • b99325f2 fix(skills): make hyperplan deep member optional
  • 12484500 fix(keyword-detector): pin hyperplan roster hint
  • 8f48277e fix(builtin-commands): pin hyperplan roster contract
  • ca8732f8 fix(team-mode): reject incomplete hyperplan teams
  • ea5e3e03 fix(model): allow artistry category fallbacks
  • 267745fa test(plugin): remove forbidden assertions in event tests
  • d737f2e2 test(background-agent): remove forbidden assertions in manager tests
  • c90be7f9 feat(team-mode): align member and lead prompts with Claude Code free-code reference
  • f6643e7e fix(keyword-detector): yield to slash commands so /hyperplan executes its template
  • d8f89b69 fix(team-mode): preserve per-category model for kind:"category" members
  • cc178086 chore(schema): regenerate JSON schema for hyperplan-ultrawork keyword
  • 5c674820 feat(keyword-detector): add hyperplan-ultrawork combo + tuple refactor
  • 09fe4ca3 fix(hyperplan): align keyword detector and command template with mandatory plan handoff
  • 0b4390b1 feat(skills/hyperplan): mandate plan agent handoff after adversarial distillation
  • 9a0aec00 feat(skills): add hyperplan skill
  • 83449970 assets: regenerate oh-my-opencode schema with hyperplan
  • 3befe5fa feat(keyword-detector): add hyperplan toast and planner filtering to hook
  • 5af41606 feat(builtin-commands): register hyperplan builtin command
  • 65e26437 feat(keyword-detector): add hyperplan to detector types list
  • b32f2744 feat(keyword-detector): register hyperplan in keyword detectors array
  • f025a4ca feat(keyword-detector): add hyperplan keyword pattern, message and test
  • a75a24df feat(builtin-commands): add hyperplan command template
  • 592308de feat(builtin-commands): add hyperplan to command name type
  • 4af7d62f feat(config): add hyperplan to keyword detector type schema
  • 585ad6d8 feat(config): add hyperplan to builtin command schema
  • 91b7fcab fix(plugin): replace any type with explicit summarize overloads in event handler
  • 924dd853 fix(hephaestus): restore autonomy prompt section
  • b54922de fix(team-mode): forbid delegate-task in member guidance
  • 4d448778 fix(team-mode): reject empty team_create lead session override
  • 91c0d755 feat(keyword-detector): add per-keyword disable config
  • 25d94375 feat(keyword-detector): add team mode keyword detection
  • 2ffe5afe feat(shared): add supplemental model capability entries for team-mode
  • c79addb6 test(shared): expand migrate-legacy-config-file tests for team-mode
  • 34b659a3 feat(shared): update agent display names for team-mode
  • 20a66f70 feat(plugin): wire team-mode into tool-guard and transform hook creation
  • f3b9a8a0 assets: update omo.png
  • 22056bd9 docs(readme): update zh-cn README for team-mode
  • c142f6de docs(readme): update ru README for team-mode
  • 073328b8 docs(readme): update ja README for team-mode
  • 5c04f3a7 docs(readme): update ko README for team-mode
  • dcd5beb1 docs(readme): update en README for team-mode
  • d7d95646 docs: add AGENTS.md for team-mode and tmux-subagent features
  • dc027676 docs: update overview, features reference and AGENTS.md for team-mode
  • c3884cc5 docs(guide): update agent-model-matching with team-mode
  • 6e1df2cb docs(guide): add team-mode guide
  • 83eff39c assets: regenerate oh-my-opencode schema json with team-mode
  • 1168e3a5 test(perf): add plugin init team-mode resume-defer benchmark
  • a475e456 feat(cli): add doctor check for team-mode dependencies
  • 855c848b feat(opencode-skill-loader): adapt skill resolution and discovery for team-mode
  • 7fbefa4c feat(claude-code-loader): adapt plugin discovery for team-mode
  • 15a0e104 feat(background-agent): adapt task poller for team-mode work distribution
  • 00a66470 feat(background-agent): adapt idle event handler for team-mode sessions
  • a0d122b1 feat(background-agent): integrate team-mode into background manager
  • 417a368a feat(background-agent): extend types for team-mode background tasks
  • 2e6bb341 feat(builtin-commands): adapt commands and templates for team-mode
  • 39f27b91 feat(tools): wire team-mode into skill and subagent resolvers
  • 2078f9ca feat(tools): extend delegate-task types for team-mode subagents
  • fc31524d feat(tools): register team-mode skill tooling and update exports
  • 75fc915f test(agents): expand hephaestus and utils tests for team-mode
  • 527ab51a feat(agents): adapt momus agent for team-mode context
  • 98a69b93 feat(agents): adapt agent-skill-resolution for team-mode skills
  • a110c739 feat(agents): register team-mode in builtin and general agent definitions
  • 6327a7ac feat(agents): add available-skills resolution with tests
  • 79ba0e6f feat(hooks): add aggressive truncation strategy tests for context-window recovery
  • d2a28c19 feat(hooks): adapt session-recovery for team-mode session semantics
  • 473062d9 feat(hooks): export team-mode hooks from central index
  • d67e57ef feat(plugin): include team-mode in message transform and skill context
  • dabd35f2 feat(plugin): integrate team-mode into session events and synthetic idles
  • f882f04b feat(plugin): add team-mode gating to tool execute hooks
  • 47e0fbad feat(plugin): register team-mode tools and expand registry tests
  • 2258c009 feat(plugin-handlers): wire team-mode into agent, command and tool config handlers
  • 2c48cabb feat(plugin): initialize team-mode at plugin entry and config merge
  • ecd9cee2 feat(hooks): add team tool gating hook with tests
  • 438806e7 feat(hooks): add team member status handler with tests
  • 384132cb feat(hooks): add team member error handler with tests
  • de88241f feat(hooks): add team lead orphan handler with tests
  • c16c67c2 feat(hooks): add team idle wake hint handler with tests
  • bd768a46 feat(hooks): add team-mode status injector hook with tests
  • 7f8034c8 feat(hooks): add team mailbox injector hook with tests
  • 844dcd4e feat(builtin-skills): register team-mode skill in exports
  • c9fdb042 feat(builtin-skills): add team-mode skill implementation with tests
  • d3c020c4 feat(team-mode): export team-tools barrel
  • f2555fea feat(team-mode): add team tasks tools with tests
  • b71c6e19 feat(team-mode): add team query tools with tests
  • 379b3fde feat(team-mode): add team messaging tools with missing-session tests
  • f4327987 feat(team-mode): add team lifecycle tools with inline spec tests
  • a10ab16c feat(team-mode): export team-runtime barrel
  • c657dff8 feat(team-mode): add team runtime shutdown helpers and tests
  • cb1c7508 feat(team-mode): add team runtime resource cleanup with tests
  • 62d40908 feat(team-mode): add team runtime delete with background cancellation tests
  • 4645d56d feat(team-mode): add team runtime layout activation with tests
  • d958b7f1 feat(team-mode): add team runtime member dependency resolution
  • a65d54ca feat(team-mode): add team runtime member resolver with tests
  • 301e02cd feat(team-mode): add team runtime status query with tests
  • d9785c7c feat(team-mode): add team runtime create with tests
  • 51382c10 test(team-mode): add live tmux smoke test for team layout
  • f78b1e62 feat(team-mode): add sweep-stale-team-sessions with tests
  • 2b8096fc feat(team-mode): add resolve-caller-tmux-session helper with tests
  • eb61091f feat(team-mode): add rebalance-team-window command with tests
  • a13ef03f feat(team-mode): add close-team-member-pane command with tests
  • c5df7810 feat(team-mode): add tmux team layout creation and removal
  • 0f20a1b7 feat(team-mode): export team-mailbox barrel
  • 01aeeedc feat(team-mode): add team mailbox reservation logic
  • 2ce86ff9 feat(team-mode): add team mailbox poll with tests
  • 3f693339 feat(team-mode): add team mailbox ack with tests
  • 07368b46 feat(team-mode): add team mailbox send with tests
  • 85cc30a8 feat(team-mode): add team mailbox inbox with tests
  • 796143aa feat(team-mode): export team-tasklist barrel
  • b34cd874 feat(team-mode): add team tasklist test-support utilities
  • f7259373 feat(team-mode): add team tasklist update with tests
  • 205ce936 feat(team-mode): add team tasklist dependencies with tests
  • 4270af3a feat(team-mode): add team tasklist claim with tests
  • 04334844 feat(team-mode): add team tasklist list with tests
  • 031a7a4d feat(team-mode): add team tasklist get with tests
  • 6e0f6aef feat(team-mode): add team tasklist store with tests
  • 23e6a53e feat(team-mode): export team-state-store barrel
  • 274df1f2 feat(team-mode): add team state store resume logic with tests
  • 79fb12e2 feat(team-mode): add team state store locks with tests
  • 1bec921a feat(team-mode): add team state store with tests
  • 48bac223 feat(team-mode): export team-registry barrel
  • 2866d327 feat(team-mode): add team registry validator with tests
  • cf050dc6 feat(team-mode): add team spec input normalizer with tests
  • de30721f feat(team-mode): add team registry loader with normalization tests
  • b2359c0a feat(team-mode): add team registry path utilities with tests
  • a9102396 feat(team-mode): add team session registry with tests
  • 3a93cb77 test(team-mode): add integration test for team-mode lifecycle
  • 8c4c4ff6 feat(team-mode): add caller team-lead resolution with tests
  • 41d6e12f feat(team-mode): add member session resolution and routing logic
  • 8a42d7fd feat(team-mode): add member guidance and parser utilities
  • 783d7055 feat(team-mode): add core types, dependencies and type-level tests
  • 5e4ae881 test(tmux-subagent): expand zombie-pane test coverage
  • 49bb5dd8 test(tmux-subagent): add pane-state-querier runner tests
  • 8d3d8825 test(tmux-subagent): add manager project-directory resolution tests
  • 77655a7c test(tmux-subagent): expand manager test coverage
  • 680927d0 test(tmux-subagent): expand polling-manager test coverage
  • b6dcf05d test(tmux-subagent): expand action-executor test coverage
  • c8b22509 refactor(tmux-subagent): stabilize polling, execution and session lifecycle with runner
  • 90e6e0cd feat(openclaw): integrate typed tmux runner for external dispatch
  • 4a5e7cf2 feat(tmux): add window-spawn utility with tests
  • 13b3bd9e feat(tmux): add session-spawn utility with tests
  • ad315987 feat(tmux): add session-kill utility with runner tests
  • 56250a46 feat(tmux): add pane-spawn utility with runner tests
  • f93e15b2 feat(tmux): add pane-replace utility with tests
  • d9010204 feat(tmux): add pane-dimensions utility with tests
  • cfce0cc3 refactor(tmux): migrate pane-close to runner and expand test coverage
  • b9a40f0c refactor(tmux): migrate layout commands to typed runner
  • c9e544a6 refactor(tmux): export sweepTmuxSessionsWith and add runtime tests
  • 96161cc0 feat(tmux): introduce typed tmux command runner abstraction
  • ec121a73 feat(config): add team-mode configuration schema and merge support
  • caaa3d4c refactor(hephaestus): tighten GPT-5.5 prompt for outcome-first density
  • bcaae103 fix(directory-agents-injector): guard against non-string output.output
  • c3beb370 fix(doctor): detect gh when Bun.which misses it
  • 9c4bcebb fix(plugin): normalize bare schema refs
  • 9ba67633 fix(call-omo-agent): validate missing subagent type
  • f49afe7b refactor(agents): Add "max" to all codebase reasoning enums accordingly
  • 4c6fd2e5 chore(config): Allow option "max" for "reasoningEffort" field in schema
  • 9c7102b7 fix(aliases): stop rewriting canonical claude-opus-4-6-thinking
  • 828c2634 Fix #3629: resolve boulder progress from worktree plan
  • e7ad2b98 fix(ast-grep): restore pattern hints in tools
  • 2c78cc68 fix(tool-execute-after): cap excessively long tool output to prevent TUI flooding (fixes #3586)
  • 7806df10 fix(tool-registry): pass plugins config to skill tool for proper command filtering (fixes #3582)
  • 32e56c0e fix(agents): reference prometheus instead of conditional plan alias in prompts (fixes #3596)
  • 53e3061b docs(agents): add YAML frontmatter to AGENTS.md documentation files
  • 98566841 fix(git-master): align validation check with language-profile approach
  • fdc4376a docs(git-master): sync skill markdown with multilingual wording
  • 01d6a7d3 docs(git-master): generalize language profile guidance
  • 034c5fea docs(git-master): make mode triggers language-agnostic
  • b473593d docs: fix install guide model-matching link
  • 0e8f5dd1 docs(ollama): fix NDJSON code block language identifier
  • 2ebf146b docs(configuration): fix invalid JSON examples and schema issues
  • cbd7dac3 docs(examples): update schema URLs to oh-my-openagent
  • dc41de9a docs: fix Sisyphus Tasks config reference to match actual schema
  • b8c4f44c docs: add guide for speeding up fallback with proxy APIs

Thank you to 8 community contributors:

  • @Arcadi4:
    • chore(config): Allow option "max" for "reasoningEffort" field in schema
    • refactor(agents): Add "max" to all codebase reasoning enums accordingly
  • @matchai:
    • feat(shared): add findProjectOpencodePluginConfigFiles walker
    • feat(config): walk up directory tree to merge ancestor plugin configs
    • refactor(config): tighten walk-up config discovery from oracle review
    • docs(config): document hierarchical config discovery
  • @hashen10:
    • Update bug report template for openagent
  • @lrq3000:
    • docs(install): Update installation commands for humans in documentation to oh-my-openagent
  • @islee23520:
    • docs: align GPT-5.5 model references
  • @samuele-ruffino96:
    • fix(opencode-go): replace non-existent minimax-m2.7-highspeed with qwen3.5-plus
    • feat(opencode-go): upgrade glm-5 → glm-5.1 and kimi-k2.5 → kimi-k2.6 in fallback chains
    • docs(opencode-go): update docs and fallback chain tables to reflect glm-5.1, kimi-k2.6, qwen3.5-plus
    • fix(capabilities): add kimi-k2.6 to supplemental model entries
    • fix(test): use toContain instead of providers[0].toBe for multi-provider entries
    • fix(docs): correct Explore and Librarian fallback chains in installation guide
    • fix(docs): resolve model table inconsistencies in installation guide
  • @MoerAI:
    • fix(error-classifier): classify credit balance too low as quota_exceeded for fallback (fixes #3571)
    • fix(doctor): catch unexpected failures and provide actionable diagnostics (fixes #3345)
  • @herjarsa:
    • fix(desktop): hide bun:sqlite import from Node.js/Electron ESM loader
v3.17.15 Mixed
Notable features
  • Spawn shim parity hardening: stdio defaults, error propagation, PID reporting across Bun/Node
  • Reliability polish: session-notification tolerance and additional regression tests
Full changelog

🖥️ OpenCode Desktop Now Loads OmO Cleanly

If you've been on OpenCode Desktop (Electron) since 1.14.34 and watched the agent switcher silently refuse to list any OmO agents, this release is for you. The plugin would die at module evaluation with Cannot destructure property 'spawn' of 'globalThis.Bun' as it is undefined. because bun build --target bun inlines 25 top-level var { spawn } = globalThis.Bun; statements that crash the moment Node runs them.

The fix replaces every from "bun" spawn import with a runtime shim that uses static node:child_process imports — so the bundler never emits globalThis.Bun destructures in the first place. On real Bun it still goes straight to Bun.spawn for the fast path.

grep -c '} = globalThis.Bun;' dist/index.js → 0 (was 25).

All 7 OMO agents (atlas / explore / librarian / multimodal-looker / oracle / prometheus / sisyphus) now load cleanly on Desktop. Fixes #3797, closes the long tail from #3794 / #3721 / #3762.

🔁 Runtime Fallback No Longer Infinite-Loops On Itself

Thanks to @paolo-notaro — when your fallback_models chain happened to include the same model that just failed, the runtime fallback hook would re-select it and spin forever. Now it correctly skips identity matches and walks to the next entry. (#3802)

🛠️ Spawn Shim Parity Hardening

Cubic and Oracle review caught a few cross-runtime mismatches in the new shim that this release also fixes:

  • Default stdio matches Bun (["ignore", "pipe", "inherit"]) instead of Node's ["pipe", "pipe", "pipe"] — prevents OpenClaw shell-command callers from hanging on cat-style processes that read stdin.
  • Spawn errors propagateproc.exited now rejects with the original ENOENT (etc.) on Node fallback instead of silently resolving to exit code 1.
  • spawnSync.pid returns the real PID instead of the placeholder -1.

Same defaults applied to spawn-with-windows-hide so the Windows path stays consistent.

🧹 Reliability Polish

  • session-notification-sender now tolerates shell promises that don't expose .nothrow (older Bun shells).
  • New regression tests cover default-agent sort ordering and the input-needed idle timer cleanup.

  • 10684857 Merge pull request #3798 from code-yeongyu/fix/node-runtime-compat
  • 9dd0e147 fix(bun-spawn-shim): match Bun.spawn semantics in Node fallback
  • 677b78fe test(agents): cover default-agent sort shim ordering
  • 4c426a53 test(hooks): cancel idle notification timer in input-needed test
  • 46f6fa40 prevent infinite loop when fallback model equals current model
  • 953280eb @paolo-notaro has signed the CLA in code-yeongyu/oh-my-openagent#3802
  • d800fec6 fix(runtime-fallback): prevent infinite loop when fallback model equals current model
  • e9d7dca6 fix(session-notification): tolerate shell promises without nothrow
  • f8defe25 fix(node-runtime-compat): harden Bun spawn shim
  • 3ddc757b fix(bun-spawn-shim): eliminate globalThis.Bun top-level destructures for Electron/Node compat
  • f178ea32 fix(electron-compat): prepend globalThis.Bun shim to prevent Electron/Node crash

Thank you to 1 community contributor:

  • @paolo-notaro:
    • fix(runtime-fallback): prevent infinite loop when fallback model equals current model
v3.17.14 Bug fix

Fixed premature CLI exit when background tasks are active.

Full changelog
  • 723df5f1 Merge pull request #3796 from code-yeongyu/fix/bun-sqlite-dynamic-import
  • aae619c5 fix(ultrawork): align lazy sqlite fallback test
  • c537e840 fix(ultrawork): handle bun:sqlite import failure directly
  • f4a225b6 fix(ultrawork): lazy-load bun:sqlite to support Node/Electron runtime
  • 61ea99a7 fix(process-cleanup): add test seam to prevent process.exitCode contaminating bun runner
  • 32fab88d fix(process-cleanup): add test seam to prevent process.exitCode contaminating bun runner
  • ad535cd2 fix(process-cleanup): isolate test and avoid checking process.exitCode directly
  • 45452a03 Merge pull request #3731 from yizhifengye/fix/process-cleanup-infinite-loop-epipe
  • fd62f5b0 Merge pull request #3639 from auyua9/fix/fatal-cleanup-exit
  • ef7ac522 Merge pull request #3771 from tw-yshuang/fix/atlas-pending-continuation-race
  • b43f849f Merge pull request #3791 from code-yeongyu/fix/parentSessionId-typo
  • 6323fa8e fix(background-agent): fix parentSessionID -> parentSessionId typo causing TS build failure
  • a63d6e32 @brooksbUWO has signed the CLA in code-yeongyu/oh-my-openagent#3790
  • e699f338 Merge pull request #3455 from CHLK/fix/cli-run-premature-exit-with-background-tasks
  • 9c8aab9f Merge pull request #3420 from grandmaster451/fix-version-comparison
  • 8c8522ee Merge pull request #3415 from lightrabbit/fix/skill-mcp-stdio-cwd
  • 7b28298b Merge pull request #3414 from garnetlyx/fix/sandbox-cache-availability-check
  • 8fbb4523 @Biemmmmm has signed the CLA in code-yeongyu/oh-my-openagent#3785
  • 56e40449 fix(atlas): block continuation while delegated tasks are pending
  • 875fffb7 fix(background): exit after fatal cleanup
  • 49c2a402 fix(background-agent): detach error listener before running body to stop re-entrant log loop
  • eaa3837d Merge remote-tracking branch 'origin/dev' into fix/cli-run-premature-exit-with-background-tasks
  • dd95d594 fix(cli-run): cover all terminal paths for background task marker cleanup
  • aa90cff9 fix(cli-run): prevent premature exit when background tasks are active
  • 003e45ab fix(auto-update): use semantic version comparison instead of string equality
  • df172ac3 fix(skill-mcp): pass workspace directory as cwd to stdio MCP processes
  • 177c51b6 fix: use in-process flag instead of existsSync for cache availability

Thank you to 7 community contributors:

  • @garnetlyx:
    • fix: use in-process flag instead of existsSync for cache availability
  • @lightrabbit:
    • fix(skill-mcp): pass workspace directory as cwd to stdio MCP processes
  • @grandmaster451:
    • fix(auto-update): use semantic version comparison instead of string equality
  • @CHLK:
    • fix(cli-run): prevent premature exit when background tasks are active
    • fix(cli-run): cover all terminal paths for background task marker cleanup
    • Merge remote-tracking branch 'origin/dev' into fix/cli-run-premature-exit-with-background-tasks
  • @yizhifengye:
    • fix(background-agent): detach error listener before running body to stop re-entrant log loop
  • @auyua9:
    • fix(background): exit after fatal cleanup
  • @tw-yshuang:
    • fix(atlas): block continuation while delegated tasks are pending
v3.17.13 Bug fix
Notable features
  • Add cmux as notification provider
Full changelog

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.
  • Install and publish workflow hardening, including safer release sequencing and package/install fixes.

Commit Summary

  • fa255e14 test(create-managers): align openclaw mock with refactored BackgroundManager config object
  • dd4166cb test(session-notification): provide chainable Bun shell mock for sender tests
  • ce5bcd1d test(call-omo-agent): align background task fixtures with normalized field names
  • 63170f4d test(lsp): use named tmpdir import to avoid node:os mock leak
  • 4e763fb0 test(team-mode/team-worktree): use named tmpdir import to avoid mock leak
  • 700ba1e5 test(unstable-agent-babysitter): align task fixture with sessionId field
  • 7fefb59a test(stop-continuation-guard): rename parentSessionId/parentMessageId in task fixture
  • 65c1b509 test(background-agent): align manager test fixtures with normalized field names
  • 3ae9f5f1 fix(background-agent): prevent false task completion on status API outage
  • 4f32ecd7 test(deps): avoid Bun-specific path metadata
  • 10453547 test(deps): cover picomatch security floor
  • fe9b7163 fix(deps): bump picomatch to patched release
  • 1a881b37 test(agents): cover OpenCode Agent.list sort with runtime-name prefixes
  • 81d36ae7 test(cli-installer): cover telemetry shutdown failure isolation
  • e395eadf feat(ralph-loop): add loop session recovery state tracker
  • 6a8bdcaa feat(team-mode): add resolveCallerTeamLead helper
  • 9ba3b574 @tw-yshuang has signed the CLA in code-yeongyu/oh-my-openagent#3771
  • 9f60eaee @netizenXuan has signed the CLA in code-yeongyu/oh-my-openagent#3770
  • 6c51eac8 @claudianus has signed the CLA in code-yeongyu/oh-my-openagent#3767
  • e17850cb Merge pull request #3754 from code-yeongyu/refactor/background-task-naming-cleanup
  • da251c9b refactor(background-agent): normalize task ID field naming
  • 054ade9c @nerored has signed the CLA in code-yeongyu/oh-my-openagent#3752
  • 1eadc26e Merge pull request #3750 from code-yeongyu/fix/posthog-keep-only-dau
  • 425d0300 docs(privacy): drop diagnostics retention reference (no diagnostics events collected)
  • 0d89294a docs(telemetry): align README + installation guide + privacy policy with single-event scope
  • d8d061c2 docs(privacy): narrow telemetry scope to omo_daily_active only
  • 92dab928 refactor(telemetry): narrow PostHog client and mark omo_daily_active anonymous
  • b8a5f27d refactor(telemetry): drop plugin_loaded capture from plugin entry
  • 14568db2 refactor(telemetry): drop run lifecycle events and captureException from runner
  • be2eee63 refactor(telemetry): drop install events from cli-installer
  • 468e42f5 Merge pull request #3749 from code-yeongyu/fix/readonly-agent-delegation
  • bae62ab5 fix(agents): allow Momus and Metis delegation
  • b88e32cb Merge pull request #3678 from MoerAI/fix/spawn-windows-hide-env
  • c7da46ea Merge pull request #3679 from MoerAI/fix/file-uri-rejection-explanation
  • 6f79968a Merge pull request #3701 from MoerAI/fix/context-window-monitor-pct-clamp
  • bd41344c Merge pull request #3708 from mrosnerr/feat/cmux-notification-provider
  • 586bb3f5 Merge pull request #3711 from mrosnerr/fix/notification-scheduler-platform
  • 793f24a6 Merge pull request #3715 from mrosnerr/fix/messages-transform-hook-isolation
  • 0c39358e fix(keyword-detector): require skill evaluation in analyze mode
  • 606f93e0 @Arcadi4 has signed the CLA in code-yeongyu/oh-my-openagent#3744
  • f8b22e1f @hashen10 has signed the CLA in code-yeongyu/oh-my-openagent#3741
  • a8744222 @panoskava has signed the CLA in code-yeongyu/oh-my-openagent#3739
  • 69a4b2f4 fix(messages-transform): isolate hook failures so tool-pair-validator always runs
  • 384bc53b fix(notification): resolve platform in scheduler callbacks instead of using stale init value
  • 763ff7e8 feat(notification): add cmux as notification provider
  • 07064a96 fix(context-window-monitor): clamp displayed context status percentages so the directive stays trustworthy (fixes #3655)
  • 111b7968 fix(resolve-file-uri): explain project boundary restriction in rejection warning (fixes #3554)
  • 2f3291d2 fix(bun-install): forward process.env so child bun install inherits proxy settings (fixes #3528)

Thank you to 2 community contributors:

  • @MoerAI:
    • fix(bun-install): forward process.env so child bun install inherits proxy settings (fixes #3528)
    • fix(resolve-file-uri): explain project boundary restriction in rejection warning (fixes #3554)
    • fix(context-window-monitor): clamp displayed context status percentages so the directive stays trustworthy (fixes #3655)
  • @mrosnerr:
    • feat(notification): add cmux as notification provider
    • fix(notification): resolve platform in scheduler callbacks instead of using stale init value
    • fix(messages-transform): isolate hook failures so tool-pair-validator always runs
v3.17.12 Bug fix

Fixed Sisyphus silently falling back to claude-opus-4.7 when using non-Claude models due to overly broad error handling.

Full changelog

Fixes the "Sisyphus randomly drops to claude-opus-4.7" bug

If you're on 3.17.x and noticed Sisyphus silently jumping back to claude-opus-4-7 while you were running it on GPT-5.4, GLM, Kimi, or any non-Claude model: this release fixes that.

What was happening

Commit 034744cb (Apr 22, "retry forbidden provider errors") added bare "403" and "forbidden" substrings to the retryable-error pattern list. The intent was to retry the specific Forbidden: Selected provider is forbidden case from PR #3706, but bare-substring matching is greedy: it caught any error message containing those tokens, including:

  • Tool-level 403s (e.g. webfetch hitting a guarded URL)
  • File-permission "forbidden" messages
  • Unrelated upstream errors that happened to spell "forbidden" / "403"

When the classifier returned true on those false positives, event.ts armed setPendingModelFallback("sisyphus", ...), which immediately advanced to the first entry of Sisyphus' fallback chain, claude-opus-4-7. So a non-Claude run would silently jump to opus 4.7 with no visible model-level error.

Fix

Replaced the bare patterns with the specific phrases the original PR was actually targeting:

- "403",
- "forbidden",
+ "selected provider is forbidden",
+ "provider is forbidden",

The original "Selected provider is forbidden" case still retries correctly. Unrelated 403 / forbidden messages now stay non-retryable, so your configured model is no longer hijacked. Two regression tests lock the new behavior down.

Reported by ilove_borshch in #omo-help. Thanks for the precise repro.


  • f7270a0f fix(model-error-classifier): scope forbidden-provider retry to specific phrase
v3.17.11 New feature
Notable features
  • Manual QA gate added to GPT‑5.5 prompts
  • Dig‑deeper trio mechanism introduced for deeper analysis
  • Anti‑fallback logic implemented in prompt processing
Full changelog
  • 1a64060c feat(agents): strengthen gpt-5.5 prompts with manual QA gate, dig-deeper trio, anti-fallback
  • a469abd3 @guyua9 has signed the CLA in code-yeongyu/oh-my-openagent#3733
v3.17.10 New feature
Notable features
  • Automatic fallback to next provider on insufficient balance or quota exhaustion
  • Background task retry timelines with session links for debugging failed attempts
  • Native deep-category prompts for claude-opus-4-7 and gpt-5.5
Full changelog

What's New in v3.17.10

Note on versioning: v3.17.7 through v3.17.9 were partial publishes during a Trusted Publishing rollout (a few platform packages couldn't ship while their npm-side trust config was still being put in place). v3.17.10 is the first complete release with all platform binaries shipped together. Please skip the in-between versions.

Smarter Fallback When Credits Run Out

When a provider returns "insufficient balance", "no credits", or "forbidden", the runtime now treats it the same as quota exhaustion and automatically falls back to the next configured model. You no longer get hard failures the moment one of your accounts runs dry — the agent keeps working with a different provider. (#3519)

This applies to both your main session and any background tasks spawned during the run.

Background Tasks Now Show Their Retry History

Background tasks that recovered from a transient failure now render a retry timeline with links to each retry session. If a task succeeded only after 2-3 attempts, you can see exactly when each retry happened and what session it ran in — much easier to diagnose flaky models or providers.

Sync task() calls also replay session registration after runtime errors, so retried tasks no longer get orphaned.

Day-1 Support for GPT-5.5

The new claude-opus-4-7 and gpt-5.5 models now have native deep-category prompts tuned to their behaviour. Delegating to category="deep" automatically uses the right system prompt.

Faster Compaction, Faster Context Window Math

Four small but cumulative perf wins:

  • Hashline edit uses write-metadata line counts instead of re-reading files (fewer disk hits per edit)
  • Compaction reuses message update parts when the tail has no text (less work on every prompt)
  • Context window usage is now cached per session (no recomputation across hooks)
  • Background agent indexes tasks by parent session (faster lookups when many tasks fan out)

If you've felt the agent get a tiny bit snappier on long sessions, this is why.

Plugin Auto-Updater No Longer Reads the Wrong package.json

When oh-my-opencode runs from a flat-install directory (e.g. some Claude Code plugin sandboxes), the auto-update checker was reading a sibling package.json and reporting bogus versions. It now prefers the loaded module's own package.json, so version checks and update prompts are accurate. (#3718)

Behind the Scenes — npm Trusted Publishing

The release pipeline migrated from long-lived npm tokens to OIDC trusted publishing (OpenSSF standard). Every version is now published with a short-lived, workflow-scoped credential, with provenance attestations signed by sigstore. No user-facing change, but means future releases are no longer at risk of token-expiry outages — a problem that caused the v3.17.7-v3.17.9 partial publishes during this rollout.

A new preflight-trust job verifies all 24 platform packages have a trusted publisher configured before the version is bumped. If any package is missing trust config, the workflow fails fast with a list of npm.com URLs to fix — preventing future partial publishes.


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.
  • Install and publish workflow hardening, including safer release sequencing and package/install fixes.

Commit Summary

  • 9a61c607 fix(ci): treat npm OIDC exchange 201 as success in preflight
  • ab5216f6 feat(ci): add preflight-trust gate before version bump
  • 017d48fa @yizhifengye has signed the CLA in code-yeongyu/oh-my-openagent#3731
  • fd85dad9 fix(ci): strip _authToken from .npmrc so OIDC takes precedence
  • 48fc7bd4 fix(ci): switch npm publish to OIDC trusted publishing
  • 216283e2 @aaronkyriesenbach has signed the CLA in code-yeongyu/oh-my-openagent#3727
  • 002297b3 Merge pull request #3718 from ismetanin/fix/cached-version-per-plugin-sandbox
  • 5291ee7d fix(auto-update-checker): prefer loaded module's package.json over flat-install candidates
  • d65bc873 feat(agents): add gpt-5.5 native deep category prompt
  • 766eedd6 Merge pull request #3706 from unclok/fix/retry-recovery-and-observability
  • 05a15f75 Merge branch 'dev' into fix/retry-recovery-and-observability
  • ea07f284 Merge pull request #3556 from MoerAI/fix/fallback-credit-exhaustion
  • 6850cb6d Merge branch 'dev' into fix/fallback-credit-exhaustion
  • 7adb7259 Merge remote-tracking branch 'origin/dev' into fix/retry-recovery-and-observability
  • b8652db5 @deopa0402 has signed the CLA in code-yeongyu/oh-my-openagent#3713
  • 483e11ad @unclok has signed the CLA in code-yeongyu/oh-my-openagent#3706
  • 0dd455e7 fix(delegate-task): ignore stale sync session errors
  • 18566570 fix(model-fallback): clone session fallback chains
  • 2237c1ac fix(background-agent): guard stale launch errors and retry links
  • 27fb2d5e test(plugin): clean up event handler test helpers
  • 078e4962 fix(delegate-task): replay sync retry session registration
  • fbaeb032 fix(todo-continuation): avoid duplicate progress reset
  • ebcd6edf perf(hashline): use write metadata line counts
  • 24201ea9 perf(background-agent): index tasks by parent session
  • eb722aa9 perf(compaction): reuse message update parts for no-text tails
  • ece8fd4f perf(shared): cache context window usage per session
  • 3fc9e6ba Merge remote-tracking branch 'origin/dev' into opencode/mighty-wolf
  • 79054ea3 feat(background-task): render retry timelines and links
  • 25548f25 fix(model-fallback): retry forbidden provider errors
  • 613e4a6c fix(delegate-task): retry sync tasks after runtime session errors
  • a4968a3d feat(background-task): track retry attempts across sessions
  • cc3cca7c fix(model-fallback): expose session fallback chains to background tasks
  • 328df081 fix(test): update provider-matrix tests to expect fallback on quota exhaustion
  • 59493002 fix(error-classifier): match insufficient balance/funds as quota_exceeded
  • 034744cb fix(model-error-classifier): retry forbidden provider errors
  • fbf130ec fix(test): update integration tests to expect fallback on quota exhaustion
  • 7488c527 fix(runtime-fallback): trigger fallback on quota/credit exhaustion (fixes #3519)

Thank you to 4 community contributors:

  • @MoerAI:
    • fix(runtime-fallback): trigger fallback on quota/credit exhaustion (fixes #3519)
    • fix(test): update integration tests to expect fallback on quota exhaustion
    • fix(error-classifier): match insufficient balance/funds as quota_exceeded
    • fix(test): update provider-matrix tests to expect fallback on quota exhaustion
  • @unclok:
    • fix(model-error-classifier): retry forbidden provider errors
    • fix(model-fallback): expose session fallback chains to background tasks
    • feat(background-task): track retry attempts across sessions
    • fix(delegate-task): retry sync tasks after runtime session errors
    • fix(model-fallback): retry forbidden provider errors
    • feat(background-task): render retry timelines and links
    • Merge remote-tracking branch 'origin/dev' into opencode/mighty-wolf
    • fix(delegate-task): replay sync retry session registration
    • test(plugin): clean up event handler test helpers
    • fix(background-agent): guard stale launch errors and retry links
    • fix(model-fallback): clone session fallback chains
    • fix(delegate-task): ignore stale sync session errors
    • Merge remote-tracking branch 'origin/dev' into fix/retry-recovery-and-observability
  • @ismetanin:
    • fix(auto-update-checker): prefer loaded module's package.json over flat-install candidates
  • @acamq:
    • Merge pull request #3718 from ismetanin/fix/cached-version-per-plugin-sandbox
v3.17.6 Breaking risk
Breaking changes
  • HAU (hourly active users) metric removed from PostHog telemetry
  • plugin_loaded event deduped to once per UTC day per machine
  • Task system default behavior aligned across runtime paths
Notable features
  • Native Sisyphus prompts for Claude Opus 4.7 and Kimi K2.x
  • Hephaestus GPT-5.5 rewritten around outcome-first delegation
  • Default model set to gpt-5.5 for oracle, hephaestus, and deep categories
Full changelog

💸 PostHog Cost Reduction (the headline)

MAU more than doubled in 12 days (~30K → ~60K) and our PostHog event spend was rising faster than the user count. Two telemetry changes to keep us inside the free tier without losing any signal we actually use:

  • omo_hourly_active (HAU) removed. Daily activity (omo_daily_active) is preserved — DAU is plenty for retention math, the hourly granularity was 24x'ing event volume per active user for negligible analytic value.
  • plugin_loaded deduped to once per UTC day per machine. Restarting opencode 50 times in a day no longer fires 50 plugin_loaded events. Independent dedup state from omo_daily_active, so the two dimensions cannot overwrite each other.

No user-facing behavior change. Existing posthog-activity.json files keep loading without crashing — old lastActiveHourUTC fields are silently ignored on the next write.

🤖 Native Sisyphus prompts for Claude Opus 4.7 and Kimi K2.x

If you run Sisyphus on Claude Opus 4.7 or Kimi K2.6, the prompt is now hand-tuned per model instead of reusing the generic Opus chain. Both variants tighten the delegation contract and reinforce the "stop guessing, use the tools" discipline that frontier models keep slipping on.

🛠️ Hephaestus GPT-5.5 rewrite

Hephaestus on GPT-5.5 has been re-architected around outcome-first delegation with a Codex 5.2 / Amp prompt distillation. End-to-end manual QA on full-delegation tasks is now mandatory — agents that own the deliverable also have to actually USE it before claiming done. Surface-matched QA tools (terminal for TUI, Playwright for web, curl for HTTP) are part of the contract, not optional.

⚙️ Quality-of-life

  • gpt-5.5 is now the default for oracle, hephaestus, and deep categories (with auto-migration from gpt-5.4).
  • Ralph loop no longer fires idle-continuation while background tasks are still running.
  • doctor parses multi-slash model IDs and stops warning on resolved provider capabilities.
  • Frontier agents (Opus 4.7, dotted Opus, GPT-5.5 Sisyphus) get the right tool whitelist; stale frontier tool denies are cleared on agent build.
  • posthog startup no longer crashes on Bun runtimes where os.cpus() hits a /sys/firmware permission error.
  • Several smaller fixes across tmux fallback ports, plugin handlers, file-reference env-var expansion, skill resolution after agent overrides, and dev-browser provider gating.

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.

Commit Summary

  • 4eb597b1 Merge pull request #3698 from code-yeongyu/fix/posthog-cost-reduction
  • 90c2c9c3 Merge pull request #3697 from code-yeongyu/feat/sisyphus-kimi-k2-6
  • 669e0667 fix(telemetry): dedupe plugin_loaded event to once per UTC day
  • 7a3a835a feat(sisyphus): add Kimi K2.x prompt variant
  • 58e4b8f5 fix(telemetry): remove PostHog HAU tracking, keep DAU only
  • 84287f1d test(todo-continuation): make countdown toast test deterministic
  • 2483dc73 fix(agents): restore Opus Sisyphus prompt contracts
  • c3fabaaf refactor(agents): rewrite Hephaestus gpt-5.5 around outcome-first delegation contract
  • 886845b7 @FurryWolfX has signed the CLA in code-yeongyu/oh-my-openagent#3695
  • 6103df05 feat(agents): restore deep-work emphasis on Hephaestus gpt-5.5
  • 7a89b981 refactor(agents): re-style Hephaestus gpt-5.5 in Codex 5.2 prompt structure
  • 4aae4025 refactor(agents): rewrite Hephaestus gpt-5.5 prose-dense from Codex 5.2 + Amp distillation
  • 13651738 @javimarttinn has signed the CLA in code-yeongyu/oh-my-openagent#3687
  • 6775dd12 feat(agents): mandate end-to-end usage validation on Hephaestus gpt-5.5 delegation
  • c3b98c4b feat(agents): mandate surface-matched manual QA tools on Opus 4.7 full delegation
  • 9e7b3910 feat(agents): require manual end-to-end QA on full-delegation Opus 4.7 tasks
  • 9feb9f6f refactor(agents): distill SMART production-prompt patterns into Opus 4.7 Sisyphus
  • 241fb70a test(delegate-task): add background-task test coverage
  • e1b2fa9a test(call-omo-agent): add sync-executor test coverage
  • bda7fdbb test(background-agent): add spawner test coverage
  • 2024c0cb feat(agents): wire Claude Opus 4.7 support into Sisyphus agent
  • 41d4cbe8 feat(agents): add Claude Opus 4.7 native Sisyphus prompt builder
  • 215c8f23 feat(agents): add isClaudeOpus47Model type guard
  • 8ad50b7e docs(agents): replace ZWSP policy with sort-shim policy
  • 333ad3aa refactor(agents): drop ZWSP prefixes from agent display names
  • dffe5a30 feat(agents): add narrowly-scoped agent sort shim and install at plugin entry
  • 557d66fc Merge pull request #3675 from code-yeongyu/fix/ralph-loop-remove-recovery-window
  • c2a41a35 Merge pull request #3674 from code-yeongyu/fix/doctor-parse-multi-slash-model
  • fe428ab0 Merge pull request #3673 from code-yeongyu/fix/single-task-directive-no-refuse
  • bde2955f fix(ralph-loop): remove stale error recovery window
  • 69c37e39 test(ralph-loop): cover non-abort error continuation
  • e95a37fd fix(doctor): parse multi-slash model IDs
  • c27d52e2 fix(atlas): replace single task refusal directive
  • 2e6b3b7f Merge pull request #3669 from code-yeongyu/fix/ralph-loop-zwsp-agent
  • baf3e939 Merge pull request #3671 from code-yeongyu/fix/file-reference-env-var-expansion
  • 1f9d9e3d Merge pull request #3672 from code-yeongyu/fix/ralph-loop-bg-task-guard
  • ae7cdccb Merge pull request #3670 from code-yeongyu/fix/default-agent-config-key-normalization
  • d0dee70f fix(ralph-loop): skip idle continuation during background tasks
  • f429e539 test(ralph-loop): cover background task idle guard
  • a46b7b82 fix(file-reference-resolver): expand env vars in path references
  • 9081475e fix(plugin-handlers): normalize default agent runtime lookup
  • c92f8416 fix(ralph-loop): normalize continuation agent names
  • 5e4aa8b8 Merge pull request #3667 from code-yeongyu/fix/dev-browser-provider-gating
  • f1d4eb78 fix(skill-context): filter dev-browser as provider-gated
  • 0d3eed17 fix(builtin-skills): gate dev-browser by provider selection
  • a835fefe Merge pull request #3665 from code-yeongyu/fix/posthog-arch-cpus-crash
  • ee260fbc Merge pull request #3666 from code-yeongyu/fix/minimax-kimi-thinking-param
  • 194d6682 Merge pull request #3668 from code-yeongyu/fix/skills-override-resolution
  • dbf0bb9b test(agents): cover skills override prompt injection
  • aeb44191 fix(agents): resolve skills after agent overrides
  • 71c29c8f fix(model-capabilities): disable thinking for minimax and non-thinking kimi
  • d1bc25a6 fix(posthog): guard CPU telemetry collection
  • d32300a6 @islee23520 has signed the CLA in code-yeongyu/oh-my-openagent#3664
  • 1da7df1a Revert "Merge pull request #3657 from code-yeongyu/refactor/replace-zwsp-with-real-spaces"
  • 98234629 Merge pull request #3661 from code-yeongyu/fix/doctor-heuristic-model-status
  • a696c8a6 fix(hooks): apply Sisyphus GPT-5.5 variant
  • f1a11f2c Merge pull request #3657 from code-yeongyu/refactor/replace-zwsp-with-real-spaces
  • 136a54f4 fix(doctor): avoid warnings for resolved model capabilities
  • 8e785963 fix(model-capabilities): recognize current provider aliases
  • f100a856 fix(agents): keep object keys clean by separating list display from runtime name
  • 62c19ce0 Merge pull request #3659 from code-yeongyu/fix/dotted-opus-frontier-tools
  • 80791f10 fix(agents): cover dotted opus frontier model
  • 3f30dac3 Merge pull request #3656 from code-yeongyu/feature/hide-grep-glob-for-frontier-agents
  • acf293de fix(tmux): validate fallback port
  • ac8987a7 fix(agents): preserve explicit legacy tool denies
  • baef0113 @LathissKhumar has signed the CLA in code-yeongyu/oh-my-openagent#3658
  • c65f90ee fix(tmux): preserve configured fallback port
  • 46724853 fix(agents): clear stale frontier tool denies
  • 0e9bb596 refactor(agents): replace broken ZWSP sort prefixes with leading ASCII spaces
  • 8a49a031 test(skill): fresh import skill tool factory
  • 16805787 test(skill): stabilize command discovery spy
  • a2c3804b test(slashcommand): isolate command discovery mocks
  • ecce65bb fix(skill): isolate injected skill discovery
  • f1353cd9 fix(tmux): use stable fallback server URL
  • c46b7129 fix(agents): hide grep glob for frontier agents
  • f74d03ca Merge pull request #3654 from acamq/fix/failing-ci
  • 25e1fa9c @gutierrezx7 has signed the CLA in code-yeongyu/oh-my-openagent#3651
  • b32620ca Merge pull request #3640 from ismetanin/docs/fix-kimi-code-link
  • 6a0272fe @ismetanin has signed the CLA in code-yeongyu/oh-my-openagent#3640
  • 3577f302 docs(readme): fix Kimi Code subscription link and price
  • c3b34170 @ihoooohi has signed the CLA in code-yeongyu/oh-my-openagent#3637
  • 48b0cfea @darianstlex has signed the CLA in code-yeongyu/oh-my-openagent#3626
  • 33ac3556 Preserve migration history during config migration
  • fbd4cfba Update OpenAI defaults to GPT-5.5
  • 17d33509 @hackerh3 has signed the CLA in code-yeongyu/oh-my-openagent#3600
  • 7bbe11ac Merge pull request #3623 from MoerAI/fix/session-model-recovery-guard
  • 7fa21efc fix(chat-message): remove unreachable guard that blocked session model recovery (fixes #3561)
  • 6b46b9b4 fix(model-capabilities): add gpt-5.5 capability snapshot
  • 3875b40c feat(migration): auto-upgrade openai/gpt-5.4 to openai/gpt-5.5
  • 3bab66b9 feat(models): promote gpt-5.5 as default for oracle, hephaestus, and deep
  • 1ff60d5a feat(agents): add gpt-5.5 native oracle prompt
  • c57d08c0 feat(agents): add gpt-5.5 native sisyphus-junior prompt
  • a432e29a feat(agents): add gpt-5.5 native hephaestus prompt
  • 98964eb6 feat(agents): add gpt-5.5 native sisyphus prompt
  • 69e6f386 feat(agents): reintroduce isGpt5_5Model for per-version prompt routing
  • 81c5ed44 docs(drafts): add gpt-5.5 native prompt drafts

Thank you to 3 community contributors:

  • @MoerAI:
    • fix(chat-message): remove unreachable guard that blocked session model recovery (fixes #3561)
  • @acamq:
    • Merge pull request #3623 from MoerAI/fix/session-model-recovery-guard
    • Merge pull request #3654 from acamq/fix/failing-ci
  • @ismetanin:
    • docs(readme): fix Kimi Code subscription link and price
v3.17.5 Breaking risk

Compatibility updates for package detection and task system alignment.

Full changelog

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

  • bcbd99bda Merge pull request #3605 from Jay1/jay/gpt-5-5-native-sisyphus
  • fd4ef0f16 test(agents): update explore and librarian prompt assertions to match refactored prompts
  • 563b6569d refactor(agents): replace per-version GPT checks with regex pattern
  • ae77f6bc7 @lucasyounger has signed the CLA in code-yeongyu/oh-my-openagent#3606
  • 132c860be Merge branch 'dev' into jay/gpt-5-5-native-sisyphus
  • 99f25fe0b @Jay1 has signed the CLA in code-yeongyu/oh-my-openagent#3605
  • f6b2ce7b6 feat(agents): add gpt-5.5 native sisyphus support
  • 7641fc52a @leecoder has signed the CLA in code-yeongyu/oh-my-openagent#3604
  • 448fb0fa9 @uf-hy has signed the CLA in code-yeongyu/oh-my-openagent#3603
  • bbcbfe5d7 @fede-ciliberti has signed the CLA in code-yeongyu/oh-my-openagent#3581
  • f66bc8a84 @samuele-ruffino96 has signed the CLA in code-yeongyu/oh-my-openagent#3595
  • fd6e34a80 @ParkSnoopy has signed the CLA in code-yeongyu/oh-my-openagent#3591
  • a941774e9 chore(cleanup): remove obsolete team-mode workspace artifacts
  • 52ee20161 chore(gitignore): add .dori-sync/ directory
  • 1ecf5ab8f refactor(ast-grep): inline tool descriptions and simplify pattern hints
  • 70e18e95c refactor(agents): simplify librarian code search guidance
  • acd867ec9 refactor(agents): simplify explore tool strategy guidance
  • f0dd0464d refactor(librarian): teach proper ast_grep_search discipline
  • 5ef2a3fa7 refactor(explore): make ast_grep_search discipline the core of Tool Strategy
  • 2f4b1c315 feat(ast-grep): rewrite tool descriptions to prevent regex-style misuse
  • 95ccbbfe8 feat(ast-grep): detect regex-style pattern misuse before returning empty results
  • e0bcf3e2f @aschina has signed the CLA in code-yeongyu/oh-my-openagent#3560
  • 93dc10309 Merge pull request #3552 from code-yeongyu/feature/explore-librarian-gpt-5-4-mini-fast-primary
  • 993fe20a1 docs(orchestration): reindent explore/librarian mermaid nodes
  • 3a6bd9325 fix(cli): keep mini-fast primary in openai-only install catalog
  • 6914b4495 docs(configuration): restore vercel aliases in explore/librarian rows
  • fe44363bf fix(model-capabilities): drop pdf modality from gpt-5.4-mini-fast
  • 02e4de865 docs(model): sync explorer and librarian guidance
  • ceadf4bdb fix(cli): prefer mini-fast for install fallback
  • d2e5ddd73 fix(model-requirements): route primary agents to mini-fast
  • 680dd161b fix(model-capabilities): bundle gpt-5.4-mini-fast caps
  • 064dcc844 fix(delegate-task): remove deprecated sync continuation fallback
  • a17ba1673 chore(delegate-task): remove unused metadata model export
  • 54e48de7f refactor(delegate-task): extract background session registration helpers
  • 2585031f5 refactor(delegate-task): extract sync continuation resume context
  • 4810d0f1b fix(delegate-task): apply load_skills content to continuation prompts
  • d0a3cb393 fix(delegate-task): align background-continuation title with args.description
  • 83c8ffbe0 fix(delegate-task): include category in continuation task_metadata blocks
  • b5bc4cd40 fix(delegate-task): preserve variant in sync-continuation metadata model
  • 54cc9b7ca test(delegate-task): lock Oracle-found gaps with TDD
  • 3f28e4248 refactor(delegate-task): remove AI slop from supporting files
  • bcf95112c refactor(delegate-task): remove AI slop from executor metadata paths
  • 271068d87 chore(delegate-task): remove unused execute field from DelegateTaskArgs
  • cd0c98e54 fix(delegate-task): preserve model variant in metadata resolution
  • a82f0560c test(delegate-task): add failing tests for model variant preservation
  • f486df71a feat(delegate-task): preserve raw subagent_type across metadata
  • 8a2a11b21 fix(delegate-task): propagate category in background continuation
  • 9bd5829a7 fix(delegate-task): propagate agent and category in sync continuation
  • 9bf89deee test(delegate-task): add failing tests for metadata continuation gaps
  • 869accd11 @CoderLuii has signed the CLA in code-yeongyu/oh-my-openagent#3518
  • 017e4ef1c Merge pull request #3514 from andomeder/fix/cli-attach-auth
  • 69315fcad fix(cli): restrict attach auth injection to loopback URLs
  • ad0ee7abc @andomeder has signed the CLA in code-yeongyu/oh-my-openagent#3514
  • ef5c74e97 fix(cli): inject server auth for attach clients
  • 64b49b465 Merge pull request #3510 from code-yeongyu/fix/tmux-stale-session-sweep
  • e35ac38bb test(tmux): rewrite stale-sweep tests via DI to eliminate cross-file mock leak
  • d1fc46da4 test(tmux): restore process.kill in afterEach to prevent cross-file leak
  • 913fac05f fix(tmux-subagent): retry stale sweep if first attempt throws
  • 859d67f41 fix(tmux-subagent): revert session.error cleanup (recoverable-error regression)
  • 3dce19d17 fix(tmux-subagent): move 'cleanup complete' log back to cleanup() method
  • 104523051 feat(tmux): sweep stale omo-agents- sessions on first spawn
  • a503989a5 Merge pull request #3507 from code-yeongyu/fix/tmux-serve-attach-cleanup
  • aa79284dc fix(background-agent): reset process.exitCode to 0 between cleanup tests
  • 257b6cf95 fix(tmux): scope isolated session name per plugin instance (Oracle review)
  • f8a1a11bb fix(team-mode): refactor layout to use testable spawn-process helper
  • ea4f3c81f fix(tmux): treat pane-already-closed as success in closeTmuxPane
  • b9d2acdcf fix(background-agent): run manager cleanup on uncaughtException and unhandledRejection
  • 21554be87 fix(tmux-subagent): tighten serve/attach cleanup paths so panes and sessions are torn down reliably
  • de8a0167e feat(tmux): add killTmuxSessionIfExists utility for explicit session teardown
  • 2a99a524e fix(tmux): drain kill-pane stdout to prevent pipe backpressure hang
  • 7a7926f22 chore(tmux-subagent): remove dead event-handler modules
  • e303feefd feat(team-mode): add team-layout-tmux for focus+grid pane visualization
  • bf7fd7ce6 Merge pull request #3501 from code-yeongyu/fix/perf-omo-in-tree
  • 0a808de6a fix(auto-update-checker): trigger deferred startup on session.created with parentID guard
  • 91848057e fix(background-agent): fire promptAsync before tmux callback
  • c9c1c58c2 fix(tmux-subagent): track pane without blocking on session readiness
  • a6a5a08b5 fix(tools/skill): invalidate skill cache at session boundary
  • a8504be70 test(auto-update-checker): cover session.created trigger with parentID guard
  • 1d187097f test(tools/skill): cover per-session skill cache invalidation
  • bd1529825 fix(test): isolate skill factory discovery in ci
  • e766354e2 test(auto-update-checker): align zauc-mocks-hook with deferred idle check
  • 8e3f4cc63 fix(tools/skill): harden description pipeline against empty skill list after lazy factory
  • 0e1a946c1 test(skill-tool): isolate skill discovery spies from other suites
  • 10b1905f6 test(skill-loader): reset shared skill cache in async resolver tests
  • 14868430b test(auto-update-checker): align test triggers with deferred idle check
  • 61675adbf test(slashcommand): isolate command-loader cache between tests
  • 0ca571e74 Merge branch 'fix/perf-d03' into fix/perf-omo-in-tree
  • 1fd678f5a Merge branch 'fix/perf-d02' into fix/perf-omo-in-tree
  • 85e4f5eca Merge branch 'fix/perf-q11' into fix/perf-omo-in-tree
  • e47a6aa7f Merge branch 'fix/perf-q10' into fix/perf-omo-in-tree
  • b60cad0eb Merge branch 'fix/perf-q09' into fix/perf-omo-in-tree
  • d9cea9310 Merge branch 'fix/perf-q08' into fix/perf-omo-in-tree
  • 9f15a0959 Merge branch 'fix/perf-q06' into fix/perf-omo-in-tree
  • c5268af08 Merge branch 'fix/perf-q05' into fix/perf-omo-in-tree
  • 4857666a8 Merge branch 'fix/perf-q04' into fix/perf-omo-in-tree
  • 5faba8d57 Merge branch 'fix/perf-q03' into fix/perf-omo-in-tree
  • 38990ec76 Merge branch 'fix/perf-q02' into fix/perf-omo-in-tree
  • 56d2d2543 Merge branch 'fix/perf-d10' into fix/perf-omo-in-tree
  • 5a20e4060 Merge branch 'fix/perf-d09' into fix/perf-omo-in-tree
  • 36ebafda8 Merge branch 'fix/perf-d08' into fix/perf-omo-in-tree
  • 82ddc9c6f Merge branch 'fix/perf-d07' into fix/perf-omo-in-tree
  • 1db481eb9 Merge branch 'fix/perf-d06' into fix/perf-omo-in-tree
  • a227821d2 Merge branch 'fix/perf-d05' into fix/perf-omo-in-tree
  • dc0d64d5f Merge branch 'fix/perf-d04' into fix/perf-omo-in-tree
  • b6b898d06 Merge branch 'fix/perf-d01' into fix/perf-omo-in-tree
  • edcc9a1e6 fix(todo-continuation-enforcer): defer prune interval to first idle event
  • 1be1cd6e5 fix(tools/skill): make factory pure and stop defeating skill-loader cache
  • a068915dc test(perf): add plugin init regression budget
  • 40bd3e02d test(tools/skill): cover factory laziness and skill-cache invariants
  • 52512f226 fix(rules-injector): cache directory scan results per session
  • ed6ac7ea9 fix(session-notification): defer platform detection and background checks
  • 89d394ed3 fix(claude-code-command-loader): skip EXCLUDED_DIRS and memoize per directory
  • 439957c4c test(session-notification): cover lazy platform detect and scheduler startup
  • 6dc2234d8 fix(shared): memoize detectPluginConfigFile per process
  • 948343ab6 test(shared): cover detectPluginConfigFile memoization
  • 76e8508fa fix(runtime-fallback): inject pluginConfig and defer cleanup interval to first event
  • 3d4299445 fix(auto-update-checker): defer npm registry check until first idle
  • 4f59e91d2 test(todo-continuation-enforcer): cover lazy prune interval
  • 443891fdf test(rules-injector): cover per-session cache isolation and invalidation
  • 79eb6c738 fix(shared/project-discovery-dirs): memoize detectWorktreePath per process
  • a03faaa27 test(auto-update-checker): cover deferred update check
  • bcd7b8e34 fix(rules-injector): memoize project-root lookup per process lifecycle
  • 886ef8249 perf(directory-readme-injector): migrate sync FS to fs.promises
  • a4c45e277 fix(write-existing-file-guard): defer realpath/existsSync to first tool call
  • 3cb1d5d93 test(claude-code-command-loader): cover excluded dirs and per-directory cache
  • ac2686ffd fix(shared): memoize loadOpencodePlugins by directory
  • 7be6ab447 fix(tools/slashcommand): skip EXCLUDED_DIRS in recursive command discovery
  • d8e00ebfb test(runtime-fallback): cover pluginConfig DI and lazy interval
  • 51f1fc1df perf(directory-agents-injector): migrate sync FS to fs.promises
  • a6e3c6a5e test(write-existing-file-guard): cover lazy canonical path init
  • 9677c7daf test(directory-agents-injector): cover async migration
  • 3717121b0 test(directory-readme-injector): cover async migration
  • 428bae632 test(shared): cover loadOpencodePlugins memoization
  • e599840fb fix(comment-checker): defer CLI download and cleanup scheduler to first tool call
  • 493e37bb7 test(comment-checker): cover lazy CLI init and cleanup startup
  • d0eda8b4b test(tools/slashcommand): cover excluded-dir pruning during discovery
  • 76945bf3c test(rules-injector): cover project-root-finder memoization
  • 32598bc5e test(shared/project-discovery-dirs): cover worktree-path memoization
  • c5b7aa8e4 test(rules-injector): cover per-session scan caching behavior
  • 578c49f9c fix(rules-injector): skip EXCLUDED_DIRS in recursive rule scanner
  • d566d69c3 test(rules-injector): add regression coverage for excluded-dir pruning
  • 49c7d4dbf chore(shared): add EXCLUDED_DIRS constant for recursive FS scans
  • d59ad1e2e @Netzhangheng has signed the CLA in code-yeongyu/oh-my-openagent#3499
  • 203e51786 @Disaster-Terminator has signed the CLA in code-yeongyu/oh-my-openagent#3497
  • 1a8f60b89 Merge pull request #3488 from chan1103/fix/explore-allow-lsp-ast-grep
  • f1268c044 feat(team-mode): add worktree manager (optional per-member isolation)
  • b00e22c2b feat(team-mode): add core types (discriminatedUnion for members, D-41/D-42)
  • 1b5f3167e Merge pull request #3492 from code-yeongyu/refactor/legacy-plugin-decoupling
  • 70ddc01e1 refactor: remove AI slop from refactored files
  • 81b37dd2c refactor: remove cosmetic OhMyOpenCodePlugin references
  • e6f84f713 refactor(tools): break glob->grep sibling-tool coupling
  • 5e4102566 refactor(model-fallback): fully encapsulate session state in factory closure
  • e2f5c0d36 refactor(plugin): remove orphaned createPluginDispose + stale test mocks
  • f56e3934d docs: update plugin entry references to V1 PluginModule shape
  • 81b68d828 refactor(model-fallback): move fallback state into factory closure and split hook.ts
  • 0d10498a1 refactor(hooks): split session-notification.ts to comply with 200 LOC module rule
  • 0f1b16567 refactor(delegate-task): split tools.ts to comply with 200 LOC module rule
  • db056346d refactor(shared): move parseModelString out of delegate-task to break cross-tool coupling
  • 1aebf39d2 refactor(hooks): split preemptive-compaction.ts to comply with 200 LOC module rule
  • 963355d24 refactor(look-at): split tools.ts to comply with 200 LOC module rule
  • f94632ce6 refactor(skill-mcp): split tools.ts to comply with 200 LOC module rule
  • cb8f44ed9 refactor(ralph-loop test): clarify race-condition predicate naming
  • 1b10ab36d refactor(plugin): migrate to V1 PluginModule format
  • 5759a9c50 docs(agents): refresh AGENTS.md hierarchy via /init-deep
  • 2892ca4ad fix(delegate-task): align metadata with opencode core task tool
  • 3a656136b feat(delegate-task): add resolveMetadataModel helper for model fallback
  • 73f09fdb3 fix(explore): allow LSP and ast-grep tools
  • f3af23565 Merge pull request #3486 from code-yeongyu/chore/bump-claude-opus-4-7
  • b3beea129 docs: complete claude-opus-4-7 bump in installation, matching, and overview guides
  • 5478bab45 refactor(models): preserve legacy claude-opus-4-6 aliases and category mapping
  • f34a074f1 docs: bump claude-opus-4-6 to claude-opus-4-7 across docs, examples, and AGENTS.md
  • 4ca4c0669 refactor(migration): auto-upgrade claude-opus-4-5 and 4-6 to claude-opus-4-7
  • def44338f refactor(models): bump claude-opus-4-6 to claude-opus-4-7 across fallback chains, categories, and hooks
  • b1764a880 Merge pull request #3484 from code-yeongyu/fix/ci-remaining-test-fixes
  • 2fca3dced fix(test): complete session_id→task_id migration in test assertions
  • 3a956b210 fix(test): align session_id→task_id across tests and source files
  • 28a896d09 fix(test): update dynamic-agent-prompt-builder test to expect task_id
  • 843f1dbdb Merge pull request #3483 from code-yeongyu/fix/bin-alias-oh-my-openagent
  • fec50c5d8 fix: add oh-my-openagent bin alias for renamed package
  • 62d185cf7 Merge pull request #3481 from code-yeongyu/fix/atlas-test-task-id-parameter
  • 91ebffa9d fix(test): update atlas test to expect task_id parameter instead of session_id
  • 22942c25d Merge pull request #3480 from code-yeongyu/fix/zod-external-bundle
  • e97953e39 fix(build): externalize zod from plugin bundle to prevent dual-instance crash
  • 99ffb5f58 refactor(task): drop session_id resume alias
  • d89e257d8 refactor(task): align continuation ids with task_id
  • 56be458ed fix(config): remove obsolete maxDescendants config
  • 611f1cc93 fix(background-agent): remove descendant spawn cap
  • e2f7fbb4c @EnochLi15 has signed the CLA in code-yeongyu/oh-my-openagent#3473
  • 5c349fac0 Merge pull request #3471 from code-yeongyu/fix/copilot-effort-max
  • 1ae32283e fix(anthropic-effort): clamp variant=max for github-copilot Claude models
  • a5ae0b838 @omer-koren has signed the CLA in code-yeongyu/oh-my-openagent#3470

Thank you to 5 community contributors:

  • @chan1103:
    • fix(explore): allow LSP and ast-grep tools
  • @andomeder:
    • fix(cli): inject server auth for attach clients
    • fix(cli): restrict attach auth injection to loopback URLs
  • @sisyphus-dev-ai:
    • Merge pull request #3514 from andomeder/fix/cli-attach-auth
  • @Jay1:
    • feat(agents): add gpt-5.5 native sisyphus support
    • Merge branch 'dev' into jay/gpt-5-5-native-sisyphus
  • @acamq:
    • refactor(agents): replace per-version GPT checks with regex pattern
    • Merge pull request #3605 from Jay1/jay/gpt-5-5-native-sisyphus
v3.17.4 Breaking risk
Breaking changes
  • Delegate-task contract behavior changed
  • Runtime registration behavior changed
  • Installer writes hyphenated anthropic IDs (Anthropic OAuth variant=max compatibility)
Notable features
  • Background-agent wait-for-task-session helper
  • Shared metadata contract and bridge for tool metadata
Full changelog

Minor Compatibility and Stability Release

This release carries compatibility-facing behavior changes and operational hardening. Read the summary below before upgrading or publishing.

  • Task and tool behavior updates, including delegate-task contract and runtime registration behavior.

Commit Summary

  • 9b72bf8e Merge pull request #3467 from code-yeongyu/refactor/delegate-task-metadata-hardening
  • d612549b Merge pull request #3468 from code-yeongyu/fix/bugs-3429-3459
  • 7bc170fb fix: installer writes hyphenated anthropic IDs, variant=max Anthropic OAuth compat (#3429, #3459)
  • c6a407c4 refactor(tools): migrate producers to shared metadata bridge
  • 4da30057 fix(plugin): harden metadata recovery and extraction
  • 80d3339c feat(background-agent): add wait-for-task-session helper
  • a1842f2d feat(tool-metadata): add shared metadata contract and bridge
  • 80e73f57 @CHLK has signed the CLA in code-yeongyu/oh-my-openagent#3455
  • c55e08c1 Merge pull request #3444 from code-yeongyu/fix/issue-3443
  • ccb2715a fix: hide native plan agent when replace_plan is true (#3443)
v3.17.3 Bug fix

Disabled exception autocapture in PostHog clients to prevent exceeding free tier quota.

v3.17.2 Mixed
Notable features
  • Add Vercel AI Gateway as provider
  • Task and tool behavior updates for improved reliability
  • Install and publish workflow hardening
v3.17.0 Breaking risk
Breaking changes
  • Task and tool behavior updates including delegate-task contract changes
  • Task-system default behavior alignment for runtime paths
  • Agent display name and ordering changes
Notable features
  • Centralized GPT apply_patch permission guard across all agents
v3.16.0 Mixed
Notable features
  • Version compatibility checking and config backup utilities for safer upgrades
  • Per-server OAuth refresh mutex for concurrent request deduplication
  • Agent name normalization with improved character handling
v3.15.3 Breaking risk
Breaking changes
  • 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
Notable features
  • Boulder continuation injector enhanced with lineage support for session-aware continuation
  • Session origins tracking to distinguish direct vs appended sessions
  • Background task session tracking with retry scheduling
v3.15.2 Breaking risk
Breaking changes
  • Task and tool behavior updates affecting delegate-task contract and runtime registration behavior
  • Task-system default behavior alignment: omitted configuration now behaves consistently across runtime paths
  • Legacy configuration path detection and migration logic removed
v3.15.1 Breaking risk
Breaking changes
  • Delegate-task contract restrictions on task-callable agent modes
  • Task-system default behavior alignment for omitted configuration across runtime paths
  • Package name change to canonical 'oh-my-openagent' (from legacy 'oh-my-opencode')
Security fixes
  • Tar parser and archive preflight now strictly fail-closed on unparsed entries
  • MCP environment cleaner blocks cloud credential environment variables
Notable features
  • Built-in skills can now be disabled in configuration
v3.14.0 Mixed
Notable features
  • Hephaestus default model upgrade gpt-5.3-codex to gpt-5.4
  • Package rename compatibility layer oh-my-opencode to oh-my-openagent
  • Nested command discovery with ancestor project support
Full changelog
  • 1c9f4148 fix(publish-ci): sync mock-heavy test isolation with ci.yml
  • 8dd0191e fix(ci): isolate mock-heavy shared tests to prevent cross-file contamination
  • 9daaeedc fix(test): restore shared Bun mocks after suite cleanup
  • 3e13a4cf fix(session-recovery): filter invalid prt_* part IDs from tool_use_id reconstruction
  • 8e65d6cf fix(test): make legacy-plugin-warning tests isolation-safe
  • f419a3a9 fix(test): use Bun.spawnSync in command discovery test to avoid execFileSync mock leakage
  • 1c54fdad feat(compat): package rename compatibility layer for oh-my-opencode → oh-my-openagent
  • d39891fc docs: update hephaestus default model references from gpt-5.3-codex to gpt-5.4
  • d57ed973 feat(hephaestus): upgrade default model from gpt-5.3-codex to gpt-5.4
  • 6a510c01 @kuitos has signed the CLA in code-yeongyu/oh-my-openagent#2833
  • b34eab38 fix(test): isolate model-capabilities from local provider cache
  • 4efc1813 fix(ci): resolve all test failures + complete rename compat layer
  • e86edca6 feat(doctor): warn on legacy package name + add example configs
  • a8ec9274 fix(model-resolution): honor user config overrides on cold cache
  • dd85d145 fix(model-requirements): align fallback models with available provider catalogs
  • 682eead6 Merge pull request #2845 from code-yeongyu/fix/path-discovery-parity-followup
  • 42f53861 fix(tests): drop duplicate tilde config regression
  • 5bc019eb fix(skills): remove duplicate homedir import
  • 097e2be7 fix(slashcommand): discover nested opencode commands with slash names
  • c637d779 fix(commands): discover ancestor opencode project commands
  • 4c8aacef fix(agents): include .agents skills in agent awareness
  • 8413bc6a fix(skills): expand tilde config source paths
  • 86a62aef fix(skills): discover ancestor project skill directories
  • 961cc788 fix(shared): support opencode directory aliases
  • 19838b78 fix(shared): add bounded project discovery helpers
  • 9d4a8f21 Merge pull request #2844 from code-yeongyu/fix/opencode-followup-gaps
  • 7f742723 fix(slashcommand): use slash separator for nested commands
  • b20a34bf fix(slashcommand): discover nested opencode commands
  • 12a43184 fix(commands): load .agents skills into command config
  • e4a5973b fix(agents): include .agents skills in agent awareness
  • 83819a15 fix(shared): stop ancestor discovery at worktree root
  • a391f444 Merge pull request #2842 from code-yeongyu/fix/opencode-skill-override-gaps
  • 94b4a4f8 fix(slashcommand): deduplicate opencode command aliases
  • 9fde3708 fix(commands): preserve nearest opencode command precedence
  • b6ee7f09 fix(slashcommand): discover ancestor opencode commands
  • 28bcab06 fix(commands): load opencode command dirs from aliases
  • b5cb50b5 fix(skills): discover ancestor project skill directories
  • 82425008 fix(skills): expand tilde config source paths
  • 6d688ac0 fix(shared): support opencode directory aliases
  • da3e8046 fix(shared): add ancestor project discovery helpers
  • 23df6bd2 Merge pull request #2841 from code-yeongyu/fix/model-fallback-test-isolation
  • 7895361f fix(tests): resolve 5 cross-file test isolation failures
  • 90919bf3 Merge pull request #2664 from kilhyeonjun/fix/anthropic-1m-ga-context-limit
  • 32f2c688 Merge pull request #2707 from MoerAI/fix/windows-symlink-config
  • e6d0484e Merge pull request #2710 from MoerAI/fix/rate-limit-hang
  • abd62472 Merge pull request #2752 from MoerAI/fix/quota-error-fallback-detection
  • b1e09913 Merge pull request #2756 from MoerAI/fix/plugin-display-name
  • 09fb364b Merge pull request #2833 from kuitos/feat/agent-order-support
  • d1ff8b1e Merge pull request #2727 from octo-patch/feature/upgrade-minimax-m2.7
  • 6e42b553 Merge origin/dev into feature/upgrade-minimax-m2.7 (resolve conflicts)
  • 02ab83f4 Merge pull request #2834 from RaviTharuma/feat/model-capabilities-canonical-guardrails
  • ce1bffbc @ventsislav-georgiev has signed the CLA in code-yeongyu/oh-my-openagent#2840
  • 4d4680be @clansty has signed the CLA in code-yeongyu/oh-my-openagent#2839
  • ce877ec0 test(atlas): avoid shared barrel mock pollution
  • ec20a82b fix(model-capabilities): align gemini aliases and alias lookup
  • 5043cc21 fix(model-capabilities): harden canonical alias guardrails
  • 8df3a287 @anas-asghar4831 has signed the CLA in code-yeongyu/oh-my-openagent#2837
  • 087e33d0 Merge pull request #2832 from RaviTharuma/fix/todo-sync-priority-default
  • 46c6e1dc test(todo-sync): match required priority fallback
  • 5befb602 feat(agent-priority): inject order field for deterministic agent Tab cycling
  • 55df2179 fix(todo-sync): preserve missing task priority
  • 76420b36 Merge pull request #2829 from RaviTharuma/fix/model-capabilities-review-followup
  • a15f6076 feat(model-capabilities): add maintenance guardrails
  • 7c0289d7 fix(model-capabilities): honor root thinking flags
  • 5e9231e2 Merge pull request #2828 from code-yeongyu/fix/content-based-thinking-gating-v2
  • f04cc0fa fix(thinking-block-validator): replace model-name gating with content-based history detection
  • 613ef8ee fix(model-capabilities): harden runtime capability handling
  • 99b39806 Merge pull request #2826 from RaviTharuma/feat/model-capabilities-models-dev
  • 2af93244 feat: add models.dev-backed model capabilities
  • 7a52639a Merge pull request #2673 from sanoyphilippe/fix/oauth-discovery-root-fallback
  • 5df54bce Merge pull request #2725 from cphoward/fix/spawn-budget-lifetime-semantics-clean
  • cd04e6a1 Merge pull request #2751 from sjawhar/fix/atlas-subagent-agent-guard
  • e974b151 Merge pull request #2701 from tonymfer/fix/lsp-initialization-options
  • 6f213a0a Merge pull request #2686 from sjawhar/fix/look-at-respect-configured-model
  • 71004e88 Merge pull request #2583 from Jrakru/fix/start-work-atlas-handoff
  • 5898d363 Merge pull request #2575 from apple-ouyang/fix/issue-2571-subagent-safeguards
  • 90aa3e44 Merge pull request #2589 from MoerAI/fix/plan-agent-continuation-loop
  • 2268ba45 Merge pull request #2262 from Stranmor/feat/prompt-file-uri-support
  • aca93427 Merge pull request #2345 from DarkFunct/fix/todo-sync-priority-null
  • a3519c3a Merge pull request #2544 from djdembeck/fix/quick-anti-loop-v2
  • e610d885 Merge pull request #2594 from MoerAI/fix/subagent-fallback-model-v2
  • ed09bf54 Merge pull request #2674 from RaviTharuma/fix/dedup-delegated-model-config
  • 1d48518b Merge pull request #2643 from RaviTharuma/feat/model-settings-compatibility-resolver
  • d6d4cece Merge pull request #2622 from RaviTharuma/feat/object-style-fallback-models
  • 9d930656 test(restack): drop stale compatibility expectations
  • f86b8b33 fix(review): align model compatibility and prompt param helpers
  • 1f5d7702 refactor(delegate-task): deduplicate DelegatedModelConfig + registry refactor
  • 1e70f640 chore(schema): refresh generated fallback model schema
  • d4f962b5 feat(model-settings-compat): add variant/reasoningEffort compatibility resolver
  • fb085538 test(background-agent): restore spawner createTask import
  • e5c5438a fix(delegate-task): gate fallback settings to real fallback matches
  • a77a16c4 feat(config): support object-style fallback_models with per-model settings
  • 7761e48d Merge pull request #2592 from MoerAI/fix/gemini-quota-fallback
  • d7a1945b fix(plugin-loader): preserve scoped npm package names in plugin key parsing
  • 44fb1143 fix(runtime-fallback): rename misleading test to match actual behavior
  • bf804b06 fix(shared): restrict cached Anthropic 1M context to GA 4.6 models only
  • c4aa3808 Merge pull request #2734 from ndaemy/fix/remove-duplicate-ultrawork-separator
  • 993bd51e Merge pull request #2524 from Gujiassh/fix/session-todo-filename-match
  • 73274396 Merge pull request #2533 from Gujiassh/fix/background-task-metadata-id
  • bff57348 Merge pull request #2443 from tc9011/fix/github-copilot-model-version
  • f16d55ad fix: add errorName-based quota detection and strengthen test coverage
  • 3c49bf3a Merge branch 'code-yeongyu:dev' into fix/oauth-discovery-root-fallback
  • 29a7bc2d fix(plugin): display friendly name in configuration UI instead of file path (fixes #2644)
  • 62d27040 fix(runtime-fallback): detect prettified quota errors without HTTP status codes (fixes #2747)
  • db32bad0 fix(look-at): respect configured multimodal-looker model instead of overriding via dynamic fallback
  • 5777bf98 fix(atlas): restore agent mismatch guard for subagent boulder continuation (#18681)
  • 07ea8deb fix(keyword-detector): remove duplicate separator from ultrawork templates
  • 0d525192 feat: upgrade MiniMax from M2.5 to M2.7 and expand to more agents/categories
  • 031503bb test(background-agent): add regression tests for spawn budget decrement on task completion
  • 59865836 fix(background-agent): decrement spawn budget on task completion, cancellation, error, and interrupt
  • 3773e370 fix(runtime-fallback): detect bare 429 rate-limit signals (fixes #2677)
  • 23a30e86 fix(windows): resolve symlinked config paths for plugin detection (fixes #2271)
  • 04637ff0 fix(lsp): wrap initialization config in initializationOptions field
  • 0d96e0d3 Fix OAuth discovery for servers with non-root resource paths
  • 719a5827 fix(shared): respect cached model context limits for Anthropic providers post-GA
  • 11d942f3 fix(runtime-fallback): detect Gemini quota errors in session.status retry events
  • 2b6b0834 fix(todo-continuation-enforcer): add plan agent to DEFAULT_SKIP_AGENTS to prevent infinite loop
  • abdd39da fix(agent-registration): always attempt fallback when model resolution fails
  • 711aac0f fix: preserve atlas handoff on start-work
  • f2b26e53 fix(delegate-task): add subagent turn limit and model routing transparency
  • a7a7799b fix(agents): add termination criteria to Sisyphus-Junior default
  • 1e0823a0 fix(delegate-task): report the real background task id
  • edfa4116 fix(session-manager): match todo filenames exactly
  • 6d8bc95f fix: github copilot model version for Sisyphus agent
  • 229c6b0c fix(todo-sync): provide default priority to prevent SQLite NOT NULL violation
  • 3eb97110 feat: support file:// URIs in agent prompt field

Thank you to 16 community contributors:

  • @Stranmor:
    • feat: support file:// URIs in agent prompt field
  • @DarkFunct:
    • fix(todo-sync): provide default priority to prevent SQLite NOT NULL violation
  • @tc9011:
    • fix: github copilot model version for Sisyphus agent
  • @Gujiassh:
    • fix(session-manager): match todo filenames exactly
    • fix(delegate-task): report the real background task id
  • @djdembeck:
    • fix(agents): add termination criteria to Sisyphus-Junior default
  • @apple-ouyang:
    • fix(delegate-task): add subagent turn limit and model routing transparency
  • @Jrakru:
    • fix: preserve atlas handoff on start-work
  • @MoerAI:
    • fix(agent-registration): always attempt fallback when model resolution fails
    • fix(todo-continuation-enforcer): add plan agent to DEFAULT_SKIP_AGENTS to prevent infinite loop
    • fix(runtime-fallback): detect Gemini quota errors in session.status retry events
    • fix(windows): resolve symlinked config paths for plugin detection (fixes #2271)
    • fix(runtime-fallback): detect bare 429 rate-limit signals (fixes #2677)
    • fix(runtime-fallback): detect prettified quota errors without HTTP status codes (fixes #2747)
    • fix(plugin): display friendly name in configuration UI instead of file path (fixes #2644)
    • fix: add errorName-based quota detection and strengthen test coverage
    • fix(runtime-fallback): rename misleading test to match actual behavior
    • fix(plugin-loader): preserve scoped npm package names in plugin key parsing
  • @kilhyeonjun:
    • fix(shared): respect cached model context limits for Anthropic providers post-GA
  • @sanoyphilippe:
    • Fix OAuth discovery for servers with non-root resource paths
    • Merge branch 'code-yeongyu:dev' into fix/oauth-discovery-root-fallback
  • @tonymfer:
    • fix(lsp): wrap initialization config in initializationOptions field
  • @cphoward:
    • fix(background-agent): decrement spawn budget on task completion, cancellation, error, and interrupt
    • test(background-agent): add regression tests for spawn budget decrement on task completion
  • @ndaemy:
    • fix(keyword-detector): remove duplicate separator from ultrawork templates
  • @sjawhar:
    • fix(atlas): restore agent mismatch guard for subagent boulder continuation (#18681)
    • fix(look-at): respect configured multimodal-looker model instead of overriding via dynamic fallback
  • @RaviTharuma:
    • feat(config): support object-style fallback_models with per-model settings
    • fix(delegate-task): gate fallback settings to real fallback matches
    • test(background-agent): restore spawner createTask import
    • feat(model-settings-compat): add variant/reasoningEffort compatibility resolver
    • chore(schema): refresh generated fallback model schema
    • refactor(delegate-task): deduplicate DelegatedModelConfig + registry refactor
    • fix(review): align model compatibility and prompt param helpers
    • test(restack): drop stale compatibility expectations
    • feat: add models.dev-backed model capabilities
    • fix(model-capabilities): harden runtime capability handling
    • fix(model-capabilities): honor root thinking flags
    • feat(model-capabilities): add maintenance guardrails
    • fix(todo-sync): preserve missing task priority
    • test(todo-sync): match required priority fallback
    • fix(model-capabilities): harden canonical alias guardrails
    • fix(model-capabilities): align gemini aliases and alias lookup
    • test(atlas): avoid shared barrel mock pollution
  • @kuitos:
    • feat(agent-priority): inject order field for deterministic agent Tab cycling
v3.13.0 Breaking risk
Breaking changes
  • Project renamed from oh-my-opencode to oh-my-openagent
Notable features
  • Shell type detection for csh/tcsh
  • Symlink realpath resolution on macOS
  • Windows path normalization
v3.12.3 Bugfix

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

v3.12.1 New feature
Notable features
  • Target-aware circuit breaker detection via tool signatures
  • Todo description override hook
v3.12.0 New feature
Notable features
  • Smart circuit breaker for background agents
  • Loop detector helpers
  • Auto-update model fallback improvements
v3.11.2 Bug fix
Notable features
  • Dual-publish platform binaries
  • Grace period for idle notifications
  • Undefined sessionStatus handling in pollRunningTasks
Full changelog
  • a7d8c1cd feat: dual-publish platform binaries for oh-my-openagent
  • beb89faa Merge pull request #2388 from code-yeongyu/fix/background-output-undefined-status-2387
  • dc370f7f fix: handle undefined sessionStatus in pollRunningTasks (#2387)
  • a5fe6eb1 @vaur94 has signed the CLA in code-yeongyu/oh-my-openagent#2385
  • ba6fc35a Merge pull request #2376 from acamq/fix/idle-notification-grace-period
  • 8a827f99 @acamq has signed the CLA in code-yeongyu/oh-my-openagent#2012
  • 4e352f9c fix(session-notification): add grace period to prevent late events from cancelling idle notifications
  • 621cad72 Merge pull request #2230 from Chocothin/fix/respect-config-question-permission
  • ab5a713d Merge pull request #2291 from SeeYouCowboi/fix/cache-dir-invalidation-stale-version
  • f67b605f fix: also invalidate plugin from CACHE_DIR in invalidatePackage
  • 65bc7428 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.0 Breaking risk
Breaking changes
  • ULW-Loop now requires explicit Oracle verification before task completion
  • kimi-k2.5-free removed from fallback chains
Notable features
  • Sisyphus GPT-5.4 native with 8-block prompt architecture
  • Complete agent catalog migrated to GPT-5.4
  • Multimodal-Looker upgraded to GPT-5.4 medium
v3.10.0 Breaking risk
Breaking changes
  • Hashline edit tool (hashline_edit) is now disabled by default; users must add "hashline_edit": true to config to re-enable
Security fixes
  • HTTP hooks validate URL schemes to prevent SSRF attacks via file://, data://, and other dangerous schemes
Notable features
  • HTTP hook handler support with URL scheme validation (http: and https: only)
  • Read-image-resizer hook for efficient base64 image dimension parsing
  • Deterministic message and part IDs with process-unique prefix prevent storage collisions
v3.9.0 Breaking risk
Breaking changes
  • Hephaestus auto-commit behavior removed; agents no longer auto-commit without explicit request
Notable features
  • Worktree-aware planning with --worktree flag for parallel feature development
  • Model routing improvements: Gemini 3.1 Pro, simplified GPT detection, Kimi writing category support
  • Critical reliability hardening in Ralph Loop, Token Limiter, Todo Continuation, and Background Agent
v3.8.5 Bug fix

Substantially improved agent editing accuracy through comprehensive hashline fixes.

v3.8.4 Maintenance
Notable features
  • Gemini intent gate enforcement overlay
  • Compaction model override configuration
  • Disabled model fallback retry by default
Full changelog
  • 9f804c2a fix(test): sync AGENTS_WITH_TODO_DENY with tool-config-handler implementation
  • 05c04838 test(hashline-edit): cover concise responses and anchor alias normalization
  • 86671ad2 refactor(hashline-edit): adopt normalized single-shape edit input
  • ab768029 refactor(hashline-edit): stabilize hashes and tighten prefix stripping
  • afec1f29 @DMax1314 has signed the CLA in code-yeongyu/oh-my-opencode#2068
  • 41fe6ad2 fix(tools/call-omo-agent): replace as any with Record type cast in session-creator
  • b47b0342 chore(assets): regenerate JSON schema
  • a37a6044 refactor(config): remove unused barrel exports
  • 7a010357 refactor(agents/prometheus): remove unused barrel exports
  • f1076d97 refactor(agents/atlas): remove unused barrel exports
  • 3a5aaf64 refactor(agents): remove unused barrel exports
  • 830dcf8d refactor(features): remove empty barrel files
  • 96d51418 refactor(hooks): remove dead hook files
  • b3a6aaa8 refactor(shared): remove dead utility files
  • 1f62fa5b refactor(tools/call-omo-agent): remove dead code submodules
  • 2428a46e refactor(features/background-agent): remove dead code submodules
  • b709fa8e fix(plugin/hooks): remove unnecessary as any cast
  • 0dc5f56a fix(shared): fix optional chaining on modelItem
  • cd6c9cb5 fix(cli/run): replace as any with Record type cast
  • e5aa08b8 fix(tools/delegate-task): replace as any with Record type cast
  • db15f96c fix(tools/call-omo-agent): replace as any with SessionWithPromptAsync type
  • ff0e9ac5 fix(tools/call-omo-agent): replace as any with SDKMessage interface
  • 07113ebe fix(features/task-toast-manager): replace as any with ClientWithTui type
  • 2d3d993e fix(hooks/shared): replace as any with proper Record type cast
  • a82f4ee8 fix(hooks/thinking-block-validator): replace as any with typed interfaces
  • 0cbc6b54 fix(hooks/session-recovery): replace @ts-expect-error with proper type cast
  • ac3a9fd2 fix(hooks/anthropic-context-window-limit-recovery): remove @ts-ignore comments and fix parameter types
  • 41880f8f @imadal1n has signed the CLA in code-yeongyu/oh-my-opencode#2045
  • 35ab9b19 fix: deny todo tools for prometheus and sisyphus-junior when task_system enabled
  • 6245e468 feat(hooks): add Gemini-optimized ultrawork message with intent gate
  • 76da9511 feat(agents): add Gemini intent gate enforcement overlay for Sisyphus
  • 9933c665 feat(model-fallback): disable model fallback retry by default
  • 2e845c8d feat(hooks): wire pluginConfig to preemptive-compaction hook factory
  • bcf7fff9 feat(recovery-strategy): apply compaction model override in context window recovery
  • 2d069ce4 feat(preemptive-compaction): apply compaction model override from agent config
  • 09314dba feat(schema): add compaction model and variant override configuration
  • 32a838ad feat(hooks): add compaction-model-resolver utility for session agent model lookup
  • edf4d522 Merge pull request #2041 from code-yeongyu/fix/rewrite-overmocked-tests
  • 0bae7ec4 chore(tests): remove duplicate test in background-update-check (cubic feedback)
  • 7e05bd2b refactor(tests): rewrite 5 over-mocked test files to test real behavior
v3.8.3 Maintenance

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

v3.8.2 New feature
Notable features
  • Experimental Gemini-optimized prompts for Sisyphus agents
  • Grep files_with_matches mode now returns clean file paths
  • Edit tool improvements: autocorrect, BOM/CRLF handling, file creation
v3.8.1 Maintenance
Notable features
  • Hashline edit anchor insert modes
  • Strict insert validation preventing accidental edits
v3.8.0 Breaking risk
Breaking changes
  • Slash commands removed - all functionality unified under skill tool
  • slashcommand tool removed
Notable features
  • Hashline editing enabled by default
  • Ultrawork model override per-agent configuration
  • Runtime fallback with automatic model switching
v3.7.4 New feature
Notable features
  • Critical QA with mandatory hands-on verification in Atlas
  • Enhanced parallel tool call intensity in Sisyphus
v3.7.2 New feature
Notable features
  • Streaming think block rendering
  • Rich agent headers with tool execution details
v3.7.0 New feature
Notable features
  • Hashline edit experimental with 4 edit operations
  • Playwright CLI provider for browser automation
  • Tmux layout respects main_pane_size configuration
v3.6.0 New feature
Notable features
  • SQLite backend with SDK message finders
  • Agent display names: Sisyphus, Hephaestus, Prometheus, Atlas, Metis, Momus
  • Full context window recovery for SQLite
v3.5.6 Bug fix

Patched completion timer, todo cooldown, compaction race conditions, and toast memory leaks.

v3.5.5 New feature
Notable features
  • message.part.delta heartbeat support for OpenCode 1.2.0+
  • Kimi K2.5 with anti-AI-slop rules for writing
  • Gemini 3 Pro high variant for visual engineering
Full changelog

🛠️ Background Agent Stability for OpenCode 1.2.0+

OpenCode 1.2.0 changed its event stream format — background agents were dropping heartbeats because they didn't recognize the new message.part.delta event type. This release fixes that, so background tasks no longer appear stale or get prematurely killed when running on OpenCode ≥1.2.0.

The stale-task guard also now reads the correct session status field, preventing false positives where healthy tasks were incorrectly flagged as stuck.

✍️ Writing Agent: Kimi K2.5 + Anti-AI-Slop

The writing category now defaults to Kimi K2.5 as its primary model, with explicit anti-AI-slop rules baked into the prompt. If your generated text was sounding too "AI-polished", this should produce noticeably more natural output.

🎨 Visual Engineering: Gemini 3 Pro High Variant

Visual engineering tasks now use Gemini 3 Pro's high variant, with a refreshed fallback chain (Gemini → GLM-5 → Opus → Kimi) for better design-oriented output quality.


  • d076187f test(cli): update model-fallback snapshots for kimi k2.5 and gemini-3-pro changes
  • 8a5f6172 fix(background-agent): handle message.part.delta for heartbeat (OpenCode >=1.2.0)
  • 3f557e59 fix(background-agent): use correct OpenCode session status for stale guard
  • 284fafad feat(writing): switch primary model to kimi k2.5, add anti-AI-slop rules to prompt
  • 884a3add feat(visual-engineering): add variant high to gemini-3-pro, update fallback chain to gemini→glm-5→opus→kimi
v3.5.4 Breaking risk
Notable features
  • TaskHistory class for persistent task tracking
  • Session & tool inheritance improvements
  • Stop hooks execution fix
v3.5.3 Breaking risk
Notable features
  • Multi-layer auth injection for desktop app
  • Session-scoped event subscription
  • Case-insensitive Prometheus detection
v3.5.2 Bug fix
Notable features
  • Auto-update respects user-pinned plugin versions
  • MCP tool output guard safety
  • Category disable field
v3.5.1 Bug fix

Fixed race condition in look_at tool by reverting to synchronous prompt handling.

v3.5.0 Breaking risk
Notable features
  • Atlas enforces mandatory code review before accepting subagent work
  • Boulder continuation checks session_ids and properly awaits completion
  • Plan paths corrected from .sisyphus/tasks/*.yaml to .sisyphus/plans/*.md
v3.4.0 Breaking risk
Notable features
  • /handoff command for context preservation
  • Claude Tasks Integration (CLAUDE_CODE_TASK_LIST_ID)
  • Anthropic prefill auto-recovery
v3.3.0 Breaking risk
Breaking changes
  • delegate_task renamed to task; update all tool invocations
Notable features
  • Task tool UI transparency with metadata
  • CLI run extensions (--port, --attach, --session-id, --on-complete, --json)
v3.2.4 Breaking risk
Notable features
  • 3-approach autonomous recovery for Hephaestus
  • Custom skills HIGH PRIORITY treatment
  • Write guard prevents file overwrite
v3.2.3 New feature
Notable features
  • Multi-provider websearch (Exa, Tavily)
  • Nested skill directory support
  • Disabled skills configuration
v3.2.2 Breaking risk
Notable features
  • Experimental task system (TaskCreate, TaskGet, TaskList, TaskUpdate)
  • GPT-5.2 prompt optimization
  • Preemptive compaction at 78% context
v3.2.0 New feature
Notable features
  • Hephaestus autonomous deep worker agent using GPT 5.2 Codex Medium
  • Unstable agent babysitter always-on by default
  • Todo continuation with remaining task list
Full changelog

3.2.0 — Meet Hephaestus 🔨

Highlights

🔥 Hephaestus: The Legitimate Craftsman Agent

In Greek mythology, Hephaestus was the god of forge, fire, metalworking, and craftsmanship—the divine blacksmith who crafted weapons for the gods.

Meet our new autonomous deep worker: Hephaestus (GPT 5.2 Codex Medium).

Why "Legitimate"? When Anthropic blocked third-party access citing ToS violations, the community started joking about "legitimate" usage. Hephaestus embraces this irony—he's the craftsman who builds things the right way.

Key Characteristics:

  • Goal-Oriented: Give him an objective, not a recipe. He determines the steps himself.
  • Explores Before Acting: Fires 2-5 parallel explore/librarian agents before writing a single line of code.
  • End-to-End Completion: Doesn't stop until the task is 100% done with evidence of verification.
  • Pattern Matching: Searches existing codebase to match your project's style—no AI slop.
  • Legitimate Precision: Crafts code like a master blacksmith—surgical, minimal, exactly what's needed.

Inspired by AmpCode's deep mode—autonomous problem-solving with thorough research before decisive action.


What's New

Features

  • agents: Add Hephaestus - autonomous deep worker agent (#1287)
  • babysitting: Make unstable-agent-babysitter always-on by default
  • todo-continuation: Show remaining tasks list in continuation prompt
  • doctor: Detect OpenCode desktop GUI installations on all platforms (#1352)
  • skill-mcp-manager: Enhance manager with improved test coverage
  • hooks: Add unstable-agent-babysitter hook for monitoring unstable background agents
  • background-agent: Add isUnstableAgent flag for unstable model detection
  • background_output: Add thinking_max_chars option
  • ci: Auto-generate structured release notes from conventional commits

Bug Fixes

  • Windows: Improve compatibility and fix event listener issues (#1102)
  • config: Properly handle prompt_append for Prometheus agent (#1271)
  • tmux: Send Ctrl+C before kill-pane and respawn-pane to prevent orphaned processes (#1329)
  • tests: Properly stub notifyParentSession and fix timer-based tests
  • non-interactive-env: Always inject env vars for git commands
  • background-agent: Abort session on task completion to prevent zombie attach processes
  • ci: Add retry logic for platform binary builds

Refactoring

  • background-agent: Show category in task completion notification
  • delegate-task: Improve session title format and add task_metadata block
  • background-agent: Optimize task timing and constants management
  • agents: Improve explore/librarian prompt examples with 4-part context structure
  • Major codebase cleanup - BDD comments, file splitting, bug fixes (#1350)

Documentation

  • background-task: Enhance background_output tool description with full_session parameter

Full Changelog: https://github.com/code-yeongyu/oh-my-opencode/compare/v3.1.11...v3.2.0

v3.1.11 Breaking risk
Notable features
  • GLM-4.7 thinking mode support
  • Oracle deployment safety review
  • /stop-continuation command
v3.1.9 New feature
Notable features
  • Kimi K2.5 provider option
  • Deep and artistry categories with model gating
  • Model-suggestion-retry with fuzzy availability checking
Full changelog

Hi Kimi! 👋

This release welcomes Kimi K2.5 to the oh-my-opencode family!

Personal Note: I've been testing Kimi K2.5 as an Atlas orchestrator, and it's been performing better than Claude Sonnet 4.5 in my workflows. Seriously impressive for a free model.


What's New in 3.1.9

Features

  • Kimi For Coding provider: New provider option in installer for Sisyphus/Prometheus/Atlas fallback
  • kimi-k2.5 fallback chains: Added to sisyphus, atlas, prometheus, metis, multimodal-looker agents
  • deep category: Goal-oriented autonomous problem-solving with thorough research before action
  • artistry category: Creative, unconventional approaches beyond standard patterns
  • requiresModel field: Conditional category activation based on model availability
  • model-suggestion-retry: Auto-retry with provider-suggested model on not found errors
  • isModelAvailable helper: Fuzzy match model availability checking

Fixes

  • Model resolution now falls back to client API when cache is empty/unknown
  • Atlas properly respects fallbackChain and refreshes provider-models cache
  • Fixed gh api command for starring repo
  • Subagents no longer affected by UI model selection override
  • npm OIDC publish fixes

Improvements

  • ultrabrain category revamped with deep work mindset and code style requirements
  • Replaced console.log/warn/error with file-based log() for silent logging
  • Replaced big-pickle with glm-4.7-free for librarian fallback
  • Oracle fallback prioritizes gemini-3-pro over opus
  • momus opus fallback now includes variant max

Test Improvements

  • Optimized test suite with FakeTimers and race condition fixes
v3.1.7 New feature
Notable features
  • MCP OAuth 2.1 RFC compliance (7591, 9728, 8414, 8707)
  • LSP client migration to vscode-jsonrpc
  • Zombie process prevention improvements
v3.1.5 New feature
Notable features
  • Plan agent invocation enforcement
  • Auto-disable directory-agents-injector for OpenCode 1.1.37+
  • Prometheus self-delegation block
v3.1.4 Bug fix
Notable features
  • Version detection for npm global installations
  • dev-browser config schema update
v3.1.3 New feature
Notable features
  • Sisyphus task and swarm foundation schemas
  • Subagent question tool blocking
  • Make systemDefaultModel optional
v3.1.1 New feature
Notable features
  • Plan agent config with fallback chain
  • Ultrawork parallel task graph output
  • Thinking/reasoningEffort schema support
v3.1.0 New feature
Notable features
  • agent-browser automation skill
  • dev-browser with persistent page state
  • Tmux 2D grid pane layout
v3.0.1 Breaking risk
Notable features
  • Fixed missing name property in loadBuiltinCommands
  • Fixed GitHub Copilot gpt-5-nano association
  • Synced delegate_task schema with OpenCode Task tool
Full changelog

What's New in v3.0.1

Bug Fixes

  • fix: add missing name property in loadBuiltinCommands causing TypeError on slashcommand
  • fix: remove github-copilot association from gpt-5-nano model mapping
  • fix(ralph-loop): skip user messages in transcript completion detection (#1086)
  • fix: update documentation to use load_skills instead of skills parameter (#1088)
  • docs: fix atlas agent name case in example config

Refactoring & Cleanup

  • refactor: sync delegate_task schema with OpenCode Task tool (resume→session_id, add command param)
  • refactor(ultrawork): replace vague plan agent references with explicit delegate_task(subagent_type="plan") invocation syntax
  • refactor: remove dead re-exports from tools barrel
  • refactor: remove deprecated config-path.ts (dead code)
  • refactor: remove unused background-compaction hook module

Community

  • New CLA signatures from @kvokka, @potb, @jsl9208, @sadnow, @ThanhNguyxn, @AamiRobin

No notable changes

v3.0.0 Breaking risk
Breaking changes
  • Legacy 'Frontend UI/UX Engineer' agent retired
  • Agent configuration now requires Categories and Skills composition
Notable features
  • Categories and Skills dynamic composition system
  • Prometheus agent for strategic planning
  • Atlas orchestrator for task delegation and verification
Full changelog

v3.0.0: The Orchestration Revolution 🚀

We are thrilled to announce the release of oh-my-opencode v3.0.0. This major update transforms how agents are deployed and managed, moving away from static definitions toward a dynamic, intelligent orchestration ecosystem.

🧩 Dynamic Agent Composition: Categories & Skills

We've introduced Categories (model abstractions) and Skills, allowing you to configure sub-agents dynamically.

  • Beyond Hardcoded Agents: The legacy "Frontend UI/UX Engineer" has been retired. In its place, the Sisyphus agent now dynamically combines the visual-engineering category with the frontend-ui-ux skill to assign the perfect agent for the task.
  • Precision Sub-Agents: Need efficient Git management? Combine the quick category with the git-master skill to spawn a lightweight, specialized sub-agent that follows your project's specific Git conventions.
  • Extensible & Smart: This system is fully customizable and scalable. As always, Sisyphus intelligently handles these combinations behind the scenes.

📚 Category & Skill Guide

🔥 Enhanced Sisyphus & Ultrawork Mode

The core Sisyphus agent is now more proactive than ever. We've refined its prompts to encourage more aggressive delegation and assistance-seeking. Additionally, Ultrawork Mode has been optimized for tighter alignment, ensuring the agent stays perfectly on track during intense coding sessions.

🧠 Meet Prometheus: The Strategic Planner

Introducing Prometheus, a new agent designed to minimize your cognitive load while maximizing planning accuracy.

  • Prometheus conducts an "interview" with you, asking deep, clarifying questions until every requirement is crystal clear.
  • To ensure nothing is missed, Prometheus consults other specialized agents after drafting the work plan to verify the strategy.

🏗️ Atlas: The Master Orchestrator

Once your plan is ready, simply type /start-work to activate Atlas, our powerful new orchestration mode.

  • Right Tool, Right Job: Atlas manages the entire lifecycle, mixing Categories and Skills to deploy the most efficient agent for every sub-task.
  • Relentless Verification: Atlas obsessively checks and validates every step against the work plan. If a task fails, it automatically resumes the agent to fix the issue.
  • Cost Efficiency: By using Atlas, you can optimize token usage across providers—for example, using Sonnet for orchestration, GLM 4.7 for daily tasks, Haiku 4.5 for quick fixes, and GPT 5.2 Codex X-High for complex backend logic.

📚 Orchestration Guide

🛠️ Reimagined Installation & DX

We've overhauled the setup experience to get you up and running faster:

  • Interactive CLI Installer: A smooth, guided setup process.
  • Auto Model Mapping: Automatically maps models based on your subscription status.
  • Native Binaries: Platform-specific binaries allow you to run without a local runtime.
  • Multi-Provider Support: Full compatibility with GitHub Copilot, OpenCode Zen, Z.ai Coding Plan, and more.

📚 Installation Guide

🔄 Seamless Migration & Performance

Existing user configurations are automatically migrated at runtime. To handle the increased complexity of new categories and agents, we've implemented a runtime fuzzing system for model mapping, ensuring the most appropriate model is always assigned to your tasks.


Thank you for being part of the journey. Let's keep pushing the boundaries of what's possible.

just.. ulw ulw ⚡️

v3.0.0-beta.16 Bugfix

- fix(delegate-task): use lowercase sisyphus-junior agent name in API calls

v3.0.0-beta.14 Breaking risk
Breaking changes
  • Agent configuration keys normalized to lowercase throughout codebase
Notable features
  • Prometheus Agent introduction
  • Agent Display Names module
  • Platform binary verification
v3.0.0-beta.13 New feature
Notable features
  • Case-insensitive agent name matching
  • Model availability with fuzzy matching
  • Agent/category fallback chain infrastructure
v3.0.0-beta.12 Bug fix

CLI --chatgpt option replaced with --openai; also fixed OPENCODE_CONFIG_DIR path handling and skill MCP argument parsing.

v3.0.0-beta.11 New feature
Notable features
  • Non-blocking background agent launch
  • Per-key queue processor
  • Pending task cancellation support
v3.0.0-beta.10 Breaking risk
Notable features
  • /ulw-loop command for intensive coding sessions
  • Orchestrator parallel delegation enabled by default
v3.0.0-beta.8 New feature
Notable features
  • Bun single-file executable distribution
  • HTTP transport for remote MCP servers
  • GitHub Copilot fallback support
v3.0.0-beta.7 Breaking risk
Breaking changes
  • lsp_hover tool removed
  • lsp_code_actions and lsp_code_action_resolve tools removed
  • lsp_document_symbols and lsp_workspace_symbols merged into lsp_symbols with scope parameter
Notable features
  • GitHub Copilot fallback for visual/frontend agents
  • OpenAI Codex auth plugin removed in favor of Copilot
v3.0.0-beta.6 Breaking risk
Breaking changes
  • Built-in Google auth removed in favor of external plugin
Notable features
  • Model variant support
  • Skill eager loading
  • Call_omo_agent enabled for Sisyphus-Junior
Full changelog
  • 34863a7 @justsisyphus has signed the CLA in code-yeongyu/oh-my-opencode#760
  • a1b881f @abhijit360 has signed the CLA in code-yeongyu/oh-my-opencode#759
  • 2b556e0 Merge pull request #754 from code-yeongyu/fix/sisyphus-task-sync-mode-tests
  • 444b7ce fix(sisyphus-task): guard client.session.get and update sync mode tests
  • 31c5951 Merge pull request #731 from oussamadouhou/fix/background-task-directory-inheritance
  • 84dcb32 @kdcokenny has signed the CLA in code-yeongyu/oh-my-opencode#731
  • f2dc61f Merge pull request #750 from code-yeongyu/refactor/remove-builtin-google-auth
  • 1f47ea9 Merge pull request #753 from code-yeongyu/fix/todo-continuation-abort
  • 3920f84 fix(todo-continuation): implement hybrid abort detection
  • 42de7c3 Merge pull request #749 from Momentum96/fix/categories-deep-merge
  • 1a3fb00 Merge pull request #745 from LTS2/test/deep-merge-unit-tests
  • 6d4cebd Fix categories not being deep merged in mergeConfigs
  • 3afdaad refactor: remove built-in Google auth in favor of external plugin
  • 2042a29 test(shared): add unit tests for deep-merge utility
  • c6fb5e5 @haal-laah has signed the CLA in code-yeongyu/oh-my-opencode#739
  • 2dd9cf7 @LTS2 has signed the CLA in code-yeongyu/oh-my-opencode#745
  • d68f90f feat(agents): enable call_omo_agent for Sisyphus-Junior subagents
  • e6e25e6 fix(agents): enable call_omo_agent for background agents while restricting recursive calls
  • 0c99666 Revert "fix(agents): use createAgentToolRestrictions for Sisyphus call_omo_agent deny"
  • 8916a32 fix(agents): use createAgentToolRestrictions for Sisyphus call_omo_agent deny
  • cddbd0d refactor(agents): move question permission from orchestrator to prometheus
  • 9e81735 fix(background-agent): improve task completion detection and concurrency release
  • d9ab6ab docs: update AGENTS.md hierarchy with latest structure and line counts
  • cf53b2b feat(agents): enable question tool permission for Sisyphus agents
  • cf66a86 Merge pull request #560 from code-yeongyu/fix/install-preserve-config
  • d2a5f47 Merge pull request #677 from jkoelker/fix/add-variant-support
  • 9e98cef fix(background-agent): inherit parent session directory for background tasks
  • 2b8853c feat(config): add model variant support
  • f9fce50 Merge pull request #728 from code-yeongyu/fix/sisyphus-orchestrator-test-assertion
  • d1ffecd fix(test): update sisyphus-orchestrator test to expect preserved subagent response
  • d9aabb3 Merge pull request #709 from Momentum96/fix/skill-lazy-loading
  • 79bd75b refactor(skill-loader): eager loading with atomic file reads
  • 14dc8ee Merge pull request #698 from chilipvlmer/fix/preserve-subagent-response
  • 6ea6370 Merge pull request #726 from code-yeongyu/fix/todowrite-agent-friendly-errors
  • 8646564 fix: only append ellipsis when string exceeds 100 chars
  • 9048b61 Merge pull request #727 from code-yeongyu/feat/disable-call-omo-agent-default
  • 4fe4fb1 feat(tools): disable call_omo_agent by default, enable via sisyphus_task
  • 04ae364 fix(hooks): throw agent-friendly errors when todowrite receives invalid input
  • 70d604e fix(sisyphus-junior): use categoryConfig.model instead of hardcoded sonnet-4.5 (#718)
  • 8d65748 fix(prometheus): prevent agent fallback to build in background tasks (#695)
  • 2314a0d fix(glob): default hidden=true and follow=true to align with OpenCode (#720)
  • e620b54 @dante01yoon has signed the CLA in code-yeongyu/oh-my-opencode#710
  • 0fada4d fix(config): allow Sisyphus-Junior agent customization via oh-my-opencode.json (#648)
  • c792357 @Momentum96 has signed the CLA in code-yeongyu/oh-my-opencode#709
  • 6bbe69a fix(skill-loader): implement eager loading to resolve empty slash commands
  • 5b8c6c7 docs: add localized Chinese translation for oh-my-opencode README (#696)
  • 179f57f fix(sisyphus_task): resolve sync mode JSON parse error (#708)
  • f83b22c fix(cli/run): properly serialize error objects to prevent [object Object] output
  • 965bb2d chore(ci): remove pinned OpenCode version in sisyphus-agent workflow
  • f9dca8d fix(config): resolve category to model for Prometheus (Planner) agent (#652)
  • 91c490a @chilipvlmer has signed the CLA in code-yeongyu/oh-my-opencode#698
  • aa44c54 fix(sisyphus-orchestrator): preserve subagent response in output transformation
  • 945b090 @Sanyue0v0 has signed the CLA in code-yeongyu/oh-my-opencode#696
  • 05cd133 fix(git-master): inject user config into skill prompt (#656)
  • 8ed3f7e fix: LSP tools Windows compatibility - use pathToFileURL for proper URI generation (#689)
  • 42e5b5b @yimingll has signed the CLA in code-yeongyu/oh-my-opencode#689
  • 8320c7c fix(cli): integrate channel-based updates in doctor and get-local-version
  • 612e9b3 fix(auto-update): implement channel-based version fetching
  • f27e93b fix(agents): relax Momus input validation and tighten Prometheus Momus calls to avoid false rejections (#659)
  • 10a5bab fix: use version-aware zip extraction on Windows (#563)
  • f615b01 fix: run build before npm publish to include correct version (#653)
  • 0809de8 fix(skill-mcp): handle pre-parsed object arguments in parseArguments (#675)
  • 24bdc7e fix(prompts): add missing opening tag to Sisyphus system prompt (#682)
  • 49b0b5e fix(prometheus-md-only): allow nested project paths with .sisyphus directory
  • 1132be3 @Coaspe has signed the CLA in code-yeongyu/oh-my-opencode#682
  • 571810f fix(sisyphus-orchestrator): add cross-platform path validation for Windows support
  • 83d9585 librarian notice
  • f1e7b6a @aw338WoWmUI has signed the CLA in code-yeongyu/oh-my-opencode#681
  • 1bbb61b fix(context-injector): inject via chat.message after claudeCodeHooks
  • 2a95c91 fix(context-injector): inject only via messages.transform to preserve UI
  • 307d583 fix(prometheus-md-only): cross-platform path validation for Windows support (#630) (#649)
  • ce5315f refactor(keyword-detector): decouple from claude-code-hooks via ContextCollector pipeline
  • 1c262a6 feat: add OPENCODE_CONFIG_DIR environment variable support (#629)
  • 0c12787 fix(lsp): cleanup orphaned LSP servers on session.deleted (#676)
  • 65a6a70 Fix flowchart syntax in orchestration guide (#679)
  • e35a488 fix(test): extend timeout for resume sync test
  • adb1a9f docs: fix model names in config examples to use valid antigravity models
  • 9bfed23 docs: update agent model catalog - librarian now uses GLM-4.7 Free
  • 61abd55 fix wrong merge.
  • 6425d9d @KNN-07 has signed the CLA in code-yeongyu/oh-my-opencode#679
  • d577449 @arthur404dev has signed the CLA in code-yeongyu/oh-my-opencode#676
  • c7ae2d7 @ashir6892 has signed the CLA in code-yeongyu/oh-my-opencode#675
  • 358f7f4 @kargnas has signed the CLA in code-yeongyu/oh-my-opencode#653
  • 4fde139 @GollyJer has signed the CLA in code-yeongyu/oh-my-opencode#649
  • b10703e @imarshallwidjaja has signed the CLA in code-yeongyu/oh-my-opencode#648
  • 8b12257 fix: remove author name from agent system prompts (#634)
  • 7536a12 @Luodian has signed the CLA in code-yeongyu/oh-my-opencode#634
  • 0fb7657 fix: improve background task completion detection and message extraction (#638)
  • d4c8ec6 @ElwinLiu has signed the CLA in code-yeongyu/oh-my-opencode#645
  • d641608 @kdcokenny has signed the CLA in code-yeongyu/oh-my-opencode#629
  • e6aaf57 @SJY0917032 has signed the CLA in code-yeongyu/oh-my-opencode#625
  • 5242f3d fix(docs): correct plan invocation syntax from /plan to @plan
  • 3f2ded5 fix(docs): escape special chars in Mermaid diagram
  • aa50185 docs(orchestration): add TL;DR section for quick reference
  • 185d4e1 test(ralph-loop): add tests for loop restart scenarios
  • 79e9fd8 fix(background-agent): preserve parent agent context in completion notifications
  • a2c2922 fix(publish): add --tag for prerelease versions
  • 0581793 fix(auto-update): prevent downgrade from prerelease to stable
  • afdc257 refactor(agents): unify Metis/Momus to use factory pattern
  • e9aa805 fix(orchestrator-sisyphus): allow model override via config
  • 751ac64 feat(librarian): add documentation discovery workflow for targeted doc investigation (#377)
  • 6ef1029 fix: prevent auto-update from downgrading prerelease/dist-tag versions (#615)
  • ace2098 docs: update beta install command to specific version 3.0.0-beta.1
  • a975b23 @xLillium has signed the CLA in code-yeongyu/oh-my-opencode#603
  • ef0220e fix: add orchestrator-sisyphus and Momus to schema
  • 29cee62 docs: optimize images in readme
  • 157ed64 INTRODUCING SISYPHUS LABS
  • 768ecd9 THE ORCHESTRATOR (#600)
  • 8394926 [ORCHESTRATOR TEST] feat(auth): multi-account Google Antigravity auth with automatic rotation (#579)
  • 500dfaf docs: update opencode-antigravity-auth to 1.2.8 (#593)
  • 69e542c @Gladdonilli has signed the CLA in code-yeongyu/oh-my-opencode#592
  • c559037 @Yjason-K has signed the CLA in code-yeongyu/oh-my-opencode#590
  • 3d49ee1 fix: respect disabled_hooks for keyword-detector in claude-code-hooks (#562)
  • 1570e29 fix(session-notification): revert PR #543 and add proper notification plugin conflict detection (#575)
  • cccd159 @sungchul2 has signed the CLA in code-yeongyu/oh-my-opencode#576
  • a54d9b1 @minpeter has signed the CLA in code-yeongyu/oh-my-opencode#574
  • b0cc1cd @LeonardoTrapani has signed the CLA in code-yeongyu/oh-my-opencode#570
  • 7853f1f fix(cli): preserve user config on reinstall
  • 13d3dc7 docs: update reviews section with new quotes
  • 2cca1ca docs(i18n): sync reviews section with English README
  • b23241e @starcomo has signed the CLA in code-yeongyu/oh-my-opencode#486
  • 7981c86 fix: add EXA_API_KEY header support for websearch_exa MCP (#499)
  • 115e465 docs(i18n): add plugins and plugins_override toggle documentation (#554)
  • 02c1b6c docs: add plugins and plugins_override toggle documentation (#481)
  • 677a7ae docs(contributing): update upstream branch name to master -> dev
  • 6f4649d fix: add missing LLM agent installation link in Japanese README (#500)
  • 57bf845 docs(agents): Model -> Default Model in agent breakdown
  • cc4299c docs: add background task concurrency configuration guide to all READMEs

Thank you to 25 community contributors:

  • @junhoyeo:
    • docs(agents): Model -> Default Model in agent breakdown
    • docs(contributing): update upstream branch name to master -> dev
    • docs(i18n): add plugins and plugins_override toggle documentation (#554)
    • INTRODUCING SISYPHUS LABS
    • docs: optimize images in readme
    • docs: update beta install command to specific version 3.0.0-beta.1
  • @sisyphus-dev-ai:
    • fix: add missing LLM agent installation link in Japanese README (#500)
    • fix(cli): preserve user config on reinstall
    • docs: update opencode-antigravity-auth to 1.2.8 (#593)
    • fix(auto-update): implement channel-based version fetching
    • fix(cli): integrate channel-based updates in doctor and get-local-version
    • fix(todo-continuation): implement hybrid abort detection
  • @geq1fan:
    • docs: add plugins and plugins_override toggle documentation (#481)
  • @raydocs:
    • fix: add EXA_API_KEY header support for websearch_exa MCP (#499)
  • @JohnC0de:
    • fix(session-notification): revert PR #543 and add proper notification plugin conflict detection (#575)
  • @popododo0720:
    • fix: respect disabled_hooks for keyword-detector in claude-code-hooks (#562)
    • fix: use version-aware zip extraction on Windows (#563)
  • @jkoelker:
    • fix: prevent auto-update from downgrading prerelease/dist-tag versions (#615)
    • feat(config): add model variant support
  • @gtg7784:
    • feat(librarian): add documentation discovery workflow for targeted doc investigation (#377)
  • @Gladdonilli:
    • fix: improve background task completion detection and message extraction (#638)
    • fix(git-master): inject user config into skill prompt (#656)
  • @Luodian:
    • fix: remove author name from agent system prompts (#634)
  • @KNN-07:
    • Fix flowchart syntax in orchestration guide (#679)
    • fix(prometheus): prevent agent fallback to build in background tasks (#695)
    • Merge pull request #677 from jkoelker/fix/add-variant-support
  • @arthur404dev:
    • fix(lsp): cleanup orphaned LSP servers on session.deleted (#676)
  • @kdcokenny:
    • feat: add OPENCODE_CONFIG_DIR environment variable support (#629)
    • fix(glob): default hidden=true and follow=true to align with OpenCode (#720)
    • fix(hooks): throw agent-friendly errors when todowrite receives invalid input
    • fix: only append ellipsis when string exceeds 100 chars
    • Merge pull request #726 from code-yeongyu/fix/todowrite-agent-friendly-errors
    • Merge pull request #698 from chilipvlmer/fix/preserve-subagent-response
    • refactor(skill-loader): eager loading with atomic file reads
    • Merge pull request #709 from Momentum96/fix/skill-lazy-loading
    • fix(test): update sisyphus-orchestrator test to expect preserved subagent response
    • Merge pull request #728 from code-yeongyu/fix/sisyphus-orchestrator-test-assertion
    • Merge pull request #560 from code-yeongyu/fix/install-preserve-config
    • refactor: remove built-in Google auth in favor of external plugin
    • Merge pull request #745 from LTS2/test/deep-merge-unit-tests
    • Merge pull request #749 from Momentum96/fix/categories-deep-merge
    • Merge pull request #753 from code-yeongyu/fix/todo-continuation-abort
    • Merge pull request #750 from code-yeongyu/refactor/remove-builtin-google-auth
    • Merge pull request #731 from oussamadouhou/fix/background-task-directory-inheritance
    • fix(sisyphus-task): guard client.session.get and update sync mode tests
    • Merge pull request #754 from code-yeongyu/fix/sisyphus-task-sync-mode-tests
  • @GollyJer:
    • fix(prometheus-md-only): cross-platform path validation for Windows support (#630) (#649)
  • @Coaspe:
    • fix(prompts): add missing opening tag to Sisyphus system prompt (#682)
  • @ashir6892:
    • fix(skill-mcp): handle pre-parsed object arguments in parseArguments (#675)
  • @kargnas:
    • fix: run build before npm publish to include correct version (#653)
  • @imarshallwidjaja:
    • fix(agents): relax Momus input validation and tighten Prometheus Momus calls to avoid false rejections (#659)
    • fix(config): resolve category to model for Prometheus (Planner) agent (#652)
    • fix(sisyphus_task): resolve sync mode JSON parse error (#708)
    • fix(config): allow Sisyphus-Junior agent customization via oh-my-opencode.json (#648)
  • @yimingll:
    • fix: LSP tools Windows compatibility - use pathToFileURL for proper URI generation (#689)
  • @chilipvlmer:
    • fix(sisyphus-orchestrator): preserve subagent response in output transformation
  • @Sanyue0v0:
    • docs: add localized Chinese translation for oh-my-opencode README (#696)
  • @Momentum96:
    • fix(skill-loader): implement eager loading to resolve empty slash commands
    • Fix categories not being deep merged in mergeConfigs
  • @vsumner:
    • fix(sisyphus-junior): use categoryConfig.model instead of hardcoded sonnet-4.5 (#718)
  • @oussamadouhou:
    • fix(background-agent): inherit parent session directory for background tasks
  • @LTS2:
    • test(shared): add unit tests for deep-merge utility
v3.0.0-beta.5 Maintenance

Minor fixes and improvements.

Full changelog
  • 49b0b5e fix(prometheus-md-only): allow nested project paths with .sisyphus directory
  • 1132be3 @Coaspe has signed the CLA in code-yeongyu/oh-my-opencode#682
  • 571810f fix(sisyphus-orchestrator): add cross-platform path validation for Windows support
  • 83d9585 librarian notice
  • f1e7b6a @aw338WoWmUI has signed the CLA in code-yeongyu/oh-my-opencode#681
  • 1bbb61b fix(context-injector): inject via chat.message after claudeCodeHooks
  • 2a95c91 fix(context-injector): inject only via messages.transform to preserve UI
  • 307d583 fix(prometheus-md-only): cross-platform path validation for Windows support (#630) (#649)
  • ce5315f refactor(keyword-detector): decouple from claude-code-hooks via ContextCollector pipeline
  • 1c262a6 feat: add OPENCODE_CONFIG_DIR environment variable support (#629)
  • 0c12787 fix(lsp): cleanup orphaned LSP servers on session.deleted (#676)
  • 65a6a70 Fix flowchart syntax in orchestration guide (#679)
  • e35a488 fix(test): extend timeout for resume sync test
  • adb1a9f docs: fix model names in config examples to use valid antigravity models
  • 9bfed23 docs: update agent model catalog - librarian now uses GLM-4.7 Free
  • 61abd55 fix wrong merge.
  • 6425d9d @KNN-07 has signed the CLA in code-yeongyu/oh-my-opencode#679
  • d577449 @arthur404dev has signed the CLA in code-yeongyu/oh-my-opencode#676
  • c7ae2d7 @ashir6892 has signed the CLA in code-yeongyu/oh-my-opencode#675
  • 358f7f4 @kargnas has signed the CLA in code-yeongyu/oh-my-opencode#653
  • 4fde139 @GollyJer has signed the CLA in code-yeongyu/oh-my-opencode#649
  • b10703e @imarshallwidjaja has signed the CLA in code-yeongyu/oh-my-opencode#648
  • 8b12257 fix: remove author name from agent system prompts (#634)
  • 7536a12 @Luodian has signed the CLA in code-yeongyu/oh-my-opencode#634
  • 0fb7657 fix: improve background task completion detection and message extraction (#638)
  • d4c8ec6 @ElwinLiu has signed the CLA in code-yeongyu/oh-my-opencode#645
  • d641608 @kdcokenny has signed the CLA in code-yeongyu/oh-my-opencode#629
  • e6aaf57 @SJY0917032 has signed the CLA in code-yeongyu/oh-my-opencode#625
  • 5242f3d fix(docs): correct plan invocation syntax from /plan to @plan
  • 3f2ded5 fix(docs): escape special chars in Mermaid diagram
  • aa50185 docs(orchestration): add TL;DR section for quick reference
  • 185d4e1 test(ralph-loop): add tests for loop restart scenarios
  • 79e9fd8 fix(background-agent): preserve parent agent context in completion notifications
  • a2c2922 fix(publish): add --tag for prerelease versions
  • 0581793 fix(auto-update): prevent downgrade from prerelease to stable
  • afdc257 refactor(agents): unify Metis/Momus to use factory pattern
  • e9aa805 fix(orchestrator-sisyphus): allow model override via config
  • 751ac64 feat(librarian): add documentation discovery workflow for targeted doc investigation (#377)
  • 6ef1029 fix: prevent auto-update from downgrading prerelease/dist-tag versions (#615)
  • ace2098 docs: update beta install command to specific version 3.0.0-beta.1
  • a975b23 @xLillium has signed the CLA in code-yeongyu/oh-my-opencode#603
  • ef0220e fix: add orchestrator-sisyphus and Momus to schema
  • 29cee62 docs: optimize images in readme
  • 157ed64 INTRODUCING SISYPHUS LABS
  • 768ecd9 THE ORCHESTRATOR (#600)
  • 8394926 [ORCHESTRATOR TEST] feat(auth): multi-account Google Antigravity auth with automatic rotation (#579)
  • 500dfaf docs: update opencode-antigravity-auth to 1.2.8 (#593)
  • 69e542c @Gladdonilli has signed the CLA in code-yeongyu/oh-my-opencode#592
  • c559037 @Yjason-K has signed the CLA in code-yeongyu/oh-my-opencode#590
  • 3d49ee1 fix: respect disabled_hooks for keyword-detector in claude-code-hooks (#562)
  • 1570e29 fix(session-notification): revert PR #543 and add proper notification plugin conflict detection (#575)
  • cccd159 @sungchul2 has signed the CLA in code-yeongyu/oh-my-opencode#576
  • a54d9b1 @minpeter has signed the CLA in code-yeongyu/oh-my-opencode#574
  • b0cc1cd @LeonardoTrapani has signed the CLA in code-yeongyu/oh-my-opencode#570
  • 13d3dc7 docs: update reviews section with new quotes
  • 2cca1ca docs(i18n): sync reviews section with English README
  • b23241e @starcomo has signed the CLA in code-yeongyu/oh-my-opencode#486
  • 7981c86 fix: add EXA_API_KEY header support for websearch_exa MCP (#499)
  • 115e465 docs(i18n): add plugins and plugins_override toggle documentation (#554)
  • 02c1b6c docs: add plugins and plugins_override toggle documentation (#481)
  • 677a7ae docs(contributing): update upstream branch name to master -> dev
  • 6f4649d fix: add missing LLM agent installation link in Japanese README (#500)
  • 57bf845 docs(agents): Model -> Default Model in agent breakdown
  • cc4299c docs: add background task concurrency configuration guide to all READMEs

Thank you to 14 community contributors:

  • @junhoyeo:
    • docs(agents): Model -> Default Model in agent breakdown
    • docs(contributing): update upstream branch name to master -> dev
    • docs(i18n): add plugins and plugins_override toggle documentation (#554)
    • INTRODUCING SISYPHUS LABS
    • docs: optimize images in readme
    • docs: update beta install command to specific version 3.0.0-beta.1
  • @sisyphus-dev-ai:
    • fix: add missing LLM agent installation link in Japanese README (#500)
    • docs: update opencode-antigravity-auth to 1.2.8 (#593)
  • @geq1fan:
    • docs: add plugins and plugins_override toggle documentation (#481)
  • @raydocs:
    • fix: add EXA_API_KEY header support for websearch_exa MCP (#499)
  • @JohnC0de:
    • fix(session-notification): revert PR #543 and add proper notification plugin conflict detection (#575)
  • @popododo0720:
    • fix: respect disabled_hooks for keyword-detector in claude-code-hooks (#562)
  • @jkoelker:
    • fix: prevent auto-update from downgrading prerelease/dist-tag versions (#615)
  • @gtg7784:
    • feat(librarian): add documentation discovery workflow for targeted doc investigation (#377)
  • @Gladdonilli:
    • fix: improve background task completion detection and message extraction (#638)
  • @Luodian:
    • fix: remove author name from agent system prompts (#634)
  • @KNN-07:
    • Fix flowchart syntax in orchestration guide (#679)
  • @arthur404dev:
    • fix(lsp): cleanup orphaned LSP servers on session.deleted (#676)
  • @kdcokenny:
    • feat: add OPENCODE_CONFIG_DIR environment variable support (#629)
  • @GollyJer:
    • fix(prometheus-md-only): cross-platform path validation for Windows support (#630) (#649)
v3.0.0-beta.4 Mixed
Notable features
  • Gemini-optimized ultrawork message
  • Documentation discovery workflow for librarian
  • LSP server cleanup on session deletion
Full changelog
  • 571810f fix(sisyphus-orchestrator): add cross-platform path validation for Windows support
  • 83d9585 librarian notice
  • f1e7b6a @aw338WoWmUI has signed the CLA in code-yeongyu/oh-my-opencode#681
  • 1bbb61b fix(context-injector): inject via chat.message after claudeCodeHooks
  • 2a95c91 fix(context-injector): inject only via messages.transform to preserve UI
  • 307d583 fix(prometheus-md-only): cross-platform path validation for Windows support (#630) (#649)
  • ce5315f refactor(keyword-detector): decouple from claude-code-hooks via ContextCollector pipeline
  • 1c262a6 feat: add OPENCODE_CONFIG_DIR environment variable support (#629)
  • 0c12787 fix(lsp): cleanup orphaned LSP servers on session.deleted (#676)
  • 65a6a70 Fix flowchart syntax in orchestration guide (#679)
  • e35a488 fix(test): extend timeout for resume sync test
  • adb1a9f docs: fix model names in config examples to use valid antigravity models
  • 9bfed23 docs: update agent model catalog - librarian now uses GLM-4.7 Free
  • 61abd55 fix wrong merge.
  • 6425d9d @KNN-07 has signed the CLA in code-yeongyu/oh-my-opencode#679
  • d577449 @arthur404dev has signed the CLA in code-yeongyu/oh-my-opencode#676
  • c7ae2d7 @ashir6892 has signed the CLA in code-yeongyu/oh-my-opencode#675
  • 358f7f4 @kargnas has signed the CLA in code-yeongyu/oh-my-opencode#653
  • 4fde139 @GollyJer has signed the CLA in code-yeongyu/oh-my-opencode#649
  • b10703e @imarshallwidjaja has signed the CLA in code-yeongyu/oh-my-opencode#648
  • 8b12257 fix: remove author name from agent system prompts (#634)
  • 7536a12 @Luodian has signed the CLA in code-yeongyu/oh-my-opencode#634
  • 0fb7657 fix: improve background task completion detection and message extraction (#638)
  • d4c8ec6 @ElwinLiu has signed the CLA in code-yeongyu/oh-my-opencode#645
  • d641608 @kdcokenny has signed the CLA in code-yeongyu/oh-my-opencode#629
  • e6aaf57 @SJY0917032 has signed the CLA in code-yeongyu/oh-my-opencode#625
  • 5242f3d fix(docs): correct plan invocation syntax from /plan to @plan
  • 3f2ded5 fix(docs): escape special chars in Mermaid diagram
  • aa50185 docs(orchestration): add TL;DR section for quick reference
  • 185d4e1 test(ralph-loop): add tests for loop restart scenarios
  • 79e9fd8 fix(background-agent): preserve parent agent context in completion notifications
  • a2c2922 fix(publish): add --tag for prerelease versions
  • 0581793 fix(auto-update): prevent downgrade from prerelease to stable
  • afdc257 refactor(agents): unify Metis/Momus to use factory pattern
  • e9aa805 fix(orchestrator-sisyphus): allow model override via config
  • 751ac64 feat(librarian): add documentation discovery workflow for targeted doc investigation (#377)
  • 6ef1029 fix: prevent auto-update from downgrading prerelease/dist-tag versions (#615)
  • ace2098 docs: update beta install command to specific version 3.0.0-beta.1
  • a975b23 @xLillium has signed the CLA in code-yeongyu/oh-my-opencode#603
  • ef0220e fix: add orchestrator-sisyphus and Momus to schema
  • 29cee62 docs: optimize images in readme
  • 157ed64 INTRODUCING SISYPHUS LABS
  • 768ecd9 THE ORCHESTRATOR (#600)
  • 8394926 [ORCHESTRATOR TEST] feat(auth): multi-account Google Antigravity auth with automatic rotation (#579)
  • 500dfaf docs: update opencode-antigravity-auth to 1.2.8 (#593)
  • 69e542c @Gladdonilli has signed the CLA in code-yeongyu/oh-my-opencode#592
  • c559037 @Yjason-K has signed the CLA in code-yeongyu/oh-my-opencode#590
  • 3d49ee1 fix: respect disabled_hooks for keyword-detector in claude-code-hooks (#562)
  • 1570e29 fix(session-notification): revert PR #543 and add proper notification plugin conflict detection (#575)
  • cccd159 @sungchul2 has signed the CLA in code-yeongyu/oh-my-opencode#576
  • a54d9b1 @minpeter has signed the CLA in code-yeongyu/oh-my-opencode#574
  • b0cc1cd @LeonardoTrapani has signed the CLA in code-yeongyu/oh-my-opencode#570
  • 13d3dc7 docs: update reviews section with new quotes
  • 2cca1ca docs(i18n): sync reviews section with English README
  • b23241e @starcomo has signed the CLA in code-yeongyu/oh-my-opencode#486
  • 7981c86 fix: add EXA_API_KEY header support for websearch_exa MCP (#499)
  • 115e465 docs(i18n): add plugins and plugins_override toggle documentation (#554)
  • 02c1b6c docs: add plugins and plugins_override toggle documentation (#481)
  • 677a7ae docs(contributing): update upstream branch name to master -> dev
  • 6f4649d fix: add missing LLM agent installation link in Japanese README (#500)
  • 57bf845 docs(agents): Model -> Default Model in agent breakdown
  • cc4299c docs: add background task concurrency configuration guide to all READMEs

Thank you to 14 community contributors:

  • @junhoyeo:
    • docs(agents): Model -> Default Model in agent breakdown
    • docs(contributing): update upstream branch name to master -> dev
    • docs(i18n): add plugins and plugins_override toggle documentation (#554)
    • INTRODUCING SISYPHUS LABS
    • docs: optimize images in readme
    • docs: update beta install command to specific version 3.0.0-beta.1
  • @sisyphus-dev-ai:
    • fix: add missing LLM agent installation link in Japanese README (#500)
    • docs: update opencode-antigravity-auth to 1.2.8 (#593)
  • @geq1fan:
    • docs: add plugins and plugins_override toggle documentation (#481)
  • @raydocs:
    • fix: add EXA_API_KEY header support for websearch_exa MCP (#499)
  • @JohnC0de:
    • fix(session-notification): revert PR #543 and add proper notification plugin conflict detection (#575)
  • @popododo0720:
    • fix: respect disabled_hooks for keyword-detector in claude-code-hooks (#562)
  • @jkoelker:
    • fix: prevent auto-update from downgrading prerelease/dist-tag versions (#615)
  • @gtg7784:
    • feat(librarian): add documentation discovery workflow for targeted doc investigation (#377)
  • @Gladdonilli:
    • fix: improve background task completion detection and message extraction (#638)
  • @Luodian:
    • fix: remove author name from agent system prompts (#634)
  • @KNN-07:
    • Fix flowchart syntax in orchestration guide (#679)
  • @arthur404dev:
    • fix(lsp): cleanup orphaned LSP servers on session.deleted (#676)
  • @kdcokenny:
    • feat: add OPENCODE_CONFIG_DIR environment variable support (#629)
  • @GollyJer:
    • fix(prometheus-md-only): cross-platform path validation for Windows support (#630) (#649)
v3.0.0-beta.3 Maintenance

Minor fixes and improvements.

Full changelog
  • e35a488 fix(test): extend timeout for resume sync test
  • adb1a9f docs: fix model names in config examples to use valid antigravity models
  • 9bfed23 docs: update agent model catalog - librarian now uses GLM-4.7 Free
  • 61abd55 fix wrong merge.
  • 6425d9d @KNN-07 has signed the CLA in code-yeongyu/oh-my-opencode#679
  • d577449 @arthur404dev has signed the CLA in code-yeongyu/oh-my-opencode#676
  • c7ae2d7 @ashir6892 has signed the CLA in code-yeongyu/oh-my-opencode#675
  • 358f7f4 @kargnas has signed the CLA in code-yeongyu/oh-my-opencode#653
  • 4fde139 @GollyJer has signed the CLA in code-yeongyu/oh-my-opencode#649
  • b10703e @imarshallwidjaja has signed the CLA in code-yeongyu/oh-my-opencode#648
  • 8b12257 fix: remove author name from agent system prompts (#634)
  • 7536a12 @Luodian has signed the CLA in code-yeongyu/oh-my-opencode#634
  • 0fb7657 fix: improve background task completion detection and message extraction (#638)
  • d4c8ec6 @ElwinLiu has signed the CLA in code-yeongyu/oh-my-opencode#645
  • d641608 @kdcokenny has signed the CLA in code-yeongyu/oh-my-opencode#629
  • e6aaf57 @SJY0917032 has signed the CLA in code-yeongyu/oh-my-opencode#625
  • 5242f3d fix(docs): correct plan invocation syntax from /plan to @plan
  • 3f2ded5 fix(docs): escape special chars in Mermaid diagram
  • aa50185 docs(orchestration): add TL;DR section for quick reference
  • 185d4e1 test(ralph-loop): add tests for loop restart scenarios
  • 79e9fd8 fix(background-agent): preserve parent agent context in completion notifications
  • a2c2922 fix(publish): add --tag for prerelease versions
  • 0581793 fix(auto-update): prevent downgrade from prerelease to stable
  • afdc257 refactor(agents): unify Metis/Momus to use factory pattern
  • e9aa805 fix(orchestrator-sisyphus): allow model override via config
  • 751ac64 feat(librarian): add documentation discovery workflow for targeted doc investigation (#377)
  • 6ef1029 fix: prevent auto-update from downgrading prerelease/dist-tag versions (#615)
  • ace2098 docs: update beta install command to specific version 3.0.0-beta.1
  • a975b23 @xLillium has signed the CLA in code-yeongyu/oh-my-opencode#603
  • ef0220e fix: add orchestrator-sisyphus and Momus to schema
  • 29cee62 docs: optimize images in readme
  • 157ed64 INTRODUCING SISYPHUS LABS
  • 768ecd9 THE ORCHESTRATOR (#600)
  • 8394926 [ORCHESTRATOR TEST] feat(auth): multi-account Google Antigravity auth with automatic rotation (#579)
  • 500dfaf docs: update opencode-antigravity-auth to 1.2.8 (#593)
  • 69e542c @Gladdonilli has signed the CLA in code-yeongyu/oh-my-opencode#592
  • c559037 @Yjason-K has signed the CLA in code-yeongyu/oh-my-opencode#590
  • 3d49ee1 fix: respect disabled_hooks for keyword-detector in claude-code-hooks (#562)
  • 1570e29 fix(session-notification): revert PR #543 and add proper notification plugin conflict detection (#575)
  • cccd159 @sungchul2 has signed the CLA in code-yeongyu/oh-my-opencode#576
  • a54d9b1 @minpeter has signed the CLA in code-yeongyu/oh-my-opencode#574
  • b0cc1cd @LeonardoTrapani has signed the CLA in code-yeongyu/oh-my-opencode#570
  • 13d3dc7 docs: update reviews section with new quotes
  • 2cca1ca docs(i18n): sync reviews section with English README
  • b23241e @starcomo has signed the CLA in code-yeongyu/oh-my-opencode#486
  • 7981c86 fix: add EXA_API_KEY header support for websearch_exa MCP (#499)
  • 115e465 docs(i18n): add plugins and plugins_override toggle documentation (#554)
  • 02c1b6c docs: add plugins and plugins_override toggle documentation (#481)
  • 677a7ae docs(contributing): update upstream branch name to master -> dev
  • 6f4649d fix: add missing LLM agent installation link in Japanese README (#500)
  • 57bf845 docs(agents): Model -> Default Model in agent breakdown
  • cc4299c docs: add background task concurrency configuration guide to all READMEs

Thank you to 10 community contributors:

  • @junhoyeo:
    • docs(agents): Model -> Default Model in agent breakdown
    • docs(contributing): update upstream branch name to master -> dev
    • docs(i18n): add plugins and plugins_override toggle documentation (#554)
    • INTRODUCING SISYPHUS LABS
    • docs: optimize images in readme
    • docs: update beta install command to specific version 3.0.0-beta.1
  • @sisyphus-dev-ai:
    • fix: add missing LLM agent installation link in Japanese README (#500)
    • docs: update opencode-antigravity-auth to 1.2.8 (#593)
  • @geq1fan:
    • docs: add plugins and plugins_override toggle documentation (#481)
  • @raydocs:
    • fix: add EXA_API_KEY header support for websearch_exa MCP (#499)
  • @JohnC0de:
    • fix(session-notification): revert PR #543 and add proper notification plugin conflict detection (#575)
  • @popododo0720:
    • fix: respect disabled_hooks for keyword-detector in claude-code-hooks (#562)
  • @jkoelker:
    • fix: prevent auto-update from downgrading prerelease/dist-tag versions (#615)
  • @gtg7784:
    • feat(librarian): add documentation discovery workflow for targeted doc investigation (#377)
  • @Gladdonilli:
    • fix: improve background task completion detection and message extraction (#638)
  • @Luodian:
    • fix: remove author name from agent system prompts (#634)
v3.0.0-beta.2 Mixed
Notable features
  • Documentation discovery workflow for librarian
  • Multi-account Google Antigravity auth
  • Sisyphus agent configuration customization
Full changelog
  • a2c2922 fix(publish): add --tag for prerelease versions
  • 0581793 fix(auto-update): prevent downgrade from prerelease to stable
  • afdc257 refactor(agents): unify Metis/Momus to use factory pattern
  • e9aa805 fix(orchestrator-sisyphus): allow model override via config
  • 751ac64 feat(librarian): add documentation discovery workflow for targeted doc investigation (#377)
  • 6ef1029 fix: prevent auto-update from downgrading prerelease/dist-tag versions (#615)
  • ace2098 docs: update beta install command to specific version 3.0.0-beta.1
  • a975b23 @xLillium has signed the CLA in code-yeongyu/oh-my-opencode#603
  • ef0220e fix: add orchestrator-sisyphus and Momus to schema
  • 29cee62 docs: optimize images in readme
  • 157ed64 INTRODUCING SISYPHUS LABS
  • 768ecd9 THE ORCHESTRATOR (#600)
  • 8394926 [ORCHESTRATOR TEST] feat(auth): multi-account Google Antigravity auth with automatic rotation (#579)
  • 500dfaf docs: update opencode-antigravity-auth to 1.2.8 (#593)
  • 69e542c @Gladdonilli has signed the CLA in code-yeongyu/oh-my-opencode#592
  • c559037 @Yjason-K has signed the CLA in code-yeongyu/oh-my-opencode#590
  • 3d49ee1 fix: respect disabled_hooks for keyword-detector in claude-code-hooks (#562)
  • 1570e29 fix(session-notification): revert PR #543 and add proper notification plugin conflict detection (#575)
  • cccd159 @sungchul2 has signed the CLA in code-yeongyu/oh-my-opencode#576
  • a54d9b1 @minpeter has signed the CLA in code-yeongyu/oh-my-opencode#574
  • b0cc1cd @LeonardoTrapani has signed the CLA in code-yeongyu/oh-my-opencode#570
  • 13d3dc7 docs: update reviews section with new quotes
  • 2cca1ca docs(i18n): sync reviews section with English README
  • b23241e @starcomo has signed the CLA in code-yeongyu/oh-my-opencode#486
  • 7981c86 fix: add EXA_API_KEY header support for websearch_exa MCP (#499)
  • 115e465 docs(i18n): add plugins and plugins_override toggle documentation (#554)
  • 02c1b6c docs: add plugins and plugins_override toggle documentation (#481)
  • 677a7ae docs(contributing): update upstream branch name to master -> dev
  • 6f4649d fix: add missing LLM agent installation link in Japanese README (#500)
  • 57bf845 docs(agents): Model -> Default Model in agent breakdown
  • cc4299c docs: add background task concurrency configuration guide to all READMEs

Thank you to 8 community contributors:

  • @junhoyeo:
    • docs(agents): Model -> Default Model in agent breakdown
    • docs(contributing): update upstream branch name to master -> dev
    • docs(i18n): add plugins and plugins_override toggle documentation (#554)
    • INTRODUCING SISYPHUS LABS
    • docs: optimize images in readme
    • docs: update beta install command to specific version 3.0.0-beta.1
  • @sisyphus-dev-ai:
    • fix: add missing LLM agent installation link in Japanese README (#500)
    • docs: update opencode-antigravity-auth to 1.2.8 (#593)
  • @geq1fan:
    • docs: add plugins and plugins_override toggle documentation (#481)
  • @raydocs:
    • fix: add EXA_API_KEY header support for websearch_exa MCP (#499)
  • @JohnC0de:
    • fix(session-notification): revert PR #543 and add proper notification plugin conflict detection (#575)
  • @popododo0720:
    • fix: respect disabled_hooks for keyword-detector in claude-code-hooks (#562)
  • @jkoelker:
    • fix: prevent auto-update from downgrading prerelease/dist-tag versions (#615)
  • @gtg7784:
    • feat(librarian): add documentation discovery workflow for targeted doc investigation (#377)
v3.0.0-beta.1 Breaking risk
Breaking changes
  • sisyphus-task skills parameter is now required
  • background parameter renamed to run_in_background
  • agent parameter renamed to subagent_type in sisyphus_task
Notable features
  • New sisyphus_task tool for category-based agent delegation with resume capability
  • New Prometheus planner agent with system prompt and methodology
  • Google Antigravity authentication with automatic account rotation
v2.14.0 New feature
Notable features
  • Restored Exa websearch MCP
  • Fixed Bun shell GC crash
  • Optimized librarian token usage
Full changelog

Highlights

  • Stability improvements: Fixed Bun shell GC crash, session checks, and hook execution
  • Librarian optimization: Reduced token usage by making searches conditional instead of mandatory
  • Restored Exa websearch: Web search MCP is back!

Changes

  • 398075f refactor(librarian): optimize prompt to search only when needed
  • d4347e8 fix(auto-slash-command): load skill content via lazyContentLoader and include builtin skills
  • 980b685 fix(background-agent): release concurrency before prompt to unblock queued tasks
  • b5c1cfb fix(keyword-detector): use mainSessionID for session check instead of unreliable API
  • b9ec4c7 docs: add GitHub follow badge to README files
  • 2064568 fix: correct spawn mock type in session-notification test
  • ad44af9 fix: load skill content via lazyContentLoader in slashcommand tool
  • d331b48 fix: verify zsh exists before using it for hook execution (#544)
  • 4a38e70 fix(session-notification): use node:child_process to avoid Bun shell GC crash (#543)
  • a2bfb5e feat(mcp): restore Exa websearch support (#549)
  • f25f7ed feat(background-agent): add model-based concurrency management (#548)

Thank you to 2 community contributors:

  • @JohnC0de:
    • fix(session-notification): use node:child_process to avoid Bun shell GC crash (#543)
  • @ananas-viber:
    • fix: verify zsh exists before using it for hook execution (#544)
v2.13.2 Bug fix
Security fixes
  • Prevented background agents from spawning recursive subagents via call_omo_agent
Full changelog
  • 375e7f7 fix: prevent background agents from spawning recursive subagents via call_omo_agent (#536)
  • 5aa0ee1 feat: add English language policy and GitHub issue templates (#534)
  • d0b3be7 @sngweizhi has signed the CLA in code-yeongyu/oh-my-opencode#532
  • a10903d @jkoelker has signed the CLA in code-yeongyu/oh-my-opencode#531

Thank you to 1 community contributor:

  • @sisyphus-dev-ai:
    • feat: add English language policy and GitHub issue templates (#534)
    • fix: prevent background agents from spawning recursive subagents via call_omo_agent (#536)
v2.13.1 New feature
Notable features
  • /refactor command with parallel explore agents
  • Deterministic planning and verification strategy
  • Surgical execution using LSP tools and AST-grep
Full changelog

Highlights

/refactor Command — Refactoring, Now Automated

This release includes my personal /refactor command—a tool I've been using privately and now sharing with everyone.

Unlike blind search-and-replace or naive rename operations, /refactor operates like a human engineer would:

  1. Codebase Understanding First: Launches parallel explore agents to programmatically map your codebase—dependencies, usage patterns, architectural boundaries—before touching a single line of code.

  2. Deterministic Planning: Based on this comprehensive understanding, creates a detailed refactoring plan. No guessing. No hoping it works. Every step is deliberate.

  3. Verification by Design: Before any refactoring begins, designs a verification strategy—identifying test coverage, regression indicators, and rollback points. If tests are insufficient, it pauses and asks you to add them first.

  4. Surgical Execution: Uses LSP tools and AST-grep for precise, type-safe transformations. Symbol renames propagate correctly across your entire workspace. Pattern transformations are previewed before applying.

From simple variable renaming to full-scale architecture restructuring—the kind of refactoring that was once the exclusive domain of human programmers—Sisyphus now handles with the same care and precision.

Watch Sisyphus refactor your code the way you would. It's honestly kind of beautiful.

Usage:

/refactor "reconstruct Super big AuthService as Multiple services, after consulting with Oracle"

  • 9d13c6c fix(config): skip permission migration for Claude Code agents
  • b78e564 feat(builtin-commands): add /refactor command for intelligent LSP/AST-based refactoring
  • c709faf docs: update 'Just Install It' section with detailed Sisyphus workflow across all languages
v2.13.0 Breaking risk
Notable features
  • Maximum reasoning effort mode with variant='max'
  • Slash command refactoring with options and caching
  • Flexible MCP configuration with disabled_mcps
v2.12.4 Bugfix

- fix: use mode 'all' for Planner-Sisyphus agent and inherit default model

v2.12.3 New feature
Notable features
  • OpenCode v1.1.1 permission system compatibility
  • Startup parallelization for commands and skills
  • Async-first loaders for initialization
v2.11.0 New feature
Notable features
  • Handoffs support for speckit compatibility
  • GitHub Copilot instructions format support
  • Smart MCP conflict resolution
v2.10.0 New feature
Notable features
  • Skills with embedded MCP server configurations
  • Built-in Playwright skill for browser automation
  • Recursive command loader for nested folders
v2.9.1 New feature
Notable features
  • Skill support for Sisyphus agent
Full changelog

Highlights

This patch release adds skill support to the Sisyphus agent, enabling more flexible agent capabilities with specialized skills.

Changes

  • Sisyphus agent now supports skills for enhanced task execution
  • Documentation updates and README improvements
  • Several new CLA signatures from community contributors

  • 4efa586 Add skill support to sisyphus agent
  • fbae3ae update readme
  • 74da07d @vsumner has signed the CLA in code-yeongyu/oh-my-opencode#388
  • 7cd04a2 @eudresfs has signed the CLA in code-yeongyu/oh-my-opencode#385
  • 1de7df4 @ul8 has signed the CLA in code-yeongyu/oh-my-opencode#378
  • ea6121e @gtg7784 has signed the CLA in code-yeongyu/oh-my-opencode#377
  • 4939f81 THE ORCHESTRATOR IS COMING (#375)
  • 820b339 @junhoyeo has signed the CLA in code-yeongyu/oh-my-opencode#375
  • 5412578 docs: regenerate AGENTS.md hierarchy via init-deep

Thank you to 1 community contributor:

  • @junhoyeo:
    • THE ORCHESTRATOR IS COMING (#375)

Beta — feedback welcome: [email protected]