From bddc744ff7df02649f342367c0032a982deed4e9 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 8 Dec 2025 01:59:59 +0000 Subject: [PATCH 1/3] Initial plan From 5922f0f673218b08f924895cca3543f2d67792ff Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 8 Dec 2025 02:13:27 +0000 Subject: [PATCH 2/3] Skip artifact upload when threat detection is disabled - Modified generateCacheMemorySteps to only upload artifacts when threat detection is enabled - Added if: always() condition to artifact upload when threat detection is enabled - Updated tests to reflect new behavior: no artifacts when detection disabled - All cache-related tests now pass Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> --- .github/workflows/audit-workflows.lock.yml | 1 + .github/workflows/ci-doctor.lock.yml | 1 + .github/workflows/cli-version-checker.lock.yml | 1 + .github/workflows/cloclo.lock.yml | 1 + .github/workflows/close-old-discussions.lock.yml | 1 + .github/workflows/copilot-agent-analysis.lock.yml | 1 + .github/workflows/copilot-pr-nlp-analysis.lock.yml | 1 + .../workflows/copilot-pr-prompt-analysis.lock.yml | 1 + .github/workflows/copilot-session-insights.lock.yml | 1 + .github/workflows/daily-code-metrics.lock.yml | 1 + .../workflows/daily-copilot-token-report.lock.yml | 1 + .github/workflows/daily-doc-updater.lock.yml | 1 + .github/workflows/daily-firewall-report.lock.yml | 1 + .github/workflows/daily-issues-report.lock.yml | 1 + .github/workflows/daily-news.lock.yml | 1 + .github/workflows/daily-performance-summary.lock.yml | 1 + .github/workflows/daily-repo-chronicle.lock.yml | 1 + .github/workflows/deep-report.lock.yml | 1 + .../workflows/developer-docs-consolidator.lock.yml | 1 + .github/workflows/firewall-escape.lock.yml | 5 ----- .../github-mcp-structural-analysis.lock.yml | 1 + .github/workflows/github-mcp-tools-report.lock.yml | 1 + .github/workflows/glossary-maintainer.lock.yml | 1 + .github/workflows/go-fan.lock.yml | 1 + .github/workflows/go-logger.lock.yml | 1 + .github/workflows/grumpy-reviewer.lock.yml | 1 + .github/workflows/instructions-janitor.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 + .github/workflows/pr-nitpick-reviewer.lock.yml | 1 + .../workflows/prompt-clustering-analysis.lock.yml | 1 + .github/workflows/python-data-charts.lock.yml | 1 + .github/workflows/q.lock.yml | 1 + .github/workflows/release.lock.yml | 6 +++--- .../workflows/repository-quality-improver.lock.yml | 1 + .github/workflows/safe-output-health.lock.yml | 1 + .../workflows/schema-consistency-checker.lock.yml | 1 + .github/workflows/scout.lock.yml | 1 + .github/workflows/security-fix-pr.lock.yml | 1 + .github/workflows/smoke-claude.lock.yml | 1 + .github/workflows/smoke-codex.lock.yml | 1 + .github/workflows/smoke-copilot-no-firewall.lock.yml | 1 + .github/workflows/smoke-copilot-playwright.lock.yml | 1 + .github/workflows/smoke-copilot.lock.yml | 1 + .github/workflows/smoke-detector.lock.yml | 1 + .github/workflows/spec-kit-executor.lock.yml | 1 + .github/workflows/stale-repo-identifier.lock.yml | 1 + .github/workflows/static-analysis-report.lock.yml | 1 + .github/workflows/super-linter.lock.yml | 1 + .github/workflows/technical-doc-writer.lock.yml | 1 + .github/workflows/unbloat-docs.lock.yml | 1 + .github/workflows/weekly-issue-summary.lock.yml | 1 + pkg/workflow/cache.go | 5 ++++- pkg/workflow/cache_memory_integration_test.go | 11 +++++------ pkg/workflow/cache_memory_restore_only_test.go | 10 ++++++---- pkg/workflow/cache_memory_threat_detection_test.go | 12 +++++++----- 59 files changed, 78 insertions(+), 24 deletions(-) diff --git a/.github/workflows/audit-workflows.lock.yml b/.github/workflows/audit-workflows.lock.yml index 93fdc21e074..75042c3eab7 100644 --- a/.github/workflows/audit-workflows.lock.yml +++ b/.github/workflows/audit-workflows.lock.yml @@ -1054,6 +1054,7 @@ jobs: trending- - name: Upload cache-memory data as artifact uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() with: name: cache-memory path: /tmp/gh-aw/cache-memory diff --git a/.github/workflows/ci-doctor.lock.yml b/.github/workflows/ci-doctor.lock.yml index 7964e672051..e80c76d82bc 100644 --- a/.github/workflows/ci-doctor.lock.yml +++ b/.github/workflows/ci-doctor.lock.yml @@ -1040,6 +1040,7 @@ jobs: memory- - name: Upload cache-memory data as artifact uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() with: name: cache-memory path: /tmp/gh-aw/cache-memory diff --git a/.github/workflows/cli-version-checker.lock.yml b/.github/workflows/cli-version-checker.lock.yml index 44b1dbe8464..43720921723 100644 --- a/.github/workflows/cli-version-checker.lock.yml +++ b/.github/workflows/cli-version-checker.lock.yml @@ -563,6 +563,7 @@ jobs: memory- - name: Upload cache-memory data as artifact uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() with: name: cache-memory path: /tmp/gh-aw/cache-memory diff --git a/.github/workflows/cloclo.lock.yml b/.github/workflows/cloclo.lock.yml index 99de4ca255c..550f8cbd7d8 100644 --- a/.github/workflows/cloclo.lock.yml +++ b/.github/workflows/cloclo.lock.yml @@ -1937,6 +1937,7 @@ jobs: cloclo- - name: Upload cache-memory data as artifact uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() with: name: cache-memory path: /tmp/gh-aw/cache-memory diff --git a/.github/workflows/close-old-discussions.lock.yml b/.github/workflows/close-old-discussions.lock.yml index a56895164db..2f7cd68c95d 100644 --- a/.github/workflows/close-old-discussions.lock.yml +++ b/.github/workflows/close-old-discussions.lock.yml @@ -582,6 +582,7 @@ jobs: discussions- - name: Upload cache-memory data as artifact uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() with: name: cache-memory path: /tmp/gh-aw/cache-memory diff --git a/.github/workflows/copilot-agent-analysis.lock.yml b/.github/workflows/copilot-agent-analysis.lock.yml index c0008a01d16..14b8c946bed 100644 --- a/.github/workflows/copilot-agent-analysis.lock.yml +++ b/.github/workflows/copilot-agent-analysis.lock.yml @@ -892,6 +892,7 @@ jobs: copilot- - name: Upload cache-memory data as artifact uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() with: name: cache-memory path: /tmp/gh-aw/cache-memory diff --git a/.github/workflows/copilot-pr-nlp-analysis.lock.yml b/.github/workflows/copilot-pr-nlp-analysis.lock.yml index c620951e85f..029ac12b751 100644 --- a/.github/workflows/copilot-pr-nlp-analysis.lock.yml +++ b/.github/workflows/copilot-pr-nlp-analysis.lock.yml @@ -1182,6 +1182,7 @@ jobs: copilot- - name: Upload cache-memory data as artifact uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() with: name: cache-memory path: /tmp/gh-aw/cache-memory diff --git a/.github/workflows/copilot-pr-prompt-analysis.lock.yml b/.github/workflows/copilot-pr-prompt-analysis.lock.yml index dba48b40a00..ed4d4ba396d 100644 --- a/.github/workflows/copilot-pr-prompt-analysis.lock.yml +++ b/.github/workflows/copilot-pr-prompt-analysis.lock.yml @@ -708,6 +708,7 @@ jobs: copilot- - name: Upload cache-memory data as artifact uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() with: name: cache-memory path: /tmp/gh-aw/cache-memory diff --git a/.github/workflows/copilot-session-insights.lock.yml b/.github/workflows/copilot-session-insights.lock.yml index 472092b661c..7ae3b389245 100644 --- a/.github/workflows/copilot-session-insights.lock.yml +++ b/.github/workflows/copilot-session-insights.lock.yml @@ -1596,6 +1596,7 @@ jobs: memory- - name: Upload cache-memory data as artifact uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() with: name: cache-memory path: /tmp/gh-aw/cache-memory diff --git a/.github/workflows/daily-code-metrics.lock.yml b/.github/workflows/daily-code-metrics.lock.yml index 506a5ecffc7..523aa2695ae 100644 --- a/.github/workflows/daily-code-metrics.lock.yml +++ b/.github/workflows/daily-code-metrics.lock.yml @@ -1124,6 +1124,7 @@ jobs: trending- - name: Upload cache-memory data as artifact uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() with: name: cache-memory path: /tmp/gh-aw/cache-memory diff --git a/.github/workflows/daily-copilot-token-report.lock.yml b/.github/workflows/daily-copilot-token-report.lock.yml index de7947700bb..ba0e17b9536 100644 --- a/.github/workflows/daily-copilot-token-report.lock.yml +++ b/.github/workflows/daily-copilot-token-report.lock.yml @@ -1250,6 +1250,7 @@ jobs: memory- - name: Upload cache-memory data as artifact uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() with: name: cache-memory path: /tmp/gh-aw/cache-memory diff --git a/.github/workflows/daily-doc-updater.lock.yml b/.github/workflows/daily-doc-updater.lock.yml index bc3d277f5a1..e0e6b4a5abb 100644 --- a/.github/workflows/daily-doc-updater.lock.yml +++ b/.github/workflows/daily-doc-updater.lock.yml @@ -426,6 +426,7 @@ jobs: memory- - name: Upload cache-memory data as artifact uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() with: name: cache-memory path: /tmp/gh-aw/cache-memory diff --git a/.github/workflows/daily-firewall-report.lock.yml b/.github/workflows/daily-firewall-report.lock.yml index 6db91fba91a..280c30e3a1b 100644 --- a/.github/workflows/daily-firewall-report.lock.yml +++ b/.github/workflows/daily-firewall-report.lock.yml @@ -922,6 +922,7 @@ jobs: trending- - name: Upload cache-memory data as artifact uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() with: name: cache-memory path: /tmp/gh-aw/cache-memory diff --git a/.github/workflows/daily-issues-report.lock.yml b/.github/workflows/daily-issues-report.lock.yml index 17886667cb0..3847e18bae3 100644 --- a/.github/workflows/daily-issues-report.lock.yml +++ b/.github/workflows/daily-issues-report.lock.yml @@ -1295,6 +1295,7 @@ jobs: memory- - name: Upload cache-memory data as artifact uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() with: name: cache-memory path: /tmp/gh-aw/cache-memory diff --git a/.github/workflows/daily-news.lock.yml b/.github/workflows/daily-news.lock.yml index b12181987d4..e59d135e211 100644 --- a/.github/workflows/daily-news.lock.yml +++ b/.github/workflows/daily-news.lock.yml @@ -1268,6 +1268,7 @@ jobs: memory- - name: Upload cache-memory data as artifact uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() with: name: cache-memory path: /tmp/gh-aw/cache-memory diff --git a/.github/workflows/daily-performance-summary.lock.yml b/.github/workflows/daily-performance-summary.lock.yml index c444aeafe85..d17b44af224 100644 --- a/.github/workflows/daily-performance-summary.lock.yml +++ b/.github/workflows/daily-performance-summary.lock.yml @@ -1057,6 +1057,7 @@ jobs: trending- - name: Upload cache-memory data as artifact uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() with: name: cache-memory path: /tmp/gh-aw/cache-memory diff --git a/.github/workflows/daily-repo-chronicle.lock.yml b/.github/workflows/daily-repo-chronicle.lock.yml index 558c6abbce0..ce05f4fef71 100644 --- a/.github/workflows/daily-repo-chronicle.lock.yml +++ b/.github/workflows/daily-repo-chronicle.lock.yml @@ -954,6 +954,7 @@ jobs: memory- - name: Upload cache-memory data as artifact uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() with: name: cache-memory path: /tmp/gh-aw/cache-memory diff --git a/.github/workflows/deep-report.lock.yml b/.github/workflows/deep-report.lock.yml index 1d05a2be957..05cd0465abe 100644 --- a/.github/workflows/deep-report.lock.yml +++ b/.github/workflows/deep-report.lock.yml @@ -805,6 +805,7 @@ jobs: weekly- - name: Upload cache-memory data as artifact uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() with: name: cache-memory path: /tmp/gh-aw/cache-memory diff --git a/.github/workflows/developer-docs-consolidator.lock.yml b/.github/workflows/developer-docs-consolidator.lock.yml index 21a3c17affb..6bd1416714f 100644 --- a/.github/workflows/developer-docs-consolidator.lock.yml +++ b/.github/workflows/developer-docs-consolidator.lock.yml @@ -950,6 +950,7 @@ jobs: developer- - name: Upload cache-memory data as artifact uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() with: name: cache-memory path: /tmp/gh-aw/cache-memory diff --git a/.github/workflows/firewall-escape.lock.yml b/.github/workflows/firewall-escape.lock.yml index 52191bc5753..da8764ed7d2 100644 --- a/.github/workflows/firewall-escape.lock.yml +++ b/.github/workflows/firewall-escape.lock.yml @@ -431,11 +431,6 @@ jobs: restore-keys: | memory-${{ github.workflow }}- memory- - - name: Upload cache-memory data as artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 - with: - name: cache-memory - path: /tmp/gh-aw/cache-memory - name: Configure Git credentials env: REPO_NAME: ${{ github.repository }} diff --git a/.github/workflows/github-mcp-structural-analysis.lock.yml b/.github/workflows/github-mcp-structural-analysis.lock.yml index df0781bb8c0..32c630dc699 100644 --- a/.github/workflows/github-mcp-structural-analysis.lock.yml +++ b/.github/workflows/github-mcp-structural-analysis.lock.yml @@ -953,6 +953,7 @@ jobs: memory- - name: Upload cache-memory data as artifact uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() with: name: cache-memory path: /tmp/gh-aw/cache-memory diff --git a/.github/workflows/github-mcp-tools-report.lock.yml b/.github/workflows/github-mcp-tools-report.lock.yml index f0da6f97e9a..72a39c2fcfc 100644 --- a/.github/workflows/github-mcp-tools-report.lock.yml +++ b/.github/workflows/github-mcp-tools-report.lock.yml @@ -805,6 +805,7 @@ jobs: memory- - name: Upload cache-memory data as artifact uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() with: name: cache-memory path: /tmp/gh-aw/cache-memory diff --git a/.github/workflows/glossary-maintainer.lock.yml b/.github/workflows/glossary-maintainer.lock.yml index 05e91528f6c..b249f2c898c 100644 --- a/.github/workflows/glossary-maintainer.lock.yml +++ b/.github/workflows/glossary-maintainer.lock.yml @@ -893,6 +893,7 @@ jobs: memory- - name: Upload cache-memory data as artifact uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() with: name: cache-memory path: /tmp/gh-aw/cache-memory diff --git a/.github/workflows/go-fan.lock.yml b/.github/workflows/go-fan.lock.yml index f3c3b73d5d1..63a80c79b8c 100644 --- a/.github/workflows/go-fan.lock.yml +++ b/.github/workflows/go-fan.lock.yml @@ -638,6 +638,7 @@ jobs: memory- - name: Upload cache-memory data as artifact uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() with: name: cache-memory path: /tmp/gh-aw/cache-memory diff --git a/.github/workflows/go-logger.lock.yml b/.github/workflows/go-logger.lock.yml index da083c2fe6b..bda4b38ad0b 100644 --- a/.github/workflows/go-logger.lock.yml +++ b/.github/workflows/go-logger.lock.yml @@ -554,6 +554,7 @@ jobs: memory- - name: Upload cache-memory data as artifact uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() with: name: cache-memory path: /tmp/gh-aw/cache-memory diff --git a/.github/workflows/grumpy-reviewer.lock.yml b/.github/workflows/grumpy-reviewer.lock.yml index 77baa1fa583..7570504ddfa 100644 --- a/.github/workflows/grumpy-reviewer.lock.yml +++ b/.github/workflows/grumpy-reviewer.lock.yml @@ -1738,6 +1738,7 @@ jobs: memory- - name: Upload cache-memory data as artifact uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() with: name: cache-memory path: /tmp/gh-aw/cache-memory diff --git a/.github/workflows/instructions-janitor.lock.yml b/.github/workflows/instructions-janitor.lock.yml index 108dcced98d..be958e7b311 100644 --- a/.github/workflows/instructions-janitor.lock.yml +++ b/.github/workflows/instructions-janitor.lock.yml @@ -423,6 +423,7 @@ jobs: memory- - name: Upload cache-memory data as artifact uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() with: name: cache-memory path: /tmp/gh-aw/cache-memory diff --git a/.github/workflows/lockfile-stats.lock.yml b/.github/workflows/lockfile-stats.lock.yml index 70077cde259..83dcc8db172 100644 --- a/.github/workflows/lockfile-stats.lock.yml +++ b/.github/workflows/lockfile-stats.lock.yml @@ -658,6 +658,7 @@ jobs: memory- - name: Upload cache-memory data as artifact uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() with: name: cache-memory path: /tmp/gh-aw/cache-memory diff --git a/.github/workflows/mcp-inspector.lock.yml b/.github/workflows/mcp-inspector.lock.yml index e40bb58ee6c..c7ca399d43a 100644 --- a/.github/workflows/mcp-inspector.lock.yml +++ b/.github/workflows/mcp-inspector.lock.yml @@ -593,6 +593,7 @@ jobs: memory- - name: Upload cache-memory data as artifact uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() with: name: cache-memory path: /tmp/gh-aw/cache-memory diff --git a/.github/workflows/org-health-report.lock.yml b/.github/workflows/org-health-report.lock.yml index be2a04f7ac4..883c833cf60 100644 --- a/.github/workflows/org-health-report.lock.yml +++ b/.github/workflows/org-health-report.lock.yml @@ -1162,6 +1162,7 @@ jobs: memory- - name: Upload cache-memory data as artifact uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() with: name: cache-memory path: /tmp/gh-aw/cache-memory diff --git a/.github/workflows/pdf-summary.lock.yml b/.github/workflows/pdf-summary.lock.yml index 63c1ad78441..9ada19d3c79 100644 --- a/.github/workflows/pdf-summary.lock.yml +++ b/.github/workflows/pdf-summary.lock.yml @@ -1798,6 +1798,7 @@ jobs: memory- - name: Upload cache-memory data as artifact uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() with: name: cache-memory path: /tmp/gh-aw/cache-memory diff --git a/.github/workflows/poem-bot.lock.yml b/.github/workflows/poem-bot.lock.yml index 1c0da1a1fec..54ae628c25c 100644 --- a/.github/workflows/poem-bot.lock.yml +++ b/.github/workflows/poem-bot.lock.yml @@ -2399,6 +2399,7 @@ jobs: poem- - name: Upload cache-memory data as artifact uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() with: name: cache-memory path: /tmp/gh-aw/cache-memory diff --git a/.github/workflows/pr-nitpick-reviewer.lock.yml b/.github/workflows/pr-nitpick-reviewer.lock.yml index 272f0080a18..c769a231f14 100644 --- a/.github/workflows/pr-nitpick-reviewer.lock.yml +++ b/.github/workflows/pr-nitpick-reviewer.lock.yml @@ -1722,6 +1722,7 @@ jobs: memory- - name: Upload cache-memory data as artifact uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() with: name: cache-memory path: /tmp/gh-aw/cache-memory diff --git a/.github/workflows/prompt-clustering-analysis.lock.yml b/.github/workflows/prompt-clustering-analysis.lock.yml index 1c9a54f5032..569bb82d0bc 100644 --- a/.github/workflows/prompt-clustering-analysis.lock.yml +++ b/.github/workflows/prompt-clustering-analysis.lock.yml @@ -1344,6 +1344,7 @@ jobs: trending- - name: Upload cache-memory data as artifact uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() with: name: cache-memory path: /tmp/gh-aw/cache-memory diff --git a/.github/workflows/python-data-charts.lock.yml b/.github/workflows/python-data-charts.lock.yml index 63d736f8025..77c4bc5e15f 100644 --- a/.github/workflows/python-data-charts.lock.yml +++ b/.github/workflows/python-data-charts.lock.yml @@ -1248,6 +1248,7 @@ jobs: memory- - name: Upload cache-memory data as artifact uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() with: name: cache-memory path: /tmp/gh-aw/cache-memory diff --git a/.github/workflows/q.lock.yml b/.github/workflows/q.lock.yml index 616908cc13d..d42658fbe1d 100644 --- a/.github/workflows/q.lock.yml +++ b/.github/workflows/q.lock.yml @@ -2054,6 +2054,7 @@ jobs: memory- - name: Upload cache-memory data as artifact uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() with: name: cache-memory path: /tmp/gh-aw/cache-memory diff --git a/.github/workflows/release.lock.yml b/.github/workflows/release.lock.yml index 25f1d66a818..adc22390976 100644 --- a/.github/workflows/release.lock.yml +++ b/.github/workflows/release.lock.yml @@ -6209,19 +6209,19 @@ jobs: - name: Download Go modules run: go mod download - name: Generate SBOM (SPDX format) - uses: anchore/sbom-action@fbfd9c6c189226748411491745178e0c2017392d # v0 + uses: anchore/sbom-action@fbfd9c6c189226748411491745178e0c2017392d # v0.20.10 with: artifact-name: sbom.spdx.json format: spdx-json output-file: sbom.spdx.json - name: Generate SBOM (CycloneDX format) - uses: anchore/sbom-action@fbfd9c6c189226748411491745178e0c2017392d # v0 + uses: anchore/sbom-action@fbfd9c6c189226748411491745178e0c2017392d # v0.20.10 with: artifact-name: sbom.cdx.json format: cyclonedx-json output-file: sbom.cdx.json - name: Upload SBOM artifacts - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 with: name: sbom-artifacts path: | diff --git a/.github/workflows/repository-quality-improver.lock.yml b/.github/workflows/repository-quality-improver.lock.yml index 46346ecd6c4..721fbc1dc5d 100644 --- a/.github/workflows/repository-quality-improver.lock.yml +++ b/.github/workflows/repository-quality-improver.lock.yml @@ -878,6 +878,7 @@ jobs: quality- - name: Upload cache-memory data as artifact (focus-areas) uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() with: name: cache-memory-focus-areas path: /tmp/gh-aw/cache-memory-focus-areas diff --git a/.github/workflows/safe-output-health.lock.yml b/.github/workflows/safe-output-health.lock.yml index b7e9185399f..f52f3f887e2 100644 --- a/.github/workflows/safe-output-health.lock.yml +++ b/.github/workflows/safe-output-health.lock.yml @@ -783,6 +783,7 @@ jobs: memory- - name: Upload cache-memory data as artifact uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() with: name: cache-memory path: /tmp/gh-aw/cache-memory diff --git a/.github/workflows/schema-consistency-checker.lock.yml b/.github/workflows/schema-consistency-checker.lock.yml index bc2524a6d43..52d6a2edbca 100644 --- a/.github/workflows/schema-consistency-checker.lock.yml +++ b/.github/workflows/schema-consistency-checker.lock.yml @@ -672,6 +672,7 @@ jobs: schema- - name: Upload cache-memory data as artifact uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() with: name: cache-memory path: /tmp/gh-aw/cache-memory diff --git a/.github/workflows/scout.lock.yml b/.github/workflows/scout.lock.yml index fe82319004e..1a852062815 100644 --- a/.github/workflows/scout.lock.yml +++ b/.github/workflows/scout.lock.yml @@ -1999,6 +1999,7 @@ jobs: memory- - name: Upload cache-memory data as artifact uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() with: name: cache-memory path: /tmp/gh-aw/cache-memory diff --git a/.github/workflows/security-fix-pr.lock.yml b/.github/workflows/security-fix-pr.lock.yml index 472ee4f6554..2a23895ee07 100644 --- a/.github/workflows/security-fix-pr.lock.yml +++ b/.github/workflows/security-fix-pr.lock.yml @@ -400,6 +400,7 @@ jobs: memory- - name: Upload cache-memory data as artifact uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() with: name: cache-memory path: /tmp/gh-aw/cache-memory diff --git a/.github/workflows/smoke-claude.lock.yml b/.github/workflows/smoke-claude.lock.yml index b9be9c1bee7..6f3a8286b3d 100644 --- a/.github/workflows/smoke-claude.lock.yml +++ b/.github/workflows/smoke-claude.lock.yml @@ -1999,6 +1999,7 @@ jobs: memory- - name: Upload cache-memory data as artifact uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() with: name: cache-memory path: /tmp/gh-aw/cache-memory diff --git a/.github/workflows/smoke-codex.lock.yml b/.github/workflows/smoke-codex.lock.yml index e7e8d02d2ed..0cb49148776 100644 --- a/.github/workflows/smoke-codex.lock.yml +++ b/.github/workflows/smoke-codex.lock.yml @@ -1878,6 +1878,7 @@ jobs: memory- - name: Upload cache-memory data as artifact uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() with: name: cache-memory path: /tmp/gh-aw/cache-memory diff --git a/.github/workflows/smoke-copilot-no-firewall.lock.yml b/.github/workflows/smoke-copilot-no-firewall.lock.yml index 9cfdf4a7b21..05e116a23ff 100644 --- a/.github/workflows/smoke-copilot-no-firewall.lock.yml +++ b/.github/workflows/smoke-copilot-no-firewall.lock.yml @@ -1912,6 +1912,7 @@ jobs: memory- - name: Upload cache-memory data as artifact uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() with: name: cache-memory path: /tmp/gh-aw/cache-memory diff --git a/.github/workflows/smoke-copilot-playwright.lock.yml b/.github/workflows/smoke-copilot-playwright.lock.yml index 78c5b4f3a1c..574b9ea5f0e 100644 --- a/.github/workflows/smoke-copilot-playwright.lock.yml +++ b/.github/workflows/smoke-copilot-playwright.lock.yml @@ -1964,6 +1964,7 @@ jobs: memory- - name: Upload cache-memory data as artifact uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() with: name: cache-memory path: /tmp/gh-aw/cache-memory diff --git a/.github/workflows/smoke-copilot.lock.yml b/.github/workflows/smoke-copilot.lock.yml index 813fb7eec73..f55751112f1 100644 --- a/.github/workflows/smoke-copilot.lock.yml +++ b/.github/workflows/smoke-copilot.lock.yml @@ -1880,6 +1880,7 @@ jobs: memory- - name: Upload cache-memory data as artifact uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() with: name: cache-memory path: /tmp/gh-aw/cache-memory diff --git a/.github/workflows/smoke-detector.lock.yml b/.github/workflows/smoke-detector.lock.yml index 0da6f73ce33..c5aaacd9ecd 100644 --- a/.github/workflows/smoke-detector.lock.yml +++ b/.github/workflows/smoke-detector.lock.yml @@ -1648,6 +1648,7 @@ jobs: memory- - name: Upload cache-memory data as artifact uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() with: name: cache-memory path: /tmp/gh-aw/cache-memory diff --git a/.github/workflows/spec-kit-executor.lock.yml b/.github/workflows/spec-kit-executor.lock.yml index 387b02301b0..9b360c68d7f 100644 --- a/.github/workflows/spec-kit-executor.lock.yml +++ b/.github/workflows/spec-kit-executor.lock.yml @@ -492,6 +492,7 @@ jobs: memory- - name: Upload cache-memory data as artifact uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() with: name: cache-memory path: /tmp/gh-aw/cache-memory diff --git a/.github/workflows/stale-repo-identifier.lock.yml b/.github/workflows/stale-repo-identifier.lock.yml index eca4d7e2104..8210aa22866 100644 --- a/.github/workflows/stale-repo-identifier.lock.yml +++ b/.github/workflows/stale-repo-identifier.lock.yml @@ -1231,6 +1231,7 @@ jobs: trending- - name: Upload cache-memory data as artifact uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() with: name: cache-memory path: /tmp/gh-aw/cache-memory diff --git a/.github/workflows/static-analysis-report.lock.yml b/.github/workflows/static-analysis-report.lock.yml index 610da52420f..8adff04702f 100644 --- a/.github/workflows/static-analysis-report.lock.yml +++ b/.github/workflows/static-analysis-report.lock.yml @@ -692,6 +692,7 @@ jobs: memory- - name: Upload cache-memory data as artifact uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() with: name: cache-memory path: /tmp/gh-aw/cache-memory diff --git a/.github/workflows/super-linter.lock.yml b/.github/workflows/super-linter.lock.yml index a58025ce81d..2010ca830e3 100644 --- a/.github/workflows/super-linter.lock.yml +++ b/.github/workflows/super-linter.lock.yml @@ -512,6 +512,7 @@ jobs: memory- - name: Upload cache-memory data as artifact uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() with: name: cache-memory path: /tmp/gh-aw/cache-memory diff --git a/.github/workflows/technical-doc-writer.lock.yml b/.github/workflows/technical-doc-writer.lock.yml index 95c3c4efc0c..27192083d4f 100644 --- a/.github/workflows/technical-doc-writer.lock.yml +++ b/.github/workflows/technical-doc-writer.lock.yml @@ -1319,6 +1319,7 @@ jobs: memory- - name: Upload cache-memory data as artifact uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() with: name: cache-memory path: /tmp/gh-aw/cache-memory diff --git a/.github/workflows/unbloat-docs.lock.yml b/.github/workflows/unbloat-docs.lock.yml index c9f45dfd5ce..32fbafa8ea1 100644 --- a/.github/workflows/unbloat-docs.lock.yml +++ b/.github/workflows/unbloat-docs.lock.yml @@ -1674,6 +1674,7 @@ jobs: memory- - name: Upload cache-memory data as artifact uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() with: name: cache-memory path: /tmp/gh-aw/cache-memory diff --git a/.github/workflows/weekly-issue-summary.lock.yml b/.github/workflows/weekly-issue-summary.lock.yml index 6bd2d3eda60..f0f9e014cde 100644 --- a/.github/workflows/weekly-issue-summary.lock.yml +++ b/.github/workflows/weekly-issue-summary.lock.yml @@ -894,6 +894,7 @@ jobs: memory- - name: Upload cache-memory data as artifact uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() with: name: cache-memory path: /tmp/gh-aw/cache-memory diff --git a/pkg/workflow/cache.go b/pkg/workflow/cache.go index 903ff1e3591..22874fd6896 100644 --- a/pkg/workflow/cache.go +++ b/pkg/workflow/cache.go @@ -406,13 +406,16 @@ func generateCacheMemorySteps(builder *strings.Builder, data *WorkflowData) { } // Add upload-artifact step for each cache (runs always), but skip for restore-only caches - if !cache.RestoreOnly { + // Only upload artifacts when threat detection is enabled (needed for update_cache_memory job) + // When threat detection is disabled, cache is saved automatically by actions/cache post-action + if !cache.RestoreOnly && threatDetectionEnabled { if useBackwardCompatiblePaths { builder.WriteString(" - name: Upload cache-memory data as artifact\n") } else { builder.WriteString(fmt.Sprintf(" - name: Upload cache-memory data as artifact (%s)\n", cache.ID)) } builder.WriteString(fmt.Sprintf(" uses: %s\n", GetActionPin("actions/upload-artifact"))) + builder.WriteString(" if: always()\n") builder.WriteString(" with:\n") // Always use the new artifact name and path format if useBackwardCompatiblePaths { diff --git a/pkg/workflow/cache_memory_integration_test.go b/pkg/workflow/cache_memory_integration_test.go index f9f81ed1006..f5f24ca8334 100644 --- a/pkg/workflow/cache_memory_integration_test.go +++ b/pkg/workflow/cache_memory_integration_test.go @@ -38,12 +38,12 @@ tools: "uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830", "key: memory-${{ github.workflow }}-${{ github.run_id }}", "path: /tmp/gh-aw/cache-memory", - "- name: Upload cache-memory data as artifact", - "name: cache-memory", "## Cache Folder Available", "You have access to a persistent cache folder at `/tmp/gh-aw/cache-memory/`", }, notExpectedInLock: []string{ + // Should NOT upload artifact when detection is disabled + "- name: Upload cache-memory data as artifact", "## Cache Folders Available", "cache-memory/default/", "cache-memory/session/", @@ -75,20 +75,19 @@ tools: "- name: Cache memory file share data (default)", "key: memory-default-${{ github.run_id }}", "path: /tmp/gh-aw/cache-memory", - "- name: Upload cache-memory data as artifact (default)", - "name: cache-memory-default", "- name: Create cache-memory directory (session)", "mkdir -p /tmp/gh-aw/cache-memory-session", "- name: Cache memory file share data (session)", "key: memory-session-${{ github.run_id }}", "path: /tmp/gh-aw/cache-memory-session", - "- name: Upload cache-memory data as artifact (session)", - "name: cache-memory-session", "## Cache Folders Available", "- **default**: `/tmp/gh-aw/cache-memory/`", "- **session**: `/tmp/gh-aw/cache-memory-session/`", }, notExpectedInLock: []string{ + // Should NOT upload artifacts when detection is disabled + "- name: Upload cache-memory data as artifact (default)", + "- name: Upload cache-memory data as artifact (session)", "## Cache Folder Available", }, }, diff --git a/pkg/workflow/cache_memory_restore_only_test.go b/pkg/workflow/cache_memory_restore_only_test.go index 485846968f0..93f309c9226 100644 --- a/pkg/workflow/cache_memory_restore_only_test.go +++ b/pkg/workflow/cache_memory_restore_only_test.go @@ -63,13 +63,14 @@ tools: "- name: Cache memory file share data (default)", "actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830", "key: memory-default-${{ github.run_id }}", - "- name: Upload cache-memory data as artifact (default)", - "name: cache-memory-default", "- name: Restore cache memory file share data (readonly)", "actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830", "key: memory-readonly-${{ github.run_id }}", }, notExpectedInLock: []string{ + // Should NOT upload artifacts when detection is disabled + "- name: Upload cache-memory data as artifact (default)", + "name: cache-memory-default", "- name: Upload cache-memory data as artifact (readonly)", "name: cache-memory-readonly", }, @@ -99,13 +100,14 @@ tools: expectedInLock: []string{ "- name: Cache memory file share data (writeable)", "actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830", - "- name: Upload cache-memory data as artifact (writeable)", - "name: cache-memory-writeable", "- name: Restore cache memory file share data (readonly1)", "actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830", "- name: Restore cache memory file share data (readonly2)", }, notExpectedInLock: []string{ + // Should NOT upload artifacts when detection is disabled + "- name: Upload cache-memory data as artifact (writeable)", + "name: cache-memory-writeable", "- name: Upload cache-memory data as artifact (readonly1)", "- name: Upload cache-memory data as artifact (readonly2)", "name: cache-memory-readonly1", diff --git a/pkg/workflow/cache_memory_threat_detection_test.go b/pkg/workflow/cache_memory_threat_detection_test.go index 92dd7482e01..761776f1af2 100644 --- a/pkg/workflow/cache_memory_threat_detection_test.go +++ b/pkg/workflow/cache_memory_threat_detection_test.go @@ -42,8 +42,10 @@ Test workflow with cache-memory and threat detection enabled.`, "- name: Restore cache memory file share data", "uses: actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830", "key: memory-${{ github.workflow }}-${{ github.run_id }}", - // Should still upload artifact + // Should upload artifact with if: always() "- name: Upload cache-memory data as artifact", + "uses: actions/upload-artifact@", + "if: always()", "name: cache-memory", // Should have update_cache_memory job "update_cache_memory:", @@ -81,11 +83,10 @@ Test workflow with cache-memory but no threat detection.`, "- name: Cache memory file share data", "uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830", "key: memory-${{ github.workflow }}-${{ github.run_id }}", - // Should still upload artifact - "- name: Upload cache-memory data as artifact", - "name: cache-memory", }, notExpectedInLock: []string{ + // Should NOT upload artifact when detection is disabled + "- name: Upload cache-memory data as artifact", // Should NOT have update_cache_memory job "update_cache_memory:", // Should NOT use restore action @@ -123,8 +124,9 @@ Test workflow with multiple cache-memory and threat detection enabled.`, "key: memory-default-${{ github.run_id }}", "- name: Restore cache memory file share data (session)", "key: memory-session-${{ github.run_id }}", - // Should upload both artifacts + // Should upload both artifacts with if: always() "- name: Upload cache-memory data as artifact (default)", + "if: always()", "name: cache-memory-default", "- name: Upload cache-memory data as artifact (session)", "name: cache-memory-session", From ccf34437d7e6ff98458a7b5bb230421760beb18d Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 8 Dec 2025 02:43:43 +0000 Subject: [PATCH 3/3] Move cache-memory artifact upload after agent execution - Split generateCacheMemorySteps into setup and artifact upload functions - Cache restore/setup happens early (before agent execution) - Artifact upload now happens after agent execution (after Upload Agent Stdio) - This ensures artifacts are uploaded after the agent has finished modifying the cache Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> --- .github/workflows/audit-workflows.lock.yml | 12 +-- .github/workflows/ci-doctor.lock.yml | 12 +-- .../workflows/cli-version-checker.lock.yml | 12 +-- .github/workflows/cloclo.lock.yml | 12 +-- .../workflows/close-old-discussions.lock.yml | 12 +-- .../workflows/copilot-agent-analysis.lock.yml | 12 +-- .../copilot-pr-nlp-analysis.lock.yml | 12 +-- .../copilot-pr-prompt-analysis.lock.yml | 12 +-- .../copilot-session-insights.lock.yml | 12 +-- .github/workflows/daily-code-metrics.lock.yml | 12 +-- .../daily-copilot-token-report.lock.yml | 12 +-- .github/workflows/daily-doc-updater.lock.yml | 12 +-- .../workflows/daily-firewall-report.lock.yml | 12 +-- .../workflows/daily-issues-report.lock.yml | 12 +-- .github/workflows/daily-news.lock.yml | 12 +-- .../daily-performance-summary.lock.yml | 12 +-- .../workflows/daily-repo-chronicle.lock.yml | 12 +-- .github/workflows/deep-report.lock.yml | 12 +-- .../developer-docs-consolidator.lock.yml | 12 +-- .../github-mcp-structural-analysis.lock.yml | 12 +-- .../github-mcp-tools-report.lock.yml | 12 +-- .../workflows/glossary-maintainer.lock.yml | 12 +-- .github/workflows/go-fan.lock.yml | 12 +-- .github/workflows/go-logger.lock.yml | 12 +-- .github/workflows/grumpy-reviewer.lock.yml | 12 +-- .../workflows/instructions-janitor.lock.yml | 12 +-- .github/workflows/lockfile-stats.lock.yml | 12 +-- .github/workflows/mcp-inspector.lock.yml | 12 +-- .github/workflows/org-health-report.lock.yml | 12 +-- .github/workflows/pdf-summary.lock.yml | 12 +-- .github/workflows/poem-bot.lock.yml | 14 ++-- .../workflows/pr-nitpick-reviewer.lock.yml | 12 +-- .../prompt-clustering-analysis.lock.yml | 12 +-- .github/workflows/python-data-charts.lock.yml | 12 +-- .github/workflows/q.lock.yml | 12 +-- .github/workflows/release.lock.yml | 6 +- .../repository-quality-improver.lock.yml | 12 +-- .github/workflows/safe-output-health.lock.yml | 12 +-- .../schema-consistency-checker.lock.yml | 12 +-- .github/workflows/scout.lock.yml | 12 +-- .github/workflows/security-fix-pr.lock.yml | 12 +-- .github/workflows/smoke-claude.lock.yml | 12 +-- .github/workflows/smoke-codex.lock.yml | 12 +-- .../smoke-copilot-no-firewall.lock.yml | 12 +-- .../smoke-copilot-playwright.lock.yml | 12 +-- .github/workflows/smoke-copilot.lock.yml | 12 +-- .github/workflows/smoke-detector.lock.yml | 12 +-- .github/workflows/spec-kit-executor.lock.yml | 12 +-- .../workflows/stale-repo-identifier.lock.yml | 12 +-- .../workflows/static-analysis-report.lock.yml | 12 +-- .github/workflows/super-linter.lock.yml | 12 +-- .../workflows/technical-doc-writer.lock.yml | 12 +-- .github/workflows/unbloat-docs.lock.yml | 12 +-- .../workflows/weekly-issue-summary.lock.yml | 12 +-- pkg/workflow/cache.go | 84 +++++++++++++------ pkg/workflow/compiler_yaml.go | 4 + 56 files changed, 385 insertions(+), 347 deletions(-) diff --git a/.github/workflows/audit-workflows.lock.yml b/.github/workflows/audit-workflows.lock.yml index 75042c3eab7..7bd0e7a80d1 100644 --- a/.github/workflows/audit-workflows.lock.yml +++ b/.github/workflows/audit-workflows.lock.yml @@ -1052,12 +1052,6 @@ jobs: trending-data-${{ github.workflow }}- trending-data- trending- - - name: Upload cache-memory data as artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 - if: always() - with: - name: cache-memory - path: /tmp/gh-aw/cache-memory - name: Configure Git credentials env: REPO_NAME: ${{ github.repository }} @@ -5919,6 +5913,12 @@ jobs: name: agent-stdio.log path: /tmp/gh-aw/agent-stdio.log if-no-files-found: warn + - name: Upload cache-memory data as artifact + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() + with: + name: cache-memory + path: /tmp/gh-aw/cache-memory - name: Upload safe outputs assets if: always() uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 diff --git a/.github/workflows/ci-doctor.lock.yml b/.github/workflows/ci-doctor.lock.yml index e80c76d82bc..c5e1ea78275 100644 --- a/.github/workflows/ci-doctor.lock.yml +++ b/.github/workflows/ci-doctor.lock.yml @@ -1038,12 +1038,6 @@ jobs: restore-keys: | memory-${{ github.workflow }}- memory- - - name: Upload cache-memory data as artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 - if: always() - with: - name: cache-memory - path: /tmp/gh-aw/cache-memory - name: Configure Git credentials env: REPO_NAME: ${{ github.repository }} @@ -5866,6 +5860,12 @@ jobs: name: agent-stdio.log path: /tmp/gh-aw/agent-stdio.log if-no-files-found: warn + - name: Upload cache-memory data as artifact + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() + with: + name: cache-memory + path: /tmp/gh-aw/cache-memory - name: Validate agent logs for errors if: always() uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8 diff --git a/.github/workflows/cli-version-checker.lock.yml b/.github/workflows/cli-version-checker.lock.yml index 43720921723..c64a468e864 100644 --- a/.github/workflows/cli-version-checker.lock.yml +++ b/.github/workflows/cli-version-checker.lock.yml @@ -561,12 +561,6 @@ jobs: restore-keys: | memory-${{ github.workflow }}- memory- - - name: Upload cache-memory data as artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 - if: always() - with: - name: cache-memory - path: /tmp/gh-aw/cache-memory - name: Configure Git credentials env: REPO_NAME: ${{ github.repository }} @@ -4930,6 +4924,12 @@ jobs: name: agent-stdio.log path: /tmp/gh-aw/agent-stdio.log if-no-files-found: warn + - name: Upload cache-memory data as artifact + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() + with: + name: cache-memory + path: /tmp/gh-aw/cache-memory - name: Validate agent logs for errors if: always() uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8 diff --git a/.github/workflows/cloclo.lock.yml b/.github/workflows/cloclo.lock.yml index 550f8cbd7d8..ca384d6df40 100644 --- a/.github/workflows/cloclo.lock.yml +++ b/.github/workflows/cloclo.lock.yml @@ -1935,12 +1935,6 @@ jobs: cloclo-memory-${{ github.workflow }}- cloclo-memory- cloclo- - - name: Upload cache-memory data as artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 - if: always() - with: - name: cache-memory - path: /tmp/gh-aw/cache-memory - name: Configure Git credentials env: REPO_NAME: ${{ github.repository }} @@ -6397,6 +6391,12 @@ jobs: name: agent-stdio.log path: /tmp/gh-aw/agent-stdio.log if-no-files-found: warn + - name: Upload cache-memory data as artifact + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() + with: + name: cache-memory + path: /tmp/gh-aw/cache-memory - name: Validate agent logs for errors if: always() uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8 diff --git a/.github/workflows/close-old-discussions.lock.yml b/.github/workflows/close-old-discussions.lock.yml index 2f7cd68c95d..5fa6a8e5f63 100644 --- a/.github/workflows/close-old-discussions.lock.yml +++ b/.github/workflows/close-old-discussions.lock.yml @@ -580,12 +580,6 @@ jobs: restore-keys: | discussions-data- discussions- - - name: Upload cache-memory data as artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 - if: always() - with: - name: cache-memory - path: /tmp/gh-aw/cache-memory - name: Configure Git credentials env: REPO_NAME: ${{ github.repository }} @@ -4771,6 +4765,12 @@ jobs: name: agent-stdio.log path: /tmp/gh-aw/agent-stdio.log if-no-files-found: warn + - name: Upload cache-memory data as artifact + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() + with: + name: cache-memory + path: /tmp/gh-aw/cache-memory - name: Validate agent logs for errors if: always() uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8 diff --git a/.github/workflows/copilot-agent-analysis.lock.yml b/.github/workflows/copilot-agent-analysis.lock.yml index 14b8c946bed..1fda4af9fc0 100644 --- a/.github/workflows/copilot-agent-analysis.lock.yml +++ b/.github/workflows/copilot-agent-analysis.lock.yml @@ -890,12 +890,6 @@ jobs: copilot-pr-data- copilot-pr- copilot- - - name: Upload cache-memory data as artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 - if: always() - with: - name: cache-memory - path: /tmp/gh-aw/cache-memory - name: Configure Git credentials env: REPO_NAME: ${{ github.repository }} @@ -5606,6 +5600,12 @@ jobs: name: agent-stdio.log path: /tmp/gh-aw/agent-stdio.log if-no-files-found: warn + - name: Upload cache-memory data as artifact + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() + with: + name: cache-memory + path: /tmp/gh-aw/cache-memory - name: Validate agent logs for errors if: always() uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8 diff --git a/.github/workflows/copilot-pr-nlp-analysis.lock.yml b/.github/workflows/copilot-pr-nlp-analysis.lock.yml index 029ac12b751..5891f1fa9e3 100644 --- a/.github/workflows/copilot-pr-nlp-analysis.lock.yml +++ b/.github/workflows/copilot-pr-nlp-analysis.lock.yml @@ -1180,12 +1180,6 @@ jobs: copilot-pr-data- copilot-pr- copilot- - - name: Upload cache-memory data as artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 - if: always() - with: - name: cache-memory - path: /tmp/gh-aw/cache-memory - name: Configure Git credentials env: REPO_NAME: ${{ github.repository }} @@ -6708,6 +6702,12 @@ jobs: name: agent-stdio.log path: /tmp/gh-aw/agent-stdio.log if-no-files-found: warn + - name: Upload cache-memory data as artifact + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() + with: + name: cache-memory + path: /tmp/gh-aw/cache-memory - name: Upload safe outputs assets if: always() uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 diff --git a/.github/workflows/copilot-pr-prompt-analysis.lock.yml b/.github/workflows/copilot-pr-prompt-analysis.lock.yml index ed4d4ba396d..31e9d3afbf6 100644 --- a/.github/workflows/copilot-pr-prompt-analysis.lock.yml +++ b/.github/workflows/copilot-pr-prompt-analysis.lock.yml @@ -706,12 +706,6 @@ jobs: copilot-pr-data- copilot-pr- copilot- - - name: Upload cache-memory data as artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 - if: always() - with: - name: cache-memory - path: /tmp/gh-aw/cache-memory - name: Configure Git credentials env: REPO_NAME: ${{ github.repository }} @@ -5730,6 +5724,12 @@ jobs: name: agent-stdio.log path: /tmp/gh-aw/agent-stdio.log if-no-files-found: warn + - name: Upload cache-memory data as artifact + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() + with: + name: cache-memory + path: /tmp/gh-aw/cache-memory - name: Validate agent logs for errors if: always() uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8 diff --git a/.github/workflows/copilot-session-insights.lock.yml b/.github/workflows/copilot-session-insights.lock.yml index 7ae3b389245..fda599cabd4 100644 --- a/.github/workflows/copilot-session-insights.lock.yml +++ b/.github/workflows/copilot-session-insights.lock.yml @@ -1594,12 +1594,6 @@ jobs: restore-keys: | memory-${{ github.workflow }}- memory- - - name: Upload cache-memory data as artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 - if: always() - with: - name: cache-memory - path: /tmp/gh-aw/cache-memory - name: Configure Git credentials env: REPO_NAME: ${{ github.repository }} @@ -7016,6 +7010,12 @@ jobs: name: agent-stdio.log path: /tmp/gh-aw/agent-stdio.log if-no-files-found: warn + - name: Upload cache-memory data as artifact + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() + with: + name: cache-memory + path: /tmp/gh-aw/cache-memory - name: Upload safe outputs assets if: always() uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 diff --git a/.github/workflows/daily-code-metrics.lock.yml b/.github/workflows/daily-code-metrics.lock.yml index 523aa2695ae..d390b220029 100644 --- a/.github/workflows/daily-code-metrics.lock.yml +++ b/.github/workflows/daily-code-metrics.lock.yml @@ -1122,12 +1122,6 @@ jobs: trending-data-${{ github.workflow }}- trending-data- trending- - - name: Upload cache-memory data as artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 - if: always() - with: - name: cache-memory - path: /tmp/gh-aw/cache-memory - name: Configure Git credentials env: REPO_NAME: ${{ github.repository }} @@ -6057,6 +6051,12 @@ jobs: name: agent-stdio.log path: /tmp/gh-aw/agent-stdio.log if-no-files-found: warn + - name: Upload cache-memory data as artifact + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() + with: + name: cache-memory + path: /tmp/gh-aw/cache-memory - name: Validate agent logs for errors if: always() uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8 diff --git a/.github/workflows/daily-copilot-token-report.lock.yml b/.github/workflows/daily-copilot-token-report.lock.yml index ba0e17b9536..1dd334ae9e3 100644 --- a/.github/workflows/daily-copilot-token-report.lock.yml +++ b/.github/workflows/daily-copilot-token-report.lock.yml @@ -1248,12 +1248,6 @@ jobs: restore-keys: | memory-${{ github.workflow }}- memory- - - name: Upload cache-memory data as artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 - if: always() - with: - name: cache-memory - path: /tmp/gh-aw/cache-memory - name: Configure Git credentials env: REPO_NAME: ${{ github.repository }} @@ -6873,6 +6867,12 @@ jobs: name: agent-stdio.log path: /tmp/gh-aw/agent-stdio.log if-no-files-found: warn + - name: Upload cache-memory data as artifact + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() + with: + name: cache-memory + path: /tmp/gh-aw/cache-memory - name: Upload safe outputs assets if: always() uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 diff --git a/.github/workflows/daily-doc-updater.lock.yml b/.github/workflows/daily-doc-updater.lock.yml index e0e6b4a5abb..de41551b800 100644 --- a/.github/workflows/daily-doc-updater.lock.yml +++ b/.github/workflows/daily-doc-updater.lock.yml @@ -424,12 +424,6 @@ jobs: restore-keys: | memory-${{ github.workflow }}- memory- - - name: Upload cache-memory data as artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 - if: always() - with: - name: cache-memory - path: /tmp/gh-aw/cache-memory - name: Configure Git credentials env: REPO_NAME: ${{ github.repository }} @@ -4653,6 +4647,12 @@ jobs: name: agent-stdio.log path: /tmp/gh-aw/agent-stdio.log if-no-files-found: warn + - name: Upload cache-memory data as artifact + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() + with: + name: cache-memory + path: /tmp/gh-aw/cache-memory - name: Validate agent logs for errors if: always() uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8 diff --git a/.github/workflows/daily-firewall-report.lock.yml b/.github/workflows/daily-firewall-report.lock.yml index 280c30e3a1b..9016aabe157 100644 --- a/.github/workflows/daily-firewall-report.lock.yml +++ b/.github/workflows/daily-firewall-report.lock.yml @@ -920,12 +920,6 @@ jobs: trending-data-${{ github.workflow }}- trending-data- trending- - - name: Upload cache-memory data as artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 - if: always() - with: - name: cache-memory - path: /tmp/gh-aw/cache-memory # Repo memory git-based storage configuration from frontmatter processed below - name: Clone repo-memory branch (default) env: @@ -6164,6 +6158,12 @@ jobs: path: /tmp/gh-aw/repo-memory-default retention-days: 1 if-no-files-found: ignore + - name: Upload cache-memory data as artifact + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() + with: + name: cache-memory + path: /tmp/gh-aw/cache-memory - name: Upload safe outputs assets if: always() uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 diff --git a/.github/workflows/daily-issues-report.lock.yml b/.github/workflows/daily-issues-report.lock.yml index 3847e18bae3..a4f15a6645d 100644 --- a/.github/workflows/daily-issues-report.lock.yml +++ b/.github/workflows/daily-issues-report.lock.yml @@ -1293,12 +1293,6 @@ jobs: restore-keys: | memory-${{ github.workflow }}- memory- - - name: Upload cache-memory data as artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 - if: always() - with: - name: cache-memory - path: /tmp/gh-aw/cache-memory - name: Configure Git credentials env: REPO_NAME: ${{ github.repository }} @@ -6503,6 +6497,12 @@ jobs: name: agent-stdio.log path: /tmp/gh-aw/agent-stdio.log if-no-files-found: warn + - name: Upload cache-memory data as artifact + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() + with: + name: cache-memory + path: /tmp/gh-aw/cache-memory - name: Upload safe outputs assets if: always() uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 diff --git a/.github/workflows/daily-news.lock.yml b/.github/workflows/daily-news.lock.yml index e59d135e211..513fb899557 100644 --- a/.github/workflows/daily-news.lock.yml +++ b/.github/workflows/daily-news.lock.yml @@ -1266,12 +1266,6 @@ jobs: restore-keys: | memory-${{ github.workflow }}- memory- - - name: Upload cache-memory data as artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 - if: always() - with: - name: cache-memory - path: /tmp/gh-aw/cache-memory - name: Configure Git credentials env: REPO_NAME: ${{ github.repository }} @@ -6632,6 +6626,12 @@ jobs: name: agent-stdio.log path: /tmp/gh-aw/agent-stdio.log if-no-files-found: warn + - name: Upload cache-memory data as artifact + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() + with: + name: cache-memory + path: /tmp/gh-aw/cache-memory - name: Upload safe outputs assets if: always() uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 diff --git a/.github/workflows/daily-performance-summary.lock.yml b/.github/workflows/daily-performance-summary.lock.yml index d17b44af224..bb4015984ad 100644 --- a/.github/workflows/daily-performance-summary.lock.yml +++ b/.github/workflows/daily-performance-summary.lock.yml @@ -1055,12 +1055,6 @@ jobs: trending-data-${{ github.workflow }}- trending-data- trending- - - name: Upload cache-memory data as artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 - if: always() - with: - name: cache-memory - path: /tmp/gh-aw/cache-memory - name: Configure Git credentials env: REPO_NAME: ${{ github.repository }} @@ -7710,6 +7704,12 @@ jobs: name: agent-stdio.log path: /tmp/gh-aw/agent-stdio.log if-no-files-found: warn + - name: Upload cache-memory data as artifact + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() + with: + name: cache-memory + path: /tmp/gh-aw/cache-memory - name: Upload safe outputs assets if: always() uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 diff --git a/.github/workflows/daily-repo-chronicle.lock.yml b/.github/workflows/daily-repo-chronicle.lock.yml index ce05f4fef71..347e7c30985 100644 --- a/.github/workflows/daily-repo-chronicle.lock.yml +++ b/.github/workflows/daily-repo-chronicle.lock.yml @@ -952,12 +952,6 @@ jobs: restore-keys: | memory-${{ github.workflow }}- memory- - - name: Upload cache-memory data as artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 - if: always() - with: - name: cache-memory - path: /tmp/gh-aw/cache-memory - name: Configure Git credentials env: REPO_NAME: ${{ github.repository }} @@ -6306,6 +6300,12 @@ jobs: name: agent-stdio.log path: /tmp/gh-aw/agent-stdio.log if-no-files-found: warn + - name: Upload cache-memory data as artifact + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() + with: + name: cache-memory + path: /tmp/gh-aw/cache-memory - name: Upload safe outputs assets if: always() uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 diff --git a/.github/workflows/deep-report.lock.yml b/.github/workflows/deep-report.lock.yml index 05cd0465abe..25682053a78 100644 --- a/.github/workflows/deep-report.lock.yml +++ b/.github/workflows/deep-report.lock.yml @@ -803,12 +803,6 @@ jobs: weekly-issues-data- weekly-issues- weekly- - - name: Upload cache-memory data as artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 - if: always() - with: - name: cache-memory - path: /tmp/gh-aw/cache-memory # Repo memory git-based storage configuration from frontmatter processed below - name: Clone repo-memory branch (default) env: @@ -5391,6 +5385,12 @@ jobs: path: /tmp/gh-aw/repo-memory-default retention-days: 1 if-no-files-found: ignore + - name: Upload cache-memory data as artifact + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() + with: + name: cache-memory + path: /tmp/gh-aw/cache-memory - name: Upload safe outputs assets if: always() uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 diff --git a/.github/workflows/developer-docs-consolidator.lock.yml b/.github/workflows/developer-docs-consolidator.lock.yml index 6bd1416714f..50378a656d5 100644 --- a/.github/workflows/developer-docs-consolidator.lock.yml +++ b/.github/workflows/developer-docs-consolidator.lock.yml @@ -948,12 +948,6 @@ jobs: developer-docs-cache- developer-docs- developer- - - name: Upload cache-memory data as artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 - if: always() - with: - name: cache-memory - path: /tmp/gh-aw/cache-memory - name: Configure Git credentials env: REPO_NAME: ${{ github.repository }} @@ -5808,6 +5802,12 @@ jobs: name: agent-stdio.log path: /tmp/gh-aw/agent-stdio.log if-no-files-found: warn + - name: Upload cache-memory data as artifact + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() + with: + name: cache-memory + path: /tmp/gh-aw/cache-memory - name: Validate agent logs for errors if: always() uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8 diff --git a/.github/workflows/github-mcp-structural-analysis.lock.yml b/.github/workflows/github-mcp-structural-analysis.lock.yml index 32c630dc699..17f7c945136 100644 --- a/.github/workflows/github-mcp-structural-analysis.lock.yml +++ b/.github/workflows/github-mcp-structural-analysis.lock.yml @@ -951,12 +951,6 @@ jobs: restore-keys: | memory-${{ github.workflow }}- memory- - - name: Upload cache-memory data as artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 - if: always() - with: - name: cache-memory - path: /tmp/gh-aw/cache-memory - name: Configure Git credentials env: REPO_NAME: ${{ github.repository }} @@ -5735,6 +5729,12 @@ jobs: name: agent-stdio.log path: /tmp/gh-aw/agent-stdio.log if-no-files-found: warn + - name: Upload cache-memory data as artifact + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() + with: + name: cache-memory + path: /tmp/gh-aw/cache-memory - name: Upload safe outputs assets if: always() uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 diff --git a/.github/workflows/github-mcp-tools-report.lock.yml b/.github/workflows/github-mcp-tools-report.lock.yml index 72a39c2fcfc..2c3c898e959 100644 --- a/.github/workflows/github-mcp-tools-report.lock.yml +++ b/.github/workflows/github-mcp-tools-report.lock.yml @@ -803,12 +803,6 @@ jobs: restore-keys: | memory-${{ github.workflow }}- memory- - - name: Upload cache-memory data as artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 - if: always() - with: - name: cache-memory - path: /tmp/gh-aw/cache-memory - name: Configure Git credentials env: REPO_NAME: ${{ github.repository }} @@ -5511,6 +5505,12 @@ jobs: name: agent-stdio.log path: /tmp/gh-aw/agent-stdio.log if-no-files-found: warn + - name: Upload cache-memory data as artifact + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() + with: + name: cache-memory + path: /tmp/gh-aw/cache-memory - name: Validate agent logs for errors if: always() uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8 diff --git a/.github/workflows/glossary-maintainer.lock.yml b/.github/workflows/glossary-maintainer.lock.yml index b249f2c898c..c66c6eb8761 100644 --- a/.github/workflows/glossary-maintainer.lock.yml +++ b/.github/workflows/glossary-maintainer.lock.yml @@ -891,12 +891,6 @@ jobs: restore-keys: | memory-${{ github.workflow }}- memory- - - name: Upload cache-memory data as artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 - if: always() - with: - name: cache-memory - path: /tmp/gh-aw/cache-memory - name: Configure Git credentials env: REPO_NAME: ${{ github.repository }} @@ -6199,6 +6193,12 @@ jobs: name: agent-stdio.log path: /tmp/gh-aw/agent-stdio.log if-no-files-found: warn + - name: Upload cache-memory data as artifact + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() + with: + name: cache-memory + path: /tmp/gh-aw/cache-memory - name: Validate agent logs for errors if: always() uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8 diff --git a/.github/workflows/go-fan.lock.yml b/.github/workflows/go-fan.lock.yml index 63a80c79b8c..0b0c2e05481 100644 --- a/.github/workflows/go-fan.lock.yml +++ b/.github/workflows/go-fan.lock.yml @@ -636,12 +636,6 @@ jobs: restore-keys: | memory-${{ github.workflow }}- memory- - - name: Upload cache-memory data as artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 - if: always() - with: - name: cache-memory - path: /tmp/gh-aw/cache-memory - name: Configure Git credentials env: REPO_NAME: ${{ github.repository }} @@ -5052,6 +5046,12 @@ jobs: name: agent-stdio.log path: /tmp/gh-aw/agent-stdio.log if-no-files-found: warn + - name: Upload cache-memory data as artifact + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() + with: + name: cache-memory + path: /tmp/gh-aw/cache-memory - name: Validate agent logs for errors if: always() uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8 diff --git a/.github/workflows/go-logger.lock.yml b/.github/workflows/go-logger.lock.yml index bda4b38ad0b..9935cf74e6d 100644 --- a/.github/workflows/go-logger.lock.yml +++ b/.github/workflows/go-logger.lock.yml @@ -552,12 +552,6 @@ jobs: restore-keys: | memory-${{ github.workflow }}- memory- - - name: Upload cache-memory data as artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 - if: always() - with: - name: cache-memory - path: /tmp/gh-aw/cache-memory - name: Configure Git credentials env: REPO_NAME: ${{ github.repository }} @@ -4817,6 +4811,12 @@ jobs: name: agent-stdio.log path: /tmp/gh-aw/agent-stdio.log if-no-files-found: warn + - name: Upload cache-memory data as artifact + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() + with: + name: cache-memory + path: /tmp/gh-aw/cache-memory - name: Validate agent logs for errors if: always() uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8 diff --git a/.github/workflows/grumpy-reviewer.lock.yml b/.github/workflows/grumpy-reviewer.lock.yml index 7570504ddfa..78897323de2 100644 --- a/.github/workflows/grumpy-reviewer.lock.yml +++ b/.github/workflows/grumpy-reviewer.lock.yml @@ -1736,12 +1736,6 @@ jobs: restore-keys: | memory-${{ github.workflow }}- memory- - - name: Upload cache-memory data as artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 - if: always() - with: - name: cache-memory - path: /tmp/gh-aw/cache-memory - name: Configure Git credentials env: REPO_NAME: ${{ github.repository }} @@ -6529,6 +6523,12 @@ jobs: name: agent-stdio.log path: /tmp/gh-aw/agent-stdio.log if-no-files-found: warn + - name: Upload cache-memory data as artifact + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() + with: + name: cache-memory + path: /tmp/gh-aw/cache-memory - name: Validate agent logs for errors if: always() uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8 diff --git a/.github/workflows/instructions-janitor.lock.yml b/.github/workflows/instructions-janitor.lock.yml index be958e7b311..aa7e65e05a4 100644 --- a/.github/workflows/instructions-janitor.lock.yml +++ b/.github/workflows/instructions-janitor.lock.yml @@ -421,12 +421,6 @@ jobs: restore-keys: | memory-${{ github.workflow }}- memory- - - name: Upload cache-memory data as artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 - if: always() - with: - name: cache-memory - path: /tmp/gh-aw/cache-memory - name: Configure Git credentials env: REPO_NAME: ${{ github.repository }} @@ -4582,6 +4576,12 @@ jobs: name: agent-stdio.log path: /tmp/gh-aw/agent-stdio.log if-no-files-found: warn + - name: Upload cache-memory data as artifact + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() + with: + name: cache-memory + path: /tmp/gh-aw/cache-memory - name: Validate agent logs for errors if: always() uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8 diff --git a/.github/workflows/lockfile-stats.lock.yml b/.github/workflows/lockfile-stats.lock.yml index 83dcc8db172..18bddc34638 100644 --- a/.github/workflows/lockfile-stats.lock.yml +++ b/.github/workflows/lockfile-stats.lock.yml @@ -656,12 +656,6 @@ jobs: restore-keys: | memory-${{ github.workflow }}- memory- - - name: Upload cache-memory data as artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 - if: always() - with: - name: cache-memory - path: /tmp/gh-aw/cache-memory - name: Configure Git credentials env: REPO_NAME: ${{ github.repository }} @@ -5094,6 +5088,12 @@ jobs: name: agent-stdio.log path: /tmp/gh-aw/agent-stdio.log if-no-files-found: warn + - name: Upload cache-memory data as artifact + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() + with: + name: cache-memory + path: /tmp/gh-aw/cache-memory - name: Validate agent logs for errors if: always() uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8 diff --git a/.github/workflows/mcp-inspector.lock.yml b/.github/workflows/mcp-inspector.lock.yml index c7ca399d43a..f2ea4c652c6 100644 --- a/.github/workflows/mcp-inspector.lock.yml +++ b/.github/workflows/mcp-inspector.lock.yml @@ -591,12 +591,6 @@ jobs: restore-keys: | memory-${{ github.workflow }}- memory- - - name: Upload cache-memory data as artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 - if: always() - with: - name: cache-memory - path: /tmp/gh-aw/cache-memory - name: Configure Git credentials env: REPO_NAME: ${{ github.repository }} @@ -5709,6 +5703,12 @@ jobs: name: agent-stdio.log path: /tmp/gh-aw/agent-stdio.log if-no-files-found: warn + - name: Upload cache-memory data as artifact + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() + with: + name: cache-memory + path: /tmp/gh-aw/cache-memory - name: Validate agent logs for errors if: always() uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8 diff --git a/.github/workflows/org-health-report.lock.yml b/.github/workflows/org-health-report.lock.yml index 883c833cf60..d17f509e3c4 100644 --- a/.github/workflows/org-health-report.lock.yml +++ b/.github/workflows/org-health-report.lock.yml @@ -1160,12 +1160,6 @@ jobs: restore-keys: | memory-${{ github.workflow }}- memory- - - name: Upload cache-memory data as artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 - if: always() - with: - name: cache-memory - path: /tmp/gh-aw/cache-memory - name: Configure Git credentials env: REPO_NAME: ${{ github.repository }} @@ -6570,6 +6564,12 @@ jobs: name: agent-stdio.log path: /tmp/gh-aw/agent-stdio.log if-no-files-found: warn + - name: Upload cache-memory data as artifact + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() + with: + name: cache-memory + path: /tmp/gh-aw/cache-memory - name: Upload safe outputs assets if: always() uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 diff --git a/.github/workflows/pdf-summary.lock.yml b/.github/workflows/pdf-summary.lock.yml index 9ada19d3c79..370c18df62d 100644 --- a/.github/workflows/pdf-summary.lock.yml +++ b/.github/workflows/pdf-summary.lock.yml @@ -1796,12 +1796,6 @@ jobs: restore-keys: | memory-${{ github.workflow }}- memory- - - name: Upload cache-memory data as artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 - if: always() - with: - name: cache-memory - path: /tmp/gh-aw/cache-memory - name: Configure Git credentials env: REPO_NAME: ${{ github.repository }} @@ -6554,6 +6548,12 @@ jobs: name: agent-stdio.log path: /tmp/gh-aw/agent-stdio.log if-no-files-found: warn + - name: Upload cache-memory data as artifact + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() + with: + name: cache-memory + path: /tmp/gh-aw/cache-memory - name: Validate agent logs for errors if: always() uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8 diff --git a/.github/workflows/poem-bot.lock.yml b/.github/workflows/poem-bot.lock.yml index 54ae628c25c..73e98b05d4f 100644 --- a/.github/workflows/poem-bot.lock.yml +++ b/.github/workflows/poem-bot.lock.yml @@ -2397,13 +2397,6 @@ jobs: poem-memory-${{ github.workflow }}- poem-memory- poem- - - name: Upload cache-memory data as artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 - if: always() - with: - name: cache-memory - path: /tmp/gh-aw/cache-memory - retention-days: 30 - name: Configure Git credentials env: REPO_NAME: ${{ github.repository }} @@ -7607,6 +7600,13 @@ jobs: name: agent-stdio.log path: /tmp/gh-aw/agent-stdio.log if-no-files-found: warn + - name: Upload cache-memory data as artifact + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() + with: + name: cache-memory + path: /tmp/gh-aw/cache-memory + retention-days: 30 - name: Upload safe outputs assets if: always() uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 diff --git a/.github/workflows/pr-nitpick-reviewer.lock.yml b/.github/workflows/pr-nitpick-reviewer.lock.yml index c769a231f14..ff2e5ec6be7 100644 --- a/.github/workflows/pr-nitpick-reviewer.lock.yml +++ b/.github/workflows/pr-nitpick-reviewer.lock.yml @@ -1720,12 +1720,6 @@ jobs: restore-keys: | memory-${{ github.workflow }}- memory- - - name: Upload cache-memory data as artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 - if: always() - with: - name: cache-memory - path: /tmp/gh-aw/cache-memory - name: Configure Git credentials env: REPO_NAME: ${{ github.repository }} @@ -6874,6 +6868,12 @@ jobs: name: agent-stdio.log path: /tmp/gh-aw/agent-stdio.log if-no-files-found: warn + - name: Upload cache-memory data as artifact + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() + with: + name: cache-memory + path: /tmp/gh-aw/cache-memory - name: Validate agent logs for errors if: always() uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8 diff --git a/.github/workflows/prompt-clustering-analysis.lock.yml b/.github/workflows/prompt-clustering-analysis.lock.yml index 569bb82d0bc..58c87bc81e0 100644 --- a/.github/workflows/prompt-clustering-analysis.lock.yml +++ b/.github/workflows/prompt-clustering-analysis.lock.yml @@ -1342,12 +1342,6 @@ jobs: trending-data-${{ github.workflow }}- trending-data- trending- - - name: Upload cache-memory data as artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 - if: always() - with: - name: cache-memory - path: /tmp/gh-aw/cache-memory - name: Configure Git credentials env: REPO_NAME: ${{ github.repository }} @@ -6370,6 +6364,12 @@ jobs: name: agent-stdio.log path: /tmp/gh-aw/agent-stdio.log if-no-files-found: warn + - name: Upload cache-memory data as artifact + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() + with: + name: cache-memory + path: /tmp/gh-aw/cache-memory - name: Validate agent logs for errors if: always() uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8 diff --git a/.github/workflows/python-data-charts.lock.yml b/.github/workflows/python-data-charts.lock.yml index 77c4bc5e15f..7242e09091c 100644 --- a/.github/workflows/python-data-charts.lock.yml +++ b/.github/workflows/python-data-charts.lock.yml @@ -1246,12 +1246,6 @@ jobs: restore-keys: | memory-${{ github.workflow }}- memory- - - name: Upload cache-memory data as artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 - if: always() - with: - name: cache-memory - path: /tmp/gh-aw/cache-memory - name: Configure Git credentials env: REPO_NAME: ${{ github.repository }} @@ -6938,6 +6932,12 @@ jobs: name: agent-stdio.log path: /tmp/gh-aw/agent-stdio.log if-no-files-found: warn + - name: Upload cache-memory data as artifact + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() + with: + name: cache-memory + path: /tmp/gh-aw/cache-memory - name: Upload safe outputs assets if: always() uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 diff --git a/.github/workflows/q.lock.yml b/.github/workflows/q.lock.yml index d42658fbe1d..5d2289b5fb7 100644 --- a/.github/workflows/q.lock.yml +++ b/.github/workflows/q.lock.yml @@ -2052,12 +2052,6 @@ jobs: restore-keys: | memory-${{ github.workflow }}- memory- - - name: Upload cache-memory data as artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 - if: always() - with: - name: cache-memory - path: /tmp/gh-aw/cache-memory - name: Configure Git credentials env: REPO_NAME: ${{ github.repository }} @@ -7136,6 +7130,12 @@ jobs: name: agent-stdio.log path: /tmp/gh-aw/agent-stdio.log if-no-files-found: warn + - name: Upload cache-memory data as artifact + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() + with: + name: cache-memory + path: /tmp/gh-aw/cache-memory - name: Validate agent logs for errors if: always() uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8 diff --git a/.github/workflows/release.lock.yml b/.github/workflows/release.lock.yml index adc22390976..25f1d66a818 100644 --- a/.github/workflows/release.lock.yml +++ b/.github/workflows/release.lock.yml @@ -6209,19 +6209,19 @@ jobs: - name: Download Go modules run: go mod download - name: Generate SBOM (SPDX format) - uses: anchore/sbom-action@fbfd9c6c189226748411491745178e0c2017392d # v0.20.10 + uses: anchore/sbom-action@fbfd9c6c189226748411491745178e0c2017392d # v0 with: artifact-name: sbom.spdx.json format: spdx-json output-file: sbom.spdx.json - name: Generate SBOM (CycloneDX format) - uses: anchore/sbom-action@fbfd9c6c189226748411491745178e0c2017392d # v0.20.10 + uses: anchore/sbom-action@fbfd9c6c189226748411491745178e0c2017392d # v0 with: artifact-name: sbom.cdx.json format: cyclonedx-json output-file: sbom.cdx.json - name: Upload SBOM artifacts - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 with: name: sbom-artifacts path: | diff --git a/.github/workflows/repository-quality-improver.lock.yml b/.github/workflows/repository-quality-improver.lock.yml index 721fbc1dc5d..4f2315742ae 100644 --- a/.github/workflows/repository-quality-improver.lock.yml +++ b/.github/workflows/repository-quality-improver.lock.yml @@ -876,12 +876,6 @@ jobs: quality-focus-${{ github.workflow }}- quality-focus- quality- - - name: Upload cache-memory data as artifact (focus-areas) - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 - if: always() - with: - name: cache-memory-focus-areas - path: /tmp/gh-aw/cache-memory-focus-areas - name: Configure Git credentials env: REPO_NAME: ${{ github.repository }} @@ -6152,6 +6146,12 @@ jobs: name: agent-stdio.log path: /tmp/gh-aw/agent-stdio.log if-no-files-found: warn + - name: Upload cache-memory data as artifact (focus-areas) + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() + with: + name: cache-memory-focus-areas + path: /tmp/gh-aw/cache-memory-focus-areas - name: Validate agent logs for errors if: always() uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8 diff --git a/.github/workflows/safe-output-health.lock.yml b/.github/workflows/safe-output-health.lock.yml index f52f3f887e2..1b55522698b 100644 --- a/.github/workflows/safe-output-health.lock.yml +++ b/.github/workflows/safe-output-health.lock.yml @@ -781,12 +781,6 @@ jobs: restore-keys: | memory-${{ github.workflow }}- memory- - - name: Upload cache-memory data as artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 - if: always() - with: - name: cache-memory - path: /tmp/gh-aw/cache-memory - name: Configure Git credentials env: REPO_NAME: ${{ github.repository }} @@ -5391,6 +5385,12 @@ jobs: name: agent-stdio.log path: /tmp/gh-aw/agent-stdio.log if-no-files-found: warn + - name: Upload cache-memory data as artifact + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() + with: + name: cache-memory + path: /tmp/gh-aw/cache-memory - name: Validate agent logs for errors if: always() uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8 diff --git a/.github/workflows/schema-consistency-checker.lock.yml b/.github/workflows/schema-consistency-checker.lock.yml index 52d6a2edbca..aeb139d3052 100644 --- a/.github/workflows/schema-consistency-checker.lock.yml +++ b/.github/workflows/schema-consistency-checker.lock.yml @@ -670,12 +670,6 @@ jobs: schema-consistency-cache- schema-consistency- schema- - - name: Upload cache-memory data as artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 - if: always() - with: - name: cache-memory - path: /tmp/gh-aw/cache-memory - name: Configure Git credentials env: REPO_NAME: ${{ github.repository }} @@ -5039,6 +5033,12 @@ jobs: name: agent-stdio.log path: /tmp/gh-aw/agent-stdio.log if-no-files-found: warn + - name: Upload cache-memory data as artifact + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() + with: + name: cache-memory + path: /tmp/gh-aw/cache-memory - name: Validate agent logs for errors if: always() uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8 diff --git a/.github/workflows/scout.lock.yml b/.github/workflows/scout.lock.yml index 1a852062815..f13af391090 100644 --- a/.github/workflows/scout.lock.yml +++ b/.github/workflows/scout.lock.yml @@ -1997,12 +1997,6 @@ jobs: restore-keys: | memory-${{ github.workflow }}- memory- - - name: Upload cache-memory data as artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 - if: always() - with: - name: cache-memory - path: /tmp/gh-aw/cache-memory - name: Configure Git credentials env: REPO_NAME: ${{ github.repository }} @@ -6445,6 +6439,12 @@ jobs: name: agent-stdio.log path: /tmp/gh-aw/agent-stdio.log if-no-files-found: warn + - name: Upload cache-memory data as artifact + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() + with: + name: cache-memory + path: /tmp/gh-aw/cache-memory - name: Validate agent logs for errors if: always() uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8 diff --git a/.github/workflows/security-fix-pr.lock.yml b/.github/workflows/security-fix-pr.lock.yml index 2a23895ee07..29d59c9ad83 100644 --- a/.github/workflows/security-fix-pr.lock.yml +++ b/.github/workflows/security-fix-pr.lock.yml @@ -398,12 +398,6 @@ jobs: restore-keys: | memory-${{ github.workflow }}- memory- - - name: Upload cache-memory data as artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 - if: always() - with: - name: cache-memory - path: /tmp/gh-aw/cache-memory - name: Configure Git credentials env: REPO_NAME: ${{ github.repository }} @@ -4589,6 +4583,12 @@ jobs: name: agent-stdio.log path: /tmp/gh-aw/agent-stdio.log if-no-files-found: warn + - name: Upload cache-memory data as artifact + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() + with: + name: cache-memory + path: /tmp/gh-aw/cache-memory - name: Validate agent logs for errors if: always() uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8 diff --git a/.github/workflows/smoke-claude.lock.yml b/.github/workflows/smoke-claude.lock.yml index 6f3a8286b3d..693c7ec34c8 100644 --- a/.github/workflows/smoke-claude.lock.yml +++ b/.github/workflows/smoke-claude.lock.yml @@ -1997,12 +1997,6 @@ jobs: restore-keys: | memory-${{ github.workflow }}- memory- - - name: Upload cache-memory data as artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 - if: always() - with: - name: cache-memory - path: /tmp/gh-aw/cache-memory - name: Configure Git credentials env: REPO_NAME: ${{ github.repository }} @@ -6326,6 +6320,12 @@ jobs: name: agent-stdio.log path: /tmp/gh-aw/agent-stdio.log if-no-files-found: warn + - name: Upload cache-memory data as artifact + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() + with: + name: cache-memory + path: /tmp/gh-aw/cache-memory - name: Validate agent logs for errors if: always() uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8 diff --git a/.github/workflows/smoke-codex.lock.yml b/.github/workflows/smoke-codex.lock.yml index 0cb49148776..a31922d99dd 100644 --- a/.github/workflows/smoke-codex.lock.yml +++ b/.github/workflows/smoke-codex.lock.yml @@ -1876,12 +1876,6 @@ jobs: restore-keys: | memory-${{ github.workflow }}- memory- - - name: Upload cache-memory data as artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 - if: always() - with: - name: cache-memory - path: /tmp/gh-aw/cache-memory - name: Configure Git credentials env: REPO_NAME: ${{ github.repository }} @@ -6108,6 +6102,12 @@ jobs: name: agent-stdio.log path: /tmp/gh-aw/agent-stdio.log if-no-files-found: warn + - name: Upload cache-memory data as artifact + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() + with: + name: cache-memory + path: /tmp/gh-aw/cache-memory - name: Validate agent logs for errors if: always() uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8 diff --git a/.github/workflows/smoke-copilot-no-firewall.lock.yml b/.github/workflows/smoke-copilot-no-firewall.lock.yml index 05e116a23ff..72cad17e05c 100644 --- a/.github/workflows/smoke-copilot-no-firewall.lock.yml +++ b/.github/workflows/smoke-copilot-no-firewall.lock.yml @@ -1910,12 +1910,6 @@ jobs: restore-keys: | memory-${{ github.workflow }}- memory- - - name: Upload cache-memory data as artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 - if: always() - with: - name: cache-memory - path: /tmp/gh-aw/cache-memory - name: Configure Git credentials env: REPO_NAME: ${{ github.repository }} @@ -7807,6 +7801,12 @@ jobs: name: agent-stdio.log path: /tmp/gh-aw/agent-stdio.log if-no-files-found: warn + - name: Upload cache-memory data as artifact + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() + with: + name: cache-memory + path: /tmp/gh-aw/cache-memory - name: Validate agent logs for errors if: always() uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8 diff --git a/.github/workflows/smoke-copilot-playwright.lock.yml b/.github/workflows/smoke-copilot-playwright.lock.yml index 574b9ea5f0e..2db8ff5914e 100644 --- a/.github/workflows/smoke-copilot-playwright.lock.yml +++ b/.github/workflows/smoke-copilot-playwright.lock.yml @@ -1962,12 +1962,6 @@ jobs: restore-keys: | memory-${{ github.workflow }}- memory- - - name: Upload cache-memory data as artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 - if: always() - with: - name: cache-memory - path: /tmp/gh-aw/cache-memory - name: Configure Git credentials env: REPO_NAME: ${{ github.repository }} @@ -8091,6 +8085,12 @@ jobs: name: agent-stdio.log path: /tmp/gh-aw/agent-stdio.log if-no-files-found: warn + - name: Upload cache-memory data as artifact + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() + with: + name: cache-memory + path: /tmp/gh-aw/cache-memory - name: Validate agent logs for errors if: always() uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8 diff --git a/.github/workflows/smoke-copilot.lock.yml b/.github/workflows/smoke-copilot.lock.yml index f55751112f1..c651c9abd19 100644 --- a/.github/workflows/smoke-copilot.lock.yml +++ b/.github/workflows/smoke-copilot.lock.yml @@ -1878,12 +1878,6 @@ jobs: restore-keys: | memory-${{ github.workflow }}- memory- - - name: Upload cache-memory data as artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 - if: always() - with: - name: cache-memory - path: /tmp/gh-aw/cache-memory - name: Configure Git credentials env: REPO_NAME: ${{ github.repository }} @@ -7989,6 +7983,12 @@ jobs: name: agent-stdio.log path: /tmp/gh-aw/agent-stdio.log if-no-files-found: warn + - name: Upload cache-memory data as artifact + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() + with: + name: cache-memory + path: /tmp/gh-aw/cache-memory - name: Validate agent logs for errors if: always() uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8 diff --git a/.github/workflows/smoke-detector.lock.yml b/.github/workflows/smoke-detector.lock.yml index c5aaacd9ecd..7ac069d975d 100644 --- a/.github/workflows/smoke-detector.lock.yml +++ b/.github/workflows/smoke-detector.lock.yml @@ -1646,12 +1646,6 @@ jobs: restore-keys: | memory-${{ github.workflow }}- memory- - - name: Upload cache-memory data as artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 - if: always() - with: - name: cache-memory - path: /tmp/gh-aw/cache-memory - name: Configure Git credentials env: REPO_NAME: ${{ github.repository }} @@ -6069,6 +6063,12 @@ jobs: name: agent-stdio.log path: /tmp/gh-aw/agent-stdio.log if-no-files-found: warn + - name: Upload cache-memory data as artifact + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() + with: + name: cache-memory + path: /tmp/gh-aw/cache-memory - name: Validate agent logs for errors if: always() uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8 diff --git a/.github/workflows/spec-kit-executor.lock.yml b/.github/workflows/spec-kit-executor.lock.yml index 9b360c68d7f..4107ea98f73 100644 --- a/.github/workflows/spec-kit-executor.lock.yml +++ b/.github/workflows/spec-kit-executor.lock.yml @@ -490,12 +490,6 @@ jobs: restore-keys: | memory-${{ github.workflow }}- memory- - - name: Upload cache-memory data as artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 - if: always() - with: - name: cache-memory - path: /tmp/gh-aw/cache-memory # Repo memory git-based storage configuration from frontmatter processed below - name: Clone repo-memory branch (default) env: @@ -5342,6 +5336,12 @@ jobs: path: /tmp/gh-aw/repo-memory-default retention-days: 1 if-no-files-found: ignore + - name: Upload cache-memory data as artifact + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() + with: + name: cache-memory + path: /tmp/gh-aw/cache-memory - name: Validate agent logs for errors if: always() uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8 diff --git a/.github/workflows/stale-repo-identifier.lock.yml b/.github/workflows/stale-repo-identifier.lock.yml index 8210aa22866..eec13ac4b26 100644 --- a/.github/workflows/stale-repo-identifier.lock.yml +++ b/.github/workflows/stale-repo-identifier.lock.yml @@ -1229,12 +1229,6 @@ jobs: trending-data-${{ github.workflow }}- trending-data- trending- - - name: Upload cache-memory data as artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 - if: always() - with: - name: cache-memory - path: /tmp/gh-aw/cache-memory - name: Configure Git credentials env: REPO_NAME: ${{ github.repository }} @@ -6806,6 +6800,12 @@ jobs: name: agent-stdio.log path: /tmp/gh-aw/agent-stdio.log if-no-files-found: warn + - name: Upload cache-memory data as artifact + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() + with: + name: cache-memory + path: /tmp/gh-aw/cache-memory - name: Upload safe outputs assets if: always() uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 diff --git a/.github/workflows/static-analysis-report.lock.yml b/.github/workflows/static-analysis-report.lock.yml index 8adff04702f..2d4100e27ca 100644 --- a/.github/workflows/static-analysis-report.lock.yml +++ b/.github/workflows/static-analysis-report.lock.yml @@ -690,12 +690,6 @@ jobs: restore-keys: | memory-${{ github.workflow }}- memory- - - name: Upload cache-memory data as artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 - if: always() - with: - name: cache-memory - path: /tmp/gh-aw/cache-memory - name: Configure Git credentials env: REPO_NAME: ${{ github.repository }} @@ -5130,6 +5124,12 @@ jobs: name: agent-stdio.log path: /tmp/gh-aw/agent-stdio.log if-no-files-found: warn + - name: Upload cache-memory data as artifact + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() + with: + name: cache-memory + path: /tmp/gh-aw/cache-memory - name: Validate agent logs for errors if: always() uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8 diff --git a/.github/workflows/super-linter.lock.yml b/.github/workflows/super-linter.lock.yml index 2010ca830e3..e019103d26c 100644 --- a/.github/workflows/super-linter.lock.yml +++ b/.github/workflows/super-linter.lock.yml @@ -510,12 +510,6 @@ jobs: restore-keys: | memory-${{ github.workflow }}- memory- - - name: Upload cache-memory data as artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 - if: always() - with: - name: cache-memory - path: /tmp/gh-aw/cache-memory - name: Configure Git credentials env: REPO_NAME: ${{ github.repository }} @@ -5330,6 +5324,12 @@ jobs: name: agent-stdio.log path: /tmp/gh-aw/agent-stdio.log if-no-files-found: warn + - name: Upload cache-memory data as artifact + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() + with: + name: cache-memory + path: /tmp/gh-aw/cache-memory - name: Validate agent logs for errors if: always() uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8 diff --git a/.github/workflows/technical-doc-writer.lock.yml b/.github/workflows/technical-doc-writer.lock.yml index 27192083d4f..021ce0e9a0f 100644 --- a/.github/workflows/technical-doc-writer.lock.yml +++ b/.github/workflows/technical-doc-writer.lock.yml @@ -1317,12 +1317,6 @@ jobs: restore-keys: | memory-${{ github.workflow }}- memory- - - name: Upload cache-memory data as artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 - if: always() - with: - name: cache-memory - path: /tmp/gh-aw/cache-memory - name: Configure Git credentials env: REPO_NAME: ${{ github.repository }} @@ -6387,6 +6381,12 @@ jobs: name: agent-stdio.log path: /tmp/gh-aw/agent-stdio.log if-no-files-found: warn + - name: Upload cache-memory data as artifact + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() + with: + name: cache-memory + path: /tmp/gh-aw/cache-memory - name: Upload safe outputs assets if: always() uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 diff --git a/.github/workflows/unbloat-docs.lock.yml b/.github/workflows/unbloat-docs.lock.yml index 32fbafa8ea1..5137f5d16fe 100644 --- a/.github/workflows/unbloat-docs.lock.yml +++ b/.github/workflows/unbloat-docs.lock.yml @@ -1672,12 +1672,6 @@ jobs: restore-keys: | memory-${{ github.workflow }}- memory- - - name: Upload cache-memory data as artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 - if: always() - with: - name: cache-memory - path: /tmp/gh-aw/cache-memory - name: Configure Git credentials env: REPO_NAME: ${{ github.repository }} @@ -6191,6 +6185,12 @@ jobs: name: agent-stdio.log path: /tmp/gh-aw/agent-stdio.log if-no-files-found: warn + - name: Upload cache-memory data as artifact + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() + with: + name: cache-memory + path: /tmp/gh-aw/cache-memory - name: Upload safe outputs assets if: always() uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 diff --git a/.github/workflows/weekly-issue-summary.lock.yml b/.github/workflows/weekly-issue-summary.lock.yml index f0f9e014cde..92af1b2fc78 100644 --- a/.github/workflows/weekly-issue-summary.lock.yml +++ b/.github/workflows/weekly-issue-summary.lock.yml @@ -892,12 +892,6 @@ jobs: restore-keys: | memory-${{ github.workflow }}- memory- - - name: Upload cache-memory data as artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 - if: always() - with: - name: cache-memory - path: /tmp/gh-aw/cache-memory - name: Configure Git credentials env: REPO_NAME: ${{ github.repository }} @@ -6163,6 +6157,12 @@ jobs: name: agent-stdio.log path: /tmp/gh-aw/agent-stdio.log if-no-files-found: warn + - name: Upload cache-memory data as artifact + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + if: always() + with: + name: cache-memory + path: /tmp/gh-aw/cache-memory - name: Upload safe outputs assets if: always() uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 diff --git a/pkg/workflow/cache.go b/pkg/workflow/cache.go index 22874fd6896..b5bf4a4ade5 100644 --- a/pkg/workflow/cache.go +++ b/pkg/workflow/cache.go @@ -307,14 +307,15 @@ func generateCacheSteps(builder *strings.Builder, data *WorkflowData, verbose bo } } -// generateCacheMemorySteps generates cache steps for the cache-memory configuration +// generateCacheMemorySteps generates cache setup steps (directory creation and restore) for the cache-memory configuration // Cache-memory provides a simple file share that LLMs can read/write freely +// Artifact upload is handled separately by generateCacheMemoryArtifactUpload after agent execution func generateCacheMemorySteps(builder *strings.Builder, data *WorkflowData) { if data.CacheMemoryConfig == nil || len(data.CacheMemoryConfig.Caches) == 0 { return } - cacheLog.Printf("Generating cache-memory steps for %d caches", len(data.CacheMemoryConfig.Caches)) + cacheLog.Printf("Generating cache-memory setup steps for %d caches", len(data.CacheMemoryConfig.Caches)) builder.WriteString(" # Cache memory file share configuration from frontmatter processed below\n") @@ -404,30 +405,63 @@ func generateCacheMemorySteps(builder *strings.Builder, data *WorkflowData) { for _, key := range restoreKeys { fmt.Fprintf(builder, " %s\n", key) } + } +} - // Add upload-artifact step for each cache (runs always), but skip for restore-only caches - // Only upload artifacts when threat detection is enabled (needed for update_cache_memory job) - // When threat detection is disabled, cache is saved automatically by actions/cache post-action - if !cache.RestoreOnly && threatDetectionEnabled { - if useBackwardCompatiblePaths { - builder.WriteString(" - name: Upload cache-memory data as artifact\n") - } else { - builder.WriteString(fmt.Sprintf(" - name: Upload cache-memory data as artifact (%s)\n", cache.ID)) - } - builder.WriteString(fmt.Sprintf(" uses: %s\n", GetActionPin("actions/upload-artifact"))) - builder.WriteString(" if: always()\n") - builder.WriteString(" with:\n") - // Always use the new artifact name and path format - if useBackwardCompatiblePaths { - builder.WriteString(" name: cache-memory\n") - } else { - fmt.Fprintf(builder, " name: cache-memory-%s\n", cache.ID) - } - fmt.Fprintf(builder, " path: %s\n", cacheDir) - // Add retention-days if configured - if cache.RetentionDays != nil { - fmt.Fprintf(builder, " retention-days: %d\n", *cache.RetentionDays) - } +// generateCacheMemoryArtifactUpload generates artifact upload steps for cache-memory +// This should be called after agent execution steps to ensure cache is uploaded after the agent has finished +func generateCacheMemoryArtifactUpload(builder *strings.Builder, data *WorkflowData) { + if data.CacheMemoryConfig == nil || len(data.CacheMemoryConfig.Caches) == 0 { + return + } + + // Only upload artifacts when threat detection is enabled (needed for update_cache_memory job) + // When threat detection is disabled, cache is saved automatically by actions/cache post-action + threatDetectionEnabled := data.SafeOutputs != nil && data.SafeOutputs.ThreatDetection != nil + if !threatDetectionEnabled { + cacheLog.Print("Skipping cache-memory artifact upload (threat detection disabled)") + return + } + + cacheLog.Printf("Generating cache-memory artifact upload steps for %d caches", len(data.CacheMemoryConfig.Caches)) + + // Use backward-compatible paths only when there's a single cache with ID "default" + useBackwardCompatiblePaths := len(data.CacheMemoryConfig.Caches) == 1 && data.CacheMemoryConfig.Caches[0].ID == "default" + + for _, cache := range data.CacheMemoryConfig.Caches { + // Skip restore-only caches + if cache.RestoreOnly { + continue + } + + // Default cache uses /tmp/gh-aw/cache-memory/ for backward compatibility + // Other caches use /tmp/gh-aw/cache-memory-{id}/ to prevent overlaps + var cacheDir string + if cache.ID == "default" { + cacheDir = "/tmp/gh-aw/cache-memory" + } else { + cacheDir = fmt.Sprintf("/tmp/gh-aw/cache-memory-%s", cache.ID) + } + + // Add upload-artifact step for each cache (runs always) + if useBackwardCompatiblePaths { + builder.WriteString(" - name: Upload cache-memory data as artifact\n") + } else { + builder.WriteString(fmt.Sprintf(" - name: Upload cache-memory data as artifact (%s)\n", cache.ID)) + } + builder.WriteString(fmt.Sprintf(" uses: %s\n", GetActionPin("actions/upload-artifact"))) + builder.WriteString(" if: always()\n") + builder.WriteString(" with:\n") + // Always use the new artifact name and path format + if useBackwardCompatiblePaths { + builder.WriteString(" name: cache-memory\n") + } else { + fmt.Fprintf(builder, " name: cache-memory-%s\n", cache.ID) + } + fmt.Fprintf(builder, " path: %s\n", cacheDir) + // Add retention-days if configured + if cache.RetentionDays != nil { + fmt.Fprintf(builder, " retention-days: %d\n", *cache.RetentionDays) } } } diff --git a/pkg/workflow/compiler_yaml.go b/pkg/workflow/compiler_yaml.go index e4b8b8fb9d7..aeb68117942 100644 --- a/pkg/workflow/compiler_yaml.go +++ b/pkg/workflow/compiler_yaml.go @@ -444,6 +444,10 @@ func (c *Compiler) generateMainJobSteps(yaml *strings.Builder, data *WorkflowDat // Add repo-memory artifact upload to save state for push job generateRepoMemoryArtifactUpload(yaml, data) + // Add cache-memory artifact upload (after agent execution) + // This ensures artifacts are uploaded after the agent has finished modifying the cache + generateCacheMemoryArtifactUpload(yaml, data) + // upload assets if upload-asset is configured if data.SafeOutputs != nil && data.SafeOutputs.UploadAssets != nil { c.generateUploadAssets(yaml)