Skip to content

Releases: code-yeongyu/oh-my-openagent

v3.17.6

28 Apr 06:21

Choose a tag to compare

🤖 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

  • 4eb597b Merge pull request #3698 from code-yeongyu/fix/posthog-cost-reduction
  • 90c2c9c Merge pull request #3697 from code-yeongyu/feat/sisyphus-kimi-k2-6
  • 669e066 fix(telemetry): dedupe plugin_loaded event to once per UTC day
  • 7a3a835 feat(sisyphus): add Kimi K2.x prompt variant
  • 58e4b8f fix(telemetry): remove PostHog HAU tracking, keep DAU only
  • 84287f1 test(todo-continuation): make countdown toast test deterministic
  • 2483dc7 fix(agents): restore Opus Sisyphus prompt contracts
  • c3fabaa refactor(agents): rewrite Hephaestus gpt-5.5 around outcome-first delegation contract
  • 886845b @FurryWolfX has signed the CLA in #3695
  • 6103df0 feat(agents): restore deep-work emphasis on Hephaestus gpt-5.5
  • 7a89b98 refactor(agents): re-style Hephaestus gpt-5.5 in Codex 5.2 prompt structure
  • 4aae402 refactor(agents): rewrite Hephaestus gpt-5.5 prose-dense from Codex 5.2 + Amp distillation
  • 1365173 @javimarttinn has signed the CLA in #3687
  • 6775dd1 feat(agents): mandate end-to-end usage validation on Hephaestus gpt-5.5 delegation
  • c3b98c4 feat(agents): mandate surface-matched manual QA tools on Opus 4.7 full delegation
  • 9e7b391 feat(agents): require manual end-to-end QA on full-delegation Opus 4.7 tasks
  • 9feb9f6 refactor(agents): distill SMART production-prompt patterns into Opus 4.7 Sisyphus
  • 241fb70 test(delegate-task): add background-task test coverage
  • e1b2fa9 test(call-omo-agent): add sync-executor test coverage
  • bda7fdb test(background-agent): add spawner test coverage
  • 2024c0c feat(agents): wire Claude Opus 4.7 support into Sisyphus agent
  • 41d4cbe feat(agents): add Claude Opus 4.7 native Sisyphus prompt builder
  • 215c8f2 feat(agents): add isClaudeOpus47Model type guard
  • 8ad50b7 docs(agents): replace ZWSP policy with sort-shim policy
  • 333ad3a refactor(agents): drop ZWSP prefixes from agent display names
  • dffe5a3 feat(agents): add narrowly-scoped agent sort shim and install at plugin entry
  • 557d66f Merge pull request #3675 from code-yeongyu/fix/ralph-loop-remove-recovery-window
  • c2a41a3 Merge pull request #3674 from code-yeongyu/fix/doctor-parse-multi-slash-model
  • fe428ab Merge pull request #3673 from code-yeongyu/fix/single-task-directive-no-refuse
  • bde2955 fix(ralph-loop): remove stale error recovery window
  • 69c37e3 test(ralph-loop): cover non-abort error continuation
  • e95a37f fix(doctor): parse multi-slash model IDs
  • c27d52e fix(atlas): replace single task refusal directive
  • 2e6b3b7 Merge pull request #3669 from code-yeongyu/fix/ralph-loop-zwsp-agent
  • baf3e93 Merge pull request #3671 from code-yeongyu/fix/file-reference-env-var-expansion
  • 1f9d9e3 Merge pull request #3672 from code-yeongyu/fix/ralph-loop-bg-task-guard
  • ae7cdcc Merge pull request #3670 from code-yeongyu/fix/default-agent-config-key-normalization
  • d0dee70 fix(ralph-loop): skip idle continuation during background tasks
  • f429e53 test(ralph-loop): cover background task idle guard
  • a46b7b8 fix(file-reference-resolver): expand env vars in path references
  • 9081475 fix(plugin-handlers): normalize default agent runtime lookup
  • c92f841 fix(ralph-loop): normalize continuation agent names
  • 5e4aa8b Merge pull request #3667 from code-yeongyu/fix/dev-browser-provider-gating
  • f1d4eb7 fix(skill-context): filter dev-browser as provider-gated
  • 0d3eed1 fix(builtin-skills): gate dev-browser by provider selection
  • a835fef Merge pull request #3665 from code-yeongyu/fix/posthog-arch-cpus-crash
  • ee260fb Merge pull request #3666 from code-yeongyu/fix/minimax-kimi-thinking-param
  • 194d668 Merge pull request #3668 from code-yeongyu/fix/skills-override-resolution
  • dbf0bb9 test(agents): cover skills override prompt injection
  • aeb4419 fix(agents): resolve skills after agent overrides
  • 71c29c8 fix(model-capabilities): disable thinking for minimax and non-thinking kimi
  • d1bc25a fix(posthog): guard CPU telemetry collection
  • d32300a @islee23520 has signed the CLA in #3664
  • 1da7df1 Revert "Merge pull request #3657 from code-yeongyu/refactor/replace-zwsp-with-real-spaces"
  • 9823462 Merge pull request #3661 from code-yeongyu/fix/doctor-heuristic-model-status
  • a696c8a fix(hooks): apply Sisyphus GPT-5.5 variant
  • f1a11f2 Merge pull request #3657 from code-yeongyu/refactor/replace-zwsp-with-real-spaces
  • 136a54f fix(doctor): avoid warnings for resolved model capabilities
  • 8e78596 fix(model-capabilities): recognize current provider aliases
  • f100a85 fix(agents): keep object keys clean by separating list display from runtime name
  • 62c19ce Merge pull request #3659 from code-yeongyu/fix/dotted-opus-frontier-tools
  • 80791f1 fix(agents): cover dotted opus frontier model
  • 3f30dac Merge pull request #3656 from code-yeongyu/feature/hide-grep-glob-for-frontier-agents
  • acf293d fix(tmux): validate fallback port
  • ac8987a fix(agents): preserve explicit legacy tool denies
  • baef011 @LathissKhumar has signed the CLA in #3658
  • c65f90e fix(tmux): preserve configured fallback port
  • 4672485 fix(agents): clear stale frontier tool denies
  • 0e9bb59 refactor(agents): replace broken ZWSP sort prefixes with leading ASCII spaces
  • 8a49a03 test(skill): fresh import skill tool factory
  • 1680578 test(skill): stabilize command discovery spy
  • a2c3804 test(slashcommand): isolate command discovery mocks
  • ecce65b fix(skill): isolate injected skill discovery
  • f1353cd fix(tmux): use stable fallback server URL
  • c46b712 fix(agents): hide grep glob for frontier agents
  • f74d03c Merge pull request #3654 from acamq/fix/failing-ci
  • 25e1fa9 @gutierrezx7 has signed the CLA in #3651
  • b32620c Merge pull request #3640 from ismetanin/docs/fix-kimi-code-link
  • 6a0272f @ismetanin has signed the CLA in #3640
  • 3577f30 docs(readme): fix Kimi Code subscription link and price
  • c3b3417 @ihoooohi has signed the CLA in #3637
  • 48b0cfe @darianstlex has signed the CLA in #3626
  • 33ac355 Preserve migration history during config migration
  • fbd4cfb Update OpenAI defaults to GPT-5.5
  • 17d3350 @hackerh3 has signed the CLA in #3600
  • 7bbe11a Merge pull request #3623 from MoerAI/fix/session-model-recovery-guard
  • 7fa21ef fix(chat-message): remove unreachable guard that blocked session model recovery (fixes #3561)
  • 6b46b9b fix(model-capabilities): add gpt-5.5 capability snapshot
  • 3875b40 feat(migration): auto-upgrade openai/gpt-5.4 to openai/gpt-5.5
  • 3bab66b feat(models): promote gpt-5.5 as default for oracle, hephaestus, and deep
  • 1ff60d5 feat(agents): add gpt-5.5 native oracle prompt
  • c57d08c feat(agents): add gpt-5.5 native sisyphus-junior prompt
  • a432e29 feat(agents): add gpt-5.5 native hephaestus prompt
  • 98964eb feat(agents): add gpt-5.5 native sisyphus prompt
  • 69e6f38 feat(agents): reintroduce isGpt5_5Model for per-version prompt routing
  • 81c5ed4 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

24 Apr 02:59

Choose a tag to compare

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

  • bcbd99b Merge pull request #3605 from Jay1/jay/gpt-5-5-native-sisyphus
  • fd4ef0f test(agents): update explore and librarian prompt assertions to match refactored prompts
  • 563b656 refactor(agents): replace per-version GPT checks with regex pattern
  • ae77f6b @lucasyounger has signed the CLA in #3606
  • 132c860 Merge branch 'dev' into jay/gpt-5-5-native-sisyphus
  • 99f25fe @Jay1 has signed the CLA in #3605
  • f6b2ce7 feat(agents): add gpt-5.5 native sisyphus support
  • 7641fc5 @leecoder has signed the CLA in #3604
  • 448fb0f @uf-hy has signed the CLA in #3603
  • bbcbfe5 @fede-ciliberti has signed the CLA in #3581
  • f66bc8a @samuele-ruffino96 has signed the CLA in #3595
  • fd6e34a @ParkSnoopy has signed the CLA in #3591
  • a941774 chore(cleanup): remove obsolete team-mode workspace artifacts
  • 52ee201 chore(gitignore): add .dori-sync/ directory
  • 1ecf5ab refactor(ast-grep): inline tool descriptions and simplify pattern hints
  • 70e18e9 refactor(agents): simplify librarian code search guidance
  • acd867e refactor(agents): simplify explore tool strategy guidance
  • f0dd046 refactor(librarian): teach proper ast_grep_search discipline
  • 5ef2a3f refactor(explore): make ast_grep_search discipline the core of Tool Strategy
  • 2f4b1c3 feat(ast-grep): rewrite tool descriptions to prevent regex-style misuse
  • 95ccbbf feat(ast-grep): detect regex-style pattern misuse before returning empty results
  • e0bcf3e @aschina has signed the CLA in #3560
  • 93dc103 Merge pull request #3552 from code-yeongyu/feature/explore-librarian-gpt-5-4-mini-fast-primary
  • 993fe20 docs(orchestration): reindent explore/librarian mermaid nodes
  • 3a6bd93 fix(cli): keep mini-fast primary in openai-only install catalog
  • 6914b44 docs(configuration): restore vercel aliases in explore/librarian rows
  • fe44363 fix(model-capabilities): drop pdf modality from gpt-5.4-mini-fast
  • 02e4de8 docs(model): sync explorer and librarian guidance
  • ceadf4b fix(cli): prefer mini-fast for install fallback
  • d2e5ddd fix(model-requirements): route primary agents to mini-fast
  • 680dd16 fix(model-capabilities): bundle gpt-5.4-mini-fast caps
  • 064dcc8 fix(delegate-task): remove deprecated sync continuation fallback
  • a17ba16 chore(delegate-task): remove unused metadata model export
  • 54e48de refactor(delegate-task): extract background session registration helpers
  • 2585031 refactor(delegate-task): extract sync continuation resume context
  • 4810d0f fix(delegate-task): apply load_skills content to continuation prompts
  • d0a3cb3 fix(delegate-task): align background-continuation title with args.description
  • 83c8ffb fix(delegate-task): include category in continuation task_metadata blocks
  • b5bc4cd fix(delegate-task): preserve variant in sync-continuation metadata model
  • 54cc9b7 test(delegate-task): lock Oracle-found gaps with TDD
  • 3f28e42 refactor(delegate-task): remove AI slop from supporting files
  • bcf9511 refactor(delegate-task): remove AI slop from executor metadata paths
  • 271068d chore(delegate-task): remove unused execute field from DelegateTaskArgs
  • cd0c98e fix(delegate-task): preserve model variant in metadata resolution
  • a82f056 test(delegate-task): add failing tests for model variant preservation
  • f486df7 feat(delegate-task): preserve raw subagent_type across metadata
  • 8a2a11b fix(delegate-task): propagate category in background continuation
  • 9bd5829 fix(delegate-task): propagate agent and category in sync continuation
  • 9bf89de test(delegate-task): add failing tests for metadata continuation gaps
  • 869accd @CoderLuii has signed the CLA in #3518
  • 017e4ef Merge pull request #3514 from andomeder/fix/cli-attach-auth
  • 69315fc fix(cli): restrict attach auth injection to loopback URLs
  • ad0ee7a @andomeder has signed the CLA in #3514
  • ef5c74e fix(cli): inject server auth for attach clients
  • 64b49b4 Merge pull request #3510 from code-yeongyu/fix/tmux-stale-session-sweep
  • e35ac38 test(tmux): rewrite stale-sweep tests via DI to eliminate cross-file mock leak
  • d1fc46d test(tmux): restore process.kill in afterEach to prevent cross-file leak
  • 913fac0 fix(tmux-subagent): retry stale sweep if first attempt throws
  • 859d67f fix(tmux-subagent): revert session.error cleanup (recoverable-error regression)
  • 3dce19d fix(tmux-subagent): move 'cleanup complete' log back to cleanup() method
  • 1045230 feat(tmux): sweep stale omo-agents- sessions on first spawn
  • a503989 Merge pull request #3507 from code-yeongyu/fix/tmux-serve-attach-cleanup
  • aa79284 fix(background-agent): reset process.exitCode to 0 between cleanup tests
  • 257b6cf fix(tmux): scope isolated session name per plugin instance (Oracle review)
  • f8a1a11 fix(team-mode): refactor layout to use testable spawn-process helper
  • ea4f3c8 fix(tmux): treat pane-already-closed as success in closeTmuxPane
  • b9d2acd fix(background-agent): run manager cleanup on uncaughtException and unhandledRejection
  • 21554be fix(tmux-subagent): tighten serve/attach cleanup paths so panes and sessions are torn down reliably
  • de8a016 feat(tmux): add killTmuxSessionIfExists utility for explicit session teardown
  • 2a99a52 fix(tmux): drain kill-pane stdout to prevent pipe backpressure hang
  • 7a7926f chore(tmux-subagent): remove dead event-handler modules
  • e303fee feat(team-mode): add team-layout-tmux for focus+grid pane visualization
  • bf7fd7c Merge pull request #3501 from code-yeongyu/fix/perf-omo-in-tree
  • 0a808de fix(auto-update-checker): trigger deferred startup on session.created with parentID guard
  • 9184805 fix(background-agent): fire promptAsync before tmux callback
  • c9c1c58 fix(tmux-subagent): track pane without blocking on session readiness
  • a6a5a08 fix(tools/skill): invalidate skill cache at session boundary
  • a8504be test(auto-update-checker): cover session.created trigger with parentID guard
  • 1d18709 test(tools/skill): cover per-session skill cache invalidation
  • bd15298 fix(test): isolate skill factory discovery in ci
  • e766354 test(auto-update-checker): align zauc-mocks-hook with deferred idle check
  • 8e3f4cc fix(tools/skill): harden description pipeline against empty skill list after lazy factory
  • 0e1a946 test(skill-tool): isolate skill discovery spies from other suites
  • 10b1905 test(skill-loader): reset shared skill cache in async resolver tests
  • 1486843 test(auto-update-checker): align test triggers with deferred idle check
  • 61675ad test(slashcommand): isolate command-loader cache between tests
  • 0ca571e Merge branch 'fix/perf-d03' into fix/perf-omo-in-tree
  • 1fd678f Merge branch 'fix/perf-d02' into fix/perf-omo-in-tree
  • 85e4f5e Merge branch 'fix/perf-q11' into fix/perf-omo-in-tree
  • e47a6aa Merge branch 'fix/perf-q10' into fix/perf-omo-in-tree
  • b60cad0 Merge branch 'fix/perf-q09' into fix/perf-omo-in-tree
  • d9cea93 Merge branch 'fix/perf-q08' into fix/perf-omo-in-tree
  • 9f15a09 Merge branch 'fix/perf-q06' into fix/perf-omo-in-tree
  • c5268af Merge branch 'fix/perf-q05' into fix/perf-omo-in-tree
  • 4857666 Merge branch 'fix/perf-q04' into fix/perf-omo-in-tree
  • 5faba8d Merge branch 'fix/perf-q03' into fix/perf-omo-in-tree
  • 38990ec Merge branch 'fix/perf-q02' into fix/perf-omo-in-tree
  • 56d2d25 Merge branch 'fix/perf-d10' into fix/perf-omo-in-tree
  • 5a20e40 Merge branch 'fix/perf-d09' into fix/perf-omo-in-tree
  • 36ebafd Merge branch 'fix/perf-d08' into fix/perf-omo-in-tree
  • 82ddc9c Merge branch 'fix/perf-d07' into fix/perf-omo-in-tree
  • 1db481e Merge branch 'fix/perf-d06' into fix/perf-omo-in-tree
  • a227821 Merge branch 'fix/perf-d05' into fix/perf-omo-in-tree
  • dc0d64d Merge branch 'fix/perf-d04' into fix/perf-omo-in-tree
  • b6b898d Merge branch 'fix/perf-d01' into fix/perf-omo-in-tree
  • edcc9a1 fix(todo-continuation-enforcer): defer prune interval to first idle event
  • 1be1cd6 fix(tools/skill): make factory pure and stop defeating skill-loader cache
  • a068915 test(perf): add plugin init regression budget
  • 40bd3e0 test(tools/skill): cover factory laziness and skill-cache invariants
  • 52512f2 fix(rules-injector): cache directory scan results per session
  • ed6ac7e fix(session-notification): defer platform detection and background checks
  • 89d394e fix(claude-code-command-loader): skip EXCLUDED_DIRS and memoize per directory
  • 439957c test(session-notification): cover lazy platform detect and scheduler startup
  • 6dc2234 fix(shared): memoize detectPluginConfigFile per process
  • 948343a test(shared): cover detectPluginConfigFile memoization
  • 76e8508 fix(runtime-fallback): inject pluginConfig and defer cleanup interval to first event
  • 3d42994 fix(auto-update-checker): defer npm registry check until first idle
  • 4f59e91 test(todo-continuation-enforcer): cover lazy prune interval
  • 443891f test(rules-injector): cover per-session cache isolation and invalidation
  • 79eb6c7 fix(shared/project-discovery-dirs): memoize detectWorktreePath per process
  • a03faaa test(auto-update-checker): cover deferred ...
Read more

v3.17.4

16 Apr 06:27

Choose a tag to compare

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

  • 9b72bf8 Merge pull request #3467 from code-yeongyu/refactor/delegate-task-metadata-hardening
  • d612549 Merge pull request #3468 from code-yeongyu/fix/bugs-3429-3459
  • 7bc170f fix: installer writes hyphenated anthropic IDs, variant=max Anthropic OAuth compat (#3429, #3459)
  • c6a407c refactor(tools): migrate producers to shared metadata bridge
  • 4da3005 fix(plugin): harden metadata recovery and extraction
  • 80d3339 feat(background-agent): add wait-for-task-session helper
  • a1842f2 feat(tool-metadata): add shared metadata contract and bridge
  • 80e73f5 @CHLK has signed the CLA in #3455
  • c55e08c Merge pull request #3444 from code-yeongyu/fix/issue-3443
  • ccb2715 fix: hide native plan agent when replace_plan is true (#3443)

v3.17.3

15 Apr 06:36

Choose a tag to compare

What's Changed

Fixes

  • fix(posthog): disable exception autocapture to stay within free tier by @code-yeongyu in #3441
    • Error tracking exceeded 100K free tier limit (188K in 5 days)
    • Disabled enableExceptionAutocapture in both CLI and plugin clients
    • Manual captureException for critical run failures preserved
  • fix(cli): use getAgentRuntimeName for agent resolution in run command by @code-yeongyu
  • fix(grep): handle Windows drive-letter paths and CRLF in parseOutput by @rlavkvmflzk in #3321

Features

  • feat(agents): dynamic custom agent support via agent_definitions and opencode.json by @brandonwebb-vista in #2299
    • Add agent definitions file loader and opencode.json reader
    • Wire agent_definitions and opencode.json agents into precedence chain
    • Add agent_definitions schema, eager path resolution, and JSON agent loader

Bug Fixes

  • fix: isPlanFamily regression tests, code-review -> review-work in test data (#3312, #3285, #3290) in #3438
  • fix: numeric skill names, ultrawork missing run_in_background, ZWSP agent lookups in #3437
  • fix: resolve 3 bugs (#3366, #3272, #3222) in #3436

New Contributors

Full Changelog: v3.17.2...v3.17.3

v3.17.2

13 Apr 18:03

Choose a tag to compare

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

  • b525055 fix(telemetry): guard PostHog init failures
  • 3419bbc @mauriciozaffari has signed the CLA in #3398
  • 1b36194 fix(cli): treat missing session status as idle in run completion
  • 4ce1dde CLI: isolate provider model id transforms from shared mocks
  • d26ea7d Merge pull request #3393 from code-yeongyu/docs/update-contributing
  • 9a6c279 Merge pull request #3392 from code-yeongyu/docs/update-orchestration
  • 00f7ffe Merge pull request #3390 from code-yeongyu/docs/update-overview
  • 7e2235b Merge pull request #3389 from code-yeongyu/docs/update-installation
  • a4fb0a3 Merge pull request #3388 from code-yeongyu/docs/update-features
  • 7262512 Merge pull request #3387 from code-yeongyu/docs/update-configuration
  • d9d8546 Merge pull request #3386 from code-yeongyu/docs/update-cli
  • 68d0870 Merge pull request #3385 from code-yeongyu/docs/update-readme-ja
  • f79ca29 Merge pull request #3391 from code-yeongyu/docs/update-agent-model-matching
  • 2d09135 Merge pull request #3384 from code-yeongyu/docs/update-readme-ko
  • c8dc7a9 Merge pull request #3383 from code-yeongyu/docs/update-readme-ru
  • 618054b Merge pull request #3382 from code-yeongyu/docs/update-readme-zh-cn
  • 0cb0a6c docs(contributing): update tool/hook counts and version references
  • 0ea7012 Merge pull request #3394 from code-yeongyu/docs/update-ollama
  • bbbd1bd docs(orchestration): update diagram model names and category tables
  • b57a797 docs(ollama): verify troubleshooting steps and issue links
  • 7c94ee4 docs(agent-model-matching): sync fallback chains with current source
  • 05e5444 docs(overview): update model-role claims and complete category list
  • 9342e55 docs(installation): replace npx with bunx and update provider flags
  • cfd152a docs(features): update agent count and verify category list
  • 678011c docs(contributing): update tool/hook counts and version references
  • e223ab2 docs(configuration): add sisyphus-junior to agent list
  • c91db2e docs(cli): add --vercel-ai-gateway flag documentation
  • 12ed950 docs(readme-ko): add telemetry and legal section translation
  • 0ece66e docs(readme-ja): add telemetry and legal section translation
  • 23d0a0d docs(readme-zh-cn): add telemetry and legal section translation
  • 3673b96 docs(readme-ru): add telemetry and legal section translation
  • 01a1b14 fix(delegate-task): reject primary agents in task subagent resolution
  • f1cd4d7 Merge pull request #3376 from matchai/feat/vercel-ai-gateway
  • e3b5c2b fix: address review feedback for Vercel AI Gateway PR
  • 680d05a Prometheus: keep planner primary-only
  • 569addd docs(provider): add comments to vercel transform logic
  • effae16 refactor(provider): replace per-model string replacements with generic regex
  • 34e334e feat(provider): add vercel to all gateway-supported fallback entries
  • 542dc89 fix(provider): use gateway-specific model IDs for vercel transform
  • 84f980c @matchai has signed the CLA in #3376
  • dac0c99 feat: add Vercel AI Gateway as a provider
  • 42df1c3 @FuDesign2008 has signed the CLA in #3371
  • c6deb6d @Zireael has signed the CLA in #3370
  • 3d2eb6e fix(config): preserve explicit git_master overrides during merge
  • 051ab84 Merge pull request #3348 from code-yeongyu/refactor/ulw-repo-cleanup-20260411
  • 5b33cd2 @lrq3000 has signed the CLA in #3358
  • 7f5059d Merge pull request #2974 from trafgals/fix/user-agents-callable-v2
  • 3053d59 Merge branch 'dev' into fix/user-agents-callable-v2
  • 6a0d515 @divlook has signed the CLA in #3353
  • c5c5bc3 fix(delegate-task): consume fallback chain on sendSyncPrompt failure (#2691)
  • aed8dbf fix(delegate-task): fetch session result before honoring abort signal (#2702)
  • eb49579 fix(event): prefer real session.idle over recent synthetic dedup (#2667)
  • 3bfa3bd fix(background-agent): pass query directory to session.get in 4 call-sites (#2937)
  • d8b9bf1 fix(doctor): check comment-checker lazy-download cache path (#2911, #3315)
  • 64e5593 fix(multimodal-looker): instruct explicit Read tool usage for PDFs (#2998)
  • 796a646 fix(non-interactive-env): use detectShellType instead of hardcoded win32 check (#3310, #3338)
  • 2d8b4a9 fix(anthropic-effort): skip effort injection for github-copilot provider (#3270)
  • 7e96af5 fix(atlas): exclude node_modules from verification git diff --stat (#3215)
  • d7b4bec fix(hooks,tools): replace /plan example with prometheus delegation and rename code-review example to review-work (#2633, #3285, #2873)
  • c750781 fix(shared): avoid false-positive skill path resolution on npm scoped packages (#2857)
  • 4f02ace fix(shared): guard maxOutputTokens <= 0 in model settings compatibility (#3305)
  • a6e4f21 fix(shared): normalize claude model IDs for anthropic provider (#3290)
  • 9ef133a fix(migration): register parenthesized legacy agent aliases in AGENT_NAME_MAP (#3281)
  • 7accb53 fix(shared): handle Windows rename-over-existing in write-file-atomically (#3222)
  • e71c34a fix(migration): return true when canonical config write succeeds regardless of archive status (#3133)
  • 141798e refactor(background-agent): standardize loop detector null guards
  • 4de0209 test(background-agent): lock nullish loop detector behavior
  • 21cad26 docs(config): remove redundant schema default comments
  • 6713b30 refactor(hooks): drop no-op directory injector callbacks
  • a0d5131 refactor(plugin): remove dead chat params code
  • 668bc8e refactor(config-manager): simplify config parsing guards
  • 50df6f0 test(claude-code-plugin-loader): cover plugin path nullish resolution
  • cd8352c refactor(claude-code-mcp-loader): simplify env expansion null guard
  • 79a475d refactor(background-agent): simplify loop detector null guard
  • 2d65896 refactor(shared): simplify normalize SDK null guards
  • 470ed8b fix(ci): remove existing signature before ad-hoc signing darwin binary
  • 16e7fa5 fix(ci): ad-hoc sign darwin binaries with plain codesign
  • 71b5ab6 fix(ci): replace breaking codesign step with signature verification
  • 565d3ff fix(ci): build darwin binaries on macOS runners to restore code signing
  • d21ed3f fix(doctor): add timeouts to subprocess spawns to prevent exit code 137
  • 314e1a5 fix(telemetry): enable GeoIP resolution for PostHog events
  • 69f1c9a fix(doctor): add timeouts to subprocess spawns to prevent exit code 137
  • 44ebf4b Merge pull request #3343 from code-yeongyu/refactor/ultrawork-cleanup-pass
  • e654cfb @ahuangsnail has signed the CLA in #3316
  • a2ae3de refactor(openclaw): extract gateway url validator
  • 21822ba test(openclaw): cover shared gateway url validation
  • 40411f3 docs(agents): add AGENTS.md documentation for prometheus, hephaestus, sisyphus variants, and builtin-skills
  • 0c5cd3a chore(agents): update all AGENTS.md generation dates to 2026-04-11
  • f95e7a6 refactor(openclaw): reuse shared gateway url validation
  • 9d89bbb refactor(commands): keep builtin command options internal
  • 1e2e001 refactor(create-tools): keep result type internal
  • e9b6bba refactor(agent-display): centralize name normalization resolution
  • 5441c84 refactor: use spyOn instead of vi.mock for agent loader mocks
  • 6440882 fix: actually swap merge order so project is added before user
  • 2266f28 fix: correct merge order so project agents override user agents
  • ad85e43 fix: include user/project agents in task(subagent_type) resolution

Thank you to 2 community contributors:

  • @trafgals:
    • fix: include user/project agents in task(subagent_type) resolution
    • fix: correct merge order so project agents override user agents
    • fix: actually swap merge order so project is added before user
    • refactor: use spyOn instead of vi.mock for agent loader mocks
  • @matchai:
    • feat: add Vercel AI Gateway as a provider
    • fix(provider): use gateway-specific model IDs for vercel transform
    • feat(provider): add vercel to all gateway-supported fallback entries
    • refactor(provider): replace per-model string replacements with generic regex
    • docs(provider): add comments to vercel transform logic

v3.17.0

11 Apr 13:30

Choose a tag to compare

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

  • f5dc1c0 refactor(event): simplify tmux config check to direct property access
  • db5beef test(telemetry): improve mock isolation for runner and index tests
  • 0c93ce6 refactor(tool-config): use getAgentListDisplayName for consistent naming
  • e14a25b test(config): use getAgentListDisplayName in config handler tests
  • 15c8d46 refactor(command-config): use getAgentListDisplayName for consistent naming
  • ce53b4c refactor(agent-priority): use getAgentListDisplayName for ordering
  • 79b4b0a refactor(agent-key): use getAgentListDisplayName for consistent key remapping
  • 3b092c2 refactor(agent-config): use getAgentListDisplayName for consistent naming
  • cfc3f33 feat(agent): add getAgentListDisplayName utility for OpenCode list ordering
  • 84f29e3 Merge pull request #3340 from code-yeongyu/fix/stop-continuation-chat-message-fallback
  • c9461a9 fix(stop-continuation): scope start-work clearing to fallback template
  • d62e3ea Merge pull request #3342 from code-yeongyu/fix/migration-sidecar-transaction-order
  • 6ba8b73 Merge pull request #3341 from code-yeongyu/fix/telemetry-crash-isolation
  • 6f21e74 fix(migration): write config before sidecar updates
  • 41b375a chore(lockfile): refresh Bun dependency resolution
  • 8bc27da test(install): restore Bun mocks after installer tests
  • e2f304f fix(telemetry): validate activity state shape
  • acb0f6b fix(install): isolate installer telemetry failures
  • 2510870 fix(run): isolate CLI telemetry failures
  • c09ee32 fix(telemetry): isolate plugin telemetry failures
  • 9287abe fix(stop-continuation): clear chat.message fallback stop state before work resumes
  • e4bb60b Merge pull request #3339 from Qiiks/fix/shell-detection-shell-before-psmodulepath
  • a442976 Fix invisible characters in agent names
  • bbec188 @Qiiks has signed the CLA in #3339
  • f5a9520 fix(shell-env): check SHELL before PSModulePath for shell detection
  • 044e1f5 fix(agents): restore ZWSP runtime names in name field for OpenCode sort ordering
  • 111dcd1 fix(agents): backfill ZWSP runtime names for agents missing name field
  • 9f135af fix: unify agent display names and strip invisible sort prefixes
  • c30b058 fix(agents): use runtime names for default_agent to match ordered agent list
  • 630f5b7 docs(telemetry): add legal documents and user-facing telemetry documentation
  • 365900b feat(telemetry): add install command events and user-facing telemetry notice
  • 1c27000 feat(telemetry): instrument CLI run command with lifecycle events
  • 4e80a1b feat(telemetry): add plugin_loaded event for entry tracking
  • 280a8a3 feat(telemetry): add PostHog client factory with activity state tracking
  • 146be96 Merge pull request #3328 from code-yeongyu/fix/effort-hook-small-model-3308
  • 522f8aa fix: move Haiku check before variant check for reliability
  • e2c2c5b Merge pull request #3329 from code-yeongyu/fix/permanent-agent-ordering
  • b3e5d7d docs(agents): document permanent agent ordering policy
  • 7c154c6 fix(anthropic-effort): skip effort injection for Haiku models (#3308)
  • 5c60d27 fix(agents): enforce permanent canonical agent ordering with regression tests
  • 29c27ad @rlavkvmflzk has signed the CLA in #3321
  • 5de60d3 @Hybirdss has signed the CLA in #3318
  • 86e5113 @idoall has signed the CLA in #3317
  • b7ca40f fix(openclaw): skip session.created dispatch for subagent sessions
  • 2178f5e fix(stop-continuation): clear stop state for native work-starting commands
  • 745b59a fix(migration): preserve _migrations in config when sidecar write fails
  • 3e3e623 fix(agents): re-apply GPT apply_patch deny after config override merge
  • d7a3077 Merge pull request #3309 from code-yeongyu/fix/pre-publish-blocking-issues
  • 5493ae2 fix(migration): persist fullMigrationSet in-config when sidecar write fails
  • 6ec9a2b fix(openclaw): skip session.created dispatch for subagent sessions
  • de15657 fix(stop-continuation): clear stop state for native work-starting commands
  • 9532440 fix(plugin-handlers): remove ZWSP prefixes from API-facing agent paths
  • 68c8701 fix(migration): preserve _migrations in config when sidecar write fails
  • 10371d5 fix(agents): re-apply GPT apply_patch deny after config override merge
  • e54f747 fix(tests): replace as any with typed PluginInput mocks
  • bf5d1c5 @wouter-intveld has signed the CLA in #3306
  • e7f5d0d test(shared): update shared utility tests
  • 37057f1 test(tools): update MCP, delegate-task, skill, and slashcommand tests
  • ca9b5fd test(hooks): update claude-code, comment-checker, and rules-injector tests
  • 8a4eacf test(hooks): update multiple hook test suites
  • 4180a0b test(features): update background agent, MCP loader, and tmux tests
  • 12c9db7 test(cli): update all CLI command tests
  • 12a96ee test(agents): update agent utility and builtin agent tests
  • 77af6c6 test(plugin-handlers): update all plugin handler tests
  • c21c363 test(plugin): update plugin config and registry tests
  • fa1b465 test(core): update main test setup and core tests
  • 0e74f5a fix(hooks): improve comment checker CLI runner
  • 08c4757 fix(hooks): improve auto update checker
  • c9aedbc fix(cli): improve doctor system check
  • 655a39b chore(deps): add posthog-node dependency
  • d4ce034 fix(plugin-handlers): simplify tool config handler
  • fba3e1b fix(tools): improve delegate task constants and sync handling
  • 111cf6d fix(hooks): improve session last agent tracking
  • 25abda6 fix(hooks): improve image resizer implementation
  • 5a762ba fix(hooks): improve rules injector implementation
  • bd910ad fix(shared): improve compaction marker and tmux server health
  • 7244d04 feat(session-manager): implement session management tools
  • 1a090af feat(tools): add tools for session manager and skill refresh
  • 150dd1c feat(plugin): add PostHog tracking to plugin initialization
  • 785d6e2 feat(cli): add PostHog tracking and improve runner hooks
  • e9b3ef0 feat(skill-mcp-manager): improve connection handling and client implementations
  • 046ab10 feat(analytics): add PostHog analytics module
  • 3fe5f0a feat(testing): add module mock lifecycle utilities
  • b60b2bc plugin: stop false provider cache warning
  • c173fa8 delegate-task: block prometheus task delegation
  • e86b4f4 fix(keyword-detector): stop starting ralph loop for ulw
  • 30f4f06 test(chat-message): cover plain ulw without loop start
  • 959229d test(keyword-detector): add plain ulw no-loop regressions
  • 33ac57b refactor: update remaining modules to use plugin-identity constants
  • 41b9b4d refactor(doctor): use plugin-identity constants for package names
  • 58a981e fix(cli): use published package name in installer help text
  • 6bde5e6 feat(doctor): support both package names in version detection
  • 87ddb9b feat(cli): integrate legacy config migration into write-omo-config
  • 5000d1e feat(plugin-identity): add config basename constants for migration
  • d00a6bb fix(keyword-detector): always trigger ultrawork keywords
  • f36231a fix(keyword-detector): trigger ulw shorthand anywhere
  • 5f90b23 fix(keyword-detector): restore ulw trigger after greeting prefixes
  • 2083cb0 feat(agents): add centralized GPT apply_patch permission guard
  • 498d021 @zhoufanscut has signed the CLA in #3292
  • 5535750 @revelri has signed the CLA in #3287
  • 6df597c Merge pull request #3279 from code-yeongyu/fix/stop-continuation-persistence
  • ab515b7 fix(stop-continuation): persist stop state across user messages (#3276)
  • 69f47a9 feat(keyword-detector): handle ultrawork keyword after greeting patterns
  • 58be691 docs: update AGENTS.md hierarchy with openclaw, runtime-fallback, skill-mcp-manager
  • dc7a468 Merge pull request #3268 from code-yeongyu/fix/ci-flake-model-resolution-pipeline
  • 7a1f121 fix(ci): isolate model-resolution-pipeline test to prevent mock contamination
  • d17b78a @ayixiayi has signed the CLA in #3267
  • 4f88e0f fix(agents): restore canonical core agent ordering
  • 132a994 Merge pull request #3206 from Momentum96/fix/openclaw-reply-listener
  • 55a57a8 Merge pull request #3265 from code-yeongyu/revert/3260-restore-zwsp-sort-prefixes
  • ade5747 fix(merge): resolve dev conflicts for openclaw branch
  • 0d5b087 Revert "Merge pull request #3260 from code-yeongyu/fix/remove-zwsp-sort-prefixes"
  • e5189f2 fix(test): wait for async skill description refresh
  • 49d29c5 fix(test): reset session manager storage in registry tests
  • 6aab2f7 fix(schema): use zod native json schema output
  • 687e7bb fix(test): align zombie pane tmux mocks
  • f82cc81 fix(ci): isolate discord reply listener test
  • ef95a99 @gwegwe1234 has signed the CLA in #3264
  • 99a6d50 Merge pull request #3197 from code-yeongyu/fix/delegate-task-depth-guard
  • 524e0f6 Merge pull request #3170 from code-yeongyu/fix/gpt-apply-patch
  • e0ed5dd Merge pull request #3200 from code-yeongyu/fix/doctor-custom-providers
  • 21127b0 Merge remote-tracking branch 'origin/dev' into fix/gpt-apply-patch-rebased
  • 545c444 Merge remote-tracking branch 'origin/dev' into fix/delegate-task-depth-guard-rebased
  • defe4e5 Merge remote-tracking branch 'origin/dev' into fix/doctor-custom-providers-rebased
  • 57ebb11 Merge pull request #3262 from code-yeongyu/fix/migration-sid...
Read more

v3.16.0

08 Apr 10:04

Choose a tag to compare

Minor Compatibility and Stability Release

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

  • Rename transition updates across package detection, plugin/config compatibility, and install surfaces.
  • Task and tool behavior updates, including delegate-task contract and runtime registration behavior.
  • Task-system default behavior alignment so omitted configuration behaves consistently across runtime paths.
  • Install and publish workflow hardening, including safer release sequencing and package/install fixes.

Commit Summary

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

v3.15.3

06 Apr 03:59

Choose a tag to compare

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

  • e43d2cc fix(test): isolate atlas background-task-retry test to prevent setTimeout leak
  • ed3045c fix(test): register session agent in boulder continuation tests for CI isolation
  • de6c74b fix(todo-continuation): normalize agent name to config key before promptAsync (#3149)
  • 98e6659 @EZotoff has signed the CLA in #3147
  • 75447b7 fix(hephaestus): restrict Oracle to failure-escalation only in GPT-5.4 prompt
  • d55a523 feat(hook-message-injector): enhance boulder continuation injector with lineage support
  • d143d2d feat(run): integrate session origins and agent detection into continuation state
  • d555410 feat(boulder-state): add session_origins tracking for direct vs appended sessions
  • 1f4ed00 fix(atlas): use raw agent key instead of display name for API calls (#3138)
  • 60ccba3 feat(hook-message-injector): enhance boulder continuation injector with lineage support
  • d1be22f feat(atlas): update resolvers and index for lineage-aware session resolution
  • d12c741 feat(run): integrate session origins and agent detection into continuation state
  • b37bc4f feat(atlas): integrate session origins into background launch tracking
  • cd71ced feat(atlas): add canContinueTrackedBoulderSession for lineage-aware continuation
  • 9199dd5 feat(atlas): enhance session-last-agent with timestamp-based ordering
  • ec49bd5 feat(boulder-state): add session_origins tracking for direct vs appended sessions
  • afd554b fix(delegate-task): validate description parameter and handle undefined in notifications
  • 6e8fc14 @lukecartledge has signed the CLA in #3140
  • ae32173 fix(atlas): use raw agent key instead of display name for API calls (#3138)
  • 91c1c32 feat(atlas): update boulder continuation injector with lineage support
  • 24ca704 feat(run): implement boulder lineage detection in continuation state
  • c708d4e feat(atlas): add isInjectingContinuation flag to SessionState
  • d5dfaaa fix(delegate-task): remove kimi from unstable agent detection, harden callID resolution for metadata store
  • ccfc54a feat(atlas): add background task session tracking with retry scheduling
  • 90407a9 Merge pull request #3135 from jim80net/fix/agent-not-found-fallback
  • f846b3a @andrescera has signed the CLA in #3136
  • cbc0638 Merge pull request #3134 from auyua9/fix/session-info-sqlite-sdk-auyua9
  • 0bb16e5 fix(session-manager): use sdk data in getSessionInfo
  • f8d086d fix: remove overly broad agent+undefined error pattern
  • d7c2b62 fix(config): fall back to legacy path when migration fails and use canonical basename everywhere (#3133)
  • 51508c4 fix: address cubic review — broaden error detection, add test coverage
  • 2ae9a75 @jim80net has signed the CLA in #3135
  • 9470cbe fix: address systems review findings for agent-not-found fallback
  • 4b6dfc9 docs(orchestration): fix deep category model GPT-5.3 Codex -> GPT-5.4
  • 7b7526e docs(src): update counts across tools, features, config, cli AGENTS.md
  • 3697809 docs(hooks): update hook inventory to match current 52 hooks
  • 6d66659 docs(src): update hook composition counts in src and plugin AGENTS.md
  • 8dd186f docs(AGENTS.md): update root project metadata to match codebase
  • 050502f fix(background-agent): retry with fallback agent on Agent not found error
  • a8ab137 fix(test): cache-bust mcp-server-loader import to prevent mock leak
  • 52150fb fix(test): use dynamic import in discovery tests to prevent mock.module leak from loader.test.ts
  • c9be5bb @auyua9 has signed the CLA in #3134
  • 33b1751 test(config-dir): align opencode config basename
  • 67d05f5 fix(hephaestus): restore GPT-5.4 prompt test contract
  • 7097063 test(plugin-loader): isolate discovery name derivation
  • 7243bfa fix(tool-registry): use interactive bash availability for tool registration
  • 07ccbd2 fix(event): respect tmux integration disabled state in event forwarding
  • c9c7b75 test(tmux): add create-managers test coverage
  • 14bf48a fix(tmux): conditionally mark server running and add interactive bash helper
  • 5d065da refactor(hephaestus): clarify tool call philosophy for direct tools vs agents
  • a8450d6 fix(test): prevent directory contamination in discovery tests
  • 4b0592c fix(test): isolate discovery tests using mock.module to force CI isolation
  • 23582ea fix(test): isolate discovery tests from global env var contamination
  • 3517017 refactor(hephaestus): rewrite GPT-5.4 prompt with entropy-reduced XML architecture
  • 852859e refactor(config-manager): remove legacy config path detection and migration logic
  • 98c2f92 refactor: convert config path constants to getter functions for dynamic OPENCODE_CONFIG_DIR support
  • b14665f fix: cache plugin component loading results
  • f22935c Config-manager: migrate legacy OMO config path

Thank you to 2 community contributors:

  • @jim80net:
    • fix(background-agent): retry with fallback agent on Agent not found error
    • fix: address systems review findings for agent-not-found fallback
    • fix: address cubic review — broaden error detection, add test coverage
    • fix: remove overly broad agent+undefined error pattern
  • @auyua9:
    • fix(session-manager): use sdk data in getSessionInfo

v3.15.2

05 Apr 05:50

Choose a tag to compare

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

  • 90407a9 Merge pull request #3135 from jim80net/fix/agent-not-found-fallback
  • f846b3a @andrescera has signed the CLA in #3136
  • cbc0638 Merge pull request #3134 from auyua9/fix/session-info-sqlite-sdk-auyua9
  • 0bb16e5 fix(session-manager): use sdk data in getSessionInfo
  • f8d086d fix: remove overly broad agent+undefined error pattern
  • d7c2b62 fix(config): fall back to legacy path when migration fails and use canonical basename everywhere (#3133)
  • 51508c4 fix: address cubic review — broaden error detection, add test coverage
  • 2ae9a75 @jim80net has signed the CLA in #3135
  • 9470cbe fix: address systems review findings for agent-not-found fallback
  • 4b6dfc9 docs(orchestration): fix deep category model GPT-5.3 Codex -> GPT-5.4
  • 7b7526e docs(src): update counts across tools, features, config, cli AGENTS.md
  • 3697809 docs(hooks): update hook inventory to match current 52 hooks
  • 6d66659 docs(src): update hook composition counts in src and plugin AGENTS.md
  • 8dd186f docs(AGENTS.md): update root project metadata to match codebase
  • 050502f fix(background-agent): retry with fallback agent on Agent not found error
  • a8ab137 fix(test): cache-bust mcp-server-loader import to prevent mock leak
  • 52150fb fix(test): use dynamic import in discovery tests to prevent mock.module leak from loader.test.ts
  • c9be5bb @auyua9 has signed the CLA in #3134
  • 33b1751 test(config-dir): align opencode config basename
  • 67d05f5 fix(hephaestus): restore GPT-5.4 prompt test contract
  • 7097063 test(plugin-loader): isolate discovery name derivation
  • 7243bfa fix(tool-registry): use interactive bash availability for tool registration
  • 07ccbd2 fix(event): respect tmux integration disabled state in event forwarding
  • c9c7b75 test(tmux): add create-managers test coverage
  • 14bf48a fix(tmux): conditionally mark server running and add interactive bash helper
  • 5d065da refactor(hephaestus): clarify tool call philosophy for direct tools vs agents
  • a8450d6 fix(test): prevent directory contamination in discovery tests
  • 4b0592c fix(test): isolate discovery tests using mock.module to force CI isolation
  • 23582ea fix(test): isolate discovery tests from global env var contamination
  • 3517017 refactor(hephaestus): rewrite GPT-5.4 prompt with entropy-reduced XML architecture
  • 852859e refactor(config-manager): remove legacy config path detection and migration logic
  • 98c2f92 refactor: convert config path constants to getter functions for dynamic OPENCODE_CONFIG_DIR support
  • b14665f fix: cache plugin component loading results
  • f22935c Config-manager: migrate legacy OMO config path
  • 0cbfdec fix(model): treat 'bad request' as retryable error for GitHub Copilot fallback (#3130)

Thank you to 2 community contributors:

  • @jim80net:
    • fix(background-agent): retry with fallback agent on Agent not found error
    • fix: address systems review findings for agent-not-found fallback
    • fix: address cubic review — broaden error detection, add test coverage
    • fix: remove overly broad agent+undefined error pattern
  • @auyua9:
    • fix(session-manager): use sdk data in getSessionInfo

v3.15.1

05 Apr 00:55

Choose a tag to compare

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

  • 130f4ac fix: resolve #3124 #3125 #3127 session tools, cache priming, and compaction loop
  • aeb9c97 fix(model): quota errors should STOP not retry
  • d7d3698 test(auto-update): update tests to use canonical package name oh-my-openagent
  • 3df5497 fix(auto-update): use canonical package name oh-my-openagent instead of legacy oh-my-opencode
  • 1b25a85 @Priyanshuthapliyal2005 has signed the CLA in #3128
  • 9d8d48f Merge pull request #2663 from code-yeongyu/fix/runtime-fallback-variant-loss
  • f3840a7 Merge pull request #2843 from code-yeongyu/refactor/model-alias-pattern-matching
  • d7acdfd Merge pull request #3062 from code-yeongyu/fix/issue-3000
  • 00f73de Merge pull request #3063 from code-yeongyu/fix/issue-3040
  • 1f13e76 Merge pull request #3065 from code-yeongyu/fix/issue-2984-v2
  • a983bf9 test(recovery): localize message-builder module mocks
  • 963b576 test(background-agent): localize cache mock setup
  • 051a398 test(shared): use unique temp dirs for legacy plugin warning
  • 032f23a test(mcp-oauth): remove provider module mock leak
  • f8398db fix(delegate-task): restrict task-callable agent modes
  • 5213525 fix(test): narrow execute-http-hook-security mock to shared/logger to prevent barrel contamination
  • 39f6ab2 ralph-loop: detect oracle VERIFIED tool results
  • f7d2ff7 Fix mock isolation in scope-filtering.test.ts
  • 80c8a79 Add renamed isolated mock test directories (zauc-mocks-*)
  • 2fb1604 Remove isolated mock test directories (_auc-mocks-*)
  • db7dfa1 Fix todo-continuation-enforcer mock isolation
  • 382f9b6 Fix mock isolation in remaining hook tests
  • ffcd34d Fix mock target path in claude-code-mcp-loader test
  • 92ba312 Fix mock isolation in system.test.ts by moving mocks to importFresh
  • 89fd302 Update publish-workflow test for bun test command
  • 1071d4d Pin Bun to 1.3.10 in CI and remove test:ci script
  • 51d2f8b fix(tmux-subagent): avoid transcript fetches during idle stability checks
  • 4c3f6c1 fix(background-notification): filter unsupported manager events
  • f9a9a60 fix(background-agent): cache observed output for completion checks
  • a71dd54 fix(test): isolate auto-update-checker mock.module() tests to prevent contamination
  • 8c06c8e fix(test): make runner env setup test deterministic
  • 179ad05 fix(test): silence expected oauth logout cli output
  • fb7e3fd fix(test): silence expected oauth login cli output
  • b3d69e7 Fix mock.module() CI contamination by isolating tests into separate directories
  • 0c3f8b7 fix(test): isolate sync-package-json test to prevent node:fs mock contamination
  • 0cc263b fix(test): isolate auto-update-checker hook.test.ts to prevent checker mock leak
  • c91c3e6 fix(test): move auto-slash-command-leak test to isolated subdirectory
  • 8fb22b8 fix(test): restore real executor module in auto-slash-command-leak afterAll
  • eb4060d fix(test): narrow mock.module() targets in background-agent tests to prevent barrel corruption
  • 99ae6d9 fix(ci): pin Bun to 1.3.10 to avoid mock.module() barrel export regression in 1.3.11
  • a6e783a fix(test): improve execute-http-hook-security test isolation
  • 733b548 fix(config): handle tuple-format plugin entries in opencode.json (fixes #3122)
  • e40d3fb fix(session-manager): fall back to file storage on SDK outages
  • 119db36 Merge pull request #3120 from code-yeongyu/fix/prepublish-ci-test-isolation
  • 72c8cb8 fix(ci): typecheck script tooling in CI workflow
  • bedf141 fix(ci): include bin tests in CI plan discovery
  • 322a360 Merge pull request #3119 from code-yeongyu/fix/prepublish-delegate-sync
  • 5000b18 Merge pull request #3118 from code-yeongyu/fix/prepublish-skill-schema
  • dbec902 Merge pull request #3117 from code-yeongyu/fix/prepublish-ralph-loop
  • 6edf705 Merge pull request #3116 from code-yeongyu/fix/prepublish-hook-recovery
  • 8ca4ff2 Merge pull request #3115 from code-yeongyu/fix/prepublish-tmux-lifecycle
  • 527861e @dihak has signed the CLA in #3114
  • 2c081e1 fix(ci): restore isolated Bun test execution for mock.module suites
  • 69c9ad4 test(ralph-loop): add transcript detector coverage
  • 2da5f12 test(ralph-loop): split session completion detector coverage
  • 617abbe fix(ralph-loop): remove dead semantic completion fallback
  • 1fae073 fix(sync): forward delegated model tuning params
  • 5d73537 fix(tmux): unify isolated cleanup across close paths
  • b31dfa6 fix(background-agent): clean tmux cancel bookkeeping
  • 42ac82a test(anthropic-recovery): isolate summarize retry timer assertion
  • 5e8a0cc test(anthropic-recovery): cover recovery hook timer disposal
  • 2b55f65 fix(hooks): dispose anthropic recovery hook on shutdown
  • 268946d fix(anthropic-recovery): dispose recovery hook timers
  • 0a7daa5 fix(anthropic-recovery): add session timeout cleanup helpers
  • 8199adc fix(config): allow disabling new built-in skills
  • fd476fe Merge pull request #3112 from code-yeongyu/fix/prepublish-code-quality
  • cba9c25 Merge pull request #3111 from code-yeongyu/fix/prepublish-config-regression
  • c4a5ba1 Merge pull request #3110 from code-yeongyu/fix/prepublish-bg-race
  • ba98be9 Merge pull request #3109 from code-yeongyu/fix/prepublish-mcp-env
  • 4301e5e Merge pull request #3108 from code-yeongyu/fix/prepublish-tar-failopen
  • 36cea65 Merge pull request #3106 from code-yeongyu/fix/prepublish-ci-injection
  • 726d19c fix(security): make tar parser strictly fail-closed on any unparsed line
  • 57ec3a4 fix(ci): use unquoted heredoc to allow env var expansion
  • 0c6907a fix(config): use canonical path after legacy migration and make writes atomic
  • e860108 refactor: replace em dashes with hyphens in test files and docs
  • d368f77 fix(security): make tar archive preflight fail-closed on unparsed entries
  • 7f1497f fix(background-agent): prevent cancelled task from being revived after tmux callback
  • 9b30817 fix(ci): prevent shell injection in workflow expressions
  • 4fa3d03 fix(security): block cloud credential env vars in MCP env cleaner
  • 32ec80b plugin: skip tmux startup checks when integration is disabled
  • 731c3f1 plugin: honor tmux disablement for interactive tmux features
  • 2d72f51 @titet11 has signed the CLA in #3099
  • efbadc0 @odedindi has signed the CLA in #2988
  • 672df9a @s2mr has signed the CLA in #3096
  • 141881a fix(tmux): re-attempt isolated container on deferred session retry
  • cab8451 fix(hooks): replace empty catch blocks with debug logging in transcript
  • 6acca09 fix(ci): resolve mock.module() cross-file leakage in test suite
  • f547cd0 refactor(shared): consolidate plugin entry migration and detection utilities
  • fd252ea refactor: remove AI-generated code smells from prepublish changes
  • e4d7fdb Merge pull request #3092 from code-yeongyu/fix/prepublish-legacy-config
  • bda0f55 Merge pull request #3091 from code-yeongyu/fix/prepublish-quality-checks
  • 1f2b69e Merge pull request #3090 from code-yeongyu/fix/prepublish-tmux-regressions
  • 565cf42 Merge pull request #3089 from code-yeongyu/fix/prepublish-background-regressions
  • 551d906 Merge pull request #3088 from code-yeongyu/fix/prepublish-security-hardening
  • e4116c9 Merge pull request #3087 from code-yeongyu/fix/prepublish-mcp-regressions
  • f03c670 fix(hooks): reuse shared legacy plugin migration helper
  • 290f7f9 fix(shared): merge project and user opencode plugin detection
  • fedb73c fix(shared): migrate legacy config files atomically
  • d60ca63 test(config): add regression coverage for legacy migration bugs
  • 468827d test(skill): stabilize async description refresh assertion
  • 02b7a7d refactor(hooks): remove unused openclaw hook
  • fabbcaa refactor(runtime): replace unicode dashes in prompt strings
  • 146ca34 fix(hooks): use actual context window token counts
  • 2731add fix(tmux): add grace period before resetting isolation
  • 3871c7d fix(tmux): defer failed isolated container spawns
  • b5f15f0 test(tmux): add isolation regression coverage
  • f5740d6 fix(background-agent): bound session abort waits
  • 938c920 test(background-agent): cover abort timeout handling
  • 40374c8 fix(boulder-state): remove dead worktree sync helper
  • ccbd646 fix(shared): validate tar hard-link targets during preflight
  • 553a961 fix(shared): emit PowerShell zip entries as json lines
  • 0c5deac test(shared): add archive preflight security regressions
  • 67145b5 fix(mcp): honor disabled server overrides in system name discovery
  • 35c34ea fix(hooks): preserve transcript cache history across rebuilds
  • 58e8596 test(mcp): add regression coverage for transcript and disable overrides
  • 53eeac3 fix(ci): simplify test runner to plain bun test by fixing mock.module() leakage
  • 06180e0 @biangacila has signed the CLA in #3084
  • 6624803 fix(plugin): handle raw /ulw-loop commands appearing after injected messages
  • df7dc2f fix(hooks): remove rogue setTimeout ambient declaration that broke typecheck
  • 9acde67 Merge pull request #3079 from code-yeongyu/refactor/deslop-cli-mcp-openclaw
  • 15c6d12 Merge pull request #3080 from code-yeongyu/refactor/deslop-plugin-handlers
  • f6a8f64 Merge pull request #3078 from code-yeongyu/refactor/deslop-features-managers
  • d11b4c1 Merge pull request #3076 from code-yeongyu/refactor/deslop-hooks
  • 51ee237 Merge pull request #3075 from code-yeongyu/re...
Read more