Skip to content

Fix cache-memory and repo-memory naming to use sanitized IDs#15558

Merged
pelikhan merged 5 commits intomainfrom
copilot/fix-cache-memory-id-expression
Feb 14, 2026
Merged

Fix cache-memory and repo-memory naming to use sanitized IDs#15558
pelikhan merged 5 commits intomainfrom
copilot/fix-cache-memory-id-expression

Conversation

Copy link
Contributor

Copilot AI commented Feb 14, 2026

Cache-memory artifact keys were using ${{ github.workflow }} (the workflow name, e.g., "Smoke Copilot") instead of the sanitized workflow ID, resulting in keys with spaces and inconsistent casing. Repo-memory artifact names could also contain hyphens if users configured memory IDs with hyphens.

Changes

Cache-Memory

  • Added SanitizeWorkflowIDForCacheKey(): Removes hyphens and lowercases workflow ID (e.g., smoke-copilotsmokecopilot)
  • Added GH_AW_WORKFLOW_ID_SANITIZED env var: Set at main job level, contains sanitized workflow ID
  • Updated cache key expressions: Changed from memory-${{ github.workflow }}-${{ github.run_id }} to memory-${{ env.GH_AW_WORKFLOW_ID_SANITIZED }}-${{ github.run_id }}

Repo-Memory

  • Applied sanitization to artifact names: Artifact names now use sanitized memory IDs (e.g., code-metricscodemetrics)
  • Consistent naming: Both upload and download artifact steps use the same SanitizeWorkflowIDForCacheKey() helper

Examples

Cache-Memory

For workflow file smoke-copilot.md:

# Before
key: memory-${{ github.workflow }}-${{ github.run_id }}
# Evaluates to: memory-Smoke Copilot-22008356566

# After  
env:
  GH_AW_WORKFLOW_ID_SANITIZED: smokecopilot
key: memory-${{ env.GH_AW_WORKFLOW_ID_SANITIZED }}-${{ github.run_id }}
# Evaluates to: memory-smokecopilot-22008356566

Repo-Memory

For a memory with ID code-metrics:

# Before
name: repo-memory-code-metrics

# After
name: repo-memory-codemetrics  # Hyphens removed

Applied to all cache key generation points in cache.go (default keys, custom keys, restore keys, artifact uploads) and repo-memory artifact naming in repo_memory.go.

[!WARNING]


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Copilot AI and others added 2 commits February 14, 2026 01:34
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix cache-memory ID generation to use workflow ID Fix cache-memory keys to use sanitized workflow ID Feb 14, 2026
Copilot AI requested a review from pelikhan February 14, 2026 01:39
@pelikhan
Copy link
Contributor

@copilot fix repo-memory naming as well using same name cleaning helper

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Feb 14, 2026

@copilot fix repo-memory naming as well using same name cleaning helper

Applied the same SanitizeWorkflowIDForCacheKey() helper to repo-memory artifact names. Memory IDs with hyphens (e.g., code-metrics) are now sanitized to codemetrics when used in artifact names, ensuring consistency with cache-memory naming. (cd84a31)

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • https://api.github.com/graphql
    • Triggering command: /usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw md grep grep -l repo-memory rver-lifecycle.m-ifaceassert 0/x64/bin/grep repo-memory yst.md /usr/local/sbin/-stringintconv grep (http block)
    • Triggering command: /usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw md /home/REDACTED/.lo-bool grep -l repo-memory rver-lifecycle.m-ifaceassert grep repo-memory yst.md ep grep (http block)
    • Triggering command: /usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw -pack /home/REDACTED/work/gh-aw/gh-aw/cmd/gh-aw/main.go grep -l repo-memory issues-data-fetc-ifaceassert ndor/bin/grep repo-memory yst.md de/node/bin/grep-stringintconv grep (http block)
  • https://api.github.com/repos/actions/ai-inference/git/ref/tags/v1
    • Triggering command: /usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v1 --jq .object.sha --write scripts/**/*.js 6393578/b394/vet.cfg .prettierignore .github/workflowrev-parse ache/go/1.25.0/x--show-toplevel bash d --noprofile ache/go/1.25.0/x--others /opt/hostedtoolcache/go/1.25.0/x64/pkg/tool/linux_amd64/vet se 560528/b065/vet.rev-parse cfg /opt/hostedtoolcache/go/1.25.0/x64/pkg/tool/linucurrent (local changes) (http block)
  • https://api.github.com/repos/actions/ai-inference/git/ref/tags/v2
    • Triggering command: /usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v2 --jq .object.sha repo-memory -session-data-fetch.md x_amd64/vet repo-memory ry.md 64/bin/grep x_amd64/vet -l repo-memory s/shared/weekly-issues-data-fetc-ifaceassert x_amd64/vet repo-memory sues.md ache/go/1.25.0/x/home/REDACTED/work/gh-aw/gh-aw/.github/workflows x_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v2 --jq .object.sha repo-memory -short.md $name) { hasDiscussionsEnabled } } repo-memory ry.md de/node/bin/grepxterm-color x_amd64/vet -l repo-memory s/shared/session-analysis-charts-ifaceassert r: $owner, name: $name) { hasDiscussionsEnabled } } repo-memory sues.md k/_temp/ghcca-no/home/REDACTED/work/gh-aw/gh-aw/.github/workflows x_amd64/vet (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/11bd71901bbe5b1630ceea73d27597364c9af683
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/11bd71901bbe5b1630ceea73d27597364c9af683 --jq .object.sha repo-memory -session-data-fetch.md x_amd64/vet repo-memory ummary.md grep x_amd64/vet -l repo-memory s/shared/weekly-issues-data-fetc-ifaceassert x_amd64/vet repo-memory -quality.md /usr/local/sbin/graphql x_amd64/vet (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v3
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v3 --jq .object.sha 5230-17535/test-2080199354/.github/workflows config 64/pkg/tool/linux_amd64/vet remote.origin.urgit s/shared/ffmpeg.rev-parse x_amd64/compile 64/pkg/tool/linux_amd64/vet ache�� ternal/tools/actions-build/main.go x_amd64/compile 0/x64/bin/node rkflow/js/**/*.jgit s/shared/app-conrev-parse erignore ache/go/1.25.0/x64/pkg/tool/linux_amd64/compile (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v4 --jq .object.sha --noprofile 64/pkg/tool/linux_amd64/vet /opt/hostedtoolcache/node/24.13.0/x64/bin/node repo-memory o_memory.go repository(owne--show-toplevel node /opt�� prettier l /node_modules/.bin/node --ignore-path .prettierignore cfg node (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v4 --jq .object.sha G-zicVen1 64/pkg/tool/linu--jq /home/REDACTED/go/bin/sh repo-memory .github/workflowrev-parse 64/pkg/tool/linu--show-toplevel ortcfg -c g/styles/theme.go g/styles/theme_test.go /home/node_modules/.bin/node repo-memory .github/workflowrev-parse run-script/lib/n--show-toplevel node (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v4 --jq .object.sha /opt/pipx_bin/gr/tmp/go-build2266393578/b380/constants.test /opt/hostedtoolc-importcfg (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v5
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq .object.sha ormat:pkg-json rev-parse /usr/bin/git repo-memory jis.md $name) { hasdownload git -C (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq .object.sha user (http block)
    • Triggering command: `/usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq .object.sha -unreachable=false /tmp/go-build2266393578/b108/vet.cfg /usr/bin/git k/gh-aw/gh-aw/.ggit

Co-authored-byrev-parse /opt/hostedtoolc--show-toplevel git conf�� user.email test@example.com /usr/bin/git ub/workflows -buildtags es/.bin/sh git` (http block)

  • https://api.github.com/repos/actions/checkout/git/ref/tags/v6
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq .object.sha repo-memory a.md x_amd64/vet repo-memory ep-research.md rgo/bin/grep x_amd64/vet -l repo-memory tion_test.go x_amd64/vet repo-memory ummary.md ndor/bin/grep x_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq .object.sha repo-memory s/shared/docs-server-lifecycle.md x_amd64/vet repo-memory ummary.md de/node/bin/grep/home/REDACTED/work/gh-aw/gh-aw/.github/workflows x_amd64/vet -l repo-memory s/shared/use-emojis.md 64/pkg/tool/linux_amd64/compile repo-memory y-checker.md k/_temp/ghcca-no/home/REDACTED/work/gh-aw/gh-aw/.github/workflows 64/pkg/tool/linurev-parse (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq .object.sha repo-memory s/shared/docs-server-lifecycle.m-ifaceassert x_amd64/vet repo-memory ummary.md /opt/pipx_bin/grxterm-color x_amd64/vet -l repo-memory s/shared/use-emojis.md 64/pkg/tool/linux_amd64/vet repo-memory y-checker.md rgo/bin/grep 64/pkg/tool/linu--jq (http block)
  • https://api.github.com/repos/actions/download-artifact/git/ref/tags/v6
    • Triggering command: /usr/bin/gh gh api /repos/actions/download-artifact/git/ref/tags/v6 --jq .object.sha repo-memory threat-scan.md 0/x64/bin/grep -t ector.md /usr/local/sbin/-bool grep -l repo-memory -pr-data-fetch.m-ifaceassert ache/node/24.13.-nilfunc repo-memory -detector.md rep grep (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/download-artifact/git/ref/tags/v6 --jq .object.sha repo-memory s/shared/use-emojis.md 64/pkg/tool/linux_amd64/vet repo-memory y-checker.md /home/REDACTED/.lo/home/REDACTED/work/gh-aw/gh-aw/.github/workflows 64/pkg/tool/linurev-parse -l repo-memory cfg 64/pkg/tool/linux_amd64/vet repo-memory r.md ep 64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/download-artifact/git/ref/tags/v6 --jq .object.sha repo-memory s/shared/sq.md 64/pkg/tool/linux_amd64/vet repo-memory ntifier.md ep 64/pkg/tool/linurev-parse -l repo-memory cfg 64/pkg/tool/linux_amd64/vet repo-memory r.md /opt/pipx_bin/grxterm-color 64/pkg/tool/linux_amd64/vet (http block)
  • https://api.github.com/repos/actions/github-script/git/ref/tags/v7
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v7 --jq .object.sha repo-memory -safe-input.md rgo/bin/grep --noprofile s/test-project-u-atomic (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v7 --jq .object.sha repo-memory -safe-input.md grep --noprofile s/test-project-u-atomic ep grep -l repo-memory md /usr/local/sbin/-nilfunc repo-memory eport.md /opt/pipx_bin/grlog.showsignature=false grep (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v7 --jq .object.sha repo-memory s/shared/docs-server-lifecycle.m-ifaceassert x_amd64/vet repo-memory ummary.md rep x_amd64/vet -l repo-memory s/shared/use-emojis.md x_amd64/asm repo-memory y-checker.md cal/bin/grep x_amd64/asm (http block)
  • https://api.github.com/repos/actions/github-script/git/ref/tags/v8
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq .object.sha se : pelikhan &lt;4175--ignore-path me: String!) { ../../../.prettierignore repo-memory nce-analyzer.md /usr/local/sbin/npx prettier --write &#39;../../../**/*.json&#39; &#39;!../../../pkg/workflow/js/**/*.json&#39; --ignore-path ache/go/1.25.0/x64/pkg/tool/linux_amd64/vet --no�� h ../../../.prettierignore grep /sh repo-memory md rep /opt/hostedtoolc-buildtags (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq .object.sha ath ../../../.pr**/*.json grep ache/go/1.25.0/x../../../.prettierignore repo-memory s/blog-auditor.m-c rgo/bin/grep ache/go/1.25.0/x64/pkg/tool/linu-f er tags/v5 grep 560528/b162/vet.cfg repo-memory s-tester.md ndor/bin/grep /opt/hostedtoolcache/go/1.25.0/xorigin (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq .object.sha ath ../../../.pr**/*.json grep me: String!) { ../../../.prettierignore repo-memory md k/_temp/ghcca-no--write /opt/hostedtoolc../../../**/*.json -uns�� ithub/workflows /tmp/go-build571../../../.prettierignore 560528/b265/vet.cfg repo-memory s-tester.md grep /opt/hostedtoolcache/go/1.25.0/x64/pkg/tool/linurev-parse (http block)
  • https://api.github.com/repos/actions/setup-go/git/ref/tags/4dc6199c7b1a012772edbd06daecab0f50c9053c
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/4dc6199c7b1a012772edbd06daecab0f50c9053c --jq .object.sha repo-memory rics.lock.yml x_amd64/vet repo-memory sues.md /usr/local/sbin//home/REDACTED/work/gh-aw/gh-aw/.github/workflows x_amd64/vet -l repo-memory s/shared/sq.md 64/pkg/tool/linux_amd64/vet repo-memory ntifier.md rep 64/pkg/tool/linurev-parse (http block)
  • https://api.github.com/repos/actions/setup-go/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --jq .object.sha --noprofile 64/pkg/tool/linux_amd64/vet /home/REDACTED/work/node_modules/.bin/sh repo-memory .github/workflowrev-parse 64/pkg/tool/linu--show-toplevel sh estl�� &#34;prettier&#34; --write &#39;scripts/**/*.js&#39; --ignore-path .prettierignore 64/pkg/tool/linux_amd64/vet /home/REDACTED/work/gh-aw/gh-aw/actions/node_modules/.bin/node ettierignore .github/workflowrev-parse repository(owne--show-toplevel node (http block)
  • https://api.github.com/repos/actions/setup-go/git/ref/tags/v5
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v5 --jq .object.sha repo-memory /deps.go x_amd64/vet repo-memory s/lockfile-statsapi grep x_amd64/vet -l repo-memory with-trending.mdowner=github x_amd64/vet repo-memory ummary.md /usr/local/sbin//home/REDACTED/work/gh-aw/gh-aw/.github/workflows x_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v5 --jq .object.sha repo-memory jis.md x_amd64/vet repo-memory ort.md ndor/bin/grep x_amd64/vet -l repo-memory with-trending.md-nolocalimports x_amd64/vet repo-memory ummary.md 64/bin/grep x_amd64/vet (http block)
  • https://api.github.com/repos/actions/setup-go/git/ref/tags/v6
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v6 --jq .object.sha repo-memory ut.md de/node/bin/grep 57 rics.md cal/bin/grep grep -l repo-memory -ai-inference.md k/_temp/ghcca-node/node/bin/grep --noprofile uber-super-exper-atomic /home/REDACTED/.lo-bool grep (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v6 --jq .object.sha repo-memory md ep --noprofile arts.md ache/go/1.25.0/x-unreachable=false grep -l repo-memory ions-data-fetch.md /opt/pipx_bin/grep repo-memory iewer.md 0/x64/bin/grep grep (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v6 --jq .object.sha pkg/workflow/data/action_pins.json; \ echo &#34;��� Action pins synced successfully&#34;; \ else \ echo &#34;��� Warning: .github/aw/actions-lock.json does not exist yet&#34;; \ fi e.md ndor/bin/grep --noprofile ector.md de/node/bin/grep-bool grep -l repo-memory -pr-data-fetch.m-ifaceassert 64/bin/grep repo-memory onicle.md k/_temp/ghcca-nopkg/workflow/data/action_pins.json grep (http block)
  • https://api.github.com/repos/actions/setup-node/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq .object.sha --noprofile 64/pkg/tool/linuconfig x_amd64/link repo-memory .github/workflowrev-parse 64/pkg/tool/linu--show-toplevel x_amd64/link -c runs/20260214-015230-17535/test-3163737429 64/pkg/tool/linuconfig 6393578/b403/repoutil.test l .github/workflowrev-parse ndor/bin/bash rk/V3uuUHw17g0XKfIN4a5Z/X9b_o_KBGf4vAAJ-rFJa (http block)
  • https://api.github.com/repos/actions/setup-node/git/ref/tags/v6
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v6 --jq .object.sha repo-memory ut.md 64/bin/grep --oneline rics.md k/_temp/ghcca-no-unreachable=false grep -l repo-memory -ai-inference.md (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v6 --jq .object.sha repo-memory ination.md 64/bin/grep --noprofile arts.md k/_temp/ghcca-no-unreachable=false grep -l repo-memory (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v6 --jq .object.sha repo-memory ination.md /opt/pipx_bin/grep --slice=azure-wa/opt/hostedtoolcache/go/1.25.0/x64/pkg/tool/linux_amd64/vet arts.md 0/x64/bin/grep grep -l repo-memory (http block)
  • https://api.github.com/repos/actions/upload-artifact/git/ref/tags/v6
    • Triggering command: /usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v6 --jq .object.sha repo-memory ut.md rep --noprofile rics.md rgo/bin/grep grep -l repo-memory -ai-inference.md cal/bin/grep --noprofile -error-patterns.-atomic ndor/bin/grep grep (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v6 --jq .object.sha repo-memory ut.md /opt/pipx_bin/gr-nilfunc --noprofile rics.md 0/x64/bin/grep grep -l repo-memory -ai-inference.md rgo/bin/grep --noprofile -error-patterns.-atomic (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v6 --jq .object.sha .json...&#34; ut.md ache/go/1.25.0/x-nilfunc --noprofile rics.md grep grep -l repo-memory -ai-inference.md 0/x64/bin/grep --noprofile -error-patterns.-atomic /usr/local/sbin/-bool grep (http block)
  • https://api.github.com/repos/anchore/sbom-action/git/ref/tags/v0
    • Triggering command: /usr/bin/gh gh api /repos/anchore/sbom-action/git/ref/tags/v0 --jq .object.sha repo-memory s/shared/weekly-issues-data-fetc-ifaceassert x_amd64/vet repo-memory -quality.md cal/bin/grep x_amd64/vet -l repo-memory s/shared/use-emojis.md 64/pkg/tool/linux_amd64/vet repo-memory y-checker.md /home/REDACTED/.lo/home/REDACTED/work/gh-aw/gh-aw/.github/workflows 64/pkg/tool/linurev-parse (http block)
    • Triggering command: /usr/bin/gh gh api /repos/anchore/sbom-action/git/ref/tags/v0 --jq .object.sha repo-memory s/shared/weekly-owner=github x_amd64/vet repo-memory -quality.md rgo/bin/grep x_amd64/vet -l repo-memory s/shared/use-emojis.md 64/pkg/tool/linux_amd64/vet repo-memory ntifier.md ndor/bin/grep 64/pkg/tool/linurev-parse (http block)
    • Triggering command: /usr/bin/gh gh api /repos/anchore/sbom-action/git/ref/tags/v0 --jq .object.sha repo-memory s/shared/sessionowner=github x_amd64/vet repo-memory sues.md /opt/pipx_bin/grxterm-color x_amd64/vet -l repo-memory s/shared/app-config.md 64/pkg/tool/linux_amd64/vet repo-memory s.md rgo/bin/grep 64/pkg/tool/linu-f (http block)
  • https://api.github.com/repos/docker/build-push-action/git/ref/tags/v6
    • Triggering command: /usr/bin/gh gh api /repos/docker/build-push-action/git/ref/tags/v6 --jq .object.sha repo-memory s/shared/weekly-owner=github x_amd64/vet repo-memory -quality.md k/_temp/ghcca-no/home/REDACTED/work/gh-aw/gh-aw/.github/workflows x_amd64/vet -l repo-memory s/shared/use-emojis.md 64/pkg/tool/linux_amd64/vet repo-memory y-checker.md grep 64/pkg/tool/linu--jq (http block)
    • Triggering command: /usr/bin/gh gh api /repos/docker/build-push-action/git/ref/tags/v6 --jq .object.sha repo-memory s/shared/weekly-issues-data-fetc-ifaceassert $name) { hasDiscussionsEnabled } } repo-memory sues.md (http block)
    • Triggering command: /usr/bin/gh gh api /repos/docker/build-push-action/git/ref/tags/v6 --jq .object.sha repo-memory s/shared/session-analysis-charts-ifaceassert x_amd64/vet repo-memory sues.md 64/bin/grep s not exist yet&#34;; \ fi -l ify@v1.11.1/require/doc.go ify@v1.11.1/require/forward_requirements.go 64/pkg/tool/linux_amd64/vet repo-memory s.md ache/go/1.25.0/x/home/REDACTED/work/gh-aw/gh-aw/.github/workflows 64/pkg/tool/linurev-parse (http block)
  • https://api.github.com/repos/docker/login-action/git/ref/tags/v3
    • Triggering command: /usr/bin/gh gh api /repos/docker/login-action/git/ref/tags/v3 --jq .object.sha repo-memory s/shared/weekly-issues-data-fetc-ifaceassert x_amd64/vet repo-memory -quality.md /home/REDACTED/.lo/home/REDACTED/work/gh-aw/gh-aw/.github/workflows x_amd64/vet -l repo-memory s/shared/sq.md 64/pkg/tool/linux_amd64/vet repo-memory ntifier.md ep 64/pkg/tool/linurev-parse (http block)
    • Triggering command: /usr/bin/gh gh api /repos/docker/login-action/git/ref/tags/v3 --jq .object.sha repo-memory s/shared/session-analysis-charts-ifaceassert x_amd64/vet repo-memory n-insights.md ache/go/1.25.0/x/home/REDACTED/work/gh-aw/gh-aw/.github/workflows x_amd64/vet -l repo-memory s/shared/app-config.md 64/pkg/tool/linux_amd64/vet repo-memory s.md 0/x64/bin/grep 64/pkg/tool/linurev-parse (http block)
  • https://api.github.com/repos/docker/metadata-action/git/ref/tags/v5
    • Triggering command: /usr/bin/gh gh api /repos/docker/metadata-action/git/ref/tags/v5 --jq .object.sha repo-memory s/shared/weekly-owner=github x_amd64/vet repo-memory sues.md ndor/bin/grep x_amd64/vet -l repo-memory s/shared/sq.md 64/pkg/tool/linux_amd64/vet repo-memory ntifier.md 64/bin/grep 64/pkg/tool/linu--jq (http block)
    • Triggering command: /usr/bin/gh gh api /repos/docker/metadata-action/git/ref/tags/v5 --jq .object.sha repo-memory s/shared/session-analysis-charts-ifaceassert x_amd64/vet repo-memory sues.md de/node/bin/grep/home/REDACTED/work/gh-aw/gh-aw/.github/workflows x_amd64/vet -l repo-memory s/shared/app-config.md 64/pkg/tool/linux_amd64/vet repo-memory s.md k/_temp/ghcca-no/home/REDACTED/work/gh-aw/gh-aw/.github/workflows 64/pkg/tool/linurev-parse (http block)
  • https://api.github.com/repos/docker/setup-buildx-action/git/ref/tags/v3
    • Triggering command: /usr/bin/gh gh api /repos/docker/setup-buildx-action/git/ref/tags/v3 --jq .object.sha repo-memory s/shared/docs-server-lifecycle.m-ifaceassert r: $owner, name: $name) { hasDiscussionsEnabled } } repo-memory -quality.md ache/go/1.25.0/xxterm-color x_amd64/vet -l repo-memory s/shared/use-emojis.md 64/pkg/tool/linux_amd64/vet repo-memory y-checker.md 0/x64/bin/grep 64/pkg/tool/linu--jq (http block)
    • Triggering command: /usr/bin/gh gh api /repos/docker/setup-buildx-action/git/ref/tags/v3 --jq .object.sha repo-memory s/shared/weekly-issues-data-fetc-ifaceassert x_amd64/vet repo-memory -quality.md grep x_amd64/vet -l repo-memory s/shared/sq.md 64/pkg/tool/linux_amd64/vet repo-memory ntifier.md /usr/local/sbin/graphql 64/pkg/tool/linu-f (http block)
    • Triggering command: /usr/bin/gh gh api /repos/docker/setup-buildx-action/git/ref/tags/v3 --jq .object.sha repo-memory s/shared/sessionowner=github x_amd64/vet repo-memory sues.md ep x_amd64/vet -l repo-memory s/shared/sq.md 64/pkg/tool/linux_amd64/vet repo-memory ntifier.md /opt/pipx_bin/gr/home/REDACTED/work/gh-aw/gh-aw/.github/workflows 64/pkg/tool/linurev-parse (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/1/artifacts
    • Triggering command: /usr/bin/gh gh run download 1 --dir test-logs/run-1 rev-parse /usr/bin/gh l tch.md grep /usr/bin/gh api &#39;**/*.ts&#39; &#39;**/*.json&#39; --ignore-path ../../../.pr**/*.json -f 0/x64/bin/npm -f owner=github -f git (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/12345/artifacts
    • Triggering command: /usr/bin/gh gh run download 12345 --dir test-logs/run-12345 config x_amd64/link remote.origin.urgit (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/12346/artifacts
    • Triggering command: /usr/bin/gh gh run download 12346 --dir test-logs/run-12346 grep tions/node_modules/.bin/sh l (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/2/artifacts
    • Triggering command: /usr/bin/gh gh run download 2 --dir test-logs/run-2 grep x_amd64/compile repo-memory tch.md 64/bin/grep x_amd64/compile -1 &#39;**/*.ts&#39; &#39;**/*.json&#39; --ignore-p-c=4 grep /usr/bin/gh repo-memory issues-data-fetc/tmp/js-hash-test-2593960355/test-hash.js ache/go/1.25.0/x/home/REDACTED/work/gh-aw/gh-aw/.github/workflows/audit-workflows.md /usr/bin/gh (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/3/artifacts
    • Triggering command: /usr/bin/gh gh run download 3 --dir test-logs/run-3 config x_amd64/compile remote.origin.urgit tch.md DiscussionsEnabl--show-toplevel x_amd64/compile -1 &#39;**/*.ts&#39; &#39;**/*.json&#39; --ignore-path ../../../.pr.prettierignore grep (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/4/artifacts
    • Triggering command: /usr/bin/gh gh run download 4 --dir test-logs/run-4 rev-parse x_amd64/compile repo-memory tch.md 0/x64/bin/grep x_amd64/compile -C &#39;**/*.ts&#39; &#39;**/*.json&#39; --ignore-pgo1.25.0 rev-parse /usr/bin/infocmp repo-memory issues-data-fetcrev-parse ache/node/24.13.--git-dir infocmp (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/5/artifacts
    • Triggering command: /usr/bin/gh gh run download 5 --dir test-logs/run-5 config de/node/bin/sh remote.origin.urgit tch.md (http block)
  • https://api.github.com/repos/github/gh-aw/actions/workflows
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path se 560528/b158/vet.cfg me: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabl-pack repo-memory .md (http block)
    • Triggering command: /usr/bin/gh gh run list --json databaseId,number,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle --workflow nonexistent-workflow-12345 --limit 100 t.md cal/bin/grep /opt/hostedtoolc-trimpath -uns�� js/**/*.json&#39; ---p /tmp/go-build571main (http block)
    • Triggering command: /usr/bin/gh gh run list --json databaseId,number,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle --workflow nonexistent-workflow-12345 --limit 6 threat-scan.md ache/go/1.25.0/xuser.email git -C /home/REDACTED/work/gh-aw/gh-aw/.github/workflows rev-parse 64/bin/node repo-memory (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/c4e091835c7a94dc7d3acb8ed3ae145afb4995f3
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/c4e091835c7a94dc7d3acb8ed3ae145afb4995f3 --jq .object.sha repo-memory md /usr/local/sbin/-nilfunc repo-memory eport.md /opt/pipx_bin/grlog.showsignature=false grep -l repo-memory fig.md x_amd64/vet repo-memory ency-checker.md rgo/bin/grep x_amd64/vet (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v1.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.0.0 --jq .object.sha 2080199354/.github/workflows grep x_amd64/vet l md cal/bin/grep x_amd64/vet 0/x6�� ions-build/main.go rev-parse 64/pkg/tool/linux_amd64/compile son fig.md x_amd64/vet 64/pkg/tool/linux_amd64/compile (http block)
  • https://api.github.com/repos/githubnext/agentics/git/ref/tags/-
    • Triggering command: /usr/bin/gh gh api /repos/githubnext/agentics/git/ref/tags/- --jq .object.sha repo-memory s/shared/issues-data-fetch.md x_amd64/vet repo-memory ort.md de/node/bin/grepgraphql x_amd64/vet -l repo-memory -session-data-feowner=github x_amd64/vet repo-memory ry.md k/_temp/ghcca-no/repos/actions/upload-artifact/git/ref/tags/v6 x_amd64/vet (http block)
  • https://api.github.com/repos/nonexistent/repo/actions/runs/12345
    • Triggering command: /usr/bin/gh gh run view 12345 --repo nonexistent/repo --json status,conclusion repo-memory -safe-input.md de/node/bin/grep/home/REDACTED/work/gh-aw/gh-aw/.github/workflows/agent-performance-analyzer.md git -C 2080199354/.github/workflows config 0/x64/bin/npx remote.origin.urgit md (http block)
  • https://api.github.com/repos/owner/repo/actions/workflows
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path --repo owner/repo ache/go/1.25.0/x64/pkg/tool/linux_amd64/vet repo-memory .md grep ache/go/1.25.0/xscripts/**/*.js --no�� h ../../../.pret.prettierignore grep de repo-memory pt.md /usr/local/sbin/--noprofile /opt/hostedtoolcache/go/1.25.0/x--others (http block)
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path --repo owner/repo ache/go/1.25.0/x64/pkg/tool/linux_amd64/vet repo-memory .md /opt/pipx_bin/gr--write ache/go/1.25.0/xscripts/**/*.js --no�� h ../../../.pret.prettierignore grep me: String!) { repository(owner: $owner, name:-f repo-memory pt.md rgo/bin/grep ache/go/1.25.0/x64/pkg/tool/linu--others (http block)
    • Triggering command: /usr/bin/gh gh workflow list --repo owner/repo --json name,path,state /usr/bin/git repo-memory (http block)
  • https://api.github.com/repos/test-owner/test-repo/actions/secrets
    • Triggering command: /usr/bin/gh gh api /repos/test-owner/test-repo/actions/secrets --jq .secrets[].name --noprofile grep de repo-memory k-miner.md 64/bin/grep ache/go/1.25.0/x64/pkg/tool/linurev-parse --no�� ithub/workflows grep modules/@npmcli/run-script/lib/node-gyp-bin/sh repo-memory s/security-revie/home/REDACTED/work/gh-aw/gh-aw/actions/setup/js/node_modules/.bin/prettier ache/go/1.25.0/x--write /opt/hostedtoolc../../../**/*.json (http block)
  • https://api.github.com/user
    • Triggering command: /usr/bin/gh gh api user --jq .login repo-memory ies.md rep --noprofile d rgo/bin/grep grep -l repo-memory ript.md cal/bin/grep --noprofile uber-super-exper-atomic ndor/bin/grep grep (http block)
    • Triggering command: /usr/bin/gh gh api user --jq .login repo-memory (http block)
    • Triggering command: /usr/bin/gh gh api user --jq .login repo-memory .github/workflows/ai-moderator.md ache/go/1.25.0/x64/pkg/tool/linux_amd64/vet repo-memory nment.md ache/go/1.25.0/x&#34;prettier&#34; --write &#39;**/*.cjs&#39; &#39;**/*.ts&#39; &#39;**/*.json&#39; --ignore-path ../../../.prettierignore ache/go/1.25.0/x64/pkg/tool/linurev-parse (http block)

If you need me to access, download, or install something from one of these locations, you can either:

Copilot AI changed the title Fix cache-memory keys to use sanitized workflow ID Fix cache-memory and repo-memory naming to use sanitized IDs Feb 14, 2026
@pelikhan pelikhan marked this pull request as ready for review February 14, 2026 01:53
Copilot AI review requested due to automatic review settings February 14, 2026 01:53
@pelikhan pelikhan merged commit 9c616f4 into main Feb 14, 2026
47 of 48 checks passed
@pelikhan pelikhan deleted the copilot/fix-cache-memory-id-expression branch February 14, 2026 01:54
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request fixes cache-memory and repo-memory naming to use sanitized IDs, addressing the issue where cache keys were using ${{ github.workflow }} (the workflow name with spaces and mixed casing) instead of a sanitized workflow ID. The changes ensure consistent, filesystem-safe naming across cache keys and artifact names.

Changes:

  • Added SanitizeWorkflowIDForCacheKey() helper function that removes hyphens and lowercases workflow/memory IDs
  • Introduced GH_AW_WORKFLOW_ID_SANITIZED environment variable in the main job to hold the sanitized workflow ID
  • Updated all cache-memory key expressions to use the sanitized environment variable instead of github.workflow
  • Applied sanitization to repo-memory artifact names to remove hyphens

Reviewed changes

Copilot reviewed 160 out of 160 changed files in this pull request and generated no comments.

Show a summary per file
File Description
pkg/workflow/compiler_yaml_helpers.go Added SanitizeWorkflowIDForCacheKey() helper function with clear documentation
pkg/workflow/compiler_yaml_helpers_test.go Added comprehensive tests for the sanitization function covering multiple edge cases
pkg/workflow/compiler_activation_jobs.go Set GH_AW_WORKFLOW_ID_SANITIZED environment variable in the main job
pkg/workflow/cache.go Updated cache key generation to use sanitized workflow ID throughout (default keys, custom keys, restore keys)
pkg/workflow/repo_memory.go Applied sanitization to artifact upload and download names
pkg/workflow/repo_memory_path_consistency_test.go Updated test expectations to reflect sanitized artifact names
pkg/workflow/cache_memory_*.go test files Updated test expectations for cache keys to use sanitized IDs
.github/workflows/*.lock.yml (150+ files) Regenerated lock files with new environment variable and sanitized cache keys

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

Comments