From 2d967f91ecab75d3f76fe3b6716f43288a51d397 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Sat, 25 Apr 2026 22:25:37 +0000
Subject: [PATCH 1/4] feat: instruct agent to call missing_data with cache_miss
reason and detect misconfiguration in conclusion handler
Agent-Logs-Url: https://github.com/github/gh-aw/sessions/506c72c2-0e3f-4503-9915-661948c848f1
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
---
.../workflows/agent-persona-explorer.lock.yml | 1 +
.../agentic-observability-kit.lock.yml | 1 +
.../agentic-optimization-kit.lock.yml | 1 +
.github/workflows/ai-moderator.lock.yml | 1 +
.../workflows/api-consumption-report.lock.yml | 1 +
.github/workflows/audit-workflows.lock.yml | 1 +
.github/workflows/ci-coach.lock.yml | 1 +
.github/workflows/ci-doctor.lock.yml | 1 +
.../claude-code-user-docs-review.lock.yml | 1 +
.../workflows/cli-version-checker.lock.yml | 1 +
.github/workflows/cloclo.lock.yml | 1 +
.../workflows/code-scanning-fixer.lock.yml | 1 +
.../constraint-solving-potd.lock.yml | 1 +
.../workflows/copilot-agent-analysis.lock.yml | 1 +
.github/workflows/copilot-opt.lock.yml | 1 +
.../copilot-pr-merged-report.lock.yml | 1 +
.../copilot-pr-nlp-analysis.lock.yml | 1 +
.../copilot-pr-prompt-analysis.lock.yml | 1 +
.../copilot-session-insights.lock.yml | 1 +
.../workflows/copilot-token-audit.lock.yml | 1 +
.../daily-architecture-diagram.lock.yml | 1 +
...daily-aw-cross-repo-compile-check.lock.yml | 1 +
.../daily-cache-strategy-analyzer.lock.yml | 13 ++---
.github/workflows/daily-code-metrics.lock.yml | 1 +
.../workflows/daily-compiler-quality.lock.yml | 1 +
.github/workflows/daily-doc-healer.lock.yml | 1 +
.github/workflows/daily-doc-updater.lock.yml | 1 +
.github/workflows/daily-fact.lock.yml | 13 ++---
.../workflows/daily-firewall-report.lock.yml | 1 +
.../workflows/daily-function-namer.lock.yml | 1 +
.github/workflows/daily-hippo-learn.lock.yml | 1 +
.../daily-integrity-analysis.lock.yml | 1 +
.../workflows/daily-issues-report.lock.yml | 1 +
.../daily-mcp-concurrency-analysis.lock.yml | 1 +
.github/workflows/daily-news.lock.yml | 1 +
.../daily-performance-summary.lock.yml | 1 +
.../daily-rendering-scripts-verifier.lock.yml | 1 +
.../workflows/daily-repo-chronicle.lock.yml | 1 +
.../daily-safe-output-optimizer.lock.yml | 1 +
.github/workflows/dead-code-remover.lock.yml | 1 +
.github/workflows/deep-report.lock.yml | 1 +
.../developer-docs-consolidator.lock.yml | 1 +
.github/workflows/firewall-escape.lock.yml | 1 +
.../github-mcp-structural-analysis.lock.yml | 1 +
.../github-mcp-tools-report.lock.yml | 1 +
.../workflows/glossary-maintainer.lock.yml | 1 +
.github/workflows/go-fan.lock.yml | 1 +
.github/workflows/go-logger.lock.yml | 1 +
.github/workflows/gpclean.lock.yml | 1 +
.github/workflows/grumpy-reviewer.lock.yml | 13 ++---
.../workflows/instructions-janitor.lock.yml | 1 +
.github/workflows/jsweep.lock.yml | 1 +
.github/workflows/lockfile-stats.lock.yml | 1 +
.github/workflows/mcp-inspector.lock.yml | 1 +
.github/workflows/org-health-report.lock.yml | 1 +
.github/workflows/pdf-summary.lock.yml | 1 +
.github/workflows/poem-bot.lock.yml | 1 +
.../workflows/pr-nitpick-reviewer.lock.yml | 1 +
.../prompt-clustering-analysis.lock.yml | 1 +
.github/workflows/python-data-charts.lock.yml | 1 +
.github/workflows/q.lock.yml | 1 +
.../workflows/refactoring-cadence.lock.yml | 1 +
.../workflows/repo-audit-analyzer.lock.yml | 1 +
.../repository-quality-improver.lock.yml | 1 +
.github/workflows/safe-output-health.lock.yml | 1 +
.../schema-consistency-checker.lock.yml | 1 +
.github/workflows/scout.lock.yml | 1 +
.github/workflows/security-review.lock.yml | 1 +
.github/workflows/sergo.lock.yml | 1 +
.../workflows/slide-deck-maintainer.lock.yml | 1 +
.github/workflows/smoke-ci.lock.yml | 1 +
.github/workflows/smoke-claude.lock.yml | 1 +
.github/workflows/smoke-codex.lock.yml | 13 ++---
.github/workflows/smoke-copilot-arm.lock.yml | 1 +
.github/workflows/smoke-copilot.lock.yml | 1 +
.github/workflows/smoke-gemini.lock.yml | 1 +
.../smoke-update-cross-repo-pr.lock.yml | 1 +
.github/workflows/spec-enforcer.lock.yml | 1 +
.github/workflows/spec-extractor.lock.yml | 1 +
.../workflows/stale-repo-identifier.lock.yml | 1 +
.../workflows/static-analysis-report.lock.yml | 1 +
.../workflows/step-name-alignment.lock.yml | 1 +
.github/workflows/super-linter.lock.yml | 1 +
.../workflows/technical-doc-writer.lock.yml | 1 +
.../test-create-pr-error-handling.lock.yml | 1 +
.github/workflows/unbloat-docs.lock.yml | 1 +
.../workflows/weekly-issue-summary.lock.yml | 1 +
actions/setup/js/handle_agent_failure.cjs | 52 +++++++++++++++----
actions/setup/md/cache_memory_prompt.md | 1 +
actions/setup/md/cache_memory_prompt_multi.md | 1 +
pkg/workflow/notify_comment.go | 7 +++
pkg/workflow/prompts/cache_memory_prompt.md | 1 +
.../prompts/cache_memory_prompt_multi.md | 1 +
93 files changed, 165 insertions(+), 33 deletions(-)
diff --git a/.github/workflows/agent-persona-explorer.lock.yml b/.github/workflows/agent-persona-explorer.lock.yml
index a1ff2b78cf9..84287f777c2 100644
--- a/.github/workflows/agent-persona-explorer.lock.yml
+++ b/.github/workflows/agent-persona-explorer.lock.yml
@@ -1117,6 +1117,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "180"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/agentic-observability-kit.lock.yml b/.github/workflows/agentic-observability-kit.lock.yml
index e10f49b1eec..380befc434f 100644
--- a/.github/workflows/agentic-observability-kit.lock.yml
+++ b/.github/workflows/agentic-observability-kit.lock.yml
@@ -1235,6 +1235,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "30"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/agentic-optimization-kit.lock.yml b/.github/workflows/agentic-optimization-kit.lock.yml
index 4f0a83d4421..d1ecfec9f7d 100644
--- a/.github/workflows/agentic-optimization-kit.lock.yml
+++ b/.github/workflows/agentic-optimization-kit.lock.yml
@@ -1287,6 +1287,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "35"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/ai-moderator.lock.yml b/.github/workflows/ai-moderator.lock.yml
index 1c382d7787d..9e58417afea 100644
--- a/.github/workflows/ai-moderator.lock.yml
+++ b/.github/workflows/ai-moderator.lock.yml
@@ -1083,6 +1083,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "5"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/api-consumption-report.lock.yml b/.github/workflows/api-consumption-report.lock.yml
index e6203cc9e89..e4007527761 100644
--- a/.github/workflows/api-consumption-report.lock.yml
+++ b/.github/workflows/api-consumption-report.lock.yml
@@ -1261,6 +1261,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "45"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/audit-workflows.lock.yml b/.github/workflows/audit-workflows.lock.yml
index d24669e0732..081688d533c 100644
--- a/.github/workflows/audit-workflows.lock.yml
+++ b/.github/workflows/audit-workflows.lock.yml
@@ -1296,6 +1296,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "30"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/ci-coach.lock.yml b/.github/workflows/ci-coach.lock.yml
index 21a9297c8f7..3d6275b18ee 100644
--- a/.github/workflows/ci-coach.lock.yml
+++ b/.github/workflows/ci-coach.lock.yml
@@ -1094,6 +1094,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "30"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/ci-doctor.lock.yml b/.github/workflows/ci-doctor.lock.yml
index 7f4645d337f..7a6e81c2633 100644
--- a/.github/workflows/ci-doctor.lock.yml
+++ b/.github/workflows/ci-doctor.lock.yml
@@ -1273,6 +1273,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "20"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/claude-code-user-docs-review.lock.yml b/.github/workflows/claude-code-user-docs-review.lock.yml
index 7c1cf4c8b74..ead83b5eb58 100644
--- a/.github/workflows/claude-code-user-docs-review.lock.yml
+++ b/.github/workflows/claude-code-user-docs-review.lock.yml
@@ -1120,6 +1120,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "30"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/cli-version-checker.lock.yml b/.github/workflows/cli-version-checker.lock.yml
index 979e7b9b5a9..df141ea2185 100644
--- a/.github/workflows/cli-version-checker.lock.yml
+++ b/.github/workflows/cli-version-checker.lock.yml
@@ -1090,6 +1090,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "45"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/cloclo.lock.yml b/.github/workflows/cloclo.lock.yml
index 95c144f8e5b..a20889d3f29 100644
--- a/.github/workflows/cloclo.lock.yml
+++ b/.github/workflows/cloclo.lock.yml
@@ -1439,6 +1439,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "20"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/code-scanning-fixer.lock.yml b/.github/workflows/code-scanning-fixer.lock.yml
index f5c0a4362df..f6fd0df4637 100644
--- a/.github/workflows/code-scanning-fixer.lock.yml
+++ b/.github/workflows/code-scanning-fixer.lock.yml
@@ -1092,6 +1092,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "20"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/constraint-solving-potd.lock.yml b/.github/workflows/constraint-solving-potd.lock.yml
index 2200713d24d..70fe24e42f5 100644
--- a/.github/workflows/constraint-solving-potd.lock.yml
+++ b/.github/workflows/constraint-solving-potd.lock.yml
@@ -998,6 +998,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "20"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/copilot-agent-analysis.lock.yml b/.github/workflows/copilot-agent-analysis.lock.yml
index afa2c03c57d..b02b660c224 100644
--- a/.github/workflows/copilot-agent-analysis.lock.yml
+++ b/.github/workflows/copilot-agent-analysis.lock.yml
@@ -1168,6 +1168,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "15"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/copilot-opt.lock.yml b/.github/workflows/copilot-opt.lock.yml
index d84bd611c42..79314cc3716 100644
--- a/.github/workflows/copilot-opt.lock.yml
+++ b/.github/workflows/copilot-opt.lock.yml
@@ -1088,6 +1088,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "30"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/copilot-pr-merged-report.lock.yml b/.github/workflows/copilot-pr-merged-report.lock.yml
index d85a19c45a0..66febc55d9f 100644
--- a/.github/workflows/copilot-pr-merged-report.lock.yml
+++ b/.github/workflows/copilot-pr-merged-report.lock.yml
@@ -1113,6 +1113,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "10"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/copilot-pr-nlp-analysis.lock.yml b/.github/workflows/copilot-pr-nlp-analysis.lock.yml
index 2b1cba8079e..96f51e58d61 100644
--- a/.github/workflows/copilot-pr-nlp-analysis.lock.yml
+++ b/.github/workflows/copilot-pr-nlp-analysis.lock.yml
@@ -1172,6 +1172,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "20"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/copilot-pr-prompt-analysis.lock.yml b/.github/workflows/copilot-pr-prompt-analysis.lock.yml
index 7517155fda4..f0eaa420379 100644
--- a/.github/workflows/copilot-pr-prompt-analysis.lock.yml
+++ b/.github/workflows/copilot-pr-prompt-analysis.lock.yml
@@ -1112,6 +1112,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "15"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/copilot-session-insights.lock.yml b/.github/workflows/copilot-session-insights.lock.yml
index 5f39294898e..b3a9a04f773 100644
--- a/.github/workflows/copilot-session-insights.lock.yml
+++ b/.github/workflows/copilot-session-insights.lock.yml
@@ -1227,6 +1227,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "45"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/copilot-token-audit.lock.yml b/.github/workflows/copilot-token-audit.lock.yml
index 6f4bdc50588..ab25f28f1a2 100644
--- a/.github/workflows/copilot-token-audit.lock.yml
+++ b/.github/workflows/copilot-token-audit.lock.yml
@@ -1248,6 +1248,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "25"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/daily-architecture-diagram.lock.yml b/.github/workflows/daily-architecture-diagram.lock.yml
index c554c4666e5..3fb87f2e3fd 100644
--- a/.github/workflows/daily-architecture-diagram.lock.yml
+++ b/.github/workflows/daily-architecture-diagram.lock.yml
@@ -1104,6 +1104,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "20"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/daily-aw-cross-repo-compile-check.lock.yml b/.github/workflows/daily-aw-cross-repo-compile-check.lock.yml
index d38f2a3f557..374b2a3c0cf 100644
--- a/.github/workflows/daily-aw-cross-repo-compile-check.lock.yml
+++ b/.github/workflows/daily-aw-cross-repo-compile-check.lock.yml
@@ -1090,6 +1090,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "60"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/daily-cache-strategy-analyzer.lock.yml b/.github/workflows/daily-cache-strategy-analyzer.lock.yml
index cd7b1f988d7..a36e4a5a586 100644
--- a/.github/workflows/daily-cache-strategy-analyzer.lock.yml
+++ b/.github/workflows/daily-cache-strategy-analyzer.lock.yml
@@ -1204,6 +1204,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "60"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
@@ -1352,18 +1353,18 @@ jobs:
DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0')
export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e CODEX_HOME -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.0'
- cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_9caeac271db7aa94_EOF
+ cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_3170f96f5221ce32_EOF
[history]
persistence = "none"
[shell_environment_policy]
inherit = "core"
include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"]
- GH_AW_MCP_CONFIG_9caeac271db7aa94_EOF
+ GH_AW_MCP_CONFIG_3170f96f5221ce32_EOF
# Generate JSON config for MCP gateway
GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node)
- cat << GH_AW_MCP_CONFIG_88497845da198a48_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs"
+ cat << GH_AW_MCP_CONFIG_109657b840f08a1c_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs"
{
"mcpServers": {
},
@@ -1374,11 +1375,11 @@ jobs:
"payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}"
}
}
- GH_AW_MCP_CONFIG_88497845da198a48_EOF
+ GH_AW_MCP_CONFIG_109657b840f08a1c_EOF
# Sync converter output to writable CODEX_HOME for Codex
mkdir -p /tmp/gh-aw/mcp-config
- cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_f7b91a1a91d49033_EOF
+ cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_bae9545c6ee644d9_EOF
model_provider = "openai-proxy"
[model_providers.openai-proxy]
name = "OpenAI AWF proxy"
@@ -1388,7 +1389,7 @@ jobs:
[shell_environment_policy]
inherit = "core"
include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"]
- GH_AW_CODEX_SHELL_POLICY_f7b91a1a91d49033_EOF
+ GH_AW_CODEX_SHELL_POLICY_bae9545c6ee644d9_EOF
awk '
BEGIN { skip_openai_proxy = 0 }
/^[[:space:]]*model_provider[[:space:]]*=/ { next }
diff --git a/.github/workflows/daily-code-metrics.lock.yml b/.github/workflows/daily-code-metrics.lock.yml
index a1572dcc46a..5aaffec8c77 100644
--- a/.github/workflows/daily-code-metrics.lock.yml
+++ b/.github/workflows/daily-code-metrics.lock.yml
@@ -1207,6 +1207,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "30"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/daily-compiler-quality.lock.yml b/.github/workflows/daily-compiler-quality.lock.yml
index 0530c4bd17c..10951197113 100644
--- a/.github/workflows/daily-compiler-quality.lock.yml
+++ b/.github/workflows/daily-compiler-quality.lock.yml
@@ -1159,6 +1159,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "30"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/daily-doc-healer.lock.yml b/.github/workflows/daily-doc-healer.lock.yml
index 0dee20c80bc..9dad5f2dc93 100644
--- a/.github/workflows/daily-doc-healer.lock.yml
+++ b/.github/workflows/daily-doc-healer.lock.yml
@@ -1196,6 +1196,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "45"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/daily-doc-updater.lock.yml b/.github/workflows/daily-doc-updater.lock.yml
index 768fdec8d23..4f1788e4d46 100644
--- a/.github/workflows/daily-doc-updater.lock.yml
+++ b/.github/workflows/daily-doc-updater.lock.yml
@@ -1161,6 +1161,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "45"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/daily-fact.lock.yml b/.github/workflows/daily-fact.lock.yml
index a942c10794d..3fd8a89bfb5 100644
--- a/.github/workflows/daily-fact.lock.yml
+++ b/.github/workflows/daily-fact.lock.yml
@@ -1247,6 +1247,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "15"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
@@ -1395,18 +1396,18 @@ jobs:
DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0')
export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e CODEX_HOME -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.0'
- cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_f7130aac39095c62_EOF
+ cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_1a616677fcc91216_EOF
[history]
persistence = "none"
[shell_environment_policy]
inherit = "core"
include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"]
- GH_AW_MCP_CONFIG_f7130aac39095c62_EOF
+ GH_AW_MCP_CONFIG_1a616677fcc91216_EOF
# Generate JSON config for MCP gateway
GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node)
- cat << GH_AW_MCP_CONFIG_8d1c91d261862600_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs"
+ cat << GH_AW_MCP_CONFIG_f35f84e7a0cd92eb_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs"
{
"mcpServers": {
},
@@ -1417,11 +1418,11 @@ jobs:
"payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}"
}
}
- GH_AW_MCP_CONFIG_8d1c91d261862600_EOF
+ GH_AW_MCP_CONFIG_f35f84e7a0cd92eb_EOF
# Sync converter output to writable CODEX_HOME for Codex
mkdir -p /tmp/gh-aw/mcp-config
- cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_631367c03ac5ca7c_EOF
+ cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_10c504d6b7dd88da_EOF
model_provider = "openai-proxy"
[model_providers.openai-proxy]
name = "OpenAI AWF proxy"
@@ -1431,7 +1432,7 @@ jobs:
[shell_environment_policy]
inherit = "core"
include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"]
- GH_AW_CODEX_SHELL_POLICY_631367c03ac5ca7c_EOF
+ GH_AW_CODEX_SHELL_POLICY_10c504d6b7dd88da_EOF
awk '
BEGIN { skip_openai_proxy = 0 }
/^[[:space:]]*model_provider[[:space:]]*=/ { next }
diff --git a/.github/workflows/daily-firewall-report.lock.yml b/.github/workflows/daily-firewall-report.lock.yml
index 8f85c63560d..dc5899a8e2e 100644
--- a/.github/workflows/daily-firewall-report.lock.yml
+++ b/.github/workflows/daily-firewall-report.lock.yml
@@ -1203,6 +1203,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "45"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/daily-function-namer.lock.yml b/.github/workflows/daily-function-namer.lock.yml
index 435d02ca098..888b0919e96 100644
--- a/.github/workflows/daily-function-namer.lock.yml
+++ b/.github/workflows/daily-function-namer.lock.yml
@@ -1184,6 +1184,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "30"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/daily-hippo-learn.lock.yml b/.github/workflows/daily-hippo-learn.lock.yml
index dc2c2bc5eb3..5b2071e6d86 100644
--- a/.github/workflows/daily-hippo-learn.lock.yml
+++ b/.github/workflows/daily-hippo-learn.lock.yml
@@ -1161,6 +1161,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "30"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/daily-integrity-analysis.lock.yml b/.github/workflows/daily-integrity-analysis.lock.yml
index b6fc347b8f9..f5b07b89c41 100644
--- a/.github/workflows/daily-integrity-analysis.lock.yml
+++ b/.github/workflows/daily-integrity-analysis.lock.yml
@@ -1217,6 +1217,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "30"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/daily-issues-report.lock.yml b/.github/workflows/daily-issues-report.lock.yml
index 151f7afe4d2..ff1c450d5aa 100644
--- a/.github/workflows/daily-issues-report.lock.yml
+++ b/.github/workflows/daily-issues-report.lock.yml
@@ -1318,6 +1318,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "30"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/daily-mcp-concurrency-analysis.lock.yml b/.github/workflows/daily-mcp-concurrency-analysis.lock.yml
index ec3d918a6b6..6e60724446e 100644
--- a/.github/workflows/daily-mcp-concurrency-analysis.lock.yml
+++ b/.github/workflows/daily-mcp-concurrency-analysis.lock.yml
@@ -1172,6 +1172,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "45"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/daily-news.lock.yml b/.github/workflows/daily-news.lock.yml
index f2f63661da2..a8c3d107480 100644
--- a/.github/workflows/daily-news.lock.yml
+++ b/.github/workflows/daily-news.lock.yml
@@ -1270,6 +1270,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "30"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/daily-performance-summary.lock.yml b/.github/workflows/daily-performance-summary.lock.yml
index e86767ec655..36df4d5a8bc 100644
--- a/.github/workflows/daily-performance-summary.lock.yml
+++ b/.github/workflows/daily-performance-summary.lock.yml
@@ -1607,6 +1607,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "30"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/daily-rendering-scripts-verifier.lock.yml b/.github/workflows/daily-rendering-scripts-verifier.lock.yml
index f1f420dff0e..f5216f5c912 100644
--- a/.github/workflows/daily-rendering-scripts-verifier.lock.yml
+++ b/.github/workflows/daily-rendering-scripts-verifier.lock.yml
@@ -1261,6 +1261,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "30"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/daily-repo-chronicle.lock.yml b/.github/workflows/daily-repo-chronicle.lock.yml
index 3de685a90fc..4ed909944cc 100644
--- a/.github/workflows/daily-repo-chronicle.lock.yml
+++ b/.github/workflows/daily-repo-chronicle.lock.yml
@@ -1114,6 +1114,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "45"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/daily-safe-output-optimizer.lock.yml b/.github/workflows/daily-safe-output-optimizer.lock.yml
index de205f516bb..87837b61411 100644
--- a/.github/workflows/daily-safe-output-optimizer.lock.yml
+++ b/.github/workflows/daily-safe-output-optimizer.lock.yml
@@ -1236,6 +1236,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "30"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/dead-code-remover.lock.yml b/.github/workflows/dead-code-remover.lock.yml
index 164c42cd917..837cbd4b5a4 100644
--- a/.github/workflows/dead-code-remover.lock.yml
+++ b/.github/workflows/dead-code-remover.lock.yml
@@ -1061,6 +1061,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "30"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/deep-report.lock.yml b/.github/workflows/deep-report.lock.yml
index 2f4913a8bb0..7979529a523 100644
--- a/.github/workflows/deep-report.lock.yml
+++ b/.github/workflows/deep-report.lock.yml
@@ -1279,6 +1279,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "45"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/developer-docs-consolidator.lock.yml b/.github/workflows/developer-docs-consolidator.lock.yml
index 055a928eb53..28e9344bda8 100644
--- a/.github/workflows/developer-docs-consolidator.lock.yml
+++ b/.github/workflows/developer-docs-consolidator.lock.yml
@@ -1290,6 +1290,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "30"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/firewall-escape.lock.yml b/.github/workflows/firewall-escape.lock.yml
index f84ac7fd1a1..cd02a32cb67 100644
--- a/.github/workflows/firewall-escape.lock.yml
+++ b/.github/workflows/firewall-escape.lock.yml
@@ -1090,6 +1090,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "60"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/github-mcp-structural-analysis.lock.yml b/.github/workflows/github-mcp-structural-analysis.lock.yml
index b46fce6b7c2..58e4087450f 100644
--- a/.github/workflows/github-mcp-structural-analysis.lock.yml
+++ b/.github/workflows/github-mcp-structural-analysis.lock.yml
@@ -1167,6 +1167,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "15"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/github-mcp-tools-report.lock.yml b/.github/workflows/github-mcp-tools-report.lock.yml
index 8f740ad4607..bf8a3ce3a4d 100644
--- a/.github/workflows/github-mcp-tools-report.lock.yml
+++ b/.github/workflows/github-mcp-tools-report.lock.yml
@@ -1162,6 +1162,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "15"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/glossary-maintainer.lock.yml b/.github/workflows/glossary-maintainer.lock.yml
index 7790df08373..fdd5a39b793 100644
--- a/.github/workflows/glossary-maintainer.lock.yml
+++ b/.github/workflows/glossary-maintainer.lock.yml
@@ -1171,6 +1171,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "20"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/go-fan.lock.yml b/.github/workflows/go-fan.lock.yml
index 8c7651229f8..c0126f37644 100644
--- a/.github/workflows/go-fan.lock.yml
+++ b/.github/workflows/go-fan.lock.yml
@@ -1182,6 +1182,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "30"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/go-logger.lock.yml b/.github/workflows/go-logger.lock.yml
index 34a8909f6d0..f12ce04c6ca 100644
--- a/.github/workflows/go-logger.lock.yml
+++ b/.github/workflows/go-logger.lock.yml
@@ -1297,6 +1297,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "15"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/gpclean.lock.yml b/.github/workflows/gpclean.lock.yml
index 6de558be5c3..b9b6141fce1 100644
--- a/.github/workflows/gpclean.lock.yml
+++ b/.github/workflows/gpclean.lock.yml
@@ -1038,6 +1038,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "30"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/grumpy-reviewer.lock.yml b/.github/workflows/grumpy-reviewer.lock.yml
index f4f7c72b23f..7f4c45907f3 100644
--- a/.github/workflows/grumpy-reviewer.lock.yml
+++ b/.github/workflows/grumpy-reviewer.lock.yml
@@ -1155,6 +1155,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "10"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
@@ -1323,18 +1324,18 @@ jobs:
DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0')
export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e CODEX_HOME -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.0'
- cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_218fe4f958695b01_EOF
+ cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_0b2093c49d0e3c20_EOF
[history]
persistence = "none"
[shell_environment_policy]
inherit = "core"
include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"]
- GH_AW_MCP_CONFIG_218fe4f958695b01_EOF
+ GH_AW_MCP_CONFIG_0b2093c49d0e3c20_EOF
# Generate JSON config for MCP gateway
GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node)
- cat << GH_AW_MCP_CONFIG_d1252b61223653b2_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs"
+ cat << GH_AW_MCP_CONFIG_323d3b9aa3e96795_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs"
{
"mcpServers": {
},
@@ -1345,11 +1346,11 @@ jobs:
"payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}"
}
}
- GH_AW_MCP_CONFIG_d1252b61223653b2_EOF
+ GH_AW_MCP_CONFIG_323d3b9aa3e96795_EOF
# Sync converter output to writable CODEX_HOME for Codex
mkdir -p /tmp/gh-aw/mcp-config
- cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_67af744a230c3b0d_EOF
+ cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_3ad546983ef69180_EOF
model_provider = "openai-proxy"
[model_providers.openai-proxy]
name = "OpenAI AWF proxy"
@@ -1359,7 +1360,7 @@ jobs:
[shell_environment_policy]
inherit = "core"
include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"]
- GH_AW_CODEX_SHELL_POLICY_67af744a230c3b0d_EOF
+ GH_AW_CODEX_SHELL_POLICY_3ad546983ef69180_EOF
awk '
BEGIN { skip_openai_proxy = 0 }
/^[[:space:]]*model_provider[[:space:]]*=/ { next }
diff --git a/.github/workflows/instructions-janitor.lock.yml b/.github/workflows/instructions-janitor.lock.yml
index 5828277e08e..0bf69233cc5 100644
--- a/.github/workflows/instructions-janitor.lock.yml
+++ b/.github/workflows/instructions-janitor.lock.yml
@@ -1117,6 +1117,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "15"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/jsweep.lock.yml b/.github/workflows/jsweep.lock.yml
index 14216f5ab24..3d8b2bdf0d5 100644
--- a/.github/workflows/jsweep.lock.yml
+++ b/.github/workflows/jsweep.lock.yml
@@ -1127,6 +1127,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "20"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/lockfile-stats.lock.yml b/.github/workflows/lockfile-stats.lock.yml
index 8b13c535aa3..cbee9ec0cea 100644
--- a/.github/workflows/lockfile-stats.lock.yml
+++ b/.github/workflows/lockfile-stats.lock.yml
@@ -1111,6 +1111,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "15"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/mcp-inspector.lock.yml b/.github/workflows/mcp-inspector.lock.yml
index 9b545dc7c02..7477beb268f 100644
--- a/.github/workflows/mcp-inspector.lock.yml
+++ b/.github/workflows/mcp-inspector.lock.yml
@@ -1608,6 +1608,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "20"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/org-health-report.lock.yml b/.github/workflows/org-health-report.lock.yml
index e11b433747c..7262bec982b 100644
--- a/.github/workflows/org-health-report.lock.yml
+++ b/.github/workflows/org-health-report.lock.yml
@@ -1099,6 +1099,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "60"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/pdf-summary.lock.yml b/.github/workflows/pdf-summary.lock.yml
index 174ce4425f9..e02b415b2b0 100644
--- a/.github/workflows/pdf-summary.lock.yml
+++ b/.github/workflows/pdf-summary.lock.yml
@@ -1161,6 +1161,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "15"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/poem-bot.lock.yml b/.github/workflows/poem-bot.lock.yml
index 20d0958d0ea..172e5d6339f 100644
--- a/.github/workflows/poem-bot.lock.yml
+++ b/.github/workflows/poem-bot.lock.yml
@@ -1434,6 +1434,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "10"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/pr-nitpick-reviewer.lock.yml b/.github/workflows/pr-nitpick-reviewer.lock.yml
index fd43eebd593..e8ea2c50412 100644
--- a/.github/workflows/pr-nitpick-reviewer.lock.yml
+++ b/.github/workflows/pr-nitpick-reviewer.lock.yml
@@ -1150,6 +1150,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "15"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/prompt-clustering-analysis.lock.yml b/.github/workflows/prompt-clustering-analysis.lock.yml
index 2bc009201c8..d4c87f7f094 100644
--- a/.github/workflows/prompt-clustering-analysis.lock.yml
+++ b/.github/workflows/prompt-clustering-analysis.lock.yml
@@ -1284,6 +1284,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "20"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/python-data-charts.lock.yml b/.github/workflows/python-data-charts.lock.yml
index fefc4348120..93e7ef2f227 100644
--- a/.github/workflows/python-data-charts.lock.yml
+++ b/.github/workflows/python-data-charts.lock.yml
@@ -1174,6 +1174,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "15"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/q.lock.yml b/.github/workflows/q.lock.yml
index bb3eb19ddfc..9b86137d8a0 100644
--- a/.github/workflows/q.lock.yml
+++ b/.github/workflows/q.lock.yml
@@ -1331,6 +1331,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "30"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/refactoring-cadence.lock.yml b/.github/workflows/refactoring-cadence.lock.yml
index c400c53c35b..dbad5b9f875 100644
--- a/.github/workflows/refactoring-cadence.lock.yml
+++ b/.github/workflows/refactoring-cadence.lock.yml
@@ -1032,6 +1032,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "20"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/repo-audit-analyzer.lock.yml b/.github/workflows/repo-audit-analyzer.lock.yml
index ce7f6b1fc26..e1aacc7228a 100644
--- a/.github/workflows/repo-audit-analyzer.lock.yml
+++ b/.github/workflows/repo-audit-analyzer.lock.yml
@@ -1068,6 +1068,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "45"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/repository-quality-improver.lock.yml b/.github/workflows/repository-quality-improver.lock.yml
index 1e09a2e638f..05b255ba521 100644
--- a/.github/workflows/repository-quality-improver.lock.yml
+++ b/.github/workflows/repository-quality-improver.lock.yml
@@ -1130,6 +1130,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "20"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/safe-output-health.lock.yml b/.github/workflows/safe-output-health.lock.yml
index 3c0cdc16b95..d635d01f5df 100644
--- a/.github/workflows/safe-output-health.lock.yml
+++ b/.github/workflows/safe-output-health.lock.yml
@@ -1201,6 +1201,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "30"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/schema-consistency-checker.lock.yml b/.github/workflows/schema-consistency-checker.lock.yml
index 71dd01133c8..aead01257be 100644
--- a/.github/workflows/schema-consistency-checker.lock.yml
+++ b/.github/workflows/schema-consistency-checker.lock.yml
@@ -1091,6 +1091,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "30"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/scout.lock.yml b/.github/workflows/scout.lock.yml
index 71508f9f68c..3e0f42b8b22 100644
--- a/.github/workflows/scout.lock.yml
+++ b/.github/workflows/scout.lock.yml
@@ -1311,6 +1311,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "20"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/security-review.lock.yml b/.github/workflows/security-review.lock.yml
index fc20e362314..a5ac8453768 100644
--- a/.github/workflows/security-review.lock.yml
+++ b/.github/workflows/security-review.lock.yml
@@ -1198,6 +1198,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "15"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/sergo.lock.yml b/.github/workflows/sergo.lock.yml
index 64efa9b30cd..5240c076783 100644
--- a/.github/workflows/sergo.lock.yml
+++ b/.github/workflows/sergo.lock.yml
@@ -1213,6 +1213,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "45"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/slide-deck-maintainer.lock.yml b/.github/workflows/slide-deck-maintainer.lock.yml
index ac46b4fd9b3..93e6face4f3 100644
--- a/.github/workflows/slide-deck-maintainer.lock.yml
+++ b/.github/workflows/slide-deck-maintainer.lock.yml
@@ -1144,6 +1144,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "45"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/smoke-ci.lock.yml b/.github/workflows/smoke-ci.lock.yml
index acc8a032468..8d12865bb74 100644
--- a/.github/workflows/smoke-ci.lock.yml
+++ b/.github/workflows/smoke-ci.lock.yml
@@ -1284,6 +1284,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "5"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/smoke-claude.lock.yml b/.github/workflows/smoke-claude.lock.yml
index 9ea18e493c0..7999dcb55c1 100644
--- a/.github/workflows/smoke-claude.lock.yml
+++ b/.github/workflows/smoke-claude.lock.yml
@@ -2698,6 +2698,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "10"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/smoke-codex.lock.yml b/.github/workflows/smoke-codex.lock.yml
index 9db4f24df11..84a20a3bdc4 100644
--- a/.github/workflows/smoke-codex.lock.yml
+++ b/.github/workflows/smoke-codex.lock.yml
@@ -1594,6 +1594,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "15"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
@@ -1762,18 +1763,18 @@ jobs:
DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0')
export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e CODEX_HOME -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.0'
- cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_d18758cab5808df4_EOF
+ cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_7cd2ab3ccc926025_EOF
[history]
persistence = "none"
[shell_environment_policy]
inherit = "core"
include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"]
- GH_AW_MCP_CONFIG_d18758cab5808df4_EOF
+ GH_AW_MCP_CONFIG_7cd2ab3ccc926025_EOF
# Generate JSON config for MCP gateway
GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node)
- cat << GH_AW_MCP_CONFIG_ea8260d4aa33adf1_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs"
+ cat << GH_AW_MCP_CONFIG_a2f0e77a5a5c10a7_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs"
{
"mcpServers": {
},
@@ -1784,11 +1785,11 @@ jobs:
"payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}"
}
}
- GH_AW_MCP_CONFIG_ea8260d4aa33adf1_EOF
+ GH_AW_MCP_CONFIG_a2f0e77a5a5c10a7_EOF
# Sync converter output to writable CODEX_HOME for Codex
mkdir -p /tmp/gh-aw/mcp-config
- cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_a4c0e5e828874874_EOF
+ cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_d2384e8d32b7521e_EOF
model_provider = "openai-proxy"
[model_providers.openai-proxy]
name = "OpenAI AWF proxy"
@@ -1798,7 +1799,7 @@ jobs:
[shell_environment_policy]
inherit = "core"
include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"]
- GH_AW_CODEX_SHELL_POLICY_a4c0e5e828874874_EOF
+ GH_AW_CODEX_SHELL_POLICY_d2384e8d32b7521e_EOF
awk '
BEGIN { skip_openai_proxy = 0 }
/^[[:space:]]*model_provider[[:space:]]*=/ { next }
diff --git a/.github/workflows/smoke-copilot-arm.lock.yml b/.github/workflows/smoke-copilot-arm.lock.yml
index 514b8db6db3..9c62d6cb476 100644
--- a/.github/workflows/smoke-copilot-arm.lock.yml
+++ b/.github/workflows/smoke-copilot-arm.lock.yml
@@ -2025,6 +2025,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "15"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/smoke-copilot.lock.yml b/.github/workflows/smoke-copilot.lock.yml
index aa4e0085035..b895eed8371 100644
--- a/.github/workflows/smoke-copilot.lock.yml
+++ b/.github/workflows/smoke-copilot.lock.yml
@@ -2091,6 +2091,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "15"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/smoke-gemini.lock.yml b/.github/workflows/smoke-gemini.lock.yml
index b939b82c5f7..ee08d3b2b7e 100644
--- a/.github/workflows/smoke-gemini.lock.yml
+++ b/.github/workflows/smoke-gemini.lock.yml
@@ -1269,6 +1269,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "10"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/smoke-update-cross-repo-pr.lock.yml b/.github/workflows/smoke-update-cross-repo-pr.lock.yml
index 55353b23b71..64ed8d7a252 100644
--- a/.github/workflows/smoke-update-cross-repo-pr.lock.yml
+++ b/.github/workflows/smoke-update-cross-repo-pr.lock.yml
@@ -1156,6 +1156,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "10"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/spec-enforcer.lock.yml b/.github/workflows/spec-enforcer.lock.yml
index 4166dde53ea..8b765afc968 100644
--- a/.github/workflows/spec-enforcer.lock.yml
+++ b/.github/workflows/spec-enforcer.lock.yml
@@ -1123,6 +1123,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "30"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/spec-extractor.lock.yml b/.github/workflows/spec-extractor.lock.yml
index e8305d89bc6..f8e87dba89d 100644
--- a/.github/workflows/spec-extractor.lock.yml
+++ b/.github/workflows/spec-extractor.lock.yml
@@ -1164,6 +1164,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "30"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/stale-repo-identifier.lock.yml b/.github/workflows/stale-repo-identifier.lock.yml
index 1d2a8fa0813..79c9ce40a2a 100644
--- a/.github/workflows/stale-repo-identifier.lock.yml
+++ b/.github/workflows/stale-repo-identifier.lock.yml
@@ -1241,6 +1241,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "45"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/static-analysis-report.lock.yml b/.github/workflows/static-analysis-report.lock.yml
index ed4df662ec6..0d6b9e287ab 100644
--- a/.github/workflows/static-analysis-report.lock.yml
+++ b/.github/workflows/static-analysis-report.lock.yml
@@ -1186,6 +1186,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "45"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/step-name-alignment.lock.yml b/.github/workflows/step-name-alignment.lock.yml
index 4012089bca3..696a1053a28 100644
--- a/.github/workflows/step-name-alignment.lock.yml
+++ b/.github/workflows/step-name-alignment.lock.yml
@@ -1077,6 +1077,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "30"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/super-linter.lock.yml b/.github/workflows/super-linter.lock.yml
index f51fc2205ec..d9e1c1bb2ef 100644
--- a/.github/workflows/super-linter.lock.yml
+++ b/.github/workflows/super-linter.lock.yml
@@ -1050,6 +1050,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "15"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/technical-doc-writer.lock.yml b/.github/workflows/technical-doc-writer.lock.yml
index fa7b0bf4a0c..badd2620bc7 100644
--- a/.github/workflows/technical-doc-writer.lock.yml
+++ b/.github/workflows/technical-doc-writer.lock.yml
@@ -1133,6 +1133,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "10"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/test-create-pr-error-handling.lock.yml b/.github/workflows/test-create-pr-error-handling.lock.yml
index 8e71dea1687..6b66f64fd48 100644
--- a/.github/workflows/test-create-pr-error-handling.lock.yml
+++ b/.github/workflows/test-create-pr-error-handling.lock.yml
@@ -1089,6 +1089,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "5"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/unbloat-docs.lock.yml b/.github/workflows/unbloat-docs.lock.yml
index 25003e50406..081d63ff22b 100644
--- a/.github/workflows/unbloat-docs.lock.yml
+++ b/.github/workflows/unbloat-docs.lock.yml
@@ -1302,6 +1302,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "30"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/.github/workflows/weekly-issue-summary.lock.yml b/.github/workflows/weekly-issue-summary.lock.yml
index 88c9aaf6271..93e8bcb3778 100644
--- a/.github/workflows/weekly-issue-summary.lock.yml
+++ b/.github/workflows/weekly-issue-summary.lock.yml
@@ -1081,6 +1081,7 @@ jobs:
GH_AW_GROUP_REPORTS: "false"
GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
GH_AW_TIMEOUT_MINUTES: "20"
+ GH_AW_CACHE_MEMORY_ENABLED: "true"
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
script: |
diff --git a/actions/setup/js/handle_agent_failure.cjs b/actions/setup/js/handle_agent_failure.cjs
index 8d1a1d80d15..0e997e6b51d 100644
--- a/actions/setup/js/handle_agent_failure.cjs
+++ b/actions/setup/js/handle_agent_failure.cjs
@@ -591,10 +591,13 @@ function loadMissingDataMessages() {
}
/**
- * Build missing_data context string for display in failure issues/comments
+ * Build missing_data context string for display in failure issues/comments.
+ * When cache-memory is enabled and a cache_miss is detected, appends a
+ * configuration-problem warning to the context.
+ * @param {boolean} cacheMemoryEnabled - Whether cache-memory is configured for this workflow
* @returns {string} Formatted missing data context
*/
-function buildMissingDataContext() {
+function buildMissingDataContext(cacheMemoryEnabled) {
const missingDataMessages = loadMissingDataMessages();
if (missingDataMessages.length === 0) {
@@ -610,6 +613,17 @@ function buildMissingDataContext() {
context += formattedList;
context += "\n\n";
+ // Detect cache_miss: if cache-memory is available and the agent reported a cache miss,
+ // this indicates the prompt is referencing an incorrect file path within the cache directory.
+ const hasCacheMiss = missingDataMessages.some(m => m.reason === "cache_miss");
+ if (cacheMemoryEnabled && hasCacheMiss) {
+ core.info("Cache-miss detected despite cache-memory being available — likely a configuration problem");
+ context +=
+ "**⚠️ Cache Configuration Problem**: The agent reported a cache miss (`missing_data` with `reason: cache_miss`) even though cache-memory is configured and was available. " +
+ "This likely indicates the prompt is misconfigured and the agent cannot locate the correct file path within the cache directory. " +
+ "Please review the cache-memory configuration and ensure the agent prompt correctly references files inside the cache directory.\n\n";
+ }
+
return context;
}
@@ -1010,6 +1024,9 @@ async function main() {
// stored in the compiled .lock.yml no longer matches the source .md file.
// The agent is skipped in this case; the conclusion job runs to surface remediation guidance.
const hasStaleLockFileFailed = process.env.GH_AW_STALE_LOCK_FILE_FAILED === "true";
+ // Cache-memory availability flag — set when cache-memory is configured for the workflow.
+ // Used to detect cache-miss misconfigurations reported by the agent.
+ const cacheMemoryEnabled = process.env.GH_AW_CACHE_MEMORY_ENABLED === "true";
// Collect repo-memory validation errors from all memory configurations
const repoMemoryValidationErrors = [];
@@ -1049,6 +1066,7 @@ async function main() {
core.info(`App token minting failed (safe_outputs/conclusion/activation): ${safeOutputsAppTokenMintingFailed}/${conclusionAppTokenMintingFailed}/${activationAppTokenMintingFailed}`);
core.info(`Lockdown check failed: ${hasLockdownCheckFailed}`);
core.info(`Stale lock file check failed: ${hasStaleLockFileFailed}`);
+ core.info(`Cache memory enabled: ${cacheMemoryEnabled}`);
// Check if the agent timed out.
// A job-level timeout sets agentConclusion to "timed_out".
@@ -1121,10 +1139,23 @@ async function main() {
}
}
+ // Detect cache-miss misconfiguration: the agent reported a missing_data with reason
+ // "cache_miss" while cache-memory was configured and available. This indicates the
+ // prompt is referencing an incorrect path inside the cache directory.
+ let hasCacheMissMisconfiguration = false;
+ if (cacheMemoryEnabled && agentOutputResult.success && agentOutputResult.items) {
+ const cacheMissItems = agentOutputResult.items.filter(item => item.type === "missing_data" && item.reason === "cache_miss");
+ if (cacheMissItems.length > 0) {
+ hasCacheMissMisconfiguration = true;
+ core.info(`Cache-miss misconfiguration detected: ${cacheMissItems.length} missing_data item(s) with reason "cache_miss" despite cache-memory being available`);
+ }
+ }
+
// Only proceed if the agent job actually failed OR timed out OR there are assignment errors OR
// create_discussion errors OR code-push failures OR push_repo_memory failed OR missing safe outputs
// OR a GitHub App token minting step failed OR the lockdown check failed OR copilot assignment failed
- // OR the stale lock file check failed OR the agent reported task incompletion via report_incomplete.
+ // OR the stale lock file check failed OR the agent reported task incompletion via report_incomplete
+ // OR a cache-miss was detected despite cache-memory being available (configuration problem).
// BUT skip if we only have noop outputs (that's a successful no-action scenario)
if (
agentConclusion !== "failure" &&
@@ -1138,14 +1169,17 @@ async function main() {
!hasAppTokenMintingFailed &&
!hasLockdownCheckFailed &&
!hasStaleLockFileFailed &&
- !hasReportIncomplete
+ !hasReportIncomplete &&
+ !hasCacheMissMisconfiguration
) {
- core.info(`Agent job did not fail and no assignment/discussion/code-push/push-repo-memory/app-token/lockdown/stale-lock-file/report-incomplete errors and has safe outputs (conclusion: ${agentConclusion}), skipping failure handling`);
+ core.info(
+ `Agent job did not fail and no assignment/discussion/code-push/push-repo-memory/app-token/lockdown/stale-lock-file/report-incomplete/cache-miss errors and has safe outputs (conclusion: ${agentConclusion}), skipping failure handling`
+ );
return;
}
- // If we only have noop outputs (and no report_incomplete), skip failure handling - this is a successful no-action scenario
- if (hasOnlyNoopOutputs && !hasReportIncomplete) {
+ // If we only have noop outputs (and no report_incomplete or cache-miss), skip failure handling
+ if (hasOnlyNoopOutputs && !hasReportIncomplete && !hasCacheMissMisconfiguration) {
core.info("Agent completed with only noop outputs - skipping failure handling");
return;
}
@@ -1281,7 +1315,7 @@ async function main() {
const pushRepoMemoryFailureContext = buildPushRepoMemoryFailureContext(hasPushRepoMemoryFailure, repoMemoryPatchSizeExceededIDs, runUrl);
// Build missing_data context
- const missingDataContext = buildMissingDataContext();
+ const missingDataContext = buildMissingDataContext(cacheMemoryEnabled);
// Build report_incomplete context
const reportIncompleteContext = buildReportIncompleteContext();
@@ -1442,7 +1476,7 @@ async function main() {
const pushRepoMemoryFailureContext = buildPushRepoMemoryFailureContext(hasPushRepoMemoryFailure, repoMemoryPatchSizeExceededIDs, runUrl);
// Build missing_data context
- const missingDataContext = buildMissingDataContext();
+ const missingDataContext = buildMissingDataContext(cacheMemoryEnabled);
// Build report_incomplete context
const reportIncompleteContext = buildReportIncompleteContext();
diff --git a/actions/setup/md/cache_memory_prompt.md b/actions/setup/md/cache_memory_prompt.md
index fa1426e140b..2e2c9c53109 100644
--- a/actions/setup/md/cache_memory_prompt.md
+++ b/actions/setup/md/cache_memory_prompt.md
@@ -1,4 +1,5 @@
__GH_AW_CACHE_DIR____GH_AW_CACHE_DESCRIPTION__
Persistent read/write storage across workflow runs via Actions cache. Last write wins.__GH_AW_ALLOWED_EXTENSIONS__
+If you look for data in the cache and do not find any, call the `missing_data` tool with `reason: "cache_miss"` to signal that the cache does not contain the expected information.
diff --git a/actions/setup/md/cache_memory_prompt_multi.md b/actions/setup/md/cache_memory_prompt_multi.md
index 205444640c6..bad116c922d 100644
--- a/actions/setup/md/cache_memory_prompt_multi.md
+++ b/actions/setup/md/cache_memory_prompt_multi.md
@@ -4,4 +4,5 @@ __GH_AW_CACHE_LIST__
__GH_AW_CACHE_EXAMPLES__
+If you look for data in the cache and do not find any, call the `missing_data` tool with `reason: "cache_miss"` to signal that the cache does not contain the expected information.
diff --git a/pkg/workflow/notify_comment.go b/pkg/workflow/notify_comment.go
index 88c7c919ad3..695c80a2b1e 100644
--- a/pkg/workflow/notify_comment.go
+++ b/pkg/workflow/notify_comment.go
@@ -361,6 +361,13 @@ func (c *Compiler) buildConclusionJob(data *WorkflowData, mainJobName string, sa
agentFailureEnvVars = append(agentFailureEnvVars, fmt.Sprintf(" GH_AW_TIMEOUT_MINUTES: %q\n", timeoutValue))
}
+ // Pass cache-memory availability flag so the failure handler can detect cache-miss
+ // misconfigurations: a cache_miss reported by the agent despite cache-memory being available
+ // indicates the prompt is referencing an incorrect file path within the cache directory.
+ if data.CacheMemoryConfig != nil && len(data.CacheMemoryConfig.Caches) > 0 {
+ agentFailureEnvVars = append(agentFailureEnvVars, " GH_AW_CACHE_MEMORY_ENABLED: \"true\"\n")
+ }
+
// Build the agent failure handling step.
// Use if: always() so this step runs even when an earlier step in the conclusion job
// (such as the GitHub App token minting step) has failed. The handler uses the default
diff --git a/pkg/workflow/prompts/cache_memory_prompt.md b/pkg/workflow/prompts/cache_memory_prompt.md
index a8cb0595159..718e885dbe1 100644
--- a/pkg/workflow/prompts/cache_memory_prompt.md
+++ b/pkg/workflow/prompts/cache_memory_prompt.md
@@ -9,6 +9,7 @@ You have access to a persistent cache folder at `__CACHE_DIR__` where you can re
- **Last Write Wins**: If multiple processes write to the same file, the last write will be preserved
- **File Share**: Use this as a simple file share - organize files as you see fit
- **Allowed File Types**: Only the following file extensions are allowed: `__ALLOWED_EXTENSIONS__`. Files with other extensions will be rejected during validation.
+- **Cache Miss**: If you look for data in the cache and do not find any, call the `missing_data` tool with `reason: "cache_miss"` to signal that the cache does not contain the expected information.
Examples of what you can store:
- `__CACHE_DIR__notes.txt` - general notes and observations
diff --git a/pkg/workflow/prompts/cache_memory_prompt_multi.md b/pkg/workflow/prompts/cache_memory_prompt_multi.md
index 13a69935d8e..5e3f0ea5511 100644
--- a/pkg/workflow/prompts/cache_memory_prompt_multi.md
+++ b/pkg/workflow/prompts/cache_memory_prompt_multi.md
@@ -12,6 +12,7 @@ __CACHE_LIST__
- **Last Write Wins**: If multiple processes write to the same file, the last write will be preserved
- **File Share**: Use these as simple file shares - organize files as you see fit
- **Allowed File Types**: Only the following file extensions are allowed: `__ALLOWED_EXTENSIONS__`. Files with other extensions will be rejected during validation.
+- **Cache Miss**: If you look for data in the cache and do not find any, call the `missing_data` tool with `reason: "cache_miss"` to signal that the cache does not contain the expected information.
Examples of what you can store:
From 498ed48ee137281bbfb8120878f1a17cb6621bff Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Sat, 25 Apr 2026 22:30:56 +0000
Subject: [PATCH 2/4] fix: detect cache_miss regardless of
agentOutputResult.success to catch signals emitted alongside other output
Agent-Logs-Url: https://github.com/github/gh-aw/sessions/506c72c2-0e3f-4503-9915-661948c848f1
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
---
actions/setup/js/handle_agent_failure.cjs | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/actions/setup/js/handle_agent_failure.cjs b/actions/setup/js/handle_agent_failure.cjs
index 0e997e6b51d..6f8ea5b4e10 100644
--- a/actions/setup/js/handle_agent_failure.cjs
+++ b/actions/setup/js/handle_agent_failure.cjs
@@ -1142,8 +1142,10 @@ async function main() {
// Detect cache-miss misconfiguration: the agent reported a missing_data with reason
// "cache_miss" while cache-memory was configured and available. This indicates the
// prompt is referencing an incorrect path inside the cache directory.
+ // Check for items regardless of agentOutputResult.success so that cache-miss signals
+ // emitted alongside other output are not missed when the agent job also fails.
let hasCacheMissMisconfiguration = false;
- if (cacheMemoryEnabled && agentOutputResult.success && agentOutputResult.items) {
+ if (cacheMemoryEnabled && agentOutputResult.items) {
const cacheMissItems = agentOutputResult.items.filter(item => item.type === "missing_data" && item.reason === "cache_miss");
if (cacheMissItems.length > 0) {
hasCacheMissMisconfiguration = true;
From 32eca81dc645f4339571bd6ba16ed353063cc6a7 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Sat, 25 Apr 2026 23:10:07 +0000
Subject: [PATCH 3/4] fix: rename cache_miss reason to cache_memory_miss for
precision
Agent-Logs-Url: https://github.com/github/gh-aw/sessions/4ddd20f3-5422-4a83-9fda-b21b335627c4
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
---
actions/setup/js/handle_agent_failure.cjs | 10 +++++-----
actions/setup/md/cache_memory_prompt.md | 2 +-
actions/setup/md/cache_memory_prompt_multi.md | 2 +-
pkg/workflow/prompts/cache_memory_prompt.md | 2 +-
pkg/workflow/prompts/cache_memory_prompt_multi.md | 2 +-
5 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/actions/setup/js/handle_agent_failure.cjs b/actions/setup/js/handle_agent_failure.cjs
index 6f8ea5b4e10..0f3ca557174 100644
--- a/actions/setup/js/handle_agent_failure.cjs
+++ b/actions/setup/js/handle_agent_failure.cjs
@@ -615,11 +615,11 @@ function buildMissingDataContext(cacheMemoryEnabled) {
// Detect cache_miss: if cache-memory is available and the agent reported a cache miss,
// this indicates the prompt is referencing an incorrect file path within the cache directory.
- const hasCacheMiss = missingDataMessages.some(m => m.reason === "cache_miss");
+ const hasCacheMiss = missingDataMessages.some(m => m.reason === "cache_memory_miss");
if (cacheMemoryEnabled && hasCacheMiss) {
core.info("Cache-miss detected despite cache-memory being available — likely a configuration problem");
context +=
- "**⚠️ Cache Configuration Problem**: The agent reported a cache miss (`missing_data` with `reason: cache_miss`) even though cache-memory is configured and was available. " +
+ "**⚠️ Cache Configuration Problem**: The agent reported a cache miss (`missing_data` with `reason: cache_memory_miss`) even though cache-memory is configured and was available. " +
"This likely indicates the prompt is misconfigured and the agent cannot locate the correct file path within the cache directory. " +
"Please review the cache-memory configuration and ensure the agent prompt correctly references files inside the cache directory.\n\n";
}
@@ -1140,16 +1140,16 @@ async function main() {
}
// Detect cache-miss misconfiguration: the agent reported a missing_data with reason
- // "cache_miss" while cache-memory was configured and available. This indicates the
+ // "cache_memory_miss" while cache-memory was configured and available. This indicates the
// prompt is referencing an incorrect path inside the cache directory.
// Check for items regardless of agentOutputResult.success so that cache-miss signals
// emitted alongside other output are not missed when the agent job also fails.
let hasCacheMissMisconfiguration = false;
if (cacheMemoryEnabled && agentOutputResult.items) {
- const cacheMissItems = agentOutputResult.items.filter(item => item.type === "missing_data" && item.reason === "cache_miss");
+ const cacheMissItems = agentOutputResult.items.filter(item => item.type === "missing_data" && item.reason === "cache_memory_miss");
if (cacheMissItems.length > 0) {
hasCacheMissMisconfiguration = true;
- core.info(`Cache-miss misconfiguration detected: ${cacheMissItems.length} missing_data item(s) with reason "cache_miss" despite cache-memory being available`);
+ core.info(`Cache-miss misconfiguration detected: ${cacheMissItems.length} missing_data item(s) with reason "cache_memory_miss" despite cache-memory being available`);
}
}
diff --git a/actions/setup/md/cache_memory_prompt.md b/actions/setup/md/cache_memory_prompt.md
index 2e2c9c53109..eb1ac9b3ba1 100644
--- a/actions/setup/md/cache_memory_prompt.md
+++ b/actions/setup/md/cache_memory_prompt.md
@@ -1,5 +1,5 @@
__GH_AW_CACHE_DIR____GH_AW_CACHE_DESCRIPTION__
Persistent read/write storage across workflow runs via Actions cache. Last write wins.__GH_AW_ALLOWED_EXTENSIONS__
-If you look for data in the cache and do not find any, call the `missing_data` tool with `reason: "cache_miss"` to signal that the cache does not contain the expected information.
+If you look for data in the cache and do not find any, call the `missing_data` tool with `reason: "cache_memory_miss"` to signal that the cache does not contain the expected information.
diff --git a/actions/setup/md/cache_memory_prompt_multi.md b/actions/setup/md/cache_memory_prompt_multi.md
index bad116c922d..8b2e87b2d8c 100644
--- a/actions/setup/md/cache_memory_prompt_multi.md
+++ b/actions/setup/md/cache_memory_prompt_multi.md
@@ -4,5 +4,5 @@ __GH_AW_CACHE_LIST__
__GH_AW_CACHE_EXAMPLES__
-If you look for data in the cache and do not find any, call the `missing_data` tool with `reason: "cache_miss"` to signal that the cache does not contain the expected information.
+If you look for data in the cache and do not find any, call the `missing_data` tool with `reason: "cache_memory_miss"` to signal that the cache does not contain the expected information.
diff --git a/pkg/workflow/prompts/cache_memory_prompt.md b/pkg/workflow/prompts/cache_memory_prompt.md
index 718e885dbe1..79c9e155752 100644
--- a/pkg/workflow/prompts/cache_memory_prompt.md
+++ b/pkg/workflow/prompts/cache_memory_prompt.md
@@ -9,7 +9,7 @@ You have access to a persistent cache folder at `__CACHE_DIR__` where you can re
- **Last Write Wins**: If multiple processes write to the same file, the last write will be preserved
- **File Share**: Use this as a simple file share - organize files as you see fit
- **Allowed File Types**: Only the following file extensions are allowed: `__ALLOWED_EXTENSIONS__`. Files with other extensions will be rejected during validation.
-- **Cache Miss**: If you look for data in the cache and do not find any, call the `missing_data` tool with `reason: "cache_miss"` to signal that the cache does not contain the expected information.
+- **Cache Miss**: If you look for data in the cache and do not find any, call the `missing_data` tool with `reason: "cache_memory_miss"` to signal that the cache does not contain the expected information.
Examples of what you can store:
- `__CACHE_DIR__notes.txt` - general notes and observations
diff --git a/pkg/workflow/prompts/cache_memory_prompt_multi.md b/pkg/workflow/prompts/cache_memory_prompt_multi.md
index 5e3f0ea5511..86bc8f7adcf 100644
--- a/pkg/workflow/prompts/cache_memory_prompt_multi.md
+++ b/pkg/workflow/prompts/cache_memory_prompt_multi.md
@@ -12,7 +12,7 @@ __CACHE_LIST__
- **Last Write Wins**: If multiple processes write to the same file, the last write will be preserved
- **File Share**: Use these as simple file shares - organize files as you see fit
- **Allowed File Types**: Only the following file extensions are allowed: `__ALLOWED_EXTENSIONS__`. Files with other extensions will be rejected during validation.
-- **Cache Miss**: If you look for data in the cache and do not find any, call the `missing_data` tool with `reason: "cache_miss"` to signal that the cache does not contain the expected information.
+- **Cache Miss**: If you look for data in the cache and do not find any, call the `missing_data` tool with `reason: "cache_memory_miss"` to signal that the cache does not contain the expected information.
Examples of what you can store:
From a7c25351153f9d7cf8592a86cfd9e9fe09c7ae89 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Sun, 26 Apr 2026 00:09:17 +0000
Subject: [PATCH 4/4] fix: add data_type to cache_memory_miss guidance, relax
loadMissingDataMessages filter, add tests
Agent-Logs-Url: https://github.com/github/gh-aw/sessions/cf6a466e-9e09-4ed9-96b0-1cd485d28637
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
---
actions/setup/js/handle_agent_failure.cjs | 7 +-
.../setup/js/handle_agent_failure.test.cjs | 101 ++++++++++++++++++
actions/setup/md/cache_memory_prompt.md | 2 +-
actions/setup/md/cache_memory_prompt_multi.md | 2 +-
pkg/workflow/prompts/cache_memory_prompt.md | 2 +-
.../prompts/cache_memory_prompt_multi.md | 2 +-
6 files changed, 109 insertions(+), 7 deletions(-)
diff --git a/actions/setup/js/handle_agent_failure.cjs b/actions/setup/js/handle_agent_failure.cjs
index 0f3ca557174..b6cbf298d9c 100644
--- a/actions/setup/js/handle_agent_failure.cjs
+++ b/actions/setup/js/handle_agent_failure.cjs
@@ -571,10 +571,10 @@ function loadMissingDataMessages() {
const missingDataMessages = [];
for (const item of agentOutputResult.items) {
if (item.type === "missing_data") {
- // Extract the fields we need
- if (item.data_type && item.reason) {
+ // Accept items with at least a reason; data_type may be absent for cache-miss signals
+ if (item.reason) {
missingDataMessages.push({
- data_type: item.data_type,
+ data_type: item.data_type || "",
reason: item.reason,
context: item.context || null,
alternatives: item.alternatives || null,
@@ -1629,5 +1629,6 @@ module.exports = {
buildReportIncompleteContext,
buildMCPPolicyErrorContext,
buildModelNotSupportedErrorContext,
+ buildMissingDataContext,
getActionFailureIssueExpiresHours,
};
diff --git a/actions/setup/js/handle_agent_failure.test.cjs b/actions/setup/js/handle_agent_failure.test.cjs
index 95335765756..c37b1b36d88 100644
--- a/actions/setup/js/handle_agent_failure.test.cjs
+++ b/actions/setup/js/handle_agent_failure.test.cjs
@@ -1072,4 +1072,105 @@ describe("handle_agent_failure", () => {
expect(result).toContain("gpt-5-mini");
});
});
+
+ // buildMissingDataContext
+ // ──────────────────────────────────────────────────────
+
+ describe("buildMissingDataContext", () => {
+ let buildMissingDataContext;
+ const fs = require("fs");
+ const path = require("path");
+ const os = require("os");
+
+ /** @type {string} */
+ let tmpDir;
+
+ beforeEach(() => {
+ vi.resetModules();
+ tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), "aw-test-missing-data-"));
+ process.env.RUNNER_TEMP = tmpDir;
+ process.env.GH_AW_AGENT_OUTPUT = path.join(tmpDir, "agent_output.json");
+ ({ buildMissingDataContext } = require("./handle_agent_failure.cjs"));
+ });
+
+ afterEach(() => {
+ delete process.env.RUNNER_TEMP;
+ delete process.env.GH_AW_AGENT_OUTPUT;
+ if (fs.existsSync(tmpDir)) {
+ fs.rmSync(tmpDir, { recursive: true, force: true });
+ }
+ });
+
+ it("returns empty string when agent output file does not exist", () => {
+ expect(buildMissingDataContext(false)).toBe("");
+ expect(buildMissingDataContext(true)).toBe("");
+ });
+
+ it("returns empty string when agent output has no missing_data items", () => {
+ fs.writeFileSync(path.join(tmpDir, "agent_output.json"), JSON.stringify({ items: [{ type: "noop", reason: "done" }] }));
+ vi.resetModules();
+ ({ buildMissingDataContext } = require("./handle_agent_failure.cjs"));
+ expect(buildMissingDataContext(false)).toBe("");
+ expect(buildMissingDataContext(true)).toBe("");
+ });
+
+ it("returns missing data context without cache warning when cacheMemoryEnabled is false", () => {
+ fs.writeFileSync(
+ path.join(tmpDir, "agent_output.json"),
+ JSON.stringify({
+ items: [{ type: "missing_data", data_type: "cache_memory", reason: "cache_memory_miss" }],
+ })
+ );
+ vi.resetModules();
+ ({ buildMissingDataContext } = require("./handle_agent_failure.cjs"));
+ const result = buildMissingDataContext(false);
+ expect(result).toContain("Missing Data Reported");
+ expect(result).toContain("cache\\_memory"); // data_type after markdown escaping
+ expect(result).not.toContain("Cache Configuration Problem");
+ });
+
+ it("appends cache configuration warning when cacheMemoryEnabled is true and cache_memory_miss item present", () => {
+ fs.writeFileSync(
+ path.join(tmpDir, "agent_output.json"),
+ JSON.stringify({
+ items: [{ type: "missing_data", data_type: "cache_memory", reason: "cache_memory_miss" }],
+ })
+ );
+ vi.resetModules();
+ ({ buildMissingDataContext } = require("./handle_agent_failure.cjs"));
+ const result = buildMissingDataContext(true);
+ expect(result).toContain("Missing Data Reported");
+ expect(result).toContain("cache_memory_miss");
+ expect(result).toContain("Cache Configuration Problem");
+ });
+
+ it("captures reason-only missing_data items (no data_type) and detects cache miss", () => {
+ // Agents may emit missing_data with only reason (no data_type) — ensure it is still captured
+ fs.writeFileSync(
+ path.join(tmpDir, "agent_output.json"),
+ JSON.stringify({
+ items: [{ type: "missing_data", reason: "cache_memory_miss" }],
+ })
+ );
+ vi.resetModules();
+ ({ buildMissingDataContext } = require("./handle_agent_failure.cjs"));
+ const result = buildMissingDataContext(true);
+ expect(result).toContain("Missing Data Reported");
+ expect(result).toContain("Cache Configuration Problem");
+ });
+
+ it("does not append cache warning for unrelated missing_data reasons when cacheMemoryEnabled is true", () => {
+ fs.writeFileSync(
+ path.join(tmpDir, "agent_output.json"),
+ JSON.stringify({
+ items: [{ type: "missing_data", data_type: "user_data", reason: "not_provided" }],
+ })
+ );
+ vi.resetModules();
+ ({ buildMissingDataContext } = require("./handle_agent_failure.cjs"));
+ const result = buildMissingDataContext(true);
+ expect(result).toContain("Missing Data Reported");
+ expect(result).not.toContain("Cache Configuration Problem");
+ });
+ });
});
diff --git a/actions/setup/md/cache_memory_prompt.md b/actions/setup/md/cache_memory_prompt.md
index eb1ac9b3ba1..a028f6f1cf4 100644
--- a/actions/setup/md/cache_memory_prompt.md
+++ b/actions/setup/md/cache_memory_prompt.md
@@ -1,5 +1,5 @@
__GH_AW_CACHE_DIR____GH_AW_CACHE_DESCRIPTION__
Persistent read/write storage across workflow runs via Actions cache. Last write wins.__GH_AW_ALLOWED_EXTENSIONS__
-If you look for data in the cache and do not find any, call the `missing_data` tool with `reason: "cache_memory_miss"` to signal that the cache does not contain the expected information.
+If you look for data in the cache and do not find any, call the `missing_data` tool with `data_type: "cache_memory"` and `reason: "cache_memory_miss"` to signal that the cache does not contain the expected information.
diff --git a/actions/setup/md/cache_memory_prompt_multi.md b/actions/setup/md/cache_memory_prompt_multi.md
index 8b2e87b2d8c..bd9290d4c55 100644
--- a/actions/setup/md/cache_memory_prompt_multi.md
+++ b/actions/setup/md/cache_memory_prompt_multi.md
@@ -4,5 +4,5 @@ __GH_AW_CACHE_LIST__
__GH_AW_CACHE_EXAMPLES__
-If you look for data in the cache and do not find any, call the `missing_data` tool with `reason: "cache_memory_miss"` to signal that the cache does not contain the expected information.
+If you look for data in the cache and do not find any, call the `missing_data` tool with `data_type: "cache_memory"` and `reason: "cache_memory_miss"` to signal that the cache does not contain the expected information.
diff --git a/pkg/workflow/prompts/cache_memory_prompt.md b/pkg/workflow/prompts/cache_memory_prompt.md
index 79c9e155752..ea5982433ad 100644
--- a/pkg/workflow/prompts/cache_memory_prompt.md
+++ b/pkg/workflow/prompts/cache_memory_prompt.md
@@ -9,7 +9,7 @@ You have access to a persistent cache folder at `__CACHE_DIR__` where you can re
- **Last Write Wins**: If multiple processes write to the same file, the last write will be preserved
- **File Share**: Use this as a simple file share - organize files as you see fit
- **Allowed File Types**: Only the following file extensions are allowed: `__ALLOWED_EXTENSIONS__`. Files with other extensions will be rejected during validation.
-- **Cache Miss**: If you look for data in the cache and do not find any, call the `missing_data` tool with `reason: "cache_memory_miss"` to signal that the cache does not contain the expected information.
+- **Cache Miss**: If you look for data in the cache and do not find any, call the `missing_data` tool with `data_type: "cache_memory"` and `reason: "cache_memory_miss"` to signal that the cache does not contain the expected information.
Examples of what you can store:
- `__CACHE_DIR__notes.txt` - general notes and observations
diff --git a/pkg/workflow/prompts/cache_memory_prompt_multi.md b/pkg/workflow/prompts/cache_memory_prompt_multi.md
index 86bc8f7adcf..e0f5caa9747 100644
--- a/pkg/workflow/prompts/cache_memory_prompt_multi.md
+++ b/pkg/workflow/prompts/cache_memory_prompt_multi.md
@@ -12,7 +12,7 @@ __CACHE_LIST__
- **Last Write Wins**: If multiple processes write to the same file, the last write will be preserved
- **File Share**: Use these as simple file shares - organize files as you see fit
- **Allowed File Types**: Only the following file extensions are allowed: `__ALLOWED_EXTENSIONS__`. Files with other extensions will be rejected during validation.
-- **Cache Miss**: If you look for data in the cache and do not find any, call the `missing_data` tool with `reason: "cache_memory_miss"` to signal that the cache does not contain the expected information.
+- **Cache Miss**: If you look for data in the cache and do not find any, call the `missing_data` tool with `data_type: "cache_memory"` and `reason: "cache_memory_miss"` to signal that the cache does not contain the expected information.
Examples of what you can store: