YeonGyu-Kim
0cf386ec52
fix(skill-tool): invalidate cached skill description on execute
2026-03-17 15:49:26 +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
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
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
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
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
Ouyang Xingyuan
f2b26e5346
fix(delegate-task): add subagent turn limit and model routing transparency
...
原因:
- subagent 无最大步数限制,陷入 tool-call 死循环时可无限运行,造成巨额 API 费用
- category 路由将 subagent 静默切换到与父 session 不同的模型,用户完全无感知
改动:
- sync-session-poller: 新增 maxAssistantTurns 参数(默认 300),每检测到新 assistant 消息
计数一次,超限后调用 abortSyncSession 并返回明确错误信息
- sync-task: task 完成时在返回字符串中显示实际使用的模型;若与父 session 模型不同,
加 ⚠️ 警告提示用户发生了静默路由
影响:
- 现有行为不变,maxAssistantTurns 为可选参数,默认值 300 远高于正常任务所需轮次
- 修复 #2571:用户一个下午因 Sisyphus-Junior 死循环 + 静默路由到 Gemini 3.1 Pro
烧掉 $350+,且 OpenCode 显示费用仅为实际的一半
2026-03-15 12:05:42 +08: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
457f303adf
fix(background-agent): clean global subagentSessions and SessionCategoryRegistry on dispose
2026-03-13 10:56:44 +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
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
cpkt9762
11e9276498
fix(delegate-task): build categoryModel with variant for categories without fallback chain
...
When a category has no CATEGORY_MODEL_REQUIREMENTS entry (e.g.
user-defined categories like solana-re), the !requirement branch
set actualModel but never built categoryModel with variant from
the user config. The bottom fallback then created categoryModel
via parseModelString alone, silently dropping the variant.
Mirror the requirement branch logic: read variant from
userCategories and resolved.config, and build categoryModel
with it.
Fixes #2538
2026-03-13 04:15:17 +08:00
Gujiassh
1e0823a0fc
fix(delegate-task): report the real background task id
...
Keep background task metadata aligned with the background_output contract so callers do not pass a session id where the task manager expects a background task id.
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-03-13 01:25:13 +09:00
YeonGyu-Kim
4f4e53b436
feat(skill): re-read skills and commands from disk on every invocation
...
Removes in-memory caching so newly created skills mid-session are
immediately available via skill(). Clears the module-level skill cache
before each getAllSkills() call. Pre-provided skills from options are
merged as fallbacks for test compatibility.
2026-03-12 20:03:58 +09:00
Gujiassh
edfa411684
fix(session-manager): match todo filenames exactly
...
Stop sibling session IDs from colliding in stable JSON storage by requiring an exact todo filename match instead of a substring filter.
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-03-12 19:58:57 +09:00
YeonGyu-Kim
a400adae97
feat(skill): render skills as slash commands in available items list
...
Skills now appear as <command> items with / prefix (e.g., /review-work)
instead of <skill> items, making them discoverable alongside regular
slash commands in the skill tool description.
2026-03-12 18:53:44 +09:00
YeonGyu-Kim
b4e01e9987
feat(slashcommand): support parent opencode config dirs for command discovery
2026-03-12 18:19:06 +09:00
YeonGyu-Kim
81301a6071
feat: skip model resolution for delegated tasks when provider cache not yet created
...
Before provider cache exists (first run), resolveModelForDelegateTask now
returns undefined instead of guessing a model. This lets OpenCode use its
system default model when no model is specified in the prompt body.
User-specified model overrides still take priority regardless of cache state.
2026-03-12 18:19:06 +09:00
YeonGyu-Kim
0cbc15da96
fix(hashline): use strict whitespace hashing (trimEnd only, preserve leading indentation)
...
Previously computeLineHash stripped ALL whitespace before hashing, making
indentation changes invisible to hash validation. This weakened the stale-line
detection guarantee, especially for indentation-sensitive files (Python, YAML).
Now only trailing whitespace and carriage returns are stripped, matching
oh-my-pi upstream behavior. Leading indentation is preserved in the hash,
so indentation-only changes correctly trigger hash mismatches.
2026-03-12 16:42:41 +09:00
YeonGyu-Kim
ba86ef0eea
fix: enable runtime fallback for delegated child sessions ( #2357 )
2026-03-12 13:39:04 +09:00
MoerAI
eb79d29696
fix(delegate-task): only check resolved model for isUnstableAgent, not default ( #2287 )
2026-03-12 12:48:29 +09:00
YeonGyu-Kim
0cdbd15f74
Merge pull request #2487 from code-yeongyu/fix/issue-2431-lsp-path-resolution
...
fix: unify LSP server PATH resolution between detection and spawn
2026-03-12 11:24:41 +09:00
YeonGyu-Kim
6014f03ed2
fix: address Cubic finding for LSP server npm bin path
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-03-12 11:04:43 +09:00
YeonGyu-Kim
d83f875740
fix(call-omo-agent): track reused sync sessions
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-03-12 11:04:20 +09:00
YeonGyu-Kim
7997606892
fix(call-omo-agent): preserve reused session tracking
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-03-12 02:24:22 +09:00
YeonGyu-Kim
9d0b56d375
fix: unify LSP server PATH resolution between detection and spawn ( #2431 )
2026-03-12 01:44:06 +09:00
YeonGyu-Kim
f342dcfa12
fix(call-omo-agent): add finally cleanup for sync executor session Sets
...
Sync call_omo_agent leaked entries in global activeSessionMessages
and activeSessionToolResults Sets when execution threw errors,
since cleanup only ran on success path.
- Wrap session Set operations in try/finally blocks
- Ensure Set.delete() runs regardless of success/failure
- Add guard against double-cleanup
Tests: 2 pass, 14 expects
2026-03-12 01:37:02 +09:00
YeonGyu-Kim
e26088ba8f
Merge pull request #2481 from code-yeongyu/fix/issue-2185-lsp-notification-params
...
fix: use rest params in LSP sendNotification to avoid undefined serialization
2026-03-12 01:34:29 +09:00
YeonGyu-Kim
ef2017833d
Merge pull request #2425 from MoerAI/fix/issue-2408-gemini-vertex-edit-schema
...
fix(hashline-edit): remove array type from lines union to fix Gemini Vertex schema validation
2026-03-12 01:32:37 +09:00
YeonGyu-Kim
f5be99f911
Merge pull request #2420 from MoerAI/fix/issue-2375-run-in-background-default
...
fix(delegate-task): default run_in_background to false when orchestrator intent is detected
2026-03-12 01:32:31 +09:00
YeonGyu-Kim
182fe746fc
Merge pull request #2476 from code-yeongyu/fix/issue-2441-session-id-pending
...
fix: omit sessionId from metadata when not yet assigned
2026-03-12 01:32:30 +09:00
YeonGyu-Kim
08b411fc3b
fix: use rest params in LSP sendNotification to avoid undefined serialization ( #2185 )
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-03-12 01:24:42 +09:00
YeonGyu-Kim
6d5175b9b0
fix(delegate-task): extend default sync poll timeout to 30 minutes
...
Keep synchronous subagent runs from timing out after 10 minutes when no explicit override is configured.
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-03-12 01:14:26 +09:00
YeonGyu-Kim
f2a7d227cb
fix: omit sessionId from metadata when not yet assigned ( #2441 )
2026-03-12 01:02:12 +09:00
YeonGyu-Kim
39e799c596
docs: sync category model defaults
...
Update the public and internal docs to describe the new ultrabrain and unspecified-high defaults so the documented routing matches runtime behavior.
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-03-12 01:00:41 +09:00
YeonGyu-Kim
7c29962014
fix(delegate-task): refresh built-in category defaults
...
Keep delegate-task category defaults in sync with the new routing policy so ultrabrain and unspecified-high resolve to the intended primary models.
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-03-12 01:00:41 +09:00
YeonGyu-Kim
f1b5b1023f
fix: tighten Anthropic provider matching and fix look-at test isolation
...
- Replace overly broad .includes('anthropic') with exact provider ID
matching against known Anthropic providers (anthropic, google-vertex-
anthropic, aws-bedrock-anthropic) in context-limit-resolver
- Add afterEach cleanup for vision-capable-models cache in look-at
tool tests to prevent cross-test state leakage
2026-03-12 00:31:02 +09:00
YeonGyu-Kim
a668860b86
fix: adjust vision capability check to not block when no model resolved
...
- Only block when a resolved model is explicitly not vision-capable
- Set up vision cache in model passthrough test for proper isolation
2026-03-11 21:56:19 +09:00
YeonGyu-Kim
85151f7dfd
fix(look-at): preserve variant metadata in fallback chain and block non-vision models
...
- fallback-chain.ts: cache-derived entries inherit variant from matching hardcoded entries
- agent-metadata.ts: new isVisionCapableAgentModel() guard blocks non-vision registered models
- tools.ts: early vision-capability check before session creation
- Added regression tests for variant preservation and non-vision model rejection
2026-03-11 21:45:49 +09:00
YeonGyu-Kim
a179ebe0b9
Count sync subagent spawns against descendant limits
2026-03-11 20:50:11 +09:00
YeonGyu-Kim
4a39c83eb5
Limit recursive subagent spawning
2026-03-11 20:50:10 +09:00
YeonGyu-Kim
661def7f51
Merge pull request #2371 from code-yeongyu/fix/issue-2323
...
fix: respect multimodal provider vision capabilities
2026-03-11 20:22:35 +09:00
YeonGyu-Kim
adc927f422
Merge pull request #2448 from code-yeongyu/fix/subagent-self-execute-v2
...
fix: prevent agents from duplicating delegated subagent work
2026-03-11 20:19:47 +09:00
YeonGyu-Kim
e513f663be
fix: rename test file to .ts extension
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-03-11 20:16:16 +09:00
YeonGyu-Kim
413e8b73b7
Add session permission support to background agents for denying questions
...
Implements question-denied session permission rules when creating child
sessions via background task delegation. This prevents subagents from
asking questions by passing explicit permission configuration during
session creation.
🤖 GENERATED WITH ASSISTANCE OF OhMyOpenCode
2026-03-11 19:42:46 +09:00
YeonGyu-Kim
339ece93f6
Strengthen sync executor test coverage
...
Cover metadata output and prompt failure branches so the sync executor is verified by its returned contract, not only tool flag plumbing.
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-03-11 19:42:46 +09:00
YeonGyu-Kim
f28ee0e21a
fix(background-task): default background_output to full session
2026-03-11 18:17:49 +09:00
YeonGyu-Kim
e4fd29ac8b
fix: prevent agents from duplicating delegated subagent work
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-03-11 17:42:42 +09:00
YeonGyu-Kim
e2cf9c677c
Align ast-grep fallback downloader version
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-03-11 15:48:42 +09:00
MoerAI
204322b120
fix(hashline-edit): remove array type from lines union to fix Gemini Vertex schema validation ( #2408 )
2026-03-10 17:18:14 +09:00