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 update check
- bcd7b8e fix(rules-injector): memoize project-root lookup per process lifecycle
- 886ef82 perf(directory-readme-injector): migrate sync FS to fs.promises
- a4c45e2 fix(write-existing-file-guard): defer realpath/existsSync to first tool call
- 3cb1d5d test(claude-code-command-loader): cover excluded dirs and per-directory cache
- ac2686f fix(shared): memoize loadOpencodePlugins by directory
- 7be6ab4 fix(tools/slashcommand): skip EXCLUDED_DIRS in recursive command discovery
- d8e00eb test(runtime-fallback): cover pluginConfig DI and lazy interval
- 51f1fc1 perf(directory-agents-injector): migrate sync FS to fs.promises
- a6e3c6a test(write-existing-file-guard): cover lazy canonical path init
- 9677c7d test(directory-agents-injector): cover async migration
- 3717121 test(directory-readme-injector): cover async migration
- 428bae6 test(shared): cover loadOpencodePlugins memoization
- e599840 fix(comment-checker): defer CLI download and cleanup scheduler to first tool call
- 493e37b test(comment-checker): cover lazy CLI init and cleanup startup
- d0eda8b test(tools/slashcommand): cover excluded-dir pruning during discovery
- 76945bf test(rules-injector): cover project-root-finder memoization
- 32598bc test(shared/project-discovery-dirs): cover worktree-path memoization
- c5b7aa8 test(rules-injector): cover per-session scan caching behavior
- 578c49f fix(rules-injector): skip EXCLUDED_DIRS in recursive rule scanner
- d566d69 test(rules-injector): add regression coverage for excluded-dir pruning
- 49c7d4d chore(shared): add EXCLUDED_DIRS constant for recursive FS scans
- d59ad1e @Netzhangheng has signed the CLA in #3499
- 203e517 @Disaster-Terminator has signed the CLA in #3497
- 1a8f60b Merge pull request #3488 from chan1103/fix/explore-allow-lsp-ast-grep
- f1268c0 feat(team-mode): add worktree manager (optional per-member isolation)
- b00e22c feat(team-mode): add core types (discriminatedUnion for members, D-41/D-42)
- 1b5f316 Merge pull request #3492 from code-yeongyu/refactor/legacy-plugin-decoupling
- 70ddc01 refactor: remove AI slop from refactored files
- 81b37dd refactor: remove cosmetic OhMyOpenCodePlugin references
- e6f84f7 refactor(tools): break glob->grep sibling-tool coupling
- 5e41025 refactor(model-fallback): fully encapsulate session state in factory closure
- e2f5c0d refactor(plugin): remove orphaned createPluginDispose + stale test mocks
- f56e393 docs: update plugin entry references to V1 PluginModule shape
- 81b68d8 refactor(model-fallback): move fallback state into factory closure and split hook.ts
- 0d10498 refactor(hooks): split session-notification.ts to comply with 200 LOC module rule
- 0f1b165 refactor(delegate-task): split tools.ts to comply with 200 LOC module rule
- db05634 refactor(shared): move parseModelString out of delegate-task to break cross-tool coupling
- 1aebf39 refactor(hooks): split preemptive-compaction.ts to comply with 200 LOC module rule
- 963355d refactor(look-at): split tools.ts to comply with 200 LOC module rule
- f94632c refactor(skill-mcp): split tools.ts to comply with 200 LOC module rule
- cb8f44e refactor(ralph-loop test): clarify race-condition predicate naming
- 1b10ab3 refactor(plugin): migrate to V1 PluginModule format
- 5759a9c docs(agents): refresh AGENTS.md hierarchy via /init-deep
- 2892ca4 fix(delegate-task): align metadata with opencode core task tool
- 3a65613 feat(delegate-task): add resolveMetadataModel helper for model fallback
- 73f09fd fix(explore): allow LSP and ast-grep tools
- f3af235 Merge pull request #3486 from code-yeongyu/chore/bump-claude-opus-4-7
- b3beea1 docs: complete claude-opus-4-7 bump in installation, matching, and overview guides
- 5478bab refactor(models): preserve legacy claude-opus-4-6 aliases and category mapping
- f34a074 docs: bump claude-opus-4-6 to claude-opus-4-7 across docs, examples, and AGENTS.md
- 4ca4c06 refactor(migration): auto-upgrade claude-opus-4-5 and 4-6 to claude-opus-4-7
- def4433 refactor(models): bump claude-opus-4-6 to claude-opus-4-7 across fallback chains, categories, and hooks
- b1764a8 Merge pull request #3484 from code-yeongyu/fix/ci-remaining-test-fixes
- 2fca3dc fix(test): complete session_id→task_id migration in test assertions
- 3a956b2 fix(test): align session_id→task_id across tests and source files
- 28a896d fix(test): update dynamic-agent-prompt-builder test to expect task_id
- 843f1db Merge pull request #3483 from code-yeongyu/fix/bin-alias-oh-my-openagent
- fec50c5 fix: add oh-my-openagent bin alias for renamed package
- 62d185c Merge pull request #3481 from code-yeongyu/fix/atlas-test-task-id-parameter
- 91ebffa fix(test): update atlas test to expect task_id parameter instead of session_id
- 22942c2 Merge pull request #3480 from code-yeongyu/fix/zod-external-bundle
- e97953e fix(build): externalize zod from plugin bundle to prevent dual-instance crash
- 99ffb5f refactor(task): drop session_id resume alias
- d89e257 refactor(task): align continuation ids with task_id
- 56be458 fix(config): remove obsolete maxDescendants config
- 611f1cc fix(background-agent): remove descendant spawn cap
- e2f7fbb @EnochLi15 has signed the CLA in #3473
- 5c349fa Merge pull request #3471 from code-yeongyu/fix/copilot-effort-max
- 1ae3228 fix(anthropic-effort): clamp variant=max for github-copilot Claude models
- a5ae0b8 @omer-koren has signed the CLA in #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