From 238c7b9a1397a0284379b6550f9cc369dae0e9cf Mon Sep 17 00:00:00 2001 From: cexll Date: Fri, 16 Jan 2026 10:30:38 +0800 Subject: [PATCH] fix(codeagent-wrapper): remove extraneous dash arg for opencode stdin mode (#124) opencode does not support "-" as a stdin marker like codex/claude/gemini. When using stdin mode, omit the "-" argument so opencode reads from stdin without an unrecognized positional argument. Closes #124 Generated with SWE-Agent.ai Co-Authored-By: SWE-Agent.ai --- codeagent-wrapper/agent_config_test.go | 9 +++++++++ codeagent-wrapper/backend.go | 5 ++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/codeagent-wrapper/agent_config_test.go b/codeagent-wrapper/agent_config_test.go index 0a8e9ad..a3602be 100644 --- a/codeagent-wrapper/agent_config_test.go +++ b/codeagent-wrapper/agent_config_test.go @@ -188,6 +188,15 @@ func TestOpencodeBackend_BuildArgs(t *testing.T) { t.Errorf("got %v, want %v", got, want) } }) + + t.Run("stdin mode omits dash", func(t *testing.T) { + cfg := &Config{Mode: "new"} + got := backend.BuildArgs(cfg, "-") + want := []string{"run", "--format", "json"} + if !reflect.DeepEqual(got, want) { + t.Errorf("got %v, want %v", got, want) + } + }) } func TestOpencodeBackend_Interface(t *testing.T) { diff --git a/codeagent-wrapper/backend.go b/codeagent-wrapper/backend.go index d5c5473..5a73410 100644 --- a/codeagent-wrapper/backend.go +++ b/codeagent-wrapper/backend.go @@ -204,7 +204,10 @@ func (OpencodeBackend) BuildArgs(cfg *Config, targetArg string) []string { if cfg.Mode == "resume" && cfg.SessionID != "" { args = append(args, "-s", cfg.SessionID) } - args = append(args, "--format", "json", targetArg) + args = append(args, "--format", "json") + if targetArg != "-" { + args = append(args, targetArg) + } return args }