Commit Graph

6939 Commits

Author SHA1 Message Date
github-actions[bot] f44d94413c release: v4.1.1 2026-05-13 08:15:11 +00:00
YeonGyu-Kim 3b4d2431ee fix(hooks): guard stale idle prompts 2026-05-13 17:02:17 +09:00
YeonGyu-Kim a337635e3b fix(background-agent): defer active parent wakes 2026-05-13 17:02:17 +09:00
github-actions[bot] 0b99168b7b @EmiyaKiritsugu3 has signed the CLA in code-yeongyu/oh-my-openagent#3990 2026-05-13 07:31:21 +00:00
YeonGyu-Kim 39fb0143da Merge pull request #3986 from code-yeongyu/fix/continuation-message-dispatch
fix(continuation): mark resumed prompts synthetic
2026-05-13 13:46:23 +09:00
YeonGyu-Kim 36f51ddb16 fix(continuation): mark fallback resumes synthetic 2026-05-13 13:36:25 +09:00
YeonGyu-Kim 1189b96d42 fix(continuation): mark atlas resumes synthetic 2026-05-13 13:25:01 +09:00
YeonGyu-Kim e49ba94728 chore(deps): refresh platform lock entries 2026-05-13 13:15:14 +09:00
YeonGyu-Kim 38b1433ff5 fix(continuation): mark resumes synthetic 2026-05-13 13:09:26 +09:00
YeonGyu-Kim 3f92264311 fix(interactive-bash): prohibit tmux kill-server 2026-05-13 13:07:13 +09:00
leeyazhou 099e126b9c Merge branch 'i18n' of github.com:leeyazhou/oh-my-openagent into i18n 2026-05-13 11:17:57 +08:00
leeyazhou 6ffea1bc36 feat(i18n): add toast i18n with en/zh locale and plugin config support
- Add src/locales/ with en baseline and zh overrides (Partial<Record> fallback)
- Add src/shared/i18n.ts with initI18n/t/setLocale/getLocale (LANG env auto-detect)
- Add I18nConfigSchema with locale field to plugin config
- Internationalize 13 hardcoded strings in task-toast-manager
- Add 18 unit tests for i18n module
- Pin manager tests to en locale for determinism
2026-05-13 11:16:53 +08:00
YeonGyu-Kim 286f5ccfdf when publish always discord 2026-05-13 11:44:47 +09:00
github-actions[bot] 9edaa6e90b release: v4.1.0 2026-05-13 02:32:42 +00:00
YeonGyu-Kim 21460713e3 .opencode to .agents 2026-05-13 11:08:08 +09:00
YeonGyu-Kim a0b46309b4 remove hyperplan for .opencode (not as a feature) 2026-05-13 10:59:15 +09:00
Jacob Schechter 711b75345b fix(delegate-task): honor user fallback_models when category primary is unreachable
resolveModelForDelegateTask returned input.userModel immediately without
availability checking when it was set, silently ignoring the user's
configured fallback_models. Effect: a team-mode category member
(e.g. hyperplan's 'artistry' category) configured with

  { model: "opencode/gemini-3.1-pro", fallback_models: [...] }

spawned with the unreachable primary even though a listed fallback was
reachable, leading to a dropped/broken team member instead of graceful
degradation.

Now, when the provider-models cache is warm AND userFallbackModels is
non-empty, the function verifies userModel is reachable via
fuzzyMatchModel. If not, it iterates userFallbackModels and promotes the
first reachable entry. Cold-cache (first-run) behavior is preserved -
the userModel is returned as-is when availability data is unavailable,
matching the existing 'trust the user' contract covered by the
pre-cache test fixtures.

Adds three regression tests covering: (1) unreachable primary + reachable
fallback -> fallback promoted, (2) reachable primary + reachable fallback
-> primary kept (fast path), (3) unreachable primary + unreachable
fallback -> legacy trust-user behavior preserved.
2026-05-12 19:07:54 -05:00
Ivan Smetanin 83c3379b5a Merge branch 'dev' into fix/surface-subagent-quota-error 2026-05-12 22:17:38 +01:00
tw-yshuang 12f5233877 merge(dev): resolve latest manager and runtime-fallback conflicts
Sync the PR branch with the newest dev branch and resolve the new import-level conflicts in background-agent manager and runtime-fallback tests. Preserve both the delegated bootstrap coverage from this branch and the newer upstream test utilities and runtime wiring changes, then re-verify the affected delegated fallback suites and typecheck.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-12 22:49:57 +08:00
Häcker, Henning 771242ea3d fix(start-work): prefer nested session plan refs 2026-05-12 15:06:26 +02:00
Häcker, Henning d22bd71d0d fix(start-work): narrow existing state before resume 2026-05-12 15:06:26 +02:00
Häcker, Henning 063ba46681 fix(start-work): prefer current session plan 2026-05-12 15:06:26 +02:00
Häcker, Henning b430524a94 feat(start-work): add session plan affinity lookup 2026-05-12 14:55:41 +02:00
MoerAI 5cd95cf57e fix(background-agent): fall back to partInfo.input when state.input is unavailable for circuit breaker (fixes #3962)
The circuit breaker in manager.ts uses recordToolCall to detect when a subagent gets stuck repeating identical tool_use blocks. It passed partInfo.state?.input as the tool-input signature. When a model (Kimi K2.6 in the reporter's case) emits duplicate tool_use parts faster than the tool actually starts running, state.input is still null, so loop-detector falls back to the bare 'tool::__unknown-input__' signature. As soon as one part has state.input populated (next event), the signature flips to 'tool::{actual-args}' and the consecutive counter resets to 1, repeatedly. The breaker never reaches its 20-call threshold.

Add a top-level input?: Record<string, unknown> field to the local MessagePartInfo interface and prefer state.input when present, falling back to the part's own input when state is still pre-running. The OpenCode part payload carries the tool input as soon as the tool_use block is generated, so this fallback restores signature stability across the model's repeated emissions.

Verification: added 2 regression tests in manager-circuit-breaker.test.ts. Test 1 (reproduce) emits 20 part.updated events with only top-level input and asserts the task is cancelled by the breaker — fails before the fix, passes after. Test 2 confirms that when state.input IS present, it still wins over the top-level input (precedence preserved). All 10 manager-circuit-breaker tests pass, all 20 loop-detector tests pass, typecheck clean.
2026-05-12 19:02:20 +09:00
MoerAI c4e88d63ea fix(agents): add run_in_background to category task() examples in prompts (fixes #3960)
The task() tool schema declares run_in_background as a REQUIRED parameter, but three prompt-template files contained category-based task() examples that omitted it. When agents copied these patterns into actual tool calls, the runtime validator threw 'run_in_background parameter is REQUIRED', breaking delegation.

Add run_in_background=false to the four offending category-based examples: 2 in src/agents/dynamic-agent-category-skills-guide.ts (Delegation Pattern + Category Domain Matching CORRECT/WRONG pair), 1 in src/agents/hephaestus/gpt-5-3-codex.ts (frontend example), and 1 in src/agents/sisyphus/gemini.ts (Example 4 DELEGATE). Subagent-type explore/librarian examples already correctly use run_in_background=true. atlas/shared-prompt.ts examples were already correct.

Verification: bun test src/agents/ — 373 pass, 0 fail. bun run typecheck — clean. Grep confirms no remaining category task() examples lack the parameter.
2026-05-12 18:56:24 +09:00
YeonGyu-Kim 75825eb9a6 fix(todo-description-override): add OpenCode schema contract for string priorities 2026-05-12 18:18:52 +09:00
YeonGyu-Kim c740ed8aca fix(delegate-task): route sync prompts by directory 2026-05-12 18:14:17 +09:00
YeonGyu-Kim 6035a551ad fix(background-agent): route session prompts by directory 2026-05-12 18:13:39 +09:00
YeonGyu-Kim 7d09d2c83c Merge pull request #3967 from code-yeongyu/refactor/typescript-no-excuse-slops
Remove unsafe TypeScript test assertions
2026-05-12 17:27:38 +09:00
YeonGyu-Kim 730d72c9af test: require explicit unsafe test value type
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-12 16:30:00 +09:00
YeonGyu-Kim d5fbada13d test: make unsafe test coercion explicit
Move test coercion out of a hidden global and require each test to import the helper so review tools and runtime scripts can see the unsafe boundary.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-12 15:51:31 +09:00
YeonGyu-Kim ce5da13fc5 test: add bun types to test setup
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-12 15:48:46 +09:00
YeonGyu-Kim 2fc1786077 test(hashline): remove unsafe test assertions
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-12 15:48:46 +09:00
YeonGyu-Kim fb135d047c test(tools): remove unsafe test assertions
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-12 15:48:46 +09:00
YeonGyu-Kim 8b093a1115 test(shared): remove unsafe test assertions
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-12 15:41:17 +09:00
YeonGyu-Kim f05aeaa63a test(plugin): remove unsafe test assertions
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-12 15:41:17 +09:00
YeonGyu-Kim 0787867384 test(ralph-loop): remove unsafe fixture assertions
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-12 15:41:17 +09:00
YeonGyu-Kim 23211159c9 test(hooks): remove unsafe test assertions
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-12 15:41:17 +09:00
YeonGyu-Kim 11b3638493 test(features): remove unsafe test assertions
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-12 15:41:17 +09:00
YeonGyu-Kim 7365163885 test(cli): remove unsafe test assertions
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-12 15:41:17 +09:00
YeonGyu-Kim 9c6090a208 test: add typed test coercion helper
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-12 15:41:17 +09:00
YeonGyu-Kim 4150092e9a test: run suite through isolated mock runner 2026-05-12 15:30:45 +09:00
YeonGyu-Kim cde14b5e37 fix(call-omo-agent): restrict callable agents 2026-05-12 15:28:57 +09:00
YeonGyu-Kim 9ffef79dbb fix(ralph-loop): ignore synthetic idle replays 2026-05-12 15:28:46 +09:00
YeonGyu-Kim 07797e1975 fix(background-agent): preserve direct all-complete replies 2026-05-12 15:28:35 +09:00
github-actions[bot] 2d20037d35 @jas32096 has signed the CLA in code-yeongyu/oh-my-openagent#3966 2026-05-12 04:48:25 +00:00
YeonGyu-Kim d82f6a6024 fix(background-agent): refresh stale todo state 2026-05-12 13:28:40 +09:00
YeonGyu-Kim ec3a7bb1ea Merge pull request #3965 from code-yeongyu/fix/ralph-loop-prompt-result
fix(ralph-loop): return prompt dispatch failures
2026-05-12 13:24:33 +09:00
YeonGyu-Kim 2c0f8e4645 fix(ralph-loop): return prompt dispatch failures 2026-05-12 13:14:07 +09:00
YeonGyu-Kim 2d656bd6bf Merge pull request #3964 from code-yeongyu/fix/electron-bun-runtime-shims
fix(electron): eliminate raw Bun.* runtime calls so plugin loads on OpenCode Desktop
2026-05-12 13:00:49 +09:00