From 7745e1484fe0a7b3a51d96bc23de5dd196f455f7 Mon Sep 17 00:00:00 2001 From: verdverm Date: Mon, 4 May 2026 06:46:14 +0000 Subject: [PATCH 1/2] add directory to opencode system-prompt/instructions writing --- pkg/harness/opencode.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/harness/opencode.go b/pkg/harness/opencode.go index a934b3490..acabdba18 100644 --- a/pkg/harness/opencode.go +++ b/pkg/harness/opencode.go @@ -108,7 +108,7 @@ func (o *OpenCode) GetTelemetryEnv() map[string]string { } func (o *OpenCode) InjectAgentInstructions(agentHome string, content []byte) error { - target := filepath.Join(agentHome, "AGENTS.md") + target := filepath.Join(agentHome, ".config/opencode", "AGENTS.md") return os.WriteFile(target, content, 0644) } @@ -184,7 +184,7 @@ func (o *OpenCode) ResolveAuth(auth api.AuthConfig) (*api.ResolvedAuth, error) { func (o *OpenCode) InjectSystemPrompt(agentHome string, content []byte) error { // OpenCode has no native system prompt support — downgrade by prepending to AGENTS.md - agentsPath := filepath.Join(agentHome, "AGENTS.md") + agentsPath := filepath.Join(agentHome, ".config/opencode", "AGENTS.md") header := fmt.Sprintf("# System Prompt\n\n%s\n\n---\n\n", string(content)) existing, err := os.ReadFile(agentsPath) From 81814b43fa201c8fbdb917dd72bb327c319fabdd Mon Sep 17 00:00:00 2001 From: verdverm Date: Tue, 5 May 2026 01:41:20 +0000 Subject: [PATCH 2/2] opencode harness, MkdirAll before writing the AGENTS.md file --- pkg/harness/opencode.go | 12 ++++++++++-- pkg/harness/opencode_test.go | 2 +- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/pkg/harness/opencode.go b/pkg/harness/opencode.go index acabdba18..4c099e567 100644 --- a/pkg/harness/opencode.go +++ b/pkg/harness/opencode.go @@ -108,7 +108,11 @@ func (o *OpenCode) GetTelemetryEnv() map[string]string { } func (o *OpenCode) InjectAgentInstructions(agentHome string, content []byte) error { - target := filepath.Join(agentHome, ".config/opencode", "AGENTS.md") + dir := filepath.Join(agentHome, o.DefaultConfigDir()) + if err := os.MkdirAll(dir, 0755); err != nil { + return fmt.Errorf("failed to create config directory: %w", err) + } + target := filepath.Join(dir, "AGENTS.md") return os.WriteFile(target, content, 0644) } @@ -184,7 +188,11 @@ func (o *OpenCode) ResolveAuth(auth api.AuthConfig) (*api.ResolvedAuth, error) { func (o *OpenCode) InjectSystemPrompt(agentHome string, content []byte) error { // OpenCode has no native system prompt support — downgrade by prepending to AGENTS.md - agentsPath := filepath.Join(agentHome, ".config/opencode", "AGENTS.md") + dir := filepath.Join(agentHome, o.DefaultConfigDir()) + if err := os.MkdirAll(dir, 0755); err != nil { + return fmt.Errorf("failed to create config directory: %w", err) + } + agentsPath := filepath.Join(dir, "AGENTS.md") header := fmt.Sprintf("# System Prompt\n\n%s\n\n---\n\n", string(content)) existing, err := os.ReadFile(agentsPath) diff --git a/pkg/harness/opencode_test.go b/pkg/harness/opencode_test.go index b28968c51..209df8195 100644 --- a/pkg/harness/opencode_test.go +++ b/pkg/harness/opencode_test.go @@ -58,7 +58,7 @@ func TestOpenCodeInjectSystemPrompt(t *testing.T) { t.Fatalf("InjectSystemPrompt failed: %v", err) } - target := filepath.Join(agentHome, "AGENTS.md") + target := filepath.Join(agentHome, o.DefaultConfigDir(), "AGENTS.md") data, err := os.ReadFile(target) if err != nil { t.Fatalf("expected file at %s: %v", target, err)