Repository navigation
fix(workflow): gate conclusion stale-check output references - #71808
Conversation
Only consume activation's stale_lock_file_failed output when stale checking is enabled. Cover activation/conclusion consistency across default, disabled, enabled, and full stale-check modes. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Refresh generated workflows with the current compiler, removing obsolete empty GH_AW_WIKI_NOTE expressions. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
|
🧠 Matt Pocock Skills Reviewer has completed the skills-based review. ✅
|
|
✅ PR Code Quality Reviewer completed the code quality review.
|
|
🔬 Test Quality Sentinel is analyzing test quality on this pull request... |
|
✅ Design Decision Gate 🏗️ completed the design decision gate check. See the comment below for the result and any generated ADR draft. Design Decision Gate 🏗️Outcome: The agent completed and reported no action. A no-op output alone does not verify that all required work was completed or that publication was possible. Agent messages are omitted from this comment. The category uses structured run status, not interpretation of agent prose.
|
|
✅ Ponytail Reviewer completed successfully! Ponytail ReviewerOutcome: The agent completed and reported no action. A no-op output alone does not verify that all required work was completed or that publication was possible. Agent messages are omitted from this comment. The category uses structured run status, not interpretation of agent prose.
|
There was a problem hiding this comment.
Review verdict: comment
No actionable issues found in the changed lines. The stale-check-disabled path now consistently omits both the activation output consumers and the failure-reporting environment variable, while enabled-mode behavior remains unchanged. The added regression coverage exercises default, disabled, explicit-enabled, and full modes.
🔎 Code quality review by PR Code Quality Reviewer · copilot · gpt50 · ~2 AIC · ⌖ ~1 AIC · ⊞ 1.6K
Comment /review to run again
There was a problem hiding this comment.
Skills-Based Review 🧠
Applied /diagnosing-bugs and /tdd — this is a clean, well-scoped bug fix with strong regression coverage.
📋 Key Themes & Highlights
Root Cause & Fix
- The bug: when
stale-check: false, the activation job correctly omitsstale_lock_file_failedfrom its outputs, but conclusion still referenced it unconditionally in both the failure-reporting env vars (buildAgentFailureActivationStatusVars) and the job condition (buildConclusionJobCondition), producing danglingneeds.*.outputs.*references. - The fix gates both conclusion consumers with the same
!data.StaleCheckDisabledflag already used by activation (compiler_activation_context.go:115,:239;compiler_activation_permissions.go:149), which is the correct, consistent pattern rather than inventing a new one.
Test Coverage (/tdd)
stale_check_test.goextendsTestStaleCheckInActivationJobto assert, per mode (default/disabled/explicit-true/full):- presence/absence of the
stale_lock_file_failedactivation output, - presence/absence of
GH_AW_STALE_LOCK_FILE_FAILEDin conclusion steps, - presence/absence of the output in
conclusion.If, - that the disabled-mode lock file has no dangling
needs.activation.outputs.stale_lock_file_failedreference at all.
- presence/absence of the
- Ran
go test ./pkg/workflow/ -run TestStaleCheckInActivationJob -vlocally — all 4 subtests pass, confirming the regression is fixed and the enabled-mode behavior (condition structure, lockdown/oauth checks,always()) is preserved.
Scope
- The 27
.lock.ymldiffs are a separately-noted recompilation dropping an unrelated obsolete emptyGH_AW_WIKI_NOTEexpression — no workflow sources changed, consistent with the PR description.
Positive Highlights
- ✅ Minimal, surgical diff (9 additions / 3 deletions in the source file)
- ✅ Reuses the existing
StaleCheckDisabledgating convention instead of introducing new logic - ✅ Regression tests assert both the positive and negative cases, and verify sibling guardrails (lockdown/oauth) are unaffected
No actionable issues found — approving.
🧠 Reviewed using Matt Pocock's skills by Matt Pocock Skills Reviewer · copilot · sonnet50 · ~26 AIC · ⌖ ~17 AIC · ⊞ 10.2K
Comment /matt to run again
There was a problem hiding this comment.
🟢 Approval recommended
Both consumers now match activation’s output gate, regression coverage preserves existing behavior, and no unresolved issues remain.
No open issues 🎉
What changed in this PR
Fixes the gh-aw compiler so conclusion jobs do not reference activation’s stale-check output when stale checking is disabled.
Changes:
- Gate both conclusion consumers with
StaleCheckDisabled, preserving enabled-mode behavior and existing failure/skip guards. - Extend regression assertions across default, disabled, explicitly enabled, and full stale-check modes.
- Refresh 27 generated workflow lock files to remove only the obsolete empty
GH_AW_WIKI_NOTEexpression; workflow sources remain unchanged.
| File | Description |
|---|---|
pkg/workflow/stale_check_test.go |
Add output-reference and guard assertions across stale-check modes. |
pkg/workflow/notify_comment_conclusion_helpers.go |
Gate stale-check references in conclusion conditions and reporting. |
.github/workflows/workflow-health-manager.lock.yml |
Remove obsolete empty wiki-note expression. |
.github/workflows/smoke-ci.lock.yml |
Remove obsolete empty wiki-note expression. |
.github/workflows/sergo.lock.yml |
Remove obsolete empty wiki-note expression. |
.github/workflows/security-compliance.lock.yml |
Remove obsolete empty wiki-note expression. |
.github/workflows/pr-triage-agent.lock.yml |
Remove obsolete empty wiki-note expression. |
.github/workflows/metrics-collector.lock.yml |
Remove obsolete empty wiki-note expression. |
.github/workflows/firewall-escape.lock.yml |
Remove obsolete empty wiki-note expression. |
.github/workflows/delight.lock.yml |
Remove obsolete empty wiki-note expression. |
.github/workflows/daily-testify-uber-super-expert.lock.yml |
Remove obsolete empty wiki-note expression. |
.github/workflows/daily-storify.lock.yml |
Remove obsolete empty wiki-note expression. |
.github/workflows/daily-safeoutputs-git-simulator.lock.yml |
Remove obsolete empty wiki-note expression. |
.github/workflows/daily-news.lock.yml |
Remove obsolete empty wiki-note expression. |
.github/workflows/daily-harness-experiment-proposer.lock.yml |
Remove obsolete empty wiki-note expression. |
.github/workflows/daily-formal-spec-verifier.lock.yml |
Remove obsolete empty wiki-note expression. |
.github/workflows/daily-ecosystem-explorer.lock.yml |
Remove obsolete empty wiki-note expression. |
.github/workflows/daily-code-metrics.lock.yml |
Remove obsolete empty wiki-note expression. |
.github/workflows/daily-cli-performance.lock.yml |
Remove obsolete empty wiki-note expression. |
.github/workflows/daily-arxiv-researcher.lock.yml |
Remove obsolete empty wiki-note expression. |
.github/workflows/copilot-session-insights.lock.yml |
Remove obsolete empty wiki-note expression. |
.github/workflows/copilot-pr-prompt-analysis.lock.yml |
Remove obsolete empty wiki-note expression. |
.github/workflows/copilot-pr-nlp-analysis.lock.yml |
Remove obsolete empty wiki-note expression. |
.github/workflows/copilot-cli-deep-research.lock.yml |
Remove obsolete empty wiki-note expression. |
.github/workflows/copilot-centralization-optimizer.lock.yml |
Remove obsolete empty wiki-note expression. |
.github/workflows/copilot-agent-analysis.lock.yml |
Remove obsolete empty wiki-note expression. |
.github/workflows/agentic-token-optimizer.lock.yml |
Remove obsolete empty wiki-note expression. |
.github/workflows/agentic-token-audit.lock.yml |
Remove obsolete empty wiki-note expression. |
.github/workflows/agent-performance-analyzer.lock.yml |
Remove obsolete empty wiki-note expression. |
Review effort: Max
|
In reply to #71808 (comment): No code changes needed. The associated skills review reports no actionable issues and confirms the four-mode stale-check regression coverage. |
|
In reply to #71808 (comment): No code changes needed. The associated code-quality review reports no actionable issues and confirms that both conclusion consumers match activation's stale-check output gate. |
|
In reply to #71808 (comment): This progress notice contains no actionable finding, so no code changes were made. Run 40160507079 subsequently failed at the conclusion job's Handle agent failure step; this is not a passing test-quality review. |
|
In reply to #71808 (comment): No code or ADR changes needed because this notice contains no concrete design finding or requested decision record. The reported_no_action status is not treated as proof that all gate checks completed. |
|
In reply to #71808 (comment): No code changes needed because this notice contains no concrete finding or requested fix. The reported_no_action status is not treated as independent verification of the implementation. |
|
🎉 This pull request is included in a new release. Release: |
When
on.stale-check: falsedisables stale checking, activation correctly omitsstale_lock_file_failed, but conclusion still references that output in its condition and failure-reporting environment. This produces dangling references and valid needs-consistency warnings.Gate both conclusion consumers with the same
StaleCheckDisabledflag as activation. Preserve failure reporting when stale checking is enabled, the existing enabled-mode condition structure, and conclusion failure/skip guards. Extend compilation regression coverage across default, disabled, explicitly enabled, and full stale-check modes without weakening the linter.Also includes a separately committed, requested recompilation of repository workflows: 27 generated lock files drop only the obsolete empty
GH_AW_WIKI_NOTEexpression; no workflow sources changed.Validation