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-sidecar
- 00a4f31 fix(migration): track applied migrations in sidecar so user reverts stick
- 3eb36a1 @NikkeTryHard has signed the CLA in #3261
- c3be4c2 Merge pull request #3260 from code-yeongyu/fix/remove-zwsp-sort-prefixes
- 8b418ea fix(agents): remove ZWSP sort prefixes from display name helper (#3259)
- d2bb5d5 Merge pull request #3258 from code-yeongyu/fix/auto-update-openagent-name-match
- 4344a41 fix(auto-update): resolve cached version when installed as oh-my-openagent (#3257)
- fcac67d @sen7971 has signed the CLA in #3248
- af6df87 Merge pull request #3243 from code-yeongyu/fix/ci-flaky-isolation
- 6943b6d fix(ci): isolate model-resolver and prometheus-config tests from mock.module contamination
- dfcd813 Merge pull request #3242 from code-yeongyu/fix/zwsp-api-leak
- 47283f9 fix(agents): remove ZWSP prefixes from config.agent keys (#3238)
- ed62f82 Merge pull request #3236 from code-yeongyu/fix/compaction-failure-toast
- 1ea0ee4 fix(preemptive-compaction): notify user on failure and reduce timeout
- 686f903 @FrancoStino has signed the CLA in #3234
- 3f5dfd8 fix(test): isolate openclaw bootstrap mocks
- 21ab1a6 fix(plugin): dispatch openclaw lifecycle events from handlers
- 9491bed fix(tmux): expose tracked pane ids for openclaw routing
- 20ee955 fix(openclaw): stop stale listeners during initialization
- ed4617e fix(openclaw): stabilize reply polling and tmux injection
- 92b59b1 fix(openclaw): harden reply listener process lifecycle
- 6c2bed2 fix(openclaw): split reply listener state and startup flow
- efde63f fix(openclaw): register reply correlation from runtime dispatch
- 4241227 fix(openclaw): parse wake metadata from gateway responses
- 7623997 fix(doctor): include custom providers from opencode.json in provider check
- ae3a8d6 fix(delegate-task): tighten subagent depth guard + add regression smoke tests
- 1140080 fix(agents): deny apply_patch for GPT models to prevent verification hangs (#2935)
Thank you to 2 community contributors:
- @Momentum96:
- fix(openclaw): parse wake metadata from gateway responses
- fix(openclaw): register reply correlation from runtime dispatch
- fix(openclaw): split reply listener state and startup flow
- fix(openclaw): harden reply listener process lifecycle
- fix(openclaw): stabilize reply polling and tmux injection
- fix(openclaw): stop stale listeners during initialization
- fix(tmux): expose tracked pane ids for openclaw routing
- fix(plugin): dispatch openclaw lifecycle events from handlers
- fix(test): isolate openclaw bootstrap mocks
- fix(ci): isolate discord reply listener test
- fix(test): align zombie pane tmux mocks
- fix(schema): use zod native json schema output
- fix(test): reset session manager storage in registry tests
- fix(test): wait for async skill description refresh
- fix(merge): resolve dev conflicts for openclaw branch
- @Qiiks:
- fix(shell-env): check SHELL before PSModulePath for shell detection