Skip to content

fix(workflow): gate conclusion stale-check output references - #71808

Merged
pelikhan merged 2 commits into
mainfrom
pelikhan-potential-waffle
Oct 25, 2026
Merged

pelikhan merged 2 commits into
mainfrom
pelikhan-potential-waffle

Conversation

@pelikhan

Copy link
Copy Markdown
Collaborator

When on.stale-check: false disables stale checking, activation correctly omits stale_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 StaleCheckDisabled flag 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_NOTE expression; no workflow sources changed.

Validation

  • Reproduced the disabled-mode regression before the fix; focused stale-check and conclusion tests pass afterward.
  • Build, formatting, Go lint, custom Go lint, and impacted unit tests pass.
  • Recompiled all 348 workflows successfully; the final change-scoped no-test gate and workflow drift check pass. No workflows were executed.
pelikhan and others added 2 commits October 24, 2026 20:39
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>
@pelikhan
pelikhan marked this pull request as ready for review October 25, 2026 04:03
Copilot AI max review requested due to automatic review settings October 25, 2026 04:03
@github-actions

github-actions Bot commented Oct 25, 2026 •

Copy link
Copy Markdown
Contributor

🧠 Matt Pocock Skills Reviewer has completed the skills-based review. ✅

🧠 Reviewed using Matt Pocock's skills by Matt Pocock Skills Reviewer

@github-actions

github-actions Bot commented Oct 25, 2026 •

Copy link
Copy Markdown
Contributor

✅ PR Code Quality Reviewer completed the code quality review.

🔎 Code quality review by PR Code Quality Reviewer

@github-actions

Copy link
Copy Markdown
Contributor

🔬 Test Quality Sentinel is analyzing test quality on this pull request...

@github-actions

github-actions Bot commented Oct 25, 2026 •

Copy link
Copy Markdown
Contributor

✅ 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: reported_no_action

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.

Generated from Design Decision Gate 🏗️ · opus55 · ~11 AIC · ⌖ ~32 AIC · ◇ ~3 AIC · ⊞ 1.9K · ◷

🏗️ ADR gate enforced by Design Decision Gate 🏗️

@github-actions

github-actions Bot commented Oct 25, 2026 •

Copy link
Copy Markdown
Contributor

✅ Ponytail Reviewer completed successfully!

Ponytail Reviewer

Outcome: reported_no_action

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.

Generated from Ponytail Reviewer · gpt56 · ~7 AIC · ⌖ ~6 AIC · ⊞ 14.8K · ◷

Generated by Ponytail Reviewer for #71808

@github-actions github-actions Bot 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.

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

@github-actions github-actions Bot 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.

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 omits stale_lock_file_failed from its outputs, but conclusion still referenced it unconditionally in both the failure-reporting env vars (buildAgentFailureActivationStatusVars) and the job condition (buildConclusionJobCondition), producing dangling needs.*.outputs.* references.
  • The fix gates both conclusion consumers with the same !data.StaleCheckDisabled flag 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.go extends TestStaleCheckInActivationJob to assert, per mode (default/disabled/explicit-true/full):
    • presence/absence of the stale_lock_file_failed activation output,
    • presence/absence of GH_AW_STALE_LOCK_FILE_FAILED in 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_failed reference at all.
  • Ran go test ./pkg/workflow/ -run TestStaleCheckInActivationJob -v locally — 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.yml diffs are a separately-noted recompilation dropping an unrelated obsolete empty GH_AW_WIKI_NOTE expression — 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 StaleCheckDisabled gating 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

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.

🟢 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_NOTE expression; 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

@pelikhan

Copy link
Copy Markdown
Collaborator Author

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.

@pelikhan

Copy link
Copy Markdown
Collaborator Author

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.

@pelikhan

Copy link
Copy Markdown
Collaborator Author

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.

@pelikhan

Copy link
Copy Markdown
Collaborator Author

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.

@pelikhan

Copy link
Copy Markdown
Collaborator Author

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.

@pelikhan
pelikhan merged commit 93a8390 into main Oct 25, 2026
116 of 128 checks passed
@pelikhan
pelikhan deleted the pelikhan-potential-waffle branch October 25, 2026 04:32
@github-actions

Copy link
Copy Markdown
Contributor

🎉 This pull request is included in a new release.

Release: v0.93.4

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

Labels

None yet

2 participants