Commit Graph

6611 Commits

Author SHA1 Message Date
ZeyuFu 9bd2a9d7a9 fix(runtime-fallback): fall back to synthetic continuation when session messages are empty (#3645)
When the working directory contains a .git folder the OpenCode server
normalises the project root to the git root before persisting messages.
This creates a race: the 429/503/529 error event can fire before the
user's message is committed to storage, so session.messages returns []
and getLastUserRetryParts returns an empty array.  The previous code
treated that as a silent no-op (cleared all retry state, Sisyphus stalled).

Fix: when fetchedParts is empty, emit a structured log explaining the
.git-directory race and fall back to a synthetic { type:"text", text:"continue" }
part — matching the pattern already used by autoContinueAfterFallback in
event.ts.  The fallback dispatch always proceeds regardless of whether
the messages API can return user parts.

Update four tests that fired two consecutive session.error events relying
on the old silent-stop behaviour: add top-level model fields to the second
error so the awaiting-fallback gate recognises it as coming from the
dispatched fallback model and lets it through normally.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-20 22:29:59 -04:00
github-actions[bot] fcb96841f8 @heunghingwan has signed the CLA in code-yeongyu/oh-my-openagent#4221 2026-05-20 21:22:11 +00:00
YeonGyu-Kim a6e4691fcc fix: remove duplicate local isRecord declaration (conflicts with import) 2026-05-21 03:17:52 +09:00
YeonGyu-Kim 97c73b41bf Merge pull request #3147 from EZotoff/fix/notepad-directive-scope
fix(sisyphus-junior-notepad): scope plan directive to delegated workers
2026-05-21 00:59:10 +09:00
YeonGyu-Kim db4c9f49e3 Merge pull request #3316 from ahuangsnail/fix/max-output-tokens-zero-fallback
fix: treat zero limit.output as unknown to enable fallback to bundled…
2026-05-21 00:59:05 +09:00
YeonGyu-Kim 821ee92c2f Merge pull request #2965 from sjawhar/fix/chat-message-session-cache
fix(chat-message): refresh stale session-agent cache from explicit input.agent
2026-05-21 00:58:20 +09:00
YeonGyu-Kim 5b72411ba4 Merge pull request #3045 from haimingZZ/fix/gpt54-junior-edit-tool-haimingzz
fix(prompt): prefer edit tool for GPT-5.4 juniors
2026-05-21 00:58:01 +09:00
YeonGyu-Kim d7dbe7cdb0 Merge pull request #2988 from odedindi/fix/add-server-export
fix(package): add ./server export for OpenCode-Go plugin compatibility
2026-05-21 00:57:55 +09:00
YeonGyu-Kim abcc46f44a fix: update pollSessionUntilIdle -> waitForLookAtSessionResult import 2026-05-21 00:57:36 +09:00
YeonGyu-Kim 2a4f5f2877 Merge pull request #2958 from kui123456789/fix/context-injector-prt-prefix
fix(context-injector): prefix synthetic part ids with prt_
2026-05-21 00:56:26 +09:00
YeonGyu-Kim 70da8ad695 Merge pull request #3600 from hackerh3/hackerh3/start-work-session-affinity
fix(start-work): prefer current session plan
2026-05-21 00:55:57 +09:00
YeonGyu-Kim 3dba552798 Merge pull request #2991 from GreenPi290/fix/doctor-wsl-binary-detection
fix(doctor): improve opencode binary detection for WSL
2026-05-21 00:55:17 +09:00
YeonGyu-Kim f5de4bf7be Merge pull request #3498 from Disaster-Terminator/fix/task-id-prompt-surface
fix(prompts): prefer task_id in continuation guidance
2026-05-21 00:54:47 +09:00
YeonGyu-Kim abf79cd8ca Merge pull request #3499 from Netzhangheng/fix/windows-auth-interceptor-binding
Fix interceptor auth injection on Windows
2026-05-21 00:54:28 +09:00
YeonGyu-Kim ace15a6afe Merge pull request #3785 from Biemmmmm/fix/resolve-plugin-root-in-commands
fix: resolve ${CLAUDE_PLUGIN_ROOT} in plugin commands, agents, and skills
2026-05-21 00:48:33 +09:00
YeonGyu-Kim d0719ff7b7 Merge pull request #3875 from jollyxenon/fix/3846-opencode-config-dir-additive
fix(config): align OPENCODE_CONFIG_DIR with additive OpenCode semantics
2026-05-21 00:48:00 +09:00
YeonGyu-Kim 6dcb2afd41 Merge pull request #3838 from NICxKMS/fix/team-mode-windows-atomic-write
fix(team-mode): sync atomic writes through writable handle
2026-05-21 00:46:24 +09:00
YeonGyu-Kim b18963b0a9 Merge pull request #3868 from MoerAI/fix/openai-server-error-retryable
fix(model-error-classifier): mark OpenAI server_error patterns as retryable (fixes #3799)
2026-05-21 00:46:16 +09:00
YeonGyu-Kim 2185babd28 Merge pull request #3936 from wjiuxing/fix/flaky-spawner-test-polling
fix: replace brittle setTimeout(50) with polling waitForCondition in spawner tests
2026-05-21 00:46:06 +09:00
YeonGyu-Kim cad63c97bd Merge pull request #4052 from PeterPonyu/fix/3505-attach-retry-until-session-ready
fix(tmux-subagent): wait for session readiness before spawning attach pane
2026-05-21 00:45:15 +09:00
YeonGyu-Kim 7651c856aa Merge pull request #3944 from survivor998/fix/ultraworker-display-name-zwsp
fix(display): lowercase ultraworker to avoid ZWSP rendering glitch
2026-05-21 00:45:07 +09:00
YeonGyu-Kim 10ad8d87e9 Merge pull request #4050 from PeterPonyu/fix/3822-doctor-plugin-version-detection
fix(doctor): detect oh-my-openagent version from resolved package.json
2026-05-21 00:44:13 +09:00
YeonGyu-Kim 0e49767a3e Merge pull request #4026 from dihak/fix/graceful-shutdown-exit
fix(process-cleanup): call process.exit() after SIGTERM cleanup
2026-05-21 00:43:32 +09:00
YeonGyu-Kim e824115a2f Merge pull request #4063 from PeterPonyu/fix/3963-server-url-port-zero
fix(team-mode): surface port-0 fallback and silent layout skip (#3963)
2026-05-21 00:42:20 +09:00
YeonGyu-Kim 467aa13e9f Merge pull request #4064 from PeterPonyu/fix/3923-team-error-propagation
fix(team-mode): surface member error to main agent (#3923)
2026-05-21 00:42:11 +09:00
YeonGyu-Kim cb124f75a5 Merge pull request #4065 from PeterPonyu/fix/3987-team-create-hard-reject-validation
fix(team-mode): reject team_create from hard-reject agents (#3987)
2026-05-21 00:42:04 +09:00
YeonGyu-Kim a1f03c8461 Merge pull request #4066 from PeterPonyu/fix/2887-filter-terminal-probe-replies
fix(tmux-subagent): drain terminal probe replies during delegated pane startup (#2887)
2026-05-21 00:41:57 +09:00
YeonGyu-Kim 6637a18450 Merge pull request #4067 from PeterPonyu/fix/3898-fallback-preserve-team-context
fix(team-mode): preserve team membership across model fallback (#3898)
2026-05-21 00:41:11 +09:00
YeonGyu-Kim b76e8d2e86 Merge pull request #4077 from PeterPonyu/fix/4013-todo-continuation-enforcer-loop
fix(todo-continuation-enforcer): stop looping after all todos complete (#4013)
2026-05-21 00:38:41 +09:00
YeonGyu-Kim 5eabeb80f9 Merge pull request #4082 from PeterPonyu/fix/3685-notepad-no-write-fallback
fix(notepad-guard): refuse Write tool for .sisyphus/notepads files (#3685)
2026-05-21 00:37:27 +09:00
YeonGyu-Kim 85d03298b9 Merge pull request #4098 from sjawhar/feat/look-at-async
fix(look-at): rework session poller to wait for assistant response, not just idle
2026-05-21 00:15:22 +09:00
YeonGyu-Kim aa3187bfbb Merge pull request #4180 from JacobZyy/fix/plugin-hooks-merge 2026-05-21 00:14:58 +09:00
YeonGyu-Kim 343d9ed2fe Merge pull request #4099 from sjawhar/fix/mcp-reload-survival
fix(skill-mcp): allow MCP manager to accept connections after disconnectAll
2026-05-21 00:13:29 +09:00
YeonGyu-Kim 7a5b8d831e Merge pull request #4100 from sjawhar/fix/tmux-isolated-close-no-layout
fix(tmux): skip layout enforcement when closing isolated container pane
2026-05-21 00:11:55 +09:00
YeonGyu-Kim 12ed091e93 Merge pull request #4101 from sjawhar/fix/modalities-object-shape
fix(model-capabilities): handle object-shaped modalities in readModalityKeys
2026-05-21 00:10:29 +09:00
YeonGyu-Kim aa5eeaf892 Merge pull request #4102 from sjawhar/fix/skill-directory-param
fix(skill): pass directory to getAllSkills + fix async test timing
2026-05-21 00:08:40 +09:00
YeonGyu-Kim 3ee0209a41 Merge pull request #4113 from PeterPonyu/fix/3937-runtime-fallback-quota-patterns
fix(runtime-fallback): classify more provider quota error names
2026-05-21 00:07:08 +09:00
YeonGyu-Kim f35bb95634 Merge pull request #4114 from PeterPonyu/fix/3607-detect-shell-windows-msystem
fix(non-interactive-env): use powershell syntax on Windows regardless of SHELL/MSYSTEM (#3607)
2026-05-21 00:04:45 +09:00
YeonGyu-Kim c6d754d389 Merge pull request #4115 from PeterPonyu/fix/3726-glob-grep-broken-symlinks
fix(glob,grep): tolerate broken symlinks and non-fatal I/O warnings (#3726)
2026-05-21 00:03:53 +09:00
YeonGyu-Kim 8276eb6c53 Merge pull request #4121 from mguttmann/fix-4119
fix(delegate-task): default run_in_background and load_skills instead of throwing (fixes #4119)
2026-05-21 00:01:12 +09:00
JacobZyy 33f121b113 fix: add PATH to restricted hook env, protect HOME/CLAUDE_PROJECT_DIR from allowlist override, reset plugin hooks state in tests
- P1: When allowedEnvVars is provided, PATH was missing from the base
  restricted env, causing non-builtin commands to fail at exec time
- P2: Allowlisted HOME/CLAUDE_PROJECT_DIR could overwrite normalized
  values from getHomeDirectory()/cwd with ambient process.env values
- P2: Test suite mutated shared pluginHooksState singleton without
  resetting it in afterEach, causing cross-test state leaks
2026-05-20 22:49:05 +08:00
YeonGyu-Kim 3e9c3f8ada Merge pull request #4146 from LYY/fix/skill-shortname-fallback
fix: support unambiguous short skill names in delegated skill loading
2026-05-20 23:42:44 +09:00
YeonGyu-Kim 2fd627144a Merge remote-tracking branch 'origin/dev' into dev 2026-05-20 23:41:09 +09:00
YeonGyu-Kim 791825fc20 Merge pull request #4153 from MoerAI/fix/fallback-model-string-guard
fix(shared,delegate-task,claude-code-agent-loader): guard model parsers against non-string input (fixes #4145)
2026-05-20 23:40:33 +09:00
YeonGyu-Kim e246965789 Merge pull request #4154 from MoerAI/fix/todo-description-override-fires
fix(plugin): wire tool.definition handler so todo-description-override actually fires (fixes #3705)
2026-05-20 23:38:51 +09:00
YeonGyu-Kim b463acda72 Merge pull request #4171 from MoerAI/fix/multimodal-looker-tool-usage-guidance
fix(agents): declare multimodal-looker tool allowlist in prompt to prevent death loop on small VL models (fixes #4116)
2026-05-20 23:36:10 +09:00
YeonGyu-Kim eea27d6f7e fix(mcp): resolve local mcp runtimes
Resolve built-in local MCP runtime executables before handing command arrays to OpenCode so lsp and ast_grep do not depend on a bare node or bun lookup in the host PATH.

Keep source, dist, bootstrap, workspace-safety, and disabled_mcps behavior covered by focused tests and real OpenCode MCP status QA.

Plan: plans/fix-built-in-mcp-runtime-executables.md
2026-05-20 23:33:32 +09:00
YeonGyu-Kim 37be0d5691 Merge pull request #4174 from MoerAI/fix/cli-setup-alias-for-install
fix(cli): add 'setup' as an alias for the install command (fixes #4112)
2026-05-20 23:31:41 +09:00
JacobZyy 0a20844bd4 fix: address PR #4180 review - security, typing, and test coverage
- Apply mcp_env_allowlist to plugin hooks: intersect HTTP allowedEnvVars
  with MCP allowlist, set command allowedEnvVars to full MCP allowlist
- Scrub process.env in executeHookCommand when allowedEnvVars provided
- Add PluginHooksState class with per-directory Map storage
- Add PluginHooksConfig interface for typed boundary layer
- Pass directory context through hook-config-handler
- Add 16 tests across 4 files (40 assertions) covering allowlist
  filtering, env scrubbing, directory isolation, and edge cases
- Remove unnecessary 'as' type assertions, use discriminated union
  narrowing instead
2026-05-20 22:30:25 +08:00
YeonGyu-Kim fd6a7aed17 Merge pull request #4176 from jangByeongHui/fix/skill-mcp-env-allowlist-bypass-3995
fix(skill-mcp-manager): trust explicit skill MCP env vars (#3995)
2026-05-20 23:09:12 +09:00