Upgrade gh-aw workflows to v0.85.4 - #36772
Conversation
|
🚀 Dogfood this PR with:
curl -fsSL https://raw.githubusercontent.com/dotnet/maui/main/eng/scripts/get-maui-pr.sh | bash -s -- 36772Or
iex "& { $(irm https://raw.githubusercontent.com/dotnet/maui/main/eng/scripts/get-maui-pr.ps1) } 36772" |
|
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. |
Skill Validation Results
|
There was a problem hiding this comment.
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 (includingsetup-cli). - Updates
copilot-review-teststo useactions/checkout@v7.0.1withpersist-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-awmain, 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-awmain. 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-awmain, 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
PureWeen
left a comment
There was a problem hiding this comment.
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
left a comment
There was a problem hiding this comment.
🔍 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
allowDomainsis byte-identical across all 14 locks (Gemini + Opus + GPT-5.5 + Sol each diffed the extracted JSON).isolation,min-integrityguard, proxy enablement all identical. The api-proxy model-routing allow-list gainedraptor-mini/sonnet-5categories — model steering, not domain egress. Benign. - One new permission, scoped & justified:
rerun-review-scanner.lock.ymlconclusionjobpermissions: {}→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; nopull_request_targetadded;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 thatgithub/gh-aw-actionsv0.83.1→8bdba807…andv0.82.14→b6d1443e…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: falseunchanged on every checkout it applied to; the intentionalcopilot-review-testsactions/checkout@v4→@v7.0.1bump (documented in the PR body) keepspersist-credentials: falseand 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.
kubaflo
left a comment
There was a problem hiding this comment.
🔍 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/main → github/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.
98f2605 to
90794f5
Compare
kubaflo
left a comment
There was a problem hiding this comment.
🔍 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
mainfor the security-sensitive locks (copilot-review-tests, ci-status-fix, rerun-review-scanner) —allowDomainsunchanged. - No new
pull_request_target— the only occurrence (agentic-labeler.lock.yml) is present onmaintoo (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.
90794f5 to
8022f88
Compare
There was a problem hiding this comment.
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.ymlstill pinsgithub/gh-aw-actions/setupto 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
a231995 to
a4d3b49
Compare
kubaflo
left a comment
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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).
There was a problem hiding this comment.
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')))" |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
a4d3b49 to
39c6eaa
Compare
There was a problem hiding this comment.
Copilot's findings
Suppressed comments (2)
.github/workflows/shared/pat_pool.md:59
- Array index is using the literal arithmetic expression
PAT_NUMBERinstead 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
iinstead 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
left a comment
There was a problem hiding this comment.
@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.
There was a problem hiding this comment.
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
852335e to
fc984c3
Compare
There was a problem hiding this comment.
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
left a comment
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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).
There was a problem hiding this comment.
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')))" |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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" |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
|
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 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. |
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
merge=oursattribute so regenerated locks participate correctly in merge resolution.copilot-pat-poolenvironment, PAT secret manifest,persist-credentials: false, source-declared permissions, and release-pinned dispatcher references./review testsactivation alignment and PAT-pool ShellCheck-safe selection behavior.engine.version; the generated lock no longer fixes one CLI version.Validation
gh aw upgradegh aw compile --validate --strict --show-allgh aw lintgit diff --checkAll 14 workflows compile with zero errors. The compiler reports only the existing
pull_request_targetadvisory and slash-command/bot concurrency advisory. Docker-backed Actionlint reports the known 14 false positives for gh-aw's customgithub.aw.import-inputscontext.