ZeyuFu
7af3007e67
fix(team-mode): reject coordinator agents as subagent targets ( #4027 )
...
Agents could select coordinator/meta agents (Prometheus, Atlas,
Sisyphus/Ultraworker) as subagent targets via task() / delegation,
producing duplicate orchestration loops and conflicting team state.
This is the inverse of #3987 / #4065 — symmetric guard on the
delegation TARGET side, using the same AGENT_ELIGIBILITY_REGISTRY
classification.
Add a runtime guard at the delegation entry point that rejects
task() calls whose subagent_type resolves to an agent marked as
hard-reject / coordinator-only in the eligibility registry, with
an actionable error naming the agent. Regression test asserts a
prometheus-targeted delegation is rejected before any subagent
session spawns.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-20 22:05:47 -04:00
ZeyuFu
9791019366
fix(prometheus-md-only): replace SYSTEM DIRECTIVE marker with XML tag in external prompts ( #4036 )
...
PLANNING_CONSULT_WARNING was prepended to the prompt forwarded to
subagent LLMs via task(). Its leading bracket-enclosed marker
`[SYSTEM DIRECTIVE: OH-MY-OPENCODE - PROMETHEUS READ-ONLY]` is
exactly the indirect-prompt-injection signature that Azure OpenAI
Prompt Shield flags in user-role content; on GPT-5.4 through
Azure, the model returns "I'm sorry, but I cannot assist with
that request." before any planning work runs, making Prometheus
non-functional on Azure.
The bracket marker was designed for internal hook-to-hook
filtering, but PLANNING_CONSULT_WARNING leaks it to external LLM
payloads. Replace the header with a neutral XML-tag wrapper
(`<planning-context source="prometheus-read-only">`) that Azure's
filter does not match while preserving the human-readable warning
body. Internal isSystemDirective() consumers are unaffected.
Regression test asserts the post-hook task() prompt does not
begin with the flagged bracket sequence.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-20 22:04:10 -04:00
William Obino
5a965fb44f
fix(background-agent): skip disconnected explicit-provider fallbacks
2026-05-21 02:55:18 +03:00
heunghingwan
cfe29168aa
Fix ambiguous FN. notation in Final Wave label instructions
...
Replace 'FN.' shorthand with explicit examples 'F1.', 'F2.' to prevent
LLMs from generating literal 'FN.' labels that the parser rejects.
Identified by cubic.
2026-05-21 05:26:32 +08: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
heunghingwan
73b5a7eb0e
Add plan format validator hook to detect malformed task labels
...
- Strengthen Prometheus plan template with FORMAT constraint
- Add task label format check to Oracle phase-2 (N/6 → N/7)
- Add format checks to self-review checklist
- New plan-format-validator hook: compares raw checkbox count
against getPlanProgress() after plan writes, warns agent when
labels are malformed (0/0 or partial skip scenarios)
2026-05-21 05:17:54 +08:00
YeonGyu-Kim
a6e4691fcc
fix: remove duplicate local isRecord declaration (conflicts with import)
2026-05-21 03:17:52 +09:00
Sami Jawhar
9c4ae26945
fix(skill-discovery): load native OpenCode skills in task delegation
2026-05-20 16:22:01 +00: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