Commit Graph

2664 Commits

Author SHA1 Message Date
MoerAI fc48df1d53 fix(cli): replace dead glm-4.7-free with gpt-5-nano as ultimate fallback
The opencode/glm-4.7-free model was removed from the OpenCode platform,
causing the ULTIMATE_FALLBACK in the CLI installer to point to a dead
model. Users installing OMO without any major provider configured would
get a non-functional model assignment.

Replaced with opencode/gpt-5-nano which is confirmed available per
user reports and existing fallback chains in model-requirements.ts.

Fixes #2101
2026-03-16 19:21:10 +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 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
Robin Mordasiewicz 0d1d405a72 fix(discovery): add null-safe validation for v3 array entries
Filter out null, undefined, or malformed entries in installed_plugins.json
before accessing properties. Prevents fatal crash on corrupted data.

Addresses cubic-dev-ai review feedback.
2026-03-14 05:35:12 +00:00
Robin Mordasiewicz bc0ba843ac fix(agent-loader): convert model object to string for opencode compatibility
mapClaudeModelToOpenCode() returns {providerID, modelID} but opencode
expects model as a string. Both agent loaders now convert to
'providerID/modelID' string format before assigning to config.
2026-03-14 05:16:50 +00:00
Robin Mordasiewicz a7f0a4cf46 fix(plugin-loader): support Claude Code v3 flat array format for installed_plugins.json 2026-03-14 04:40:27 +00:00
YeonGyu-Kim 0dcfcd372b feat(cli): support both oh-my-opencode and oh-my-openagent package names
Update CLI config manager to detect and handle both legacy (oh-my-opencode)
and new (oh-my-openagent) package names during installation. Migration
will automatically replace old plugin entries with the new name.

🤖 Generated with assistance of OhMyOpenCode
2026-03-14 12:45:58 +09:00
YeonGyu-Kim b0ab34b568 feat(shared): add plugin identity constants for package name migration
Add centralized plugin identity constants to support migration from
oh-my-opencode to oh-my-openagent. Includes both current and legacy
names for backward compatibility.

🤖 Generated with assistance of OhMyOpenCode
2026-03-14 12:45:58 +09:00
MoerAI 9a774f1db2 fix: union disabled_tools in mergeConfigs() like other disabled_* arrays
disabled_tools was defined in the Zod schema but omitted from
mergeConfigs(), causing project-level config to shadow user-level
disabled_tools instead of merging both sets. Add Set union and
regression test.

Closes #2555
2026-03-13 21:35:46 +09:00
YeonGyu-Kim f3de122147 feat(hooks): add delegate-task-english-directive hook to enforce English for subagents
Appends bold uppercase English-only directive to explore, librarian,
oracle, and plan subagent prompts via tool.execute.before on the task tool.
2026-03-13 14:22:13 +09:00
YeonGyu-Kim 3e746c9a56 fix(review): resolve 3 review-work blocking issues 2026-03-13 14:09:36 +09:00
YeonGyu-Kim 786c7a84d0 fix(background-agent): prevent queue item loss on concurrent cancel and guard against cancelled task resurrection 2026-03-13 13:12:59 +09:00
YeonGyu-Kim 380889caa3 fix(delegate-task): add exception fallback for cleanup reason and correct test mock status type 2026-03-13 13:08:50 +09:00
YeonGyu-Kim 04b0c6f33c fix(atlas): pause after final verification wave for explicit user approval 2026-03-13 12:43:33 +09:00
YeonGyu-Kim fd71c89b95 fix(background-agent): release descendant quota on pre-start task cancellation and creation failure 2026-03-13 12:37:33 +09:00
YeonGyu-Kim 11df83713e refactor(preemptive-compaction): use shared context-limit resolver to eliminate duplicated logic 2026-03-13 12:36:07 +09:00
YeonGyu-Kim 457f303adf fix(background-agent): clean global subagentSessions and SessionCategoryRegistry on dispose 2026-03-13 10:56:44 +09:00
YeonGyu-Kim 0015dd88af fix(agent-config): normalize agent names before builtin override filtering to prevent alias bypass 2026-03-13 10:55:51 +09:00
YeonGyu-Kim 9bce6314b1 fix(runtime-fallback): scope visible-assistant check to current turn and cleanup retry dedupe keys 2026-03-13 10:54:47 +09:00
YeonGyu-Kim cbe113ebab fix(slashcommand): support parent config dirs in command execution path to match discovery 2026-03-13 10:54:15 +09:00
YeonGyu-Kim e3f6c12347 fix(atlas): restrict idle-event session append to boulder-owned subagent sessions only 2026-03-13 10:53:45 +09:00
YeonGyu-Kim b356c50285 fix(delegate-task): cancel child background tasks on parent abort and timeout in unstable agent flow 2026-03-13 10:49:44 +09:00
YeonGyu-Kim 38938508fa test(model-fallback): update snapshots and kimi model expectations for opencode-go integration 2026-03-13 10:48:05 +09:00