Skip to content

Fix comment-memory disclosure template lookup in safe_outputs#27989

Merged
pelikhan merged 5 commits intomainfrom
copilot/fix-comment-memory-issue
Apr 23, 2026
Merged

Fix comment-memory disclosure template lookup in safe_outputs#27989
pelikhan merged 5 commits intomainfrom
copilot/fix-comment-memory-issue

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 23, 2026

Summary

Fixes the comment_memory safe output failure seen in safe_outputs where the disclosure template was loaded from a non-existent runtime path (.../gh-aw/md/comment_memory_disclosure_note.md).

Changes

  • Updated actions/setup/js/comment_memory.cjs to use the same renderTemplateFromFile template-path pattern as other setup handlers.
  • comment_memory_disclosure_note.md is now loaded from runtime prompts paths:
    • GH_AW_PROMPTS_DIR (if set)
    • ${RUNNER_TEMP}/gh-aw/prompts
  • Removed the custom file-existence resolver and aligned template loading with the standard helper usage.
  • Updated actions/setup/js/comment_memory.test.cjs to set GH_AW_PROMPTS_DIR during tests and use fileURLToPath for cross-platform path handling.

Validation

  • npm run test:js -- comment_memory.test.cjs
  • make agent-finish ⚠️ fails due to pre-existing unrelated pkg/workflow test failures in this branch (TestCopilotDetectionDefaultModel, TestWasmGolden_CompileFixtures).

🤖 Smoke CI scheduled run: https://github.com/github/gh-aw/actions/runs/24819753679

Generated by Smoke CI · ● 395.5K ·



✨ PR Review Safe Output Test - Run 24820197107

💥 [THE END] — Illustrated by Smoke Claude · ● 218.8K ·

Comment thread actions/setup/js/comment_memory.cjs Outdated
Comment on lines +23 to +36
const MANAGED_COMMENT_DISCLOSURE_NOTE_PATH = path.join(__dirname, "../md/comment_memory_disclosure_note.md");
const MANAGED_COMMENT_DISCLOSURE_NOTE_FILENAME = "comment_memory_disclosure_note.md";

function resolveManagedCommentDisclosureNotePath() {
const promptDirFromEnv = process.env.GH_AW_PROMPTS_DIR || (process.env.RUNNER_TEMP ? `${process.env.RUNNER_TEMP}/gh-aw/prompts` : "");
const candidates = [promptDirFromEnv ? path.join(promptDirFromEnv, MANAGED_COMMENT_DISCLOSURE_NOTE_FILENAME) : "", path.join(__dirname, "../md", MANAGED_COMMENT_DISCLOSURE_NOTE_FILENAME)].filter(Boolean);

for (const candidate of candidates) {
if (fs.existsSync(candidate)) {
return candidate;
}
}

return candidates[0];
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

@copilot use render template from file helper like other templates

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Updated in f61b850: comment_memory now uses the same renderTemplateFromFile template-path pattern as other templates (GH_AW_PROMPTS_DIR or ${RUNNER_TEMP}/gh-aw/prompts) and removed the custom file-existence resolver. I also added a cross-platform test path fix in a0e16d2.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Smoke test agent here — noted! The template-from-file approach is cleaner and consistent with the rest of the codebase. ✅

📰 BREAKING: Report filed by Smoke Copilot · ● 2M

Copy link
Copy Markdown
Contributor Author

Copilot AI commented Apr 23, 2026

Just as a heads up, I was blocked by some firewall rules while working on your feedback. Expand below for details.

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 gh repo view --json owner,name --jq .owner.login + "/" + .name /usr/bin/git -s -w -buildmode=exe git ls-r�� --symref origin /usr/bin/git npx prettier --cgit GOPROXY 64/bin/go git (http block)
    • Triggering command: /usr/bin/gh gh repo view owner/repo t-26�� k/gh-aw/gh-aw/.github/workflows/architecture-guardian.md rev-parse t "prettier" --che/usr/bin/git sh 64/bin/go node /tmp�� r-test3267732515/test1.md r-test3267732515/test2.lock.yml /usr/bin/infocmp -json GO111MODULE 64/bin/go infocmp (http block)
    • Triggering command: /usr/bin/gh gh repo view owner/repo conf�� user.name Test User /usr/bin/git --check scripts/**/*.js 64/bin/go git rev-�� --show-toplevel go /usr/bin/git -json GO111MODULE 64/bin/go git (http block)
  • https://api.github.com/orgs/test-owner/actions/secrets
    • Triggering command: /usr/bin/gh gh api /orgs/test-owner/actions/secrets --jq .secrets[].name npx prettier --cGOINSECURE GOPROXY 64/bin/go GOSUMDB GOWORK 64/bin/go sh -c "prettier" --cheGOINSECURE sh 64/bin/go -d (http block)
    • Triggering command: /usr/bin/gh gh api /orgs/test-owner/actions/secrets --jq .secrets[].name -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env eb9751d2361428aa-d GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (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, .object.type] | @tsv --show-toplevel go /usr/bin/git -json GO111MODULE 64/bin/go git rev-�� --show-toplevel go /usr/bin/git ithout_min-integnode GO111MODULE 64/pkg/tool/linuinstall git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v1 --jq [.object.sha, .object.type] | @tsv --show-toplevel go /usr/bin/git -json GO111MODULE n-dir/sh git remo�� GOMODCACHE go /usr/bin/git y_with_repos_arrnode GO111MODULE 64/pkg/tool/linuinstall git (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, .object.type] | @tsv --show-toplevel sh /usr/bin/git "prettier" --chegit sh 64/bin/go git rev-�� --show-toplevel go e/git -json GO111MODULE 64/bin/go e/git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v3 --jq [.object.sha, .object.type] | @tsv heckout/git/ref/tags/v5 config bject.type] | @tsv remote.origin.urgit GO111MODULE 64/bin/go git conf�� --get remote.origin.url /opt/hostedtoolcache/node/24.14.1/x64/bin/node -json GO111MODULE 64/bin/go node (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, .object.type] | @tsv -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq [.object.sha, .object.type] | @tsv --show-toplevel 64/pkg/tool/linux_amd64/vet /usr/bin/git -json GO111MODULE ache/go/1.25.8/x: git rev-�� --show-toplevel go /usr/bin/git -json GO111MODULE .cfg git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq [.object.sha, .object.type] | @tsv --show-toplevel /bin/sh /usr/bin/git -aw/git/ref/tagsgit GOPROXY bject.type] | @t--show-toplevel git 1/x6�� --show-toplevel git /usr/bin/git /tmp/TestParseDegit /tmp/TestParseDerev-parse /usr/bin/git 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, .object.type] | @tsv -m initial commit /usr/bin/git bsxV/IH_bxM9lUrDgit GO111MODULE 64/bin/go git rev-�� 5724-25015/test-2064791503 698422/b409/impoGO111MODULE /usr/bin/git h3690349292/001'git h3690349292/001'rev-parse 64/bin/go git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv --show-toplevel -goversion 1/x64/bin/node -c=4 -nolocalimports -importcfg 1/x64/bin/node rev-�� --show-toplevel go /usr/bin/git 2029383834/001' 2029383834/001' /node git (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, .object.type] | @tsv --git-dir go /usr/bin/git 5724-25015/test-git GO111MODULE ache/go/1.25.8/x-m git rev-�� --show-toplevel go /usr/bin/git 5724-25015/test-git GO111MODULE ache/node/24.14.--show-toplevel git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq [.object.sha, .object.type] | @tsv 77111919 ortcfg /usr/bin/git 5934-40819/test-git GO111MODULE ache/go/1.25.8/x-m git rev-�� --show-toplevel ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile /usr/bin/git /ref/tags/v9 GO111MODULE sv git (http block)
  • https://api.github.com/repos/actions/github-script/git/ref/tags/v9
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9 --jq [.object.sha, .object.type] | @tsv GOSUMDB GOWORK 64/bin/go GOINSECURE GOMOD GOMODCACHE sh -c "prettier" --cheGOINSECURE GOPROXY 64/bin/go GOSUMDB GOWORK 64/bin/go git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9 --jq [.object.sha, .object.type] | @tsv --check scripts/**/*.js 64/bin/go -d (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9 --jq [.object.sha, .object.type] | @tsv --porcelain node 64/bin/go --write ../../../**/*.jsrev-parse 64/bin/go go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (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, .object.type] | @tsv --show-toplevel go /usr/bin/git -json GO111MODULE 64/bin/go git rev-�� --show-toplevel go /opt/hostedtoolcache/node/24.14.1/x64/bin/node itmain_branch296git itmain_branch296rev-parse 64/bin/go /opt/hostedtoolcache/node/24.14.1/x64/bin/node (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv --show-toplevel x_amd64/compile /usr/bin/git -json GO111MODULE 64/bin/go git rev-�� 713/001 go /usr/bin/git -json GO111MODULE ache/go/1.25.8/x--show-toplevel git (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, .object.type] | @tsv /tmp/TestHashConsistency_GoAndJavaScript3977248152/001/test-frontmatter-with-env-template-expresgit go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv --show-toplevel go /usr/bin/git to pkg/actionpingit GO111MODULE 64/bin/go git comm�� -m Initial commit /usr/bin/git -json GO111MODULE 64/bin/go git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv /tmp/gh-aw-add-gitattributes-test3705621620 show ache/node/24.14.1/x64/bin/node -c=4 -nolocalimports -importcfg git t-42�� k/gh-aw/gh-aw/.github/workflows/architecture-guardian.md go /usr/bin/git -json GO111MODULE 64/bin/go git (http block)
  • https://api.github.com/repos/actions/upload-artifact/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv GOPATH GOPROXY /bin/sh GOSUMDB GOWORK 64/bin/go /bin/sh -c git-receive-pack '/tmp/TestParseDefaultBranchFro.github/workflows/test.md git-receive-pack '/tmp/TestParseDefaultBranchFromLsRemoteWithRealGitcustom_branch3690349292/001'rev-parse /usr/bin/git -json GO111MODULE 64/bin/go git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv /tmp/go-build3218536359/b001/_pkg_.a l /usr/bin/git -p main -lang=go1.25 git clon�� /tmp/TestParseDefaultBranchFromLsRemoteWithRealGitcustom_branch1292613560/001 /tmp/TestParseDefaultBranchFromLsRemoteWithRealGitcustom_branch1292613560/002/work /usr/bin/git go1.25.8 -c=4 -nolocalimports git (http block)
  • https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v0.1.2
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v0.1.2 --jq [.object.sha, .object.type] | @tsv GOMODCACHE go /usr/lib/git-core/git -json GO111MODULE 64/bin/go /usr/lib/git-core/git main�� run --auto om/testorg/testrepo.git --detach GO111MODULE 64/bin/go git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v0.1.2 --jq [.object.sha, .object.type] | @tsv --show-toplevel x_amd64/link /usr/bin/git -json GO111MODULE 64/bin/go git rev-�� --show-toplevel go /usr/bin/git 1/001/test-simplgit GO111MODULE tions/setup/js/n--show-toplevel git (http block)
  • https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v1.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.0.0 --jq [.object.sha, .object.type] | @tsv -bool -buildtags /bin/sh -errorsas -ifaceassert -nilfunc /bin/sh -c git-upload-pack '/tmp/TestParseDefaultBranchFromLsRemoteWithRealGitbranch_with_hremote.origin.urgit git-upload-pack '/tmp/TestParseDefaultBranchFromLsRemoteWithRealGitbranch_with_hyphen11237420/00rev-parse /usr/bin/git d GOPROXY 64/bin/go git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.0.0 --jq [.object.sha, .object.type] | @tsv runs/20260423-055934-40819/test-3711579589/.github/workflows -buildtags /usr/lib/git-core/git-upload-pack l -ifaceassert -nilfunc git-upload-pack /tmp�� -stringintconv -tests /usr/bin/git -json GO111MODULE 64/bin/go git (http block)
  • https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v1.2.3
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.2.3 --jq [.object.sha, .object.type] | @tsv -bool -buildtags (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.2.3 --jq [.object.sha, .object.type] | @tsv -bool -buildtags /usr/bin/git -errorsas -ifaceassert -nilfunc git clon�� /tmp/TestParseDefaultBranchFromLsRemoteWithRealGitbranch_with_hyphen1616079863/0remote.origin.urgit /tmp/TestParseDefaultBranchFromLsRemoteWithRealGitbranch_with_hyphen1616079863/002/work /usr/bin/git -json GO111MODULE (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/1/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/1/artifacts --jq .artifacts[].name GO111MODULE /opt/hostedtoolcache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh run download 1 --dir test-logs/run-1 GO111MODULE /bin/sh GOINSECURE GOMOD GOMODCACHE /bin/sh -c runs/20260423-055724-25015/test-2788233304 GOPROXY /usr/bin/git l GOWORK 64/bin/go git (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/1/artifacts --jq .artifacts[].name GOPROXY /usr/bin/cp GOSUMDB GOWORK 64/bin/go cp .git�� pkg/actionpins/data/action_pins.json go /usr/lib/git-core/git -json GO111MODULE 64/bin/go /usr/lib/git-cor^remote\..*\.gh-resolved$ (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/12345/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/12345/artifacts --jq .artifacts[].name GO111MODULE 2977956/b306/vet.cfg GOINSECURE GOMOD GOMODCACHE go env licyMinIntegrityOnlymin-integrity_with_repos_array_c1495140131/001 GO111MODULE /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/link GOINSECURE GOMOD GOMODCACHE /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/link (http block)
    • Triggering command: /usr/bin/gh gh run download 12345 --dir test-logs/run-12345 GO111MODULE /opt/hostedtoolcache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go env licyTrustedUsersCompiledOutput3106184268/001 GO111MODULE /usr/bin/git l GOMOD GOMODCACHE git (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/12345/artifacts --jq .artifacts[].name --check /opt/hostedtoolcache/go/1.25.8/x64/bin/go **/*.ts **/*.json --ignore-path go list�� tructions-test-3250186920/.github/workflows -e /tmp/go-build1080683807/b404/cli.test tierignore ../../../**/*.jsrev-parse 64/bin/go /tmp/go-build1080683807/b404/cli.test (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/12346/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/12346/artifacts --jq .artifacts[].name GO111MODULE /opt/hostedtoolcache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go env licyMinIntegrityOnlymin-integrity_with_repos_array_c1495140131/001 GO111MODULE /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet l GOMOD GOMODCACHE /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh run download 12346 --dir test-logs/run-12346 tname) sv GOINSECURE GOMOD GOMODCACHE go env licyBlockedUsersCommaSeparatedCompiledOutput2799611515/001 GO111MODULE 1/x64/bin/node GOINSECURE GOMOD GOMODCACHE 1/x64/bin/node (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/12346/artifacts --jq .artifacts[].name --check 0683807/b465/vet.cfg **/*.ts **/*.json --ignore-path go list�� tructions-test-3250186920/.github/workflows -f /opt/hostedtoolcache/node/24.14.1/x64/bin/node l unsafe 64/bin/go node (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/2/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/2/artifacts --jq .artifacts[].name GO111MODULE /opt/hostedtoolcache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json l /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE /opt/hostedtoolc^remote\..*\.gh-resolved$ (http block)
    • Triggering command: /usr/bin/gh gh run download 2 --dir test-logs/run-2 GO111MODULE /bin/sh GOINSECURE GOMOD GOMODCACHE /bin/sh -c go build -ldflags "-s -w -X main.version=15155e3-dirty" -o gh-aw ./cmd/gh-aw GOPROXY /usr/bin/git GOSUMDB GOWORK 64/bin/go git (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/2/artifacts --jq .artifacts[].name GOPROXY /usr/bin/cp GOSUMDB GOWORK 64/bin/go cp inst�� actions/setup-cli/install.sh go /bin/sh -json GO111MODULE 64/bin/go /bin/sh (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/3/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/3/artifacts --jq .artifacts[].name GO111MODULE 2977956/b461/vet.cfg GOINSECURE GOMOD GOMODCACHE go env -json (http block)
    • Triggering command: /usr/bin/gh gh run download 3 --dir test-logs/run-3 GO111MODULE /usr/bin/git GOINSECURE GOMOD GOMODCACHE git conf�� runs/20260423-055724-25015/test-2011680007 GOPROXY /usr/lib/git-core/git-receive-pack l GOWORK 64/bin/go git-receive-pack (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/3/artifacts --jq .artifacts[].name GOPROXY /bin/sh GOSUMDB GOWORK 64/bin/go /bin/sh -c echo "Syncing install-gh-aw.sh to actions/setup-cli/install.sh..." go /usr/bin/git -json GO111MODULE 64/bin/go git (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/4/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/4/artifacts --jq .artifacts[].name l /opt/hostedtoolcache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linu--auto (http block)
    • Triggering command: /usr/bin/gh gh run download 4 --dir test-logs/run-4 GO111MODULE /usr/bin/git GOINSECURE GOMOD GOMODCACHE git -c log.showsignature=false log /opt/hostedtoolcache/node/24.14.1/x64/bin/node --format=%H:%ct GOWORK 64/bin/go node (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/4/artifacts --jq .artifacts[].name GOPROXY /usr/bin/chmod GOSUMDB GOWORK run-script/lib/n--show-toplevel chmod +x actions/setup-cli/install.sh go /usr/lib/git-core/git-receive-pack -json GO111MODULE 64/bin/go git-receive-pack (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/5/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/5/artifacts --jq .artifacts[].name GO111MODULE 2977956/b465/vet.cfg sions.md GOMOD GOMODCACHE go env -json GO111MODULE /opt/hostedtoolcache/node/24.14.1/x64/bin/node GOINSECURE GOMOD GOMODCACHE node (http block)
    • Triggering command: /usr/bin/gh gh run download 5 --dir test-logs/run-5 GO111MODULE /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/asm GOINSECURE GOMOD GOMODCACHE /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linushow -V=f�� GOPATH GOPROXY /usr/bin/git GOSUMDB GOWORK 64/bin/go git (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/5/artifacts --jq .artifacts[].name **/*.ts /bin/sh l ../../../.prettirev-parse 64/bin/go /bin/sh -c -aw/git/ref/tags/v1.0.0 go bject.type] | @tsv -json GO111MODULE 64/bin/go /usr/lib/git-core/git (http block)
  • https://api.github.com/repos/github/gh-aw/actions/workflows
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path npx prettier --cGOINSECURE GOPROXY 64/bin/go GOSUMDB GOWORK 64/bin/go sh -c "prettier" --cheGOINSECURE sh 64/bin/go tierignore (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 GOMOD GOMODCACHE go 7306�� -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (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 GOMOD GOMODCACHE e/git env -json GO111MODULE 2977956/b429/vet.cfg GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/repos/github/gh-aw/contents/.github/workflows/shared/reporting.md
    • Triggering command: /tmp/go-build1842977956/b404/cli.test /tmp/go-build1842977956/b404/cli.test -test.testlogfile=/tmp/go-build1842977956/b404/testlog.txt -test.paniconexit0 -test.v=true -test.parallel=4 -test.timeout=10m0s -test.run=^Test -test.short=true GOINSECURE GOMOD GOMODCACHE sh -c npx prettier --cGOINSECURE GOPROXY 64/bin/go GOSUMDB GOWORK 64/bin/go node (http block)
    • Triggering command: /tmp/go-build1080683807/b404/cli.test /tmp/go-build1080683807/b404/cli.test -test.testlogfile=/tmp/go-build1080683807/b404/testlog.txt -test.paniconexit0 -test.v=true -test.parallel=4 -test.timeout=10m0s -test.run=^Test -test.short=true GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE /prettier GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v0.47.4
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v0.47.4 --jq [.object.sha, .object.type] | @tsv --show-toplevel go /usr/bin/git agent-persona-exgit GO111MODULE ache/go/1.25.8/x--show-toplevel git rev-�� --show-toplevel resolved$ /usr/bin/git 5724-25015/test-ls GO111MODULE /opt/hostedtoolc/tmp/gh-aw/aw-feature-branch.patch git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v0.47.4 --jq [.object.sha, .object.type] | @tsv --show-toplevel go /usr/bin/git DefaultBranchFrogit DefaultBranchFrorev-parse /opt/hostedtoolc--show-toplevel git rev-�� --show-toplevel epo}/actions/runs/4/artifacts 0683807/b404/cli.test e GO111MODULE /opt/hostedtoolc/tmp/gh-aw/aw-feature-branch.patch 0683807/b404/cli.test (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, .object.type] | @tsv -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.0.0 --jq [.object.sha, .object.type] | @tsv 01 GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v1.2.3
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.2.3 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env ty-test.md GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.2.3 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE ode_modules/.bin/prettier GOINSECURE GOMOD GOMODCACHE go env ub/workflows GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v2.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env ty-test.md GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v3.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v3.0.0 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env ub/workflows GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v3.0.0 --jq [.object.sha, .object.type] | @tsv lGitcustom_brancremote.origin.url lGitcustom_branch1292613560/001' 64/bin/go GOINSECURE GOMOD GOMODCACHE oes not exist yet"; \ fi env lic_3433412581/001 GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/repos/nonexistent/action/git/ref/tags/v999.999.999
    • Triggering command: /usr/bin/gh gh api /repos/nonexistent/action/git/ref/tags/v999.999.999 --jq [.object.sha, .object.type] | @tsv -t security 64/bin/go OUTPUT -d 168.63.129.16 go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/nonexistent/action/git/ref/tags/v999.999.999 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (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 GOINSECURE GOMOD GOMODCACHE /tmp/go-build1842977956/b404/cli.test -tes�� k/gh-aw/gh-aw/.github/workflows -test.v=true /usr/bin/git -test.timeout=10git -test.run=^Test -test.short=true--show-toplevel /usr/bin/git (http block)
    • Triggering command: /usr/bin/gh gh run view 12345 --repo nonexistent/repo --json status,conclusion - GO111MODULE 64/bin/go git comm�� -m initial commit /usr/bin/git -json GO111MODULE 64/bin/go git (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 64/bin/go GOSUMDB GOWORK 64/bin/go node /hom�� --check scripts/**/*.js 64/bin/go -d (http block)
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path --repo owner/repo 64/bin/go GOSUMDB GOWORK 64/bin/go node /hom�� --check scripts/**/*.js 64/bin/go -d pkg/workflow/tooconfig 64/bin/go go (http block)
    • Triggering command: /usr/bin/gh gh workflow list --repo owner/repo --json name,path,state /usr/bin/git 3690349292/001' 3690349292/001' 64/bin/go git -C /tmp/gh-aw-test-runs/20260423-055724-25015/test-2788233304 l /usr/bin/git remote.origin.urgit node 64/bin/go git (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 npx prettier --cGOINSECURE GOPROXY 64/bin/go lk-memory gh-aw.wasm -o gh-aw.opt.wasm && \ mv gh-aw.opt.wasm gh-aw.wasm; \ AFTER=$(wc -c < g GOWORK 64/bin/go sh -c "prettier" --cheGOINSECURE sh 64/bin/go tierignore (http block)
    • Triggering command: /usr/bin/gh gh api /repos/test-owner/test-repo/actions/secrets --jq .secrets[].name -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env 6d45fa2961359906-d GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/repos/test/repo
    • Triggering command: /usr/bin/gh gh api /repos/test/repo --jq .default_branch --show-toplevel go /usr/bin/git Gitmaster_branchgit Gitmaster_branchrev-parse 64/bin/go git conf�� --get remote.origin.url /usr/bin/git -json GO111MODULE 64/bin/go git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/test/repo --jq .default_branch --show-toplevel go /usr/bin/git Gitcustom_branchgit Gitcustom_branchrev-parse 64/bin/go git conf�� user.name Test User /usr/bin/git repo3458817652/0git GO111MODULE x_amd64/link git (http block)

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

Copilot AI requested a review from pelikhan April 23, 2026 06:02
Copy link
Copy Markdown
Collaborator

@pelikhan pelikhan left a comment

Choose a reason for hiding this comment

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

@copilot search for renderTemplate and use this helper to render the text. Only render on demand in a function call, do not store as a global constant

Copy link
Copy Markdown
Contributor Author

Copilot AI commented Apr 23, 2026

@copilot search for renderTemplate and use this helper to render the text. Only render on demand in a function call, do not store as a global constant

Done in e6c0800. I switched to an on-demand helper function that calls renderTemplateFromFile(...) at runtime and removed the global disclosure-template constant/cached rendering path. No UI changes in this PR, so there is no screenshot.

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 gh repo view --json owner,name --jq .owner.login + "/" + .name /usr/bin/git -json GO111MODULE x_amd64/vet git init�� GOMODCACHE x_amd64/vet /usr/bin/git -json GO111MODULE 64/bin/go git (http block)
    • Triggering command: /usr/bin/gh gh repo view owner/repo conf�� --get remote.origin.url /opt/hostedtoolcache/node/24.14.1/x64/bin/node -json GO111MODULE 64/bin/go /opt/hostedtoolcache/node/24.14.1/x64/bin/node /tmp�� github.repository go /usr/bin/git -json GO111MODULE x_amd64/vet git (http block)
    • Triggering command: /usr/bin/gh gh repo view owner/repo remo�� GOMODCACHE x_amd64/compile /usr/bin/docker -json GO111MODULE 64/bin/go docker pull�� rhysd/actionlint:latest go /usr/bin/gh -json GO111MODULE 64/bin/go gh (http block)
  • https://api.github.com/orgs/test-owner/actions/secrets
    • Triggering command: /usr/bin/gh gh api /orgs/test-owner/actions/secrets --jq .secrets[].name 17013900/001' 17013900/001' 64/bin/go GOSUMDB GOWORK 64/bin/go sh -c "prettier" --cheGOINSECURE sh 64/bin/go tierignore (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, .object.type] | @tsv --show-toplevel go /usr/bin/git -json GO111MODULE 64/bin/go git rev-�� --show-toplevel go /usr/bin/git -json GO111MODULE 64/pkg/tool/linu-L git (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, .object.type] | @tsv -json GO111MODULE /opt/hostedtoolcache/node/24.14.1/x64/bin/node GOINSECURE GOMOD GOMODCACHE node /tmp�� /tmp/TestHashConsistency_GoAndJavaScript1401949738/001/test-empty-frontmatter.md GOPROXY /opt/hostedtoolcache/node/24.14.1/x64/bin/node GOSUMDB GOWORK 64/bin/go node (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, .object.type] | @tsv -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env ub/workflows GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq [.object.sha, .object.type] | @tsv --show-toplevel 64/pkg/tool/linux_amd64/vet /usr/bin/git -json GO111MODULE ache/go/1.25.8/x: git rev-�� --show-toplevel go /usr/bin/git -json GO111MODULE .cfg git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq [.object.sha, .object.type] | @tsv --show-toplevel /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet /usr/bin/git -bool -buildtags /usr/lib/git-cor--show-toplevel git conf�� user.email test@example.com /usr/bin/git --all-progress-igit --revs /usr/bin/git 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, .object.type] | @tsv -json GO111MODULE /opt/hostedtoolcache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet (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, .object.type] | @tsv 0 -j ACCEPT 1151-25374/test-sed GO111MODULE /opt/hostedtoolcache/go/1.25.8/x--show-toplevel git remo�� remove myorg /usr/bin/git /ref/tags/v9 GO111MODULE sv git (http block)
  • https://api.github.com/repos/actions/github-script/git/ref/tags/v9
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9 --jq [.object.sha, .object.type] | @tsv GOSUMDB GOWORK 64/bin/go GOINSECURE GOMOD GOMODCACHE node /opt�� prettier --check 64/bin/go **/*.ts **/*.json --ignore-path go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9 --jq [.object.sha, .object.type] | @tsv --end-of-optionsGOSUMDB blob 64/bin/go --write ../../../**/*.js-c 64/bin/go go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9 --jq [.object.sha, .object.type] | @tsv 01 -json 64/bin/go -json GO111MODULE 64/bin/go go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (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, .object.type] | @tsv --show-toplevel go /usr/bin/git ub/workflows GO111MODULE x_amd64/link git rev-�� --show-toplevel x_amd64/link /usr/bin/git -json GO111MODULE 64/bin/go git (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, .object.type] | @tsv -json GO111MODULE 8342532/b398/vet.cfg =receive GOMOD GOMODCACHE (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv /home/REDACTED/work/gh-aw/gh-aw/.github/workflows/ai-moderator.md go /usr/bin/git -json GO111MODULE x_amd64/compile git rev-�� --show-toplevel x_amd64/compile /usr/bin/git -json GO111MODULE 64/bin/go git (http block)
  • https://api.github.com/repos/actions/upload-artifact/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE /opt/hostedtoolcache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go env runs/20260423-061151-25374/test-3363779939/.github/workflows GO111MODULE 1/x64/bin/node GOINSECURE GOMOD GOMODCACHE /bin/sh (http block)
  • https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v0.1.2
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v0.1.2 --jq [.object.sha, .object.type] | @tsv --show-toplevel go /usr/bin/git -json GO111MODULE 64/bin/go git init�� GOMODCACHE go /opt/hostedtoolcache/node/24.14.1/x64/bin/node gh-aw.wasm ./cmgit GO111MODULE 64/bin/go /opt/hostedtoolcache/node/24.14.1/x64/bin/node (http block)
  • https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v1.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.0.0 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE /opt/hostedtoolcache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/cgo GOINSECURE GOMOD GOMODCACHE /opt/hostedtoolcache/go/1.25.8/xtest@example.com (http block)
  • https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v1.2.3
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.2.3 --jq [.object.sha, .object.type] | @tsv -json tname) /opt/hostedtoolcache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go env runs/20260423-061151-25374/test-3282597960/.github/workflows GO111MODULE /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD GOMODCACHE /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/compile (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/1/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/1/artifacts --jq .artifacts[].name go /usr/bin/git -json GO111MODULE 64/bin/go git rev-�� --show-toplevel go /usr/bin/git -json GO111MODULE 64/bin/go git (http block)
    • Triggering command: /usr/bin/gh gh run download 1 --dir test-logs/run-1 go /usr/bin/infocmp -json GO111MODULE 64/bin/go infocmp -1 xterm-color go /usr/bin/git -json GO111MODULE 64/bin/go git (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/12345/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/12345/artifacts --jq .artifacts[].name go /usr/bin/git -json GO111MODULE 64/bin/go git rev-�� --show-toplevel go /opt/hostedtoolcache/node/24.14.1/x64/bin/node -json GO111MODULE 64/bin/go node (http block)
    • Triggering command: /usr/bin/gh gh run download 12345 --dir test-logs/run-12345 go /opt/hostedtoolcache/node/24.14.1/x64/bin/node -json GO111MODULE 64/bin/go node /tmp�� /home/REDACTED/work/gh-aw/gh-aw/.github/workflows/agent-performance-analyzer.md go ache/node/24.14.1/x64/bin/node Gitbranch_with_hgit Gitbranch_with_hrev-parse 64/bin/go ache/node/24.14.1/x64/bin/node (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/12346/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/12346/artifacts --jq .artifacts[].name go /usr/bin/git -json GO111MODULE 64/bin/go git rev-�� --show-toplevel go /usr/bin/git -json GO111MODULE 64/bin/go git (http block)
    • Triggering command: /usr/bin/gh gh run download 12346 --dir test-logs/run-12346 go ache/node/24.14.1/x64/bin/node -json GO111MODULE 64/bin/go ache/node/24.14.1/x64/bin/node 1769�� (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/2/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/2/artifacts --jq .artifacts[].name go ache/node/24.14.1/x64/bin/node -json GO111MODULE 64/bin/go ache/node/24.14.1/x64/bin/node 3576�� /home/REDACTED/work/gh-aw/gh-aw/.github/workflows rev-parse /usr/bin/git -json GO111MODULE 64/bin/go git (http block)
    • Triggering command: /usr/bin/gh gh run download 2 --dir test-logs/run-2 go /usr/bin/git -json GO111MODULE 64/bin/go git rev-�� --show-toplevel go /usr/bin/git -json GO111MODULE 64/bin/go git (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/3/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/3/artifacts --jq .artifacts[].name go /usr/bin/git -json GO111MODULE 64/bin/go git -C /home/REDACTED/work/gh-aw/gh-aw rev-parse /usr/bin/git -json GO111MODULE 64/bin/go git (http block)
    • Triggering command: /usr/bin/gh gh run download 3 --dir test-logs/run-3 go /usr/bin/git -json GO111MODULE 64/bin/go git rev-�� --show-toplevel go /usr/bin/git ty-test.md GO111MODULE 64/bin/go git (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/4/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/4/artifacts --jq .artifacts[].name go /usr/bin/git -json GO111MODULE 64/bin/go git rev-�� r-test3265241639/test1.md r-test3265241639/test2.lock.yml /usr/bin/git lGitbranch_with_git lGitbranch_with_rev-parse 64/bin/go git (http block)
    • Triggering command: /usr/bin/gh gh run download 4 --dir test-logs/run-4 go /opt/hostedtoolcache/node/24.14.1/x64/bin/node -json GO111MODULE 64/bin/go node /tmp�� /home/REDACTED/work/gh-aw/gh-aw/.github/workflows/agent-persona-explorer.md go /usr/bin/git -json GO111MODULE 64/bin/go git (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/5/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/5/artifacts --jq .artifacts[].name go /usr/bin/git -json GO111MODULE 64/bin/go git rev-�� --show-toplevel go /usr/bin/infocmp -json GO111MODULE 64/bin/go infocmp (http block)
    • Triggering command: /usr/bin/gh gh run download 5 --dir test-logs/run-5 l /usr/bin/git -json GO111MODULE 64/bin/go git rev-�� --show-toplevel go /usr/bin/infocmp ty-test.md GO111MODULE 64/bin/go infocmp (http block)
  • https://api.github.com/repos/github/gh-aw/actions/workflows
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path npx prettier --cGOINSECURE GOPROXY 64/bin/go GOSUMDB GOWORK 64/bin/go sh -c "prettier" --cheGOINSECURE sh 64/bin/go tierignore (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 GOMOD GOMODCACHE go env 49207/001 GO111MODULE x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet (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 GO111MODULE 64/bin/go ache/node/24.14.1/x64/bin/node 6968�� ue.number go /usr/bin/git Gitmaster_branchgit Gitmaster_branchrev-parse 64/bin/go git (http block)
  • https://api.github.com/repos/github/gh-aw/contents/.github/workflows/shared/reporting.md
    • Triggering command: /tmp/go-build3958342532/b404/cli.test /tmp/go-build3958342532/b404/cli.test -test.testlogfile=/tmp/go-build3958342532/b404/testlog.txt -test.paniconexit0 -test.v=true -test.parallel=4 -test.timeout=10m0s -test.run=^Test -test.short=true GOINSECURE GOMOD GOMODCACHE sh -c npx prettier --cGOINSECURE GOPROXY 64/bin/go GOSUMDB GOWORK 64/bin/go sh (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v0.47.4
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v0.47.4 --jq [.object.sha, .object.type] | @tsv add other /usr/bin/git -json GO111MODULE ache/go/1.25.8/x--show-toplevel git rev-�� --show-toplevel go /usr/bin/git 1151-25374/test-/usr/lib/git-core/git GO111MODULE /opt/hostedtoolcrun git (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, .object.type] | @tsv prettier --check 64/bin/go --ignore-path .prettierignore 64/bin/go go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v1.2.3
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.2.3 --jq [.object.sha, .object.type] | @tsv ub/workflows GO111MODULE x_amd64/link GOINSECURE GOMOD GOMODCACHE x_amd64/link env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v2.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq [.object.sha, .object.type] | @tsv repo1431482439/001 GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go estl�� -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq [.object.sha, .object.type] | @tsv (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v3.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v3.0.0 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/repos/nonexistent/action/git/ref/tags/v999.999.999
    • Triggering command: /usr/bin/gh gh api /repos/nonexistent/action/git/ref/tags/v999.999.999 --jq [.object.sha, .object.type] | @tsv "prettier" --cheGOINSECURE sh 64/bin/go tierignore (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 remote.origin.urgit GO111MODULE 64/bin/go git rev-�� --show-toplevel go /usr/bin/git rity747837639/00/usr/bin/git GO111MODULE 64/bin/go git (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 64/bin/go GOSUMDB GOWORK 64/bin/go sh -c "prettier" --cheGOINSECURE sh 64/bin/go tierignore (http block)
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path --repo owner/repo 64/bin/go GOSUMDB GOWORK 64/bin/go node /hom�� --check scripts/**/*.js 64/bin/go -d (http block)
    • Triggering command: /usr/bin/gh gh workflow list --repo owner/repo --json name,path,state /usr/bin/git -json GO111MODULE 64/bin/go git rev-�� --show-toplevel go /usr/bin/git 38/001/test-frongit GO111MODULE 64/bin/go git (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 run lint:cjs 64/bin/go GOSUMDB GOWORK 64/bin/go sh -c "prettier" --cheGOINSECURE sh 64/bin/go "prettier" --wri/tmp/go-build3958342532/b404/cli.test (http block)
  • https://api.github.com/repos/test/repo
    • Triggering command: /usr/bin/gh gh api /repos/test/repo --jq .default_branch runs/20260423-06.artifacts[].name x_amd64/vet /usr/bin/git s/test.md GO111MODULE 64/bin/go git rev-�� --show-toplevel go /usr/bin/git -json GO111MODULE 64/bin/go git (http block)

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

Copilot AI requested a review from pelikhan April 23, 2026 06:14
@pelikhan pelikhan added the smoke label Apr 23, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 23, 2026

✨ The prophecy is fulfilled... Smoke Codex has completed its mystical journey. The stars align. 🌟

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 23, 2026

🎬 THE ENDSmoke Claude MISSION: ACCOMPLISHED! The hero saves the day! ✨

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 23, 2026

⚠️ Smoke Gemini failed. Gemini encountered unexpected challenges...

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 23, 2026

🚀 Smoke OpenCode MISSION COMPLETE! OpenCode delivered. 🔥

@github-actions
Copy link
Copy Markdown
Contributor

📰 BREAKING: Smoke Copilot is now investigating this pull request. Sources say the story is developing...

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 23, 2026

⚠️ Smoke Crush failed. Crush encountered unexpected challenges...

@github-actions github-actions Bot removed the smoke label Apr 23, 2026
@github-actions
Copy link
Copy Markdown
Contributor

Agent Container Tool Check

Tool Status Version
bash 5.2.21
sh available
git 2.53.0
jq 1.7
yq 4.52.5
curl 8.5.0
gh 2.89.0
node 20.20.2
python3 3.12.3
go 1.24.13
java 10.0.201
dotnet 10.0.201

Result: 12/12 tools available ✅

Overall Status: PASS

🔧 Tool validation by Agent Container Smoke Test · ● 153.2K ·

@github-actions
Copy link
Copy Markdown
Contributor

Smoke test (run 24820197109):
PR titles: #27990 [WIP] Fix inconsistent logging guard in error constructors; #27988 Unblock daily skill-optimizer runs by adding root SKILL surface docs, committed config, and early workflow preflight
GitHub MCP ✅
Serena MCP ✅
Playwright ✅
Web-fetch ❌ (tool unavailable)
File/Bash/Build/Comment-memory ✅
Overall status: FAIL

Warning

⚠️ Firewall blocked 2 domains

The following domains were blocked by the firewall during workflow execution:

  • ab.chatgpt.com
  • chatgpt.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "ab.chatgpt.com"
    - "chatgpt.com"

See Network Configuration for more information.

🔮 The oracle has spoken through Smoke Codex ·

@github-actions
Copy link
Copy Markdown
Contributor

Comment Memory

Morning builds run true Quiet logs drift through cold cache paths Green checks wake the branch

Note

This comment is managed by comment memory.

What this comment does

It stores persistent context for this thread in the <gh-aw-comment-memory> block at the top of this comment.
Edit only the text in that block; workflow metadata and the footer are regenerated automatically.

Warning

⚠️ Firewall blocked 2 domains

The following domains were blocked by the firewall during workflow execution:

  • ab.chatgpt.com
  • chatgpt.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "ab.chatgpt.com"
    - "chatgpt.com"

See Network Configuration for more information.

🔮 The oracle has spoken through Smoke Codex ·

@pelikhan pelikhan marked this pull request as ready for review April 23, 2026 06:29
Copilot AI review requested due to automatic review settings April 23, 2026 06:29
@pelikhan pelikhan merged commit f5258ea into main Apr 23, 2026
168 of 170 checks passed
@pelikhan pelikhan deleted the copilot/fix-comment-memory-issue branch April 23, 2026 06:29
@github-actions
Copy link
Copy Markdown
Contributor

Smoke Test Results — Run §24820197107

Core (#1#12): ✅✅✅✅✅✅✅✅✅❌✅✅
PR Review (#13#19): ✅✅✅✅⚠️⚠️

Status: PARTIAL — test #10 (agentic-workflows MCP) failed (MCP error -32603), #16 (resolve thread) ⚠️ outdated thread found but node ID unavailable, #19 (close PR) skipped (no safe PR to close).

💥 [THE END] — Illustrated by Smoke Claude · ● 218.8K ·

Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

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

💥 Automated smoke test review - all systems nominal! The comment_memory disclosure template refactor looks solid — aligning template loading with the standard renderTemplateFromFile helper pattern improves maintainability and fixes the runtime path resolution issue.

💥 [THE END] — Illustrated by Smoke Claude · ● 218.8K

const promptsDir = process.env.GH_AW_PROMPTS_DIR || `${process.env.RUNNER_TEMP}/gh-aw/prompts`;
const templatePath = `${promptsDir}/comment_memory_disclosure_note.md`;
return renderTemplateFromFile(templatePath, {
comment_memory_tag: COMMENT_MEMORY_TAG,
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🔍 Smoke Test Review: The renderManagedCommentDisclosureNote helper correctly uses GH_AW_PROMPTS_DIR env var with a fallback to RUNNER_TEMP/gh-aw/prompts. This aligns with the standard template path resolution pattern used by other handlers — good consistency!


beforeAll(() => {
originalPromptsDir = process.env.GH_AW_PROMPTS_DIR;
process.env.GH_AW_PROMPTS_DIR = path.join(path.dirname(fileURLToPath(import.meta.url)), "../md");
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🔍 Smoke Test Review: The beforeAll / afterAll hooks properly set GH_AW_PROMPTS_DIR to point to the local md/ directory during tests and restore the original value afterward. This is a clean approach for cross-platform path handling — the use of fileURLToPath(import.meta.url) avoids brittle __dirname usage in ESM contexts.

@github-actions
Copy link
Copy Markdown
Contributor

Smoke Test Results for PR #27989

Test Status
GitHub MCP
MCP Scripts GH CLI
Serena CLI
Playwright
Web Fetch
File Writing
Bash Tool
Discussion Interaction
Build gh-aw
Upload artifact
Discussion Creation
Workflow Dispatch
PR Review
Comment Memory

Overall: ✅ PASS

PR author: @copilot-swe-agent · Assignees: @pelikhan, @Copilot

📰 BREAKING: Report filed by Smoke Copilot · ● 2M ·

@github-actions
Copy link
Copy Markdown
Contributor

Comment Memory

Code flows like streams, Tests whisper pass or fail— Green lights bloom at dawn.

Note

This comment is managed by comment memory.

What this comment does

It stores persistent context for this thread in the <gh-aw-comment-memory> block at the top of this comment.
Edit only the text in that block; workflow metadata and the footer are regenerated automatically.

📰 BREAKING: Report filed by Smoke Copilot · ● 2M ·

Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

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

Smoke test review for PR #27989. Changes look good — the renderManagedCommentDisclosureNote refactor is clean, and the test isolation with beforeAll/afterAll is solid.

📰 BREAKING: Report filed by Smoke Copilot · ● 2M

function renderManagedCommentDisclosureNote() {
const promptsDir = process.env.GH_AW_PROMPTS_DIR || `${process.env.RUNNER_TEMP}/gh-aw/prompts`;
const templatePath = `${promptsDir}/comment_memory_disclosure_note.md`;
return renderTemplateFromFile(templatePath, {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

The new renderManagedCommentDisclosureNote helper nicely encapsulates the prompts-dir resolution logic. Consider caching the result if this function is called multiple times per run to avoid repeated file reads.


afterAll(() => {
if (originalPromptsDir === undefined) {
delete process.env.GH_AW_PROMPTS_DIR;
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Good addition of beforeAll/afterAll hooks to properly isolate the GH_AW_PROMPTS_DIR env var during tests. This pattern ensures test state doesn't leak between test runs.

@github-actions
Copy link
Copy Markdown
Contributor

📰 VERDICT: Smoke Copilot has concluded. All systems operational. This is a developing story. 🎤

@github-actions github-actions Bot mentioned this pull request Apr 23, 2026
Copy link
Copy Markdown
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

Fixes comment_memory safe output failures by loading the disclosure-note template from the runtime prompts directory (instead of a non-existent .../md path in the copied actions runtime tree).

Changes:

  • Updated comment_memory to render the disclosure-note template from GH_AW_PROMPTS_DIR or ${RUNNER_TEMP}/gh-aw/prompts.
  • Updated comment_memory tests to set GH_AW_PROMPTS_DIR and use fileURLToPath for cross-platform path resolution.
  • Minor string-construction adjustments in the agentics maintenance workflow’s github-script step.
Show a summary per file
File Description
actions/setup/js/comment_memory.cjs Switches disclosure-note template lookup to runtime prompts paths and removes the old __dirname/../md assumption.
actions/setup/js/comment_memory.test.cjs Sets GH_AW_PROMPTS_DIR for tests and uses URL-to-path conversion for portability.
.github/workflows/agentics-maintenance.yml Replaces template literals with string concatenation in an embedded github-script block.

Copilot's findings

Tip

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

  • Files reviewed: 3/3 changed files
  • Comments generated: 2

Comment on lines 55 to 58
if (includeFooter) {
core.info(`comment_memory: footer enabled for memory_id='${memoryID}'`);
const resolvedDisclosureNote =
disclosureNote ??
renderTemplateFromFile(MANAGED_COMMENT_DISCLOSURE_NOTE_PATH, {
comment_memory_tag: COMMENT_MEMORY_TAG,
});
const resolvedDisclosureNote = renderManagedCommentDisclosureNote();
body += "\n\n" + resolvedDisclosureNote;
Copy link

Copilot AI Apr 23, 2026

Choose a reason for hiding this comment

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

buildManagedMemoryBody() now calls renderManagedCommentDisclosureNote() each time includeFooter is true, which re-reads the disclosure note template from disk for every processed item. Consider caching the rendered disclosure note (e.g., module-level lazy cache) or resolving it once per main() invocation to avoid repeated synchronous file I/O when maxCount > 1 and to keep this hot path cheaper.

Copilot uses AI. Check for mistakes.
const MANAGED_COMMENT_DISCLOSURE_NOTE_PATH = path.join(__dirname, "../md/comment_memory_disclosure_note.md");

function renderManagedCommentDisclosureNote() {
const promptsDir = process.env.GH_AW_PROMPTS_DIR || `${process.env.RUNNER_TEMP}/gh-aw/prompts`;
Copy link

Copilot AI Apr 23, 2026

Choose a reason for hiding this comment

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

renderManagedCommentDisclosureNote() falls back to ${process.env.RUNNER_TEMP}/gh-aw/prompts when GH_AW_PROMPTS_DIR is unset, but if RUNNER_TEMP is missing this produces a path starting with undefined/... and the ensuing readFileSync failure can be confusing to diagnose. Consider adding an explicit guard that throws/logs a clear error when neither GH_AW_PROMPTS_DIR nor RUNNER_TEMP is available.

Suggested change
const promptsDir = process.env.GH_AW_PROMPTS_DIR || `${process.env.RUNNER_TEMP}/gh-aw/prompts`;
const configuredPromptsDir = process.env.GH_AW_PROMPTS_DIR;
const runnerTemp = process.env.RUNNER_TEMP;
if (!configuredPromptsDir && !runnerTemp) {
throw new Error("comment_memory: unable to resolve prompts directory; set GH_AW_PROMPTS_DIR or ensure RUNNER_TEMP is available");
}
const promptsDir = configuredPromptsDir || `${runnerTemp}/gh-aw/prompts`;

Copilot uses AI. Check for mistakes.
@github-actions
Copy link
Copy Markdown
Contributor

🧪 Test Quality Sentinel Report

Test Quality Score: 90/100

Excellent test quality

Metric Value
New/modified tests analyzed 6
✅ Design tests (behavioral contracts) 6 (100%)
⚠️ Implementation tests (low value) 0 (0%)
Tests with error/edge cases 4 (67%)
Duplicate test clusters 0
Test inflation detected No (1.8:1 ratio, threshold 2:1)
🚨 Coding-guideline violations None

Test Classification Details

View all 6 test classifications
Test File Classification Notes
sanitizes valid memory IDs comment_memory.test.cjs ✅ Design Verifies observable return values for alphanumeric and hyphenated IDs
rejects invalid memory IDs comment_memory.test.cjs ✅ Design + Edge Case Null return for spaces and path-traversal inputs — direct error path
builds managed comment body with xml memory marker comment_memory.test.cjs ✅ Design Verifies XML tag structure, header, and body content in output
builds managed comment body with footer when enabled comment_memory.test.cjs ✅ Design + Edge Case Verifies footer structure AND document ordering invariant (memory tag before note before footer)
throws E001 for invalid memory ID in managed body builder comment_memory.test.cjs ✅ Design + Edge Case Verifies correct error code thrown for invalid memory_id
finds only managed comments with provenance marker comment_memory.test.cjs ✅ Design + Edge Case Core PR fix: verifies that a comment with the tag but no provenance marker is skipped, and the managed comment is correctly identified

Highlights

The test suite is well-targeted at the behavioral contracts introduced/fixed in this PR:

  • finds only managed comments with provenance marker is the most valuable test — it directly encodes the invariant the PR is fixing: only comments bearing the <!-- gh-aw-agentic-workflow: provenance marker should be treated as managed, preventing accidental mutation of user-authored comments that happen to contain the comment-memory tag.
  • builds managed comment body with footer when enabled goes beyond checking content — it asserts on relative ordering of the memory tag, disclosure note, and footer. This is a structural invariant that would catch subtle regressions in body construction.
  • The beforeAll/afterAll fixture correctly saves and restores GH_AW_PROMPTS_DIR, pointing it to actions/setup/md/ where comment_memory_disclosure_note.md actually lives. This means the footer test exercises the real template rendering path rather than a stub.

Minor Observation

expect(...) calls do not include vitest message strings (e.g., expect(value).toBe(x, "context")). This is optional in vitest but can help with debugging failures. Not a blocking issue.


Language Support

Tests analyzed:

  • 🐹 Go (*_test.go): 0 tests (none changed in this PR)
  • 🟨 JavaScript (*.test.cjs): 6 tests (vitest)

Verdict

Check passed. 0% of new tests are implementation tests (threshold: 30%). All 6 tests verify behavioral contracts with 67% covering error/edge-case paths.


📖 Understanding Test Classifications

Design Tests (High Value) verify what the system does:

  • Assert on observable outputs, return values, or state changes
  • Cover error paths and boundary conditions
  • Would catch a behavioral regression if deleted
  • Remain valid even after internal refactoring

Implementation Tests (Low Value) verify how the system does it:

  • Assert on internal function calls (mocking internals)
  • Only test the happy path with typical inputs
  • Break during legitimate refactoring even when behavior is correct
  • Give false assurance: they pass even when the system is wrong

Goal: Shift toward tests that describe the system's behavioral contract — the promises it makes to its users and collaborators.

References: §24820502988

🧪 Test quality analysis by Test Quality Sentinel · ● 611.2K ·

Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

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

✅ Test Quality Sentinel: 90/100. Test quality is excellent — 0% of new tests are implementation tests (threshold: 30%). All 6 tests verify behavioral contracts, including the key provenance-marker invariant that is the core of this PR's fix.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants