From 8139d02c87625709ecd8ef56aa26869cf5f007ce Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 21 Apr 2026 13:45:25 +0000 Subject: [PATCH 1/4] Initial plan From 1b400bd0df15ec063083e4c55d4d7d9ff7807c58 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 21 Apr 2026 14:11:17 +0000 Subject: [PATCH 2/4] fix: avoid codex MCP config self-copy in gateway setup Agent-Logs-Url: https://github.com/github/gh-aw/sessions/c4a194bc-0a8d-4011-b5e0-210d087dc6ef Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> --- pkg/cli/spec_test.go | 1 - pkg/workflow/codex_engine_test.go | 2 +- pkg/workflow/codex_mcp.go | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/pkg/cli/spec_test.go b/pkg/cli/spec_test.go index 62fc2493721..6f13be853f2 100644 --- a/pkg/cli/spec_test.go +++ b/pkg/cli/spec_test.go @@ -1009,4 +1009,3 @@ func TestSpec_DesignDecision_StderrDiagnostics(t *testing.T) { names := ValidArtifactSetNames() assert.NotEmpty(t, names, "ValidArtifactSetNames returns data via return value, not stdout") } - diff --git a/pkg/workflow/codex_engine_test.go b/pkg/workflow/codex_engine_test.go index d4680f3388c..78d4ae36be6 100644 --- a/pkg/workflow/codex_engine_test.go +++ b/pkg/workflow/codex_engine_test.go @@ -261,7 +261,7 @@ func TestCodexEngineRenderMCPConfig(t *testing.T) { "cat \"${RUNNER_TEMP}/gh-aw/mcp-config/config.toml\" >> \"/tmp/gh-aw/mcp-config/config.toml\"", "chmod 600 \"/tmp/gh-aw/mcp-config/config.toml\"", "mkdir -p \"${CODEX_HOME}\"", - "cp \"/tmp/gh-aw/mcp-config/config.toml\" \"${CODEX_HOME}/config.toml\"", + "if [ \"/tmp/gh-aw/mcp-config/config.toml\" != \"${CODEX_HOME}/config.toml\" ]; then cp \"/tmp/gh-aw/mcp-config/config.toml\" \"${CODEX_HOME}/config.toml\"; fi", "chmod 600 \"${CODEX_HOME}/config.toml\"", }, }, diff --git a/pkg/workflow/codex_mcp.go b/pkg/workflow/codex_mcp.go index 7c1c669c287..939006c6e3e 100644 --- a/pkg/workflow/codex_mcp.go +++ b/pkg/workflow/codex_mcp.go @@ -133,7 +133,7 @@ func (e *CodexEngine) RenderMCPConfig(yaml *strings.Builder, tools map[string]an } yaml.WriteString(" chmod 600 \"/tmp/gh-aw/mcp-config/config.toml\"\n") yaml.WriteString(" mkdir -p \"${CODEX_HOME}\"\n") - yaml.WriteString(" cp \"/tmp/gh-aw/mcp-config/config.toml\" \"${CODEX_HOME}/config.toml\"\n") + yaml.WriteString(" if [ \"/tmp/gh-aw/mcp-config/config.toml\" != \"${CODEX_HOME}/config.toml\" ]; then cp \"/tmp/gh-aw/mcp-config/config.toml\" \"${CODEX_HOME}/config.toml\"; fi\n") yaml.WriteString(" chmod 600 \"${CODEX_HOME}/config.toml\"\n") return nil From 29a54e6c10da570b1e0d53942e35174dcde3d86e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 21 Apr 2026 14:15:14 +0000 Subject: [PATCH 3/4] chore: remove unintended spec test formatting change Agent-Logs-Url: https://github.com/github/gh-aw/sessions/c4a194bc-0a8d-4011-b5e0-210d087dc6ef Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> --- pkg/cli/spec_test.go | 1 + 1 file changed, 1 insertion(+) diff --git a/pkg/cli/spec_test.go b/pkg/cli/spec_test.go index 6f13be853f2..62fc2493721 100644 --- a/pkg/cli/spec_test.go +++ b/pkg/cli/spec_test.go @@ -1009,3 +1009,4 @@ func TestSpec_DesignDecision_StderrDiagnostics(t *testing.T) { names := ValidArtifactSetNames() assert.NotEmpty(t, names, "ValidArtifactSetNames returns data via return value, not stdout") } + From f6667605071fd566543b7a81334586002cff1cbd Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 21 Apr 2026 15:03:37 +0000 Subject: [PATCH 4/4] chore: plan recompile update Agent-Logs-Url: https://github.com/github/gh-aw/sessions/60acaed8-64e0-4a0a-8422-51565ff940d0 Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> --- .github/workflows/ai-moderator.lock.yml | 2 +- .github/workflows/changeset.lock.yml | 2 +- .github/workflows/codex-github-remote-mcp-test.lock.yml | 2 +- .github/workflows/daily-fact.lock.yml | 2 +- .github/workflows/daily-observability-report.lock.yml | 2 +- .github/workflows/duplicate-code-detector.lock.yml | 2 +- .github/workflows/grumpy-reviewer.lock.yml | 2 +- .github/workflows/issue-arborist.lock.yml | 2 +- .github/workflows/schema-feature-coverage.lock.yml | 2 +- .github/workflows/smoke-call-workflow.lock.yml | 2 +- .github/workflows/smoke-codex.lock.yml | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/ai-moderator.lock.yml b/.github/workflows/ai-moderator.lock.yml index 9ae60027ce0..ff5b85a33ac 100644 --- a/.github/workflows/ai-moderator.lock.yml +++ b/.github/workflows/ai-moderator.lock.yml @@ -751,7 +751,7 @@ jobs: cat "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" >> "/tmp/gh-aw/mcp-config/config.toml" chmod 600 "/tmp/gh-aw/mcp-config/config.toml" mkdir -p "${CODEX_HOME}" - cp "/tmp/gh-aw/mcp-config/config.toml" "${CODEX_HOME}/config.toml" + if [ "/tmp/gh-aw/mcp-config/config.toml" != "${CODEX_HOME}/config.toml" ]; then cp "/tmp/gh-aw/mcp-config/config.toml" "${CODEX_HOME}/config.toml"; fi chmod 600 "${CODEX_HOME}/config.toml" - name: Mount MCP servers as CLIs id: mount-mcp-clis diff --git a/.github/workflows/changeset.lock.yml b/.github/workflows/changeset.lock.yml index 2983c5fdb64..a5306ac61a0 100644 --- a/.github/workflows/changeset.lock.yml +++ b/.github/workflows/changeset.lock.yml @@ -770,7 +770,7 @@ jobs: cat "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" >> "/tmp/gh-aw/mcp-config/config.toml" chmod 600 "/tmp/gh-aw/mcp-config/config.toml" mkdir -p "${CODEX_HOME}" - cp "/tmp/gh-aw/mcp-config/config.toml" "${CODEX_HOME}/config.toml" + if [ "/tmp/gh-aw/mcp-config/config.toml" != "${CODEX_HOME}/config.toml" ]; then cp "/tmp/gh-aw/mcp-config/config.toml" "${CODEX_HOME}/config.toml"; fi chmod 600 "${CODEX_HOME}/config.toml" - name: Mount MCP servers as CLIs id: mount-mcp-clis diff --git a/.github/workflows/codex-github-remote-mcp-test.lock.yml b/.github/workflows/codex-github-remote-mcp-test.lock.yml index cf477b6d3f6..c883bf38fc0 100644 --- a/.github/workflows/codex-github-remote-mcp-test.lock.yml +++ b/.github/workflows/codex-github-remote-mcp-test.lock.yml @@ -447,7 +447,7 @@ jobs: cat "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" >> "/tmp/gh-aw/mcp-config/config.toml" chmod 600 "/tmp/gh-aw/mcp-config/config.toml" mkdir -p "${CODEX_HOME}" - cp "/tmp/gh-aw/mcp-config/config.toml" "${CODEX_HOME}/config.toml" + if [ "/tmp/gh-aw/mcp-config/config.toml" != "${CODEX_HOME}/config.toml" ]; then cp "/tmp/gh-aw/mcp-config/config.toml" "${CODEX_HOME}/config.toml"; fi chmod 600 "${CODEX_HOME}/config.toml" - name: Download activation artifact uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/daily-fact.lock.yml b/.github/workflows/daily-fact.lock.yml index 1fc702ede73..205736923ef 100644 --- a/.github/workflows/daily-fact.lock.yml +++ b/.github/workflows/daily-fact.lock.yml @@ -875,7 +875,7 @@ jobs: cat "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" >> "/tmp/gh-aw/mcp-config/config.toml" chmod 600 "/tmp/gh-aw/mcp-config/config.toml" mkdir -p "${CODEX_HOME}" - cp "/tmp/gh-aw/mcp-config/config.toml" "${CODEX_HOME}/config.toml" + if [ "/tmp/gh-aw/mcp-config/config.toml" != "${CODEX_HOME}/config.toml" ]; then cp "/tmp/gh-aw/mcp-config/config.toml" "${CODEX_HOME}/config.toml"; fi chmod 600 "${CODEX_HOME}/config.toml" - name: Mount MCP servers as CLIs id: mount-mcp-clis diff --git a/.github/workflows/daily-observability-report.lock.yml b/.github/workflows/daily-observability-report.lock.yml index 9066ac80161..c55c79a3828 100644 --- a/.github/workflows/daily-observability-report.lock.yml +++ b/.github/workflows/daily-observability-report.lock.yml @@ -803,7 +803,7 @@ jobs: cat "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" >> "/tmp/gh-aw/mcp-config/config.toml" chmod 600 "/tmp/gh-aw/mcp-config/config.toml" mkdir -p "${CODEX_HOME}" - cp "/tmp/gh-aw/mcp-config/config.toml" "${CODEX_HOME}/config.toml" + if [ "/tmp/gh-aw/mcp-config/config.toml" != "${CODEX_HOME}/config.toml" ]; then cp "/tmp/gh-aw/mcp-config/config.toml" "${CODEX_HOME}/config.toml"; fi chmod 600 "${CODEX_HOME}/config.toml" - name: Mount MCP servers as CLIs id: mount-mcp-clis diff --git a/.github/workflows/duplicate-code-detector.lock.yml b/.github/workflows/duplicate-code-detector.lock.yml index d6d069e6753..5ca433ba62c 100644 --- a/.github/workflows/duplicate-code-detector.lock.yml +++ b/.github/workflows/duplicate-code-detector.lock.yml @@ -777,7 +777,7 @@ jobs: cat "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" >> "/tmp/gh-aw/mcp-config/config.toml" chmod 600 "/tmp/gh-aw/mcp-config/config.toml" mkdir -p "${CODEX_HOME}" - cp "/tmp/gh-aw/mcp-config/config.toml" "${CODEX_HOME}/config.toml" + if [ "/tmp/gh-aw/mcp-config/config.toml" != "${CODEX_HOME}/config.toml" ]; then cp "/tmp/gh-aw/mcp-config/config.toml" "${CODEX_HOME}/config.toml"; fi chmod 600 "${CODEX_HOME}/config.toml" - name: Mount MCP servers as CLIs id: mount-mcp-clis diff --git a/.github/workflows/grumpy-reviewer.lock.yml b/.github/workflows/grumpy-reviewer.lock.yml index ca3938ba9a7..906fdc0046d 100644 --- a/.github/workflows/grumpy-reviewer.lock.yml +++ b/.github/workflows/grumpy-reviewer.lock.yml @@ -798,7 +798,7 @@ jobs: cat "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" >> "/tmp/gh-aw/mcp-config/config.toml" chmod 600 "/tmp/gh-aw/mcp-config/config.toml" mkdir -p "${CODEX_HOME}" - cp "/tmp/gh-aw/mcp-config/config.toml" "${CODEX_HOME}/config.toml" + if [ "/tmp/gh-aw/mcp-config/config.toml" != "${CODEX_HOME}/config.toml" ]; then cp "/tmp/gh-aw/mcp-config/config.toml" "${CODEX_HOME}/config.toml"; fi chmod 600 "${CODEX_HOME}/config.toml" - name: Mount MCP servers as CLIs id: mount-mcp-clis diff --git a/.github/workflows/issue-arborist.lock.yml b/.github/workflows/issue-arborist.lock.yml index 9d7ee1f75c5..24246084858 100644 --- a/.github/workflows/issue-arborist.lock.yml +++ b/.github/workflows/issue-arborist.lock.yml @@ -810,7 +810,7 @@ jobs: cat "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" >> "/tmp/gh-aw/mcp-config/config.toml" chmod 600 "/tmp/gh-aw/mcp-config/config.toml" mkdir -p "${CODEX_HOME}" - cp "/tmp/gh-aw/mcp-config/config.toml" "${CODEX_HOME}/config.toml" + if [ "/tmp/gh-aw/mcp-config/config.toml" != "${CODEX_HOME}/config.toml" ]; then cp "/tmp/gh-aw/mcp-config/config.toml" "${CODEX_HOME}/config.toml"; fi chmod 600 "${CODEX_HOME}/config.toml" - name: Mount MCP servers as CLIs id: mount-mcp-clis diff --git a/.github/workflows/schema-feature-coverage.lock.yml b/.github/workflows/schema-feature-coverage.lock.yml index 285ed9d4ce3..ef1b83b1052 100644 --- a/.github/workflows/schema-feature-coverage.lock.yml +++ b/.github/workflows/schema-feature-coverage.lock.yml @@ -702,7 +702,7 @@ jobs: cat "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" >> "/tmp/gh-aw/mcp-config/config.toml" chmod 600 "/tmp/gh-aw/mcp-config/config.toml" mkdir -p "${CODEX_HOME}" - cp "/tmp/gh-aw/mcp-config/config.toml" "${CODEX_HOME}/config.toml" + if [ "/tmp/gh-aw/mcp-config/config.toml" != "${CODEX_HOME}/config.toml" ]; then cp "/tmp/gh-aw/mcp-config/config.toml" "${CODEX_HOME}/config.toml"; fi chmod 600 "${CODEX_HOME}/config.toml" - name: Mount MCP servers as CLIs id: mount-mcp-clis diff --git a/.github/workflows/smoke-call-workflow.lock.yml b/.github/workflows/smoke-call-workflow.lock.yml index 964ec1c8b98..57bf58327a1 100644 --- a/.github/workflows/smoke-call-workflow.lock.yml +++ b/.github/workflows/smoke-call-workflow.lock.yml @@ -711,7 +711,7 @@ jobs: cat "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" >> "/tmp/gh-aw/mcp-config/config.toml" chmod 600 "/tmp/gh-aw/mcp-config/config.toml" mkdir -p "${CODEX_HOME}" - cp "/tmp/gh-aw/mcp-config/config.toml" "${CODEX_HOME}/config.toml" + if [ "/tmp/gh-aw/mcp-config/config.toml" != "${CODEX_HOME}/config.toml" ]; then cp "/tmp/gh-aw/mcp-config/config.toml" "${CODEX_HOME}/config.toml"; fi chmod 600 "${CODEX_HOME}/config.toml" - name: Mount MCP servers as CLIs id: mount-mcp-clis diff --git a/.github/workflows/smoke-codex.lock.yml b/.github/workflows/smoke-codex.lock.yml index 8f705062644..91a6cdf2cf0 100644 --- a/.github/workflows/smoke-codex.lock.yml +++ b/.github/workflows/smoke-codex.lock.yml @@ -1191,7 +1191,7 @@ jobs: cat "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" >> "/tmp/gh-aw/mcp-config/config.toml" chmod 600 "/tmp/gh-aw/mcp-config/config.toml" mkdir -p "${CODEX_HOME}" - cp "/tmp/gh-aw/mcp-config/config.toml" "${CODEX_HOME}/config.toml" + if [ "/tmp/gh-aw/mcp-config/config.toml" != "${CODEX_HOME}/config.toml" ]; then cp "/tmp/gh-aw/mcp-config/config.toml" "${CODEX_HOME}/config.toml"; fi chmod 600 "${CODEX_HOME}/config.toml" - name: Download activation artifact uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1