Commit Graph

3737 Commits

Author SHA1 Message Date
YeonGyu-Kim
8213534e87 Merge pull request #2607 from code-yeongyu/feat/openclaw-integration
feat: implement OpenClaw integration
2026-03-16 17:48:11 +09:00
YeonGyu-Kim
450685f5ea fix: extract session ID from properties.info.id for session.created/deleted events 2026-03-16 17:38:47 +09:00
YeonGyu-Kim
03b346ba51 feat: implement OpenClaw integration
Ports the OMX OpenClaw module into oh-my-openagent as a first-class integration.
This integration allows forwarding internal events (session lifecycle, tool execution) to external gateways (HTTP or command-based).

- Added `src/openclaw` directory with implementation:
  - `dispatcher.ts`: Handles HTTP/Command dispatching with interpolation
  - `types.ts`: TypeScript definitions
  - `client.ts`: Main entry point `wakeOpenClaw`
  - `index.ts`: Public API
- Added `src/config/schema/openclaw.ts` for Zod schema validation
- Updated `src/config/schema/oh-my-opencode-config.ts` to include `openclaw` config
- Added `src/hooks/openclaw-sender/index.ts` to listen for events
- Registered the hook in `src/plugin/hooks/create-session-hooks.ts`
- Added unit tests in `src/openclaw/__tests__`

Events handled:
- `session-start` (via `session.created`)
- `session-end` (via `session.deleted`)
- `session-idle` (via `session.idle`)
- `ask-user-question` (via `tool.execute.before` for `ask_user_question`)
- `stop` (via `tool.execute.before` for `stop-continuation` command)
2026-03-16 17:21:56 +09:00
YeonGyu-Kim
84fb1113f1 chore: add pre-publish blocker tracking document
Add FIX-BLOCKS.md to track critical and high-priority issues

identified in pre-publish reviews.

🤖 GENERATED WITH ASSISTANCE OF OhMyOpenCode
2026-03-16 14:15:36 +09:00
YeonGyu-Kim
90decd1fd4 chore(schema): regenerate schema after hook enum forward-compat change
🤖 Generated with [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-openagent)
2026-03-16 14:15:36 +09:00
YeonGyu-Kim
47d1ad7bb9 fix(plugin): persist ultrawork variant on same-model override and normalize Claude model IDs
🤖 Generated with [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-openagent)
2026-03-16 14:15:36 +09:00
YeonGyu-Kim
32a296bf1e fix(auto-slash-command): use event-ID dedup, align precedence, enforce skill agent gate
🤖 Generated with [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-openagent)
2026-03-16 14:15:36 +09:00
YeonGyu-Kim
67bb9ec1e2 fix(delegate-task): resolve variant-bearing fallback models during immediate selection
🤖 Generated with [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-openagent)
2026-03-16 14:15:36 +09:00
YeonGyu-Kim
d57c27feee fix(tmux): replace hardcoded zsh with portable shell detection
🤖 Generated with [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-openagent)
2026-03-16 14:15:36 +09:00
YeonGyu-Kim
1339ecdd13 fix(hashline): restore v3.11.2 legacy hash computation for backward compatibility
🤖 Generated with [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-openagent)
2026-03-16 14:15:36 +09:00
github-actions[bot]
8c4fa47e5e @sanoyphilippe has signed the CLA in code-yeongyu/oh-my-openagent#2604 2026-03-16 04:55:22 +00:00
github-actions[bot]
10e0c7f997 @Jrakru has signed the CLA in code-yeongyu/oh-my-openagent#2602 2026-03-16 03:40:45 +00:00
YeonGyu-Kim
48707a6901 test(tmux): isolate tmux environment checks from process env
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-16 11:37:56 +09:00
YeonGyu-Kim
fe3f0584ed test(skill-loader): avoid node:fs mock leakage in project skill references
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-16 11:37:56 +09:00
acamq
1cfc1c8a8b Merge pull request #2596 from cyberprophet/fix/doctor-plugin-version-fallback
fix(doctor): fall back to loadedVersion when pluginVersion is null
2026-03-15 20:22:10 -06:00
acamq
8401e61260 Merge pull request #2597 from code-yeongyu/fix/todo-compaction-only-guard
fix(todo-continuation-enforcer): skip continuation when only compaction messages exist
2026-03-15 20:20:20 -06:00
acamq
085ca0abcb Merge pull request #2598 from code-yeongyu/revert-2582-fix/fix-install-test
Revert "fix(test): update package name to oh-my-openagent in install test"
2026-03-15 20:09:25 -06:00
acamq
a7800a8bf6 Revert "fix(test): update package name to oh-my-openagent in install test" 2026-03-15 20:06:55 -06:00
acamq
9e7abe2dea fix(todo-continuation-enforcer): skip continuation for compaction-only message history 2026-03-15 20:02:56 -06:00
cyberprophet
5b7ca99b96 fix(doctor): fall back to loadedVersion when pluginVersion is null 2026-03-16 11:00:05 +09:00
YeonGyu-Kim
f31f50abec fix(release): revert package identity to oh-my-opencode
Keep installer, config detection, schema generation, and publish workflows aligned with the long-lived oh-my-opencode package so this release does not split across two npm names.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-16 10:38:55 +09:00
YeonGyu-Kim
612b9c163d fix(config): clear stale context limit cache on provider updates
Rebuilding provider model limits prevents removed entries from leaking into later compaction decisions after config changes.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-16 10:38:55 +09:00
YeonGyu-Kim
16b0d9eb77 fix(atlas): gate final-wave approval on real plan state
Ignore nested plan checkboxes and track parallel final-wave approvals so Atlas only pauses for user approval when the real top-level review wave is complete.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-16 10:38:55 +09:00
YeonGyu-Kim
1ad5db4e8b fix(runtime-fallback): advance session.status fallback chain
Allow provider cooldown events to override a pending fallback retry so runtime fallback can keep progressing instead of stalling on the same model.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-16 10:38:55 +09:00
YeonGyu-Kim
988478a0fa fix(config): allow forward-compatible disabled hooks
Keep disabled_hooks aligned with runtime behavior by accepting unknown hook names instead of treating future entries as schema errors.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-16 10:38:55 +09:00
YeonGyu-Kim
e87075b9a4 fix(background-task): restore opt-in full session output
Bring background_output back to the legacy contract so callers only get full session transcripts when they explicitly ask for them.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-16 10:38:55 +09:00
YeonGyu-Kim
fe4493c6a6 fix(model-fallback): keep model fallback opt-in by default
Restore the runtime default that was introduced for model fallback so unset config no longer enables automatic retries unexpectedly.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-16 10:38:55 +09:00
YeonGyu-Kim
7f7527047e fix(cli): validate and detect OpenCode Go install settings
Reject invalid --opencode-go values during non-TUI installs and detect existing OpenCode Go usage from the generated oh-my-opencode config so updates preserve the right defaults.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-16 10:38:55 +09:00
YeonGyu-Kim
532995bb51 fix(model-fallback): align OpenAI fallback resolution across CLI and runtime
Keep install-time and runtime model tables in sync, stop OpenAI-only misrouting when OpenCode Go is present, and add valid OpenAI fallbacks for atlas, metis, and sisyphus-junior.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-16 10:38:55 +09:00
YeonGyu-Kim
b63082a3bb fix(skills): correct invalid task tool references 2026-03-16 10:38:54 +09:00
YeonGyu-Kim
674df1b1b8 fix(hooks): remove dead delegate-task-english-directive hook 2026-03-16 10:38:54 +09:00
YeonGyu-Kim
2b8ae214b6 fix(auto-slash-command): expire duplicate suppression after 30s
Allow legitimate repeated slash commands in long sessions by replacing session-lifetime dedup with a short-lived TTL cache.

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-16 10:38:54 +09:00
YeonGyu-Kim
bbd2e86499 fix(hashline): accept legacy hashes for indented anchors
Keep persisted LINE#ID anchors working after strict whitespace hashing by falling back to the legacy hash for validation-only lookups.

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-16 10:38:54 +09:00
acamq
f03de4f8a8 Merge pull request #2535 from conversun/fix/prometheus-compaction-agent-fallback
fix(todo-continuation-enforcer): prevent post-compaction agent fallback to General
2026-03-15 19:29:34 -06:00
acamq
65ccc9b854 Merge pull request #2588 from acamq/refactor/doctor-lsp-extensions
refactor(doctor): show detected LSP extensions instead of hardcoded server counts
2026-03-15 19:12:48 -06:00
acamq
85d812964b chore: remove unused LspServerInfo type 2026-03-15 19:09:47 -06:00
acamq
da788d3906 fix(doctor): remove redundant extensions from verbose LSP header
The header line was showing all extensions unioned together which was
redundant with the per-server detail lines below and caused line overflow.
Status mode also simplified to just show server count.
2026-03-15 19:02:21 -06:00
acamq
03da2e94a2 refactor(doctor): show detected LSP servers and extensions instead of hardcoded counts
Replace the hardcoded 4-server list in doctor LSP check with getAllServers()
from server-resolution.ts, which covers all 40+ builtin servers plus user
config. Output now shows server count with supported extensions, and verbose
mode expands to per-server detail lines.

Status:  LSP 3 servers (.go, .py, .pyi, .ts, .tsx)
Verbose: LSP 3 servers (.go, .py, .pyi, .ts, .tsx)
           typescript (.ts, .tsx, .js, .jsx)
           pyright (.py, .pyi)
           gopls (.go)

Closes #2587
2026-03-15 19:00:17 -06:00
acamq
73685da275 Merge pull request #2563 from robinmordasiewicz/fix/claude-code-plugin-v3-array-format
fix(plugin-loader): support Claude Code v3 flat array format for installed_plugins.json
2026-03-15 18:02:29 -06:00
acamq
8f9bdf0893 Merge pull request #2559 from MoerAI/fix/issue-2555-disabled-tools-merge
fix: union disabled_tools in mergeConfigs() like other disabled_* arrays
2026-03-15 17:57:18 -06:00
acamq
2cf329a302 revert: remove accidentally committed built files from bce8ff3
Reverts the dist/ directory added in bce8ff3a7 ("chore: include pre-built
dist for github install"). Built artifacts should not be tracked in git.
2026-03-15 17:51:08 -06:00
acamq
e03d0e0485 Merge pull request #2585 from acamq/fix/custom-agent-summaries-completeness
fix(agents): include config agents and migrated plugin agents in customAgentSummaries
2026-03-15 17:48:50 -06:00
acamq
14d7043263 Merge pull request #2546 from acamq/fix/installer-paths
fix(installer): always use .config/opencode for CLI on Windows (#2502)
2026-03-15 17:44:39 -06:00
acamq
e8a3e549bb fix(agents): include config agents and migrated plugin agents in customAgentSummaries
PR #2424 fixed the critical bug (passing client object instead of agent
summaries array), but only included user, project, and raw plugin agents.

This adds the two missing sources:
- OpenCode native config agents (params.config.agent)
- Plugin agents with migrateAgentConfig applied before summary extraction

Ensures Sisyphus has complete awareness of all registered agent sources.

Closes #2386

Co-authored-by: NS Cola <123285105+davincilll@users.noreply.github.com>
2026-03-15 17:30:57 -06:00
acamq
2fd6f4bf57 Merge pull request #2582 from acamq/fix/fix-install-test
fix(test): update package name to oh-my-openagent in install test
2026-03-15 16:31:56 -06:00
acamq
0f0e4c649b fix(test): update package name to oh-my-openagent in install test
The test was checking for the old package name 'oh-my-opencode'
but the plugin registration now uses 'oh-my-openagent'.
2026-03-15 16:26:35 -06:00
acamq
b7c68080b4 Merge pull request #2532 from ricatix/fix/doctor-verbose-models
fix(cli): render verbose doctor check details
2026-03-15 16:19:08 -06:00
acamq
f248c73478 Merge pull request #2507 from MoerAI/fix/issue-2287-unstable-agent-check
fix(delegate-task): only check resolved model for isUnstableAgent, not category default
2026-03-15 15:34:57 -06:00
acamq
8470a6bf1f fix(test): isolate XDG_CONFIG_HOME in Windows CLI tests
Windows CLI tests were not deleting XDG_CONFIG_HOME, making them
fragile in environments where this variable is set. getCliConfigDir()
reads XDG_CONFIG_HOME on all platforms, not just Linux.
2026-03-15 15:30:52 -06:00
acamq
f92c0931a3 fix(installer): respect XDG_CONFIG_HOME on Windows for CLI config dir 2026-03-15 08:26:41 -06:00