Skip to content

Upgrade gh-aw workflows to v0.85.4 - #36772

Merged
kubaflo merged 1 commit into
mainfrom
pureween-update-gh-aw
Aug 6, 2026
Merged

Upgrade gh-aw workflows to v0.85.4#36772
kubaflo merged 1 commit into
mainfrom
pureween-update-gh-aw

Conversation

@PureWeen

@PureWeen PureWeen commented Jul 24, 2026

Copy link
Copy Markdown
Member

Note

Are you waiting for the changes in this PR to be merged?
It would be very helpful if you could test the resulting artifacts from this PR and let us know in a comment if this change resolves your issue. Thank you!

Summary

Upgrades the repository's GitHub Agentic Workflows compiler and generated artifacts from gh-aw v0.82.14 to stable v0.85.4.

Changes

  • Regenerates all 14 gh-aw workflow locks, updates immutable action and container pins, and removes the generated maintenance workflow because no source workflow declares an expiry that v0.85.4 recognizes as requiring it.
  • Includes the upstream #50616 remediation: safe-output artifacts no longer upload raw process stdout/stderr logs.
  • Removes gh-aw's ineffective generated-lock merge=ours attribute so regenerated locks participate correctly in merge resolution.
  • Preserves the isolated copilot-pat-pool environment, PAT secret manifest, persist-credentials: false, source-declared permissions, and release-pinned dispatcher references.
  • Retains the /review tests activation alignment and PAT-pool ShellCheck-safe selection behavior.
  • Uses v0.85.4's compatibility-window selection for the Copilot CLI when a workflow does not declare engine.version; the generated lock no longer fixes one CLI version.

Validation

  • gh aw upgrade
  • gh aw compile --validate --strict --show-all
  • gh aw lint
  • git diff --check

All 14 workflows compile with zero errors. The compiler reports only the existing pull_request_target advisory and slash-command/bot concurrency advisory. Docker-backed Actionlint reports the known 14 false positives for gh-aw's custom github.aw.import-inputs context.

Copilot AI review requested due to automatic review settings July 24, 2026 17:27
@PureWeen
PureWeen temporarily deployed to copilot-pat-pool July 24, 2026 17:27 — with GitHub Actions Inactive
@github-actions

Copy link
Copy Markdown
Contributor

🚀 Dogfood this PR with:

⚠️ WARNING: Do not do this without first carefully reviewing the code of this PR to satisfy yourself it is safe.

curl -fsSL https://raw.githubusercontent.com/dotnet/maui/main/eng/scripts/get-maui-pr.sh | bash -s -- 36772

Or

  • Run remotely in PowerShell:
iex "& { $(irm https://raw.githubusercontent.com/dotnet/maui/main/eng/scripts/get-maui-pr.ps1) } 36772"

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
1 pipeline(s) were filtered out due to trigger conditions.
There may be pipelines that require an authorized user to comment /azp run to run.

@github-actions

github-actions Bot commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

Skill Validation Results

@PureWeen — new skill validation results are available based on this last commit: fc984c3.
To request a fresh validation after new comments or commits, comment /evaluate-skills.

Overall Needs attention Static abandoned LLM Skipped Skills ? Agents ?

⚠️ Skill Validation Resultsfc984c3 · Upgrade gh-aw workflows to v0.85.4 · 2026-08-06T20:09:17Z

⚠️ Static Checks: abandoned

Skills: ? | Eval specs linted: ?

⏭️ LLM Evaluation: Skipped

No changed skills with eval specs found.

🔍 Full results and investigation steps

@PureWeen
PureWeen temporarily deployed to copilot-pat-pool July 24, 2026 17:29 — with GitHub Actions Inactive

Copilot AI left a comment

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.

Pull request overview

This PR upgrades the repository’s GitHub Agentic Workflows (gh-aw) toolchain and regenerates the compiled workflow artifacts to align with gh-aw v0.83.1, including updated action pins and AWF/container versions.

Changes:

  • Regenerates gh-aw compiled workflow lock files to compiler v0.83.1 (and updates associated container/pin metadata).
  • Updates the managed GitHub Actions lock (.github/aw/actions-lock.json) to the new gh-aw action refs (including setup-cli).
  • Updates copilot-review-tests to use actions/checkout@v7.0.1 with persist-credentials: false.
Show a summary per file
File Description
.github/workflows/leak-fixer.lock.yml Regenerated compiled workflow with gh-aw v0.83.1 pins/metadata and updated runtime scaffolding.
.github/workflows/daily-leak-hunter.lock.yml Regenerated compiled workflow with gh-aw v0.83.1 pins/metadata and updated runtime scaffolding.
.github/workflows/ci-status-fix.lock.yml Regenerated compiled workflow with gh-aw v0.83.1 pins/metadata and updated runtime scaffolding.
.github/workflows/ci-status-fix-net11.lock.yml Regenerated compiled workflow with gh-aw v0.83.1 pins/metadata and updated runtime scaffolding.
.github/workflows/agentics-maintenance.yml Regenerated maintenance workflow header/pins to v0.83.1.
.github/workflows/copilot-review-tests.md Updates checkout action to actions/checkout@v7.0.1 while retaining persist-credentials: false.
.github/skills/agentic-workflows/SKILL.md Adds upstream overlay reference for action-container-substitutions.md.
.github/aw/actions-lock.json Updates pinned actions map for gh-aw managed actions (adds setup-cli@v0.83.1, updates setup@v0.83.1).
.github/agents/agentic-workflows.md Updates upstream gh-aw prompt/reference URLs (noted issue: now points at main).

Copilot's findings

Comments suppressed due to low confidence (3)

.github/agents/agentic-workflows.md:69

  • This prompt URL is also pointing at github/gh-aw main, which can change independently of this repository and diverge from the gh-aw version used to generate the workflows. Pin to the same gh-aw release tag (v0.83.1) for deterministic guidance.
**Prompt file**: `https://raw.githubusercontent.com/github/gh-aw/main/.github/aw/create-agentic-workflow.md`

.github/agents/agentic-workflows.md:225

  • The 'Important Notes' section links to github/gh-aw main. Pinning to the gh-aw release tag used by this repo avoids the docs drifting and keeps guidance aligned with the compiled workflows.
- Always reference the instructions file at `https://raw.githubusercontent.com/github/gh-aw/main/.github/aw/github-agentic-workflows.md` for complete documentation

.github/agents/agentic-workflows.md:233

  • These reference links point at github/gh-aw main, which can drift from the gh-aw version this repo is compiled against. Pinning to v0.83.1 keeps the references stable and consistent with the upgraded workflows.
- Follow security best practices: minimal permissions, explicit network access, no template injection
- **Network configuration**: Use ecosystem identifiers (`node`, `python`, `go`, etc.) or explicit FQDNs in `network.allowed`. Bare shorthands like `npm` or `pypi` are **not** valid. See `https://raw.githubusercontent.com/github/gh-aw/main/.github/aw/network.md` for the full list of valid ecosystem identifiers and domain patterns.
- **Single-file output**: When creating a workflow, produce exactly **one** workflow `.md` file. Do not create separate documentation files (architecture docs, runbooks, usage guides, etc.). If documentation is needed, add a brief `## Usage` section inside the workflow file itself.
- **Triggering runs**: Always use `gh aw run <workflow-name>` to trigger a workflow on demand — not `gh workflow run <file>.lock.yml`. `gh aw run` handles workflow resolution by short name, input parsing and validation, and correct run-tracking for agentic workflows. Use `--ref <branch>` to run on a specific branch.
- **CLI commands reference**: For a complete guide on all `gh aw` commands and their MCP tool equivalents (for restricted environments), see `https://raw.githubusercontent.com/github/gh-aw/main/.github/aw/cli-commands.md`
  • Files reviewed: 19/19 changed files
  • Comments generated: 1

Comment thread .github/agents/agentic-workflows.md Outdated
@PureWeen
PureWeen temporarily deployed to copilot-pat-pool July 24, 2026 17:31 — with GitHub Actions Inactive
@PureWeen
PureWeen temporarily deployed to copilot-pat-pool July 24, 2026 17:32 — with GitHub Actions Inactive
@PureWeen
PureWeen temporarily deployed to copilot-pat-pool July 24, 2026 17:33 — with GitHub Actions Inactive

@PureWeen PureWeen left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Adversarial review

No issues found.

The regenerated locks retain their existing secret manifests, copilot-pat-pool environments, checkout credential hardening, and safe-output boundaries. The lone generated permission change correctly preserves the rerun scanner source workflow's declared actions: write capability.

Methodology: 3 independent reviewers with adversarial consensus.

Test coverage: Not applicable to this compiler-generated workflow upgrade; all 14 workflows were reviewed for source/lock consistency.

Prior review: existing feedback contained no active finding; its suppressed concern about upstream main prompt references is expected gh aw upgrade output and is consistent with the repository upgrade contract.

@kubaflo kubaflo left a comment

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.

🔍 AI-generated review — 4-model adversarial security ensemble (Claude Opus 4.8 · GPT-5.5 · Gemini 3.1 Pro · GPT-5.6 Sol), independently run then cross-pollinated & verified, on behalf of @kubaflo. Advisory.

NEEDS_DISCUSSION — executable surfaces are a clean recompile; one instruction-integrity item for a human call

✅ Executable / production security surfaces — verified security-neutral recompile (4/4)

All four models independently reconstructed and diffed the 19 files. The +683/-692 reduces to the expected v0.82.14→v0.83.1 toolchain deltas, with no security regression:

  • Egress unchanged: firewall allowDomains is byte-identical across all 14 locks (Gemini + Opus + GPT-5.5 + Sol each diffed the extracted JSON). isolation, min-integrity guard, proxy enablement all identical. The api-proxy model-routing allow-list gained raptor-mini/sonnet-5 categories — model steering, not domain egress. Benign.
  • One new permission, scoped & justified: rerun-review-scanner.lock.yml conclusion job permissions: {}actions: write (it reruns the workflow on secret-verify-fail / credits-exceeded → needs the Actions rerun API). Non-agent job. Every other lock's permissions are byte-identical; no pull_request_target added; has_pull_request_target + secrets manifest unchanged.
  • Pins authentic & immutable: every executable uses: is a 40-hex commit SHA (no @main/tags). Opus verified via the GitHub API that github/gh-aw-actions v0.83.18bdba807… and v0.82.14b6d1443e… match the new/old pins exactly. Container images digest-pinned (firewall 0.27.37→0.27.38, mcpg v0.4.1→v0.4.3).
  • persist-credentials: false unchanged on every checkout it applied to; the intentional copilot-review-tests actions/checkout@v4@v7.0.1 bump (documented in the PR body) keeps persist-credentials: false and a SHA pin.

(For the record: all 14 lock body_hash values are unchanged — the workflow prompt bodies are a pure recompile; only copilot-review-tests's frontmatter_hash changed, from that documented checkout bump.)

⚠️ The one discussion item (raised by GPT-5.6 Sol; 3 models initially read these as benign doc links — I verified Sol's sharper reading is correct)

.github/agents/agentic-workflows.md de-pins 15 agent-loaded **Prompt file** / **Reference file** URLs from v0.82.14 to mutable github/gh-aw/main (inline below). Because this dispatcher agent loads those files as instructions, upstream changes could steer its behavior without repo review. It's upstream-generated by the v0.83.1 upgrade and developer-facing (human in the loop, GitHub's own repo), so it's not an executable-surface regression — but it's an instruction-integrity choice worth making consciously rather than absorbing silently, especially since every executable action in this same PR is SHA-pinned.

CI

Required: license/cla pass; maui-pr skipping (workflow/skill-only, by design). No failing checks.

Verdict: NEEDS_DISCUSSION — the toolchain/lock recompile is clean and security-neutral (safe to merge on the executable surfaces); the only open question is whether to accept the generated mutable-main agent-instruction refs or pin them to v0.83.1/SHA. A human maintainer's call. This automated reviewer does not approve or block.

Comment thread .github/agents/agentic-workflows.md Outdated
Copilot AI review requested due to automatic review settings July 26, 2026 16:20

Copilot AI left a comment

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.

Copilot's findings

  • Files reviewed: 19/19 changed files
  • Comments generated: 0 new

@kubaflo kubaflo left a comment

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.

🔍 AI-generated review — follow-up on the round-1 4-model adversarial security ensemble (Claude Opus 4.8 · GPT-5.5 · Gemini 3.1 Pro · GPT-5.6 Sol), independently re-verified on behalf of @kubaflo. Advisory.

NEEDS_DISCUSSION → round-1 item resolved; only a merge conflict now blocks

✅ The sole round-1 discussion item is fixed

Round 1 flagged one instruction-integrity item (raised by GPT-5.6 Sol, verified): .github/agents/agentic-workflows.md had de-pinned 15 agent-loaded **Prompt file** / **Reference file** URLs to the mutable github/gh-aw/main, while every executable action in the PR was SHA-pinned.

The new commit 98f2605 "Pin gh-aw dispatcher references" resolves exactly this: all 15 URLs are re-pinned github/gh-aw/maingithub/gh-aw/v0.83.1 (verified line-by-line — it is the only file in the delta). The dispatcher agent now loads its instruction/prompt files from the same immutable v0.83.1 tag the rest of the upgrade targets, matching the SHA-pinning discipline of the executable surfaces. 👍

✅ Executable surfaces unchanged

The delta since round 1 touches only .github/agents/agentic-workflows.md. The 14 lock files / workflow artifacts verified security-neutral in round 1 (byte-identical egress allowDomains, the single scoped+justified actions: write on the rerun-scanner conclusion job, authentic immutable SHA pins, persist-credentials: false retained) are untouched here.

⚠️ Remaining blocker — merge conflict, not a code defect

The PR is now CONFLICTING / DIRTY against main. Because of that dirty state, maui-pr / maui-pr-devicetests / maui-pr-uitests sit at action_required (pipelines can't compute a merge commit to run against — they have not actually failed a build; completed checks are green and the combined commit status is success). This is a mechanical rebase, not a review finding.

Next step: rebase/merge main to resolve the conflict, then let the pipelines run. The conflict most likely lands in the regenerated .lock.yml files — i.e. the executable surfaces — so after the rebase those locks warrant a fresh recompile-diff (egress allowDomains, permissions, uses: SHA pins) before final sign-off.

Verdict: NEEDS_DISCUSSION — clean on the merits (instruction-integrity item resolved, recompile security-neutral); merge is gated only by the conflict + a post-rebase re-check of the regenerated locks. No code changes requested.

Copilot AI review requested due to automatic review settings July 26, 2026 19:34
@PureWeen
PureWeen force-pushed the pureween-update-gh-aw branch from 98f2605 to 90794f5 Compare July 26, 2026 19:34

Copilot AI left a comment

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.

Copilot's findings

  • Files reviewed: 19/19 changed files
  • Comments generated: 0 new

@kubaflo kubaflo left a comment

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.

🔍 AI-generated review — follow-up on the round-1 4-model adversarial security ensemble (Claude Opus 4.8 · GPT-5.5 · Gemini 3.1 Pro · GPT-5.6 Sol), independently re-verified by me on the rebased head 90794f5. Advisory.

NEEDS_DISCUSSION — the round-2 merge conflict is resolved ✅; one newly-surfaced permission increase for a conscious human call

✅ Round-2 blocker cleared

The branch was rebased onto current main and the locks regenerated — the PR is now MERGEABLE (was CONFLICTING/DIRTY). The round-2 pin also survived the rebase: 0 mutable github/gh-aw/main refs remain in agentic-workflows.md (all 16 pinned to v0.83.1), and the new ASCII Charts dispatcher route added since round 2 is likewise pinned to v0.83.1. 👍

✅ Security invariants re-verified on the rebased locks

  • Egress identical vs main for the security-sensitive locks (copilot-review-tests, ci-status-fix, rerun-review-scanner) — allowDomains unchanged.
  • No new pull_request_target — the only occurrence (agentic-labeler.lock.yml) is present on main too (pre-existing).
  • All uses: are 40-hex SHA pins (e.g. github/gh-aw-actions/setup@8bdba807… # v0.83.1).

⚠️ Discussion item — v0.83.1 grants contents: write to the pre_activation guard job (net increase vs shipping v0.82.14)

The v0.83.1 compiler adds actions: read, checks: read, and contents: write to the pre_activation job in three command-triggered workflows — copilot-review-tests, aw-actions-update, leak-fixer — where the currently-shipping v0.82.14 locks grant that job only issues: write + pull-requests: write (no contents). Verified: main's copilot-review-tests pre_activation has no contents permission; this PR's has contents: write.

pre_activation is the authorization/guard job (team-membership check, command validation, hide-comment) — its visible steps don't obviously need repo write, and contents: write on an issue_comment-triggered workflow is a meaningful token. This is compiler-generated by the official gh-aw v0.83.1 (systematic across the three command workflows), not a hand-authored escalation — so it's most likely an intended v0.83.1 permission-model change rather than a defect. But it's a real net-increase in write scope over what's on main today, and round 1's ensemble reported "every other lock's permissions byte-identical" — it missed this. Worth a conscious accept rather than silent absorption: confirm v0.83.1 intends pre_activation: contents: write (and if the workflow doesn't need it, scope it down in frontmatter).

CI

Required: license/cla pass; maui-pr skipping (workflow/skill-only, by design). No failing checks.

Verdict: NEEDS_DISCUSSION — merge-ready now that the conflict is resolved and the pin/egress/SHA invariants hold; the only open item is a conscious sign-off on the v0.83.1 pre_activation: contents: write grant across the three command workflows. No code changes requested.

Copilot AI left a comment

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.

Copilot's findings

  • Files reviewed: 19/19 changed files
  • Comments generated: 0 new

Copilot AI review requested due to automatic review settings July 28, 2026 22:26

Copilot AI left a comment

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.

Copilot's findings

Comments suppressed due to low confidence (1)

.github/aw/actions-lock.json:37

  • This upgrade updates gh-aw-managed workflows and the actions lock to v0.83.4, but .github/workflows/validate-pat-pool.yml still pins github/gh-aw-actions/setup to v0.82.14 and installs Copilot CLI 1.0.71. That leaves the repo with a mixed gh-aw toolchain, which is easy to miss when troubleshooting PAT-pool failures; consider updating that workflow to match the new setup action + CLI version as part of this upgrade.
    "github/gh-aw-actions/setup-cli@v0.83.4": {
      "repo": "github/gh-aw-actions/setup-cli",
      "version": "v0.83.4",
      "sha": "e89c65e17eb281bbd5ff2ff9e9199a03e96654c7"
    },
    "github/gh-aw-actions/setup@v0.83.4": {
      "repo": "github/gh-aw-actions/setup",
      "version": "v0.83.4",
      "sha": "e89c65e17eb281bbd5ff2ff9e9199a03e96654c7"
    }
  • Files reviewed: 19/19 changed files
  • Comments generated: 0 new

Copilot AI review requested due to automatic review settings July 30, 2026 18:26
@PureWeen
PureWeen force-pushed the pureween-update-gh-aw branch from a231995 to a4d3b49 Compare July 30, 2026 18:26

Copilot AI left a comment

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.

Copilot's findings

  • Files reviewed: 17/17 changed files
  • Comments generated: 0 new

@kubaflo kubaflo left a comment

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.

AI-generated adversarial review: three independent frontier reviewers, cross-pollination, MAUI expert verification, and final GPT-5.6 Terra arbitration.

NEEDS_CHANGES

The v0.83.4 regeneration introduces a reproducible path that can publish a push-capable token in an uploaded raw-log artifact, plus a command-routing mismatch that can hide an accepted request and then skip it. Details are inline.

The title is accurate. The body should clarify that 14 workflows compiled while 12 regenerated lock files changed. Static and skill validation pass; the MAUI pipeline is skipped for .github-only changes and Build Analysis remains undetermined, so this is not an LGTM.

path: |
/tmp/gh-aw/safe-output-items.jsonl
/tmp/gh-aw/temporary-id-map.json
/tmp/gh-aw/process-safe-outputs.stdout.log

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.

process_safe_outputs copies stdout into this file before GitHub runner masking. This job supplies GH_AW_CI_TRIGGER_TOKEN, and the enabled push handlers run an unsilenced git config ... "Authorization: basic <base64-token>"; @actions/exec writes that reversible credential to stdout. Uploading the raw file therefore republishes a push-capable token. Please remove these logs from artifacts, or fix the pinned upstream action to silence/redact credential-bearing commands and regenerate every affected lock (also net11, aw-actions-update, leak-fixer, and regression-corpus-scanner).

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Confirmed. The raw process-safe-output artifact can capture a base64-encoded CI-trigger authorization header before runner masking. I filed github/gh-aw#50616. This is compiler-owned output, so I will not hand-edit the generated locks; the v0.84.3 upgrade needs an upstream fixed stable release before this path can be safely adopted.

- pre_activation
if: >
needs.pre_activation.outputs.activated == 'true' && (github.event_name == 'workflow_dispatch' || needs.pre_activation.outputs.exact_command_should_run == 'true')
if: "needs.pre_activation.outputs.activated == 'true' && ((github.event_name == 'workflow_dispatch' || needs.pre_activation.outputs.exact_command_should_run == 'true') && ((github.event_name == 'issue_comment') && (github.event_name == 'issue_comment' && (startsWith(github.event.comment.body, '/review ') || startsWith(github.event.comment.body, '/review\n') || github.event.comment.body == '/review') && github.event.issue.pull_request != null) || !(github.event_name == 'issue_comment')))"

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.

This guard disagrees with pre-activation: a leading-space /review tests passes the trimming/exact regex and is minimized as resolved there, but this raw startsWith('/review ') check rejects it here, so the accepted request disappears without running. Please align the two predicates (or reject before hiding the comment) and regenerate the lock.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Addressed in 852335e. The pre-activation predicate now requires /review tests to begin at character zero, so leading-whitespace variants are rejected before they can be minimized. The lock was regenerated with gh-aw v0.84.3.

Copilot AI review requested due to automatic review settings August 4, 2026 16:02
@PureWeen
PureWeen force-pushed the pureween-update-gh-aw branch from a4d3b49 to 39c6eaa Compare August 4, 2026 16:02
@PureWeen PureWeen changed the title Upgrade gh-aw workflows to v0.83.4 Upgrade gh-aw workflows to v0.84.3 Aug 4, 2026

Copilot AI left a comment

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.

Copilot's findings

Suppressed comments (2)

.github/workflows/shared/pat_pool.md:59

  • Array index is using the literal arithmetic expression PAT_NUMBER instead of the selected value, so the "✅" indicator is written to the wrong slot (typically index 0). This makes the pool-selection summary inaccurate.

Use $PAT_NUMBER (or ${PAT_NUMBER}) as the subscript and recompile workflows so the generated lock files pick up the fix.

          PAT_INDEX=$(( RANDOM % ${#PAT_NUMBERS[@]} ))
          PAT_NUMBER="${PAT_NUMBERS[$PAT_INDEX]}"
          POOL_INDICATORS[PAT_NUMBER]="✅"

.github/workflows/shared/pat_pool.md:38

  • Array index is using the literal arithmetic expression i instead of the loop variable, so every non-empty pool entry ends up marking the same slot (typically index 0). This makes the step summary misleading and will also be propagated into generated *.lock.yml files on compile.

Use $i (or ${i}) as the array subscript and recompile workflows to refresh the lock files.

This issue also appears on line 56 of the same file.

            if [ -n "$val" ]; then
              PAT_NUMBERS+=("$i")
              POOL_INDICATORS[i]="🟪"
            fi
  • Files reviewed: 20/20 changed files
  • Comments generated: 0 new

@kubaflo kubaflo left a comment

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.

@PureWeen — the Opus/Sol/Gemini re-review, cross-pollination, MAUI expert verification, and Terra arbitration retain the two existing inline findings at this head. Verdict: NEEDS_CHANGES. No new inline comments are being added.

The raw safe-output artifact issue remains a high-impact latent credential channel: GH_AW_CI_TRIGGER_TOKEN is not currently provisioned, so the path early-returns today, but the generated workflows declare and forward it, and provisioning it would make the unsilenced reversible authorization header land in the newly uploaded pre-mask stdout artifact without another code change. The /review tests activation mismatch also remains: whitespace variants can be authorized and minimized, then rejected by the new raw-body guard.

Existing threads: #36772 (comment) and #36772 (comment). The latest Copilot PAT-array suggestions are false positives because Bash indexed-array subscripts are arithmetic contexts. The earlier mutable-main prompt-link concern is fixed by the v0.84.3 pins.

The title remains accurate. The body should be updated with the two generated runtime regressions and should qualify its permissions summary. Static/skill checks pass, but required maui-pr is path-filtered/skipped and Build Analysis is pending, so confidence in merge safety remains low even though confidence in both mechanisms is high.

Copilot AI review requested due to automatic review settings August 5, 2026 15:21

Copilot AI left a comment

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.

Copilot's findings

Suppressed comments (1)

.github/workflows/copilot-review-tests.md:53

  • The updated matcher no longer tolerates leading whitespace/newlines before /review tests. Other workflows (e.g., review-trigger.yml) explicitly allow arbitrary leading whitespace for slash commands, so this change can make valid commands silently not run when users paste with indentation or a leading blank line.
        if [ "$EVENT_NAME" != "issue_comment" ] || [ -z "${ISSUE_PULL_REQUEST_URL:-}" ]; then
          echo "should_run=false" >> "$GITHUB_OUTPUT"; exit 0
        fi
        if [[ "$COMMENT_BODY" =~ ^/review[[:space:]]+tests[[:space:]]*$ ]]; then
          echo "should_run=true" >> "$GITHUB_OUTPUT"
  • Files reviewed: 20/20 changed files
  • Comments generated: 0 new

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 403461fc-4bc4-4885-ae40-ed45f73724d2
Copilot AI review requested due to automatic review settings August 6, 2026 17:34
@PureWeen
PureWeen force-pushed the pureween-update-gh-aw branch from 852335e to fc984c3 Compare August 6, 2026 17:34
@PureWeen PureWeen changed the title Upgrade gh-aw workflows to v0.84.3 Upgrade gh-aw workflows to v0.85.4 Aug 6, 2026

Copilot AI left a comment

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.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

Note

This error may be related to your runner configuration. You can now configure runners for Copilot code review separately from Copilot cloud agent by creating a copilot-code-review.yml file with your setup steps. Read the docs for details.

@kubaflo kubaflo left a comment

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.

AI-generated adversarial review: three independent frontier reviewers, cross-pollination, MAUI expert pass, and final GPT-5.6 Terra arbitration.

NEEDS_CHANGES

@PureWeen — the v0.85.4 upgrade is a faithful, reproducible recompile and the required maui-pr pipeline is green. It also fixes the two earlier supply-chain/artifact concerns: dispatcher instructions are release-pinned, and raw process-safe-outputs.stdout/stderr.log files are no longer uploaded. The old PAT-array warnings are false positives.

Four runtime gaps remain; three are inline. The top-level-only one is expiry cleanup: this PR deletes agentics-maintenance.yml, while all 14 locks still run the agent-failure handler with GH_AW_ACTION_FAILURE_ISSUE_EXPIRES_HOURS: "168". That deleted workflow contained the only scheduled close-expired-issues consumer. Upstream github/gh-aw#36857 documented this action-failure stamp-without-sweeper case; its closing PR #37965 fixed only no-op tracker detection, not action-failure issues. Please retain an owned sweeper or move to an upstream generator that accounts for this path.

The title is accurate. The body should not call the maintenance workflow obsolete until that expiry contract is addressed, and should disclose that Copilot CLI selection is no longer fixed by the generated locks.

The existing raw-token thread can now be resolved. The previous /review tests hide-then-drop mechanism is fixed, but the source change leaves a different cross-workflow routing hole described inline. This is a COMMENT review only; no approval or formal change request was submitted.

echo "should_run=false" >> "$GITHUB_OUTPUT"; exit 0
fi
if [[ "$COMMENT_BODY" =~ ^[[:space:]]*/review[[:space:]]+tests[[:space:]]*$ ]]; then
if [[ "$COMMENT_BODY" =~ ^/review[[:space:]]+tests[[:space:]]*$ ]]; then

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.

Changing this to require character zero fixes the previous hide-then-drop path, but it now conflicts with .github/workflows/review-trigger.yml:66, which still accepts leading whitespace and returns matched=false to reserve /review tests for this workflow. For /review tests, the generic reviewer therefore defers while this exact gate and the generated raw startsWith both reject it: neither workflow runs and the user gets no feedback. Please make both dispatchers use the same leading-whitespace policy (for example, tighten the generic deferral if character-zero commands are intended).

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Confirmed: the two dispatchers have different leading-whitespace policies, so /review tests is ignored. I do not think this should block the v0.85.4 upgrade. The supported/canonical form is character-zero /review tests, which now routes correctly; changing the separate generic AzDO dispatcher would broaden this gh-aw-managed upgrade. We should align that dispatcher in a focused follow-up rather than alter generated locks here.

- pre_activation
if: >
needs.pre_activation.outputs.activated == 'true' && (github.event_name == 'issue_comment' || github.event_name == 'workflow_dispatch')
if: "needs.pre_activation.outputs.activated == 'true' && ((github.event_name == 'issue_comment' || github.event_name == 'workflow_dispatch') && ((github.event_name == 'issue_comment') && (github.event_name == 'issue_comment' && (startsWith(github.event.comment.body, '/evaluate-tests ') || startsWith(github.event.comment.body, '/evaluate-tests\n') || github.event.comment.body == '/evaluate-tests') && github.event.issue.pull_request != null) || !(github.event_name == 'issue_comment')))"

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.

This new raw-body startsWith gate rejects leading-whitespace /evaluate-tests comments that the prior lock accepted and that the pinned check_command_position.cjs still normalizes with trim(). The result is a silent skip before the normalized command-position result can activate the job. Please align the generated/raw predicate with the command-position contract, or explicitly reject and report the unsupported form rather than silently dropping it.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Confirmed: v0.85.4 adds a raw character-zero activation predicate before check_command_position.cjs, even though that helper trims whitespace. This is upstream gh-aw-generated slash-command behavior rather than a MAUI source choice, and hand-editing the lock is not an acceptable fix. The canonical /evaluate-tests form works, so I am treating leading-whitespace support as a non-blocking upstream consistency issue.

path: /tmp/gh-aw
- name: Install GitHub Copilot CLI
run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.71
run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh"

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.

Removing the explicit 1.0.71/1.0.75 argument de-pins the runtime agent binary. The pinned installer first downloads compat.json from mutable github/gh-aw-actions/main and can select any TTL-fresh cached CLI in the compatible window (currently 1.0.21..1.0.78); checksum verification authenticates whichever binary was selected, not the selection itself. Identical lock YAML can therefore run different CLI versions over time or across runners. Please set engine.version: 1.0.78 in the source workflows (or pin the compatibility input) and regenerate.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

The factual observation is correct, but the proposed pin is not desirable here. v0.85.4 intentionally changed unpinned Copilot workflows to compatibility-window selection (with explicit engine.version as the opt-out), allowing gh-aw to select a tested CLI version without recompiling every lock. Pinning all workflows to 1.0.78 would bypass that policy and require MAUI to own future compatibility updates. The PR description now discloses this behavior; no source change is planned.

@PureWeen

PureWeen commented Aug 6, 2026

Copy link
Copy Markdown
Member Author

Follow-up on the top-level expiry concern in review 4877941611: the core observation is valid. v0.85.4 still stamps action-failure issues with a 168-hour expiry marker, while its maintenance generator does not consider that path when deciding whether to emit agentics-maintenance.yml. Those issues may therefore remain open after the displayed expiry. The cited upstream #36857/#37965 establish the same mismatch only for no-op tracker issues, not this exact action-failure path.

I do not consider this merge-blocking for this upgrade: it affects cleanup of failure-report issues, not workflow activation, permissions, secrets, PAT isolation, or safe-output handling. Retaining a compiler-deleted generated workflow by hand or adding a dummy expiry solely to force generation would violate the upgrade contract and obscure the upstream defect. The PR description has been corrected so it no longer calls the workflow obsolete and now discloses compatibility-selected Copilot CLI versions. Recommendation: merge v0.85.4 as generated and handle action-failure expiry generation upstream rather than carrying a MAUI-only workaround.

@kubaflo
kubaflo merged commit c055854 into main Aug 6, 2026
39 of 42 checks passed
@kubaflo
kubaflo deleted the pureween-update-gh-aw branch August 6, 2026 20:55
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.

4 participants