Commit Graph

2355 Commits

Author SHA1 Message Date
YeonGyu-Kim bce3732222 fix(sisyphus-junior): disambiguate blocked delegation tool from allowed task management tools
When task_system is enabled, the prompt said 'task tool: BLOCKED' which
LLMs interpreted as blocking task_create/task_update/task_list/task_get
too. Now the constraints section explicitly separates 'task (agent
delegation tool): BLOCKED' from 'task_create, task_update, ...: ALLOWED'
so Junior no longer refuses to use task management tools.
2026-02-10 11:41:44 +09:00
YeonGyu-Kim e580c3e840 Merge pull request #1703 from nianyi778/add-elestyle-to-loved-by
Add ELESTYLE to 'Loved by professionals at' section
2026-02-10 11:26:40 +09:00
likai b626083d68 Add ELESTYLE to 'Loved by professionals at' section 2026-02-10 10:43:09 +09:00
github-actions[bot] caa9e5879f @nianyi778 has signed the CLA in code-yeongyu/oh-my-opencode#1703 2026-02-10 01:41:30 +00:00
YeonGyu-Kim c81a135096 fix(cli/run): handle session.status idle event in addition to deprecated session.idle 2026-02-09 21:12:11 +09:00
YeonGyu-Kim 4619bc744b fix(cli/run): set default timeout to 30 minutes to match help text 2026-02-09 21:12:00 +09:00
YeonGyu-Kim 3bc4ca8a98 fix(cli/run): move error check before idle/tool gates in pollForCompletion 2026-02-09 21:11:48 +09:00
YeonGyu-Kim b162bf012c fix(config-manager): replace heuristic JSONC editing with jsonc-parser modify/applyEdits 2026-02-09 21:11:40 +09:00
YeonGyu-Kim 5db49e722f fix(agent-config): pass useTaskSystem to sisyphus-junior when task_system is enabled
sisyphus-junior prompt always used todo-based discipline text regardless of
experimental.task_system setting because the useTaskSystem flag was never
forwarded from agent-config-handler to createSisyphusJuniorAgentWithOverrides.
2026-02-09 21:10:15 +09:00
YeonGyu-Kim ea9cd17b45 feat(background-agent): handle "interrupt" in notifications, output, and formatting
Update notification systems to display INTERRUPTED status.

Add interrupt handling to background_output tool (terminal status).

Add interrupt-specific status note to formatTaskStatus.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-02-09 18:26:16 +09:00
YeonGyu-Kim a709cb5b1b feat(background-agent): use "interrupt" status for promptAsync errors
Change promptAsync catch blocks to set status = "interrupt" instead of "error".

This distinguishes prompt errors from stale timeouts (cancelled) and TTL expirations (error).

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-02-09 18:25:54 +09:00
YeonGyu-Kim 4c0b6bfb68 feat(background-agent): add "interrupt" to BackgroundTaskStatus type
Add interrupt as a terminal status for background tasks that fail due to promptAsync errors (e.g., prompt exceed, agent not found).

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-02-09 18:25:34 +09:00
YeonGyu-Kim 101fe27c37 fix(delegation): restore category to sisyphus-junior auto-mapping
Category-based delegation should always route to sisyphus-junior even if
subagent_type is mistakenly provided, matching the original behavior and
preventing accidental bypass of category routing.
2026-02-09 16:14:30 +09:00
YeonGyu-Kim 7a15b7ee16 fix(delegation): replace message-count-stability polling with native finish-based completion detection
Sync task completion was fragile — detecting premature stability during
brief idle periods between tool calls. Now mirrors opencode's native
SessionPrompt.loop() logic: checks assistant finish reason is terminal
(not tool-calls/unknown) and assistant.id > user.id.

Also switches sync prompt sender from blocking HTTP (promptSync) to
async fire-and-forget (promptAsync) to avoid JSON parse errors in ACP.
2026-02-09 15:37:19 +09:00
YeonGyu-Kim abb2b79282 docs: refresh all 13 hierarchical AGENTS.md files with current codebase state 2026-02-09 14:29:53 +09:00
YeonGyu-Kim 694b8e48aa fix(look-at): catch prompt errors gracefully instead of re-throwing
session.prompt() may throw {} or JSON parse errors even when the server
successfully processes the request. Instead of crashing the tool, catch
all errors and proceed to fetch messages — if the response is available,
return it; otherwise return a clean error string.
2026-02-09 14:18:24 +09:00
YeonGyu-Kim 635033bc42 refactor: enforce modular code rules — split 25+ files, rename catch-all modules, SRP compliance
refactor: enforce modular code architecture (waves 1-2)
2026-02-09 13:39:36 +09:00
YeonGyu-Kim d65b447848 merge: integrate origin/dev (5th merge) — resolve @path skill references in split file structure 2026-02-09 12:08:15 +09:00
YeonGyu-Kim fb3c440969 feat: auto-resolve @path references in skill templates to absolute paths
Skill loaders previously only told agents that @path references are
relative to the skill directory, but agents often failed to resolve
them. Now @path/with/slash patterns are automatically expanded to
absolute paths during template construction.
2026-02-09 12:04:41 +09:00
YeonGyu-Kim 9346c8431d fix(config-manager): guard against non-array plugin values in auth-plugins 2026-02-09 12:00:24 +09:00
YeonGyu-Kim 7611a4953f fix(agents): remove duplicate category override application in general-agents 2026-02-09 12:00:11 +09:00
YeonGyu-Kim c2d2f577d8 fix(agents): sanitize custom agent names for markdown table safety 2026-02-09 12:00:01 +09:00
YeonGyu-Kim d8dc9dabee fix(config-manager): skip string literals when counting braces in JSONC provider replacement 2026-02-09 11:59:50 +09:00
YeonGyu-Kim 2c3c4ca86a fix(git-worktree): use Node readFileSync for cross-platform untracked file line counts 2026-02-09 11:45:29 +09:00
YeonGyu-Kim 55c73dcd37 fix(background-agent): rename getCompletedTasks to getNonRunningTasks for semantic accuracy 2026-02-09 11:45:20 +09:00
YeonGyu-Kim b8d3daab1d fix(git-worktree): compute real line counts for untracked files in diff stats 2026-02-09 11:36:35 +09:00
YeonGyu-Kim 5cc22a2043 fix(background-agent): align getCompletedTasks filter with state manager semantics 2026-02-09 11:36:29 +09:00
YeonGyu-Kim 120a599cd5 fix: address Cubic background-agent issues — task status filter, array response handling, error mapping, concurrency key, duration fallback, output validation 2026-02-09 11:19:39 +09:00
YeonGyu-Kim f7d47dfbda fix: address Cubic CLI and agent issues — URL encode, JSONC leading comments, config clone, untracked files, parse error handling, cache path, message-dir dedup 2026-02-09 11:17:51 +09:00
YeonGyu-Kim 210cf33a65 fix: address remaining Cubic issues — reset lastPartText on new message, TTY guard for installer, filter disabled skills, local-dev version resolution 2026-02-09 11:01:38 +09:00
YeonGyu-Kim 5d4c096bf5 merge: integrate origin/dev (4th merge) 2026-02-09 10:59:39 +09:00
YeonGyu-Kim 008f60c9aa Merge pull request #1685 from code-yeongyu/fix/run-completion-race-condition
fix: prevent run completion race condition with consecutive stability checks
2026-02-09 10:58:37 +09:00
YeonGyu-Kim 81af4fbb13 fix: prevent run completion race condition with consecutive stability checks
pollForCompletion exited immediately when session went idle before agent
created TODOs or registered children (0 todos + 0 children = vacuously
complete). Add consecutive stability checks (3x500ms debounce) and
currentTool guard to prevent premature exit.

Extract pollForCompletion to dedicated module for testability.
2026-02-09 10:41:51 +09:00
github-actions[bot] 2aa93aacfb @mrm007 has signed the CLA in code-yeongyu/oh-my-opencode#1680 2026-02-08 21:41:45 +00:00
github-actions[bot] c783772701 @aliozdenisik has signed the CLA in code-yeongyu/oh-my-opencode#1676 2026-02-08 17:12:45 +00:00
github-actions[bot] 497bf54375 @JunyeongChoi0 has signed the CLA in code-yeongyu/oh-my-opencode#1674 2026-02-08 16:02:43 +00:00
github-actions[bot] c4d1cde2ad release: v3.4.0 2026-02-08 15:44:17 +00:00
YeonGyu-Kim c512e8aa15 fix: guard against missing brace in JSONC provider replacement 2026-02-08 22:43:02 +09:00
YeonGyu-Kim e3d800859e fix: use brace-depth matching for JSONC provider replacement instead of fragile regex 2026-02-08 22:38:51 +09:00
YeonGyu-Kim 4d51f34507 fix: address Cubic round 5 issues — prototype-pollution guard, URL-encode, JSONC preservation, config-context warning, dynamic config path 2026-02-08 22:35:16 +09:00
YeonGyu-Kim 34dfdea7f3 chore: trigger re-review 2026-02-08 22:14:39 +09:00
YeonGyu-Kim 0f0652bbda fix: guard interactive prompts on both stdin and stdout TTY 2026-02-08 22:09:12 +09:00
YeonGyu-Kim 55f935f6a1 fix: address Cubic P2 issues in doctor checks and agent overrides 2026-02-08 22:03:58 +09:00
YeonGyu-Kim 64fc10fa46 fix: address Cubic P2 issues in CLI modules 2026-02-08 21:57:34 +09:00
YeonGyu-Kim 6cb7b634b8 Merge remote-tracking branch 'origin/dev' into refactor/modular-code-enforcement
# Conflicts:
#	src/features/background-agent/manager.ts
#	src/features/background-agent/spawner.ts
#	src/features/tmux-subagent/manager.ts
#	src/shared/model-availability.test.ts
#	src/shared/model-availability.ts
#	src/shared/model-resolution-pipeline.ts
#	src/tools/delegate-task/executor.ts
2026-02-08 21:43:57 +09:00
YeonGyu-Kim a427dba97c fix: integrate dev model-availability changes lost during merge 2026-02-08 21:32:52 +09:00
YeonGyu-Kim bb51a44de6 fix: integrate dev background_output task_id title resolution 2026-02-08 21:24:08 +09:00
YeonGyu-Kim c686de4282 fix: integrate dev CLAUDE_CODE_TASK_LIST_ID env var support 2026-02-08 21:23:21 +09:00
YeonGyu-Kim 9f8027ed4e fix: remove task-continuation-enforcer references after dev merge
Dev removed task-continuation-enforcer entirely. Remove all remaining
references from plugin hooks, event handler, tool-execute-before, and
config schema to align with origin/dev.
2026-02-08 21:11:07 +09:00
YeonGyu-Kim d0ba7ecef3 Merge pull request #1670 from code-yeongyu/fix/migration-once-only-v2
fix: ensure model migration respects intentional downgrades (#1660)
2026-02-08 20:00:52 +09:00