Commit Graph

6214 Commits

Author SHA1 Message Date
YeonGyu-Kim 317e2c6465 fix(zwsp): strip zero-width chars in start-work-hook
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-08 13:01:51 +09:00
YeonGyu-Kim 3724093618 fix(zwsp): strip zero-width chars from agent headers in command-config-handler
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-08 13:01:43 +09:00
YeonGyu-Kim 130e67a432 fix(zwsp): strip zero-width chars in boulder-continuation-injector
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-08 13:01:41 +09:00
YeonGyu-Kim 5188df903f fix(types): revert task-tool type inference workarounds
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-08 13:00:17 +09:00
YeonGyu-Kim 18771c8d6d fix(schema): restore z.toJSONSchema native v4 API 2026-04-08 12:59:54 +09:00
YeonGyu-Kim f4eabf9f0e chore(deps): upgrade @opencode-ai/{plugin,sdk} to 1.4.0 and restore zod v4
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-08 12:57:45 +09:00
GeonWoo Jeon (Jay) 3f5dfd8201 fix(test): isolate openclaw bootstrap mocks 2026-04-07 22:54:03 +09:00
GeonWoo Jeon (Jay) 21ab1a6475 fix(plugin): dispatch openclaw lifecycle events from handlers 2026-04-07 22:54:03 +09:00
GeonWoo Jeon (Jay) 9491bede5b fix(tmux): expose tracked pane ids for openclaw routing 2026-04-07 22:54:03 +09:00
GeonWoo Jeon (Jay) 20ee955030 fix(openclaw): stop stale listeners during initialization 2026-04-07 22:52:09 +09:00
GeonWoo Jeon (Jay) ed4617ec84 fix(openclaw): stabilize reply polling and tmux injection 2026-04-07 22:52:09 +09:00
GeonWoo Jeon (Jay) 92b59b1afd fix(openclaw): harden reply listener process lifecycle 2026-04-07 22:52:09 +09:00
GeonWoo Jeon (Jay) 6c2bed2f58 fix(openclaw): split reply listener state and startup flow 2026-04-07 22:52:09 +09:00
GeonWoo Jeon (Jay) efde63f733 fix(openclaw): register reply correlation from runtime dispatch 2026-04-07 22:52:09 +09:00
GeonWoo Jeon (Jay) 4241227227 fix(openclaw): parse wake metadata from gateway responses 2026-04-07 22:52:09 +09:00
github-actions[bot] 9a9b5be518 @teneburu has signed the CLA in code-yeongyu/oh-my-openagent#3203 2026-04-07 13:06:20 +00:00
YeonGyu-Kim 76239972c2 fix(doctor): include custom providers from opencode.json in provider check
The doctor's 'Model override uses unavailable provider' check only
looked at providers from ~/.cache/opencode/models.json (built-in
providers from models.dev). Custom OpenAI-compatible providers defined
in the user's opencode.json (under the 'provider' key) were not
included, causing false-positive warnings.

Now loadAvailableModelsFromCache() also reads provider names from
~/.config/opencode/opencode.json and ~/.config/opencode/opencode.jsonc,
merging them with the cache providers. This eliminates the false
positive while preserving real warnings for truly unknown providers.

7 new tests cover: cache-only, custom-only, merged, deduplicated,
JSONC variant, and malformed config resilience.

Fixes #3199
2026-04-07 20:24:03 +09:00
YeonGyu-Kim ae3a8d628b fix(delegate-task): tighten subagent depth guard + add regression smoke tests
The depth limit (default maxDepth=3) was being silently bypassed when
sync-task.ts could not reach the manager's spawn enforcement methods --
the fallback hardcoded childDepth: 1, allowing infinite recursion of
delegate_task calls in degraded environments.

This was hard to catch because:
1. The fallback path took the dangerous default silently (no log).
2. There were no end-to-end smoke tests asserting that the depth value
   coming back from reserveSubagentSpawn is actually used.
3. The unit tests for resolveSubagentSpawnContext only covered error
   cases, not the actual depth calculation.

Changes:
- sync-task.ts: split the spawnContext fallback into an explicit if/else
  with a WARNING log when the manager is missing enforcement methods.
  This makes the dangerous path observable in logs.
- subagent-spawn-limits.test.ts: add depth calculation regression tests
  (root, depth-1, depth-2, depth at max, parent cycle detection).
- sync-task.test.ts: add two regression smoke tests:
  1. depth limit error from reserveSubagentSpawn must be propagated and
     must NOT create the session.
  2. spawnDepth recorded in metadata must equal what reserveSubagentSpawn
     returns -- guards against silent fallback to childDepth: 1.

15 new spawn-limits tests + 2 new sync-task tests pass.
Full suite: 5105 pass, 0 fail.
2026-04-07 19:56:51 +09:00
YeonGyu-Kim 8f129eb4ad fix(test): update plugin tests to use getAgentListDisplayName for agent assertions
- Update plugin-interface.test.ts expectations to use getAgentListDisplayName
- Update chat-message.test.ts expectations for agent display names
- Add smoke test for quoted plan name resolution in chat-message.test.ts
- Aligns test expectations with proper agent name formatting

🤖 Generated with OhMyOpenCode assistance
2026-04-07 19:05:14 +09:00
YeonGyu-Kim 0452343f2b fix(start-work): use getAgentListDisplayName for Atlas agent selection
- Use getAgentListDisplayName instead of getAgentDisplayName for Atlas in start-work-hook.ts
- Update test expectations in index.test.ts to match the correct display name format
- Ensures Atlas agent name uses proper list format (e.g., "Atlas - Orchestrator")

🤖 Generated with OhMyOpenCode assistance
2026-04-07 19:05:06 +09:00
YeonGyu-Kim 557c2db65a feat(start-work): add plan name normalization and quote stripping
- Add WRAPPING_QUOTES_PATTERN to parse-user-request.ts to strip quotes from plan names
- Add normalizePlanLookupValue() to context-info-builder.ts for slug normalization
- Enhanced findPlanByName() with normalized exact and partial matching
- Allows human-readable plan names (e.g., "my feature plan") to match slugged filenames (e.g., my-feature-plan.md)

🤖 Generated with OhMyOpenCode assistance
2026-04-07 19:04:58 +09:00
YeonGyu-Kim 83a80e21fb fix(ci): add skipLibCheck to script tsconfig to avoid bun-types/@types/node conflicts
CI ubuntu-latest has @types/node ambient types that conflict with
bun-types for CompressionStream/DecompressionStream declarations.
skipLibCheck skips checking .d.ts files from node_modules.
2026-04-07 18:36:56 +09:00
YeonGyu-Kim a00fe13122 fix(test): update normalizeAgentForPrompt expectations to dash format
Test expected legacy parenthesized names but display names now use
dash format (Sisyphus - Ultraworker, not Sisyphus (Ultraworker)).
This was the flaky CI failure on dev.
2026-04-07 16:09:37 +09:00
YeonGyu-Kim dcecf049a1 Merge pull request #3189 from code-yeongyu/fix/issue-3146
fix(plugin-loading): improve error handling for plugin installation failures (#3146)
2026-04-07 15:57:53 +09:00
YeonGyu-Kim f27a7f2c95 ci: retrigger after rebase 2026-04-07 15:52:14 +09:00
YeonGyu-Kim 6eb527c914 fix: remove ZWSP from agent display names (#3146) 2026-04-07 15:44:31 +09:00
YeonGyu-Kim b269f11522 Merge pull request #3181 from code-yeongyu/fix/issue-3144
fix(cli): include fallback_models when writing agent model config (#3144)
2026-04-07 15:43:57 +09:00
YeonGyu-Kim 2f19cd28f6 Merge pull request #3178 from code-yeongyu/fix/issue-3164
fix(jsonc): strip UTF-8 BOM before parsing JSONC files (#3164)
2026-04-07 15:43:55 +09:00
YeonGyu-Kim 360fd3211d ci: trigger workflows 2026-04-07 15:39:51 +09:00
YeonGyu-Kim b77c256943 fix(jsonc): strip BOM before parsing (#3164) 2026-04-07 15:39:51 +09:00
YeonGyu-Kim bb1bad8e02 fix(cli): include fallback_models when writing agent model config (#3144)
Installer now generates fallback_models array alongside explicit model
overrides, preserving the fallback chain.

46 tests pass, tsc clean.

Closes #3144
2026-04-07 15:39:21 +09:00
YeonGyu-Kim e8c8376db4 fix(boulder): support both structured and simple plan formats in getPlanProgress
Structured plans (with ## TODOs section) use strict numbered-label
parsing. Simple plans (without sections) fall back to regex checkbox
counting. This fixes 9 test failures from the #3066 merge.
2026-04-07 15:39:08 +09:00
YeonGyu-Kim cf04f51068 Merge pull request #3185 from code-yeongyu/fix/issue-2462
fix: detect token-limit errors to prevent todo-continuation infinite loop (#2462)
2026-04-07 15:35:48 +09:00
YeonGyu-Kim 62cc74b23e Merge pull request #3187 from code-yeongyu/fix/issue-2687
fix: propagate project skills to background task sessions (#2687)
2026-04-07 15:35:28 +09:00
YeonGyu-Kim 4e6e76179c Merge pull request #3186 from code-yeongyu/fix/issue-2689
fix: register custom user agents in delegate-task resolver (#2689)
2026-04-07 15:35:25 +09:00
YeonGyu-Kim 505c7ef0cf Merge pull request #3184 from code-yeongyu/fix/issue-3163
fix: allow variant override even with agent model config (#3163)
2026-04-07 15:33:58 +09:00
YeonGyu-Kim aade99ee04 Merge pull request #3183 from code-yeongyu/fix/issue-2932
fix: prevent background agent race condition in session prompt (#2932)
2026-04-07 15:33:34 +09:00
YeonGyu-Kim d64cd66c7a Merge pull request #3182 from code-yeongyu/fix/issue-2964
fix: inject agent identity into system prompt for built-in agents (#2964)
2026-04-07 15:33:17 +09:00
YeonGyu-Kim 2465205356 fix: propagate project skills to background task sessions (#2687)
prompt-builder.ts now includes project-level skills from
.opencode/skills/ when building delegated session prompts.

5007 tests pass, tsc clean.

Closes #2687
2026-04-07 15:29:16 +09:00
YeonGyu-Kim fc009caaa1 fix: register custom user agents in delegate-task resolver (#2689)
agent-config-handler.ts now registers custom agents from
~/.config/opencode/agents/ into the task subagent registry.

5005 tests pass, tsc clean.

Closes #2689
2026-04-07 15:29:14 +09:00
YeonGyu-Kim a9c73986d7 fix: detect token-limit errors in todo-continuation to prevent infinite loop (#2462)
handler.ts now catches ContextLengthError/prompt-too-long errors and
stops continuation instead of retrying with an even larger context.

91 tests pass, tsc clean.

Closes #2462
2026-04-07 15:29:13 +09:00
YeonGyu-Kim ee8410ce03 fix: allow variant override even with agent model config (#3163)
model-selection.ts now separates model selection from variant/reasoning
tier, so agent model overrides don't lock the variant.

34 tests pass, 5009 total, tsc clean.

Closes #3163
2026-04-07 15:29:12 +09:00
YeonGyu-Kim 5622d154fd fix: prevent background agent race condition in session prompt (#2932)
Added await for session ready state before sending prompt in
background-agent/manager.ts. Also improved image resizer error handling.

132 tests pass, tsc clean.

Closes #2932
2026-04-07 15:29:11 +09:00
YeonGyu-Kim b2e7ddfb73 fix: inject agent identity into system prompt for built-in agents (#2964)
Built-in agents (Sisyphus, Hephaestus, Atlas) now include explicit
identity section in their system prompts, matching custom agent behavior.

12 agent identity tests pass, 266 total pass, tsc clean.

Closes #2964
2026-04-07 15:29:10 +09:00
YeonGyu-Kim be562905d6 Merge pull request #3179 from code-yeongyu/fix/issue-3066
fix(start-work): add CHECKED_CHECKBOX_PATTERN for plan progress (#3066)
2026-04-07 15:16:18 +09:00
YeonGyu-Kim b4b9aea849 Merge pull request #3177 from code-yeongyu/fix/issue-3168
fix(mcp): bypass env var allowlist for trusted skill MCP configs (#3168)
2026-04-07 15:15:55 +09:00
YeonGyu-Kim 062b8cd718 Merge pull request #3169 from code-yeongyu/fix/sisyphus-junior-model
fix(model-fallback): respect user model override for sisyphus-junior category sessions (#2941)
2026-04-07 15:14:09 +09:00
YeonGyu-Kim 6ebe1bf1ab Merge pull request #3176 from code-yeongyu/fix/issue-3113
fix(keyword-detector): start ralph-loop when ulw keyword detected (#3113)
2026-04-07 15:14:07 +09:00
YeonGyu-Kim 5b53f6fdc7 Merge pull request #3175 from code-yeongyu/fix/issue-3129
fix(auto-update): align PACKAGE_NAME with published package name (#3129)
2026-04-07 15:14:04 +09:00
YeonGyu-Kim 5db6bfd97d Merge pull request #3174 from code-yeongyu/fix/issue-3033
fix(look-at): make multimodal-looker prompt conditional on Read availability (#3033)
2026-04-07 15:14:01 +09:00