Skip to content

Handle queued and in-flight PR lifecycle races - #70141

Merged
pelikhan merged 6 commits into
mainfrom
pelikhan-symmetrical-spork
Oct 19, 2026
Merged

pelikhan merged 6 commits into
mainfrom
pelikhan-symmetrical-spork

Conversation

@pelikhan

@pelikhan pelikhan commented Oct 19, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

  • Classify completed failed/cancelled PR attempts as obsolete_pr only with an affirmative empty Jobs API response for that exact attempt, a unique commit-to-PR association, and PR closure during the attempt's queue/finalization window. Association still works when the PR head advanced before merge.
  • Preserve raw GitHub conclusions and excluded runs, expose obsolete/non-execution counts, and exclude obsolete attempts from actionable failure clusters, investigation selections, and executed-run success denominators. Cache round-trips retain the evidence; legacy failed-PR cache records without job evidence are refreshed. Confirmed jobless but otherwise unexplained failures remain visible rather than being sent to runtime audits.
  • Stop failed PR checkouts instead of continuing on the previous checkout. Only explicit missing-ref plus closure evidence suppresses lifecycle-related failure reports; authentication, permission, network, and unknown failures remain reportable. Intentional closed/merged-event workflows use retained PR refs.
  • Recheck live PR state before safe-output handlers, retries, buffered reviews, synthetic updates, and PR push follow-ups. Refuse deleted PR branches and use leases for unsigned PR pushes and CI-trigger commits. Preserve staged previews and intentional closed-event workflows.
  • Add focused regressions and documentation; regenerate compiler-derived workflow locks. Workflow sources are unchanged.

ADR: ADR-70141: Evidence-Based Handling of Queued and In-Flight PR Lifecycle Races

Validation

  • make agent-report-progress: impacted Go unit tests and 7 JavaScript suites passed (1,342 passed, 3 skipped). Initial Go lint findings were corrected afterward.
  • make agent-report-progress-no-test: final formatting, build, scoped Go/custom/JavaScript lint, schema freshness, and workflow-drift gate passed after those corrections.
  • Focused go test ./pkg/cli ./pkg/workflow lifecycle/compiler regressions and cache/health consistency tests passed after the final Go refactor.
  • npm run typecheck --silent passed.
  • All 345 workflows compiled successfully and their generated locks are in sync.
  • Read-only verification confirmed historical run 39164597918 has zero jobs for attempt 1 and uniquely associates with closed PR Prevent OTLP placeholder masks from suppressing boolean job outputs #69996 despite its head advancing. No workflow runs were dispatched.

Platform limits

An unexecuted workflow is not healthy. No in-job guard can change GitHub's pre-job conclusion. Unknown API evidence, ambiguous PR associations, explicit startup-validation conclusions, observed failure signals, and job-backed failures are not classified as obsolete. Live-state checks cannot atomically lock a PR against closure between the check and a GitHub write; branch leases separately prevent recreating a deleted PR branch.

Classify confirmed jobless PR attempts using per-attempt jobs and unique commit/lifecycle evidence, preserving raw conclusions and unknown states. Keep excluded runs out of actionable failure analysis and executed-run metrics.\n\nStop failed checkouts, guard stale safe outputs, preserve intentional closed-event workflows, and lease PR pushes including CI-trigger commits so deleted branches are not recreated. Regenerate compiler-derived workflow locks.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@pelikhan
pelikhan marked this pull request as ready for review October 19, 2026 04:12
Copilot AI max review requested due to automatic review settings October 19, 2026 04:12
@github-actions

github-actions Bot commented Oct 19, 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 19, 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

github-actions Bot commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

✅ Test Quality Sentinel completed test quality analysis.

Test Quality Sentinel

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 Test Quality Sentinel · sonnet50 · 15.1 AIC · ⌖ 15.1 AIC · ◇ 6.63 AIC · ⊞ 12.6K · ◷

🧪 Test quality analysis by Test Quality Sentinel

@github-actions

github-actions Bot commented Oct 19, 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 · 14.9 AIC · ⌖ 5.26 AIC · ⊞ 14.6K · ◷

Generated by Ponytail Reviewer for #70141

@github-actions

github-actions Bot commented Oct 19, 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.

🏗️ ADR gate enforced by Design Decision Gate 🏗️

Regenerate logs and logs-jsonl schemas for the lifecycle evidence and execution metrics introduced by this PR. Update the nine WASM compiler golden fixtures to include checkout invalidation outputs and notification environment wiring.

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

Copy link
Copy Markdown
Contributor

🏗️ Design Decision Gate — ADR Required

This PR adds a lot of code to core business logic (479 new lines in pkg/ and similar directories, above the 100-line threshold), but it has no linked Architecture Decision Record (ADR).

📄 Draft ADR committed: docs/adr/70141-evidence-based-pr-lifecycle-race-handling.md. Please review and complete it before merging.

The draft records this decision: PR lifecycle races are handled only on evidence, never as a default excuse for failures.

  • In gh aw logs, a run is classified obsolete_pr only when the attempt has zero jobs, its commit maps to exactly one PR, and that PR closed during the run window.
  • PR checkout failures now stop the job instead of passing silently when the PR is closed.
  • Safe outputs recheck live PR state before acting (via pr_lifecycle.cjs).
  • PR pushes refuse to recreate deleted branches and use --force-with-lease.

Sections marked [TODO: verify] need author input: deciders, and whether concurrency groups were considered as an alternative.

🔒 This PR cannot merge until an ADR is linked in the PR body.

📋 What to do next
  1. Review the draft ADR committed to your branch. It was generated from the PR files and description.
  2. Complete the missing sections: add context the AI couldn't infer, refine the decision rationale, and list the alternatives you actually considered.
  3. Commit the finalized ADR to docs/adr/ on your branch.
  4. Reference the ADR in this PR body by adding a line such as:

    ADR: ADR-70141: Evidence-Based Handling of Queued and In-Flight PR Lifecycle Races

Once an ADR is linked in the PR body, this gate will re-run and check that the implementation matches the decision.

❓ Why ADRs Matter

"AI made me procrastinate on key design decisions. Because refactoring was cheap, I could always say 'I'll deal with this later.' Deferring decisions corroded my ability to think clearly."

ADRs create a searchable, permanent record of why the codebase looks the way it does. Future contributors (and your future self) will thank you.

📋 Michael Nygard ADR Format Reference

An ADR must contain these four sections to be considered complete:

  • Context: What is the problem? What forces are at play?
  • Decision: What did you decide, and why?
  • Alternatives Considered: What else could have been done?
  • Consequences: What are the trade-offs, positive and negative?

ADRs are stored in docs/adr/ as Markdown files numbered by PR number (e.g., 70141-...md for PR #70141).

🏗️ ADR gate enforced by Design Decision Gate 🏗️ · pi · opus55 · 33 AIC · ⌖ 40.6 AIC · ⊞ 1.9K · ◷
Comment /review to run again

@github-actions

Copy link
Copy Markdown
Contributor

Comment Memory

Peek at saved memory (pr-code-quality-reviewer)
reviewed_at: 2026-10-19T04:17:43Z
review_event: REQUEST_CHANGES
top_themes:
  - stale PR fallback path still reports push_failed
  - obsolete PR evidence discarded before branch filtering
files_reviewed:
  - actions/setup/js/checkout_pr_branch.cjs
  - actions/setup/js/extra_empty_commit.cjs
  - actions/setup/js/handle_agent_failure.cjs
  - actions/setup/js/pr_lifecycle.cjs
  - actions/setup/js/push_signed_commits.cjs
  - actions/setup/js/push_to_pull_request_branch.cjs
  - actions/setup/js/safe_output_handler_manager.cjs
  - pkg/cli/logs_github_api.go
  - pkg/cli/logs_orchestrator_filters.go
  - pkg/cli/logs_pr_lifecycle.go
  - pkg/cli/logs_report.go
  - pkg/workflow/compiler_safe_outputs_job.go
comment_count: 3

Note

This comment is managed by comment memory.

Expand the saved memory block to view or edit the persistent context for this thread.
Edit only the text inside the backtick fences; workflow metadata and the footer are regenerated automatically.

Learn more about comment memory

🔎 Code quality review by PR Code Quality Reviewer · copilot · gpt54 · 147.3 AIC · ⌖ 10.1 AIC · ⊞ 15.9K · ◷
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.

Verdict

Request changes — the PR-lifecycle work still has one stale-PR path that reports a real push failure after the PR is already closed, and the obsolete-run classifier throws away branch evidence before it uses it.

Themes
  • fallback PR creation still returns push_failed for stale PRs instead of skipping
  • obsolete PR detection rejects multi-PR commit associations before branch filtering, leaving valid stale runs visible
  • static review only; I reviewed the diff and nearby source, but did not execute code or tests

🔎 Code quality review by PR Code Quality Reviewer · copilot · gpt54 · 147.3 AIC · ⌖ 10.1 AIC · ⊞ 15.9K
Comment /review to run again

Comment thread pkg/cli/logs_pr_lifecycle.go
Comment thread actions/setup/js/push_to_pull_request_branch.cjs
Comment thread actions/setup/js/handle_agent_failure.cjs

@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 (triage classified this as a bug_fix targeting PR lifecycle race conditions). No actionable issues found — approving.

📋 Key Themes & Highlights

Key Themes

  • Every behavioral change (obsolete-PR classification, checkout-failure handling, stale-PR rechecks, branch-recreation leases) is paired with focused regression tests that assert the new behavior and remove assertions for the old behavior (e.g. checkout_pr_branch.test.cjs rewrites the "closed PR" suite to assert setFailed now fires instead of being swallowed).
  • The jobs-API evidence gathering (pkg/cli/logs_pr_lifecycle.go, logs_github_api.go) is conservative by design: ambiguous commit-to-PR associations, incomplete/garbled API responses, and API errors all fall back to "unknown" rather than asserting obsolete_pr, avoiding false-negative suppression of real failures (TestFetchObsoletePREvidence's "ambiguous commit association" and "API failure remains unknown" cases cover this well).
  • isInvalidatedPRMergeCheckout and checkout_pr_branch.cjs both narrow their closure-based suppression to require a specific missing-ref error string, so auth/permission/network failures remain visible — verified by the new it.each(["Authentication failed", "Permission denied", "network error", "exit code 128"]) test.
  • getStalePullRequestReason in pr_lifecycle.cjs is a small, well-named abstraction reused consistently across safe_output_handler_manager.cjs (main loop + deferred retry) and push_to_pull_request_branch.cjs (activation comment + CI-trigger push), with its own focused unit test file covering staged-preview bypass, closed-event preservation, and HTTP-error passthrough.
  • requireExistingBranch + --force-with-lease in extra_empty_commit.cjs/push_signed_commits.cjs correctly refuses to recreate a deleted branch and ties the lease to a resolved 40-hex-char OID rather than trusting an empty/garbled value.

Positive Highlights

  • ✅ Clear separation between "unknown" and "confirmed obsolete" evidence states throughout the Go lifecycle code — no run is silently miscategorized when API data is incomplete.
  • ✅ Good test hygiene: old assertions for the removed "always warn, never fail" behavior were deleted rather than left dangling, reducing risk of a silent regression back to that behavior.
  • ✅ Documentation (docs/src/content/docs/reference/checkout.md, setup/cli.md) was updated alongside the behavior change.

No specific line-level issue rose to the bar for an inline comment; the diff is large (362 files, mostly lock-file regeneration) but the hand-written logic is well-bounded and consistently tested.

🧠 Reviewed using Matt Pocock's skills by Matt Pocock Skills Reviewer · copilot · sonnet50 · 114.9 AIC · ⌖ 13.9 AIC · ⊞ 10.1K
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.

🟡 Changes recommended

Ineffective checkout invalidation, missing trigger permissions, and cache correctness issues block approval.

1 open issue
What changed in this PR

Adds handling for queued and in-flight PR lifecycle races, covering obsolete-attempt reporting, checkout failures, and safe-output safeguards.

Changes:

  • Preserve attempt-specific job and lifecycle evidence in logs and caches.
  • Separate obsolete and jobless attempts in failure analysis and execution metrics.
  • Propagate checkout invalidation and add live PR-state safeguards.
  • Update tests, documentation, schemas, and generated workflow locks.

Unresolved comments:

  • Critical: Checkout invalidation cannot become true in real runs because exec.exec errors omit Git’s stderr.
  • Moderate: Missing PR-read permission can break pull_request_target safe outputs in private repositories.
  • Moderate: Cache handling causes repeated refreshes for unavailable evidence and cache-dependent execution totals.
  • Nit: Add regression coverage for legacy-cache lookup behavior.
  • Nit: Move lifecycle documentation under its own heading.
File Description
schemas/​logs-jsonl.schema.json Adds lifecycle and job-count fields.
pkg/​workflow/​notify_comment_conclusion_helpers.go Passes invalidation to failure handling.
pkg/​workflow/​compiler_main_job_helpers.go Exports checkout invalidation.
pkg/​workflow/​compiler_main_job_helpers_test.go Tests invalidation output generation.
pkg/​cli/​logs_run_processor.go Fetches attempt-specific jobs.
pkg/​cli/​logs_orchestrator_filters_test.go Updates job-evidence stubs.
pkg/​cli/​logs_failure_statistics.go Excludes obsolete failure populations.
pkg/​cli/​logs_failure_signals.go Categorizes jobless metadata signals.
pkg/​cli/​logs_failure_clusters.go Separates jobless and obsolete attempts.
pkg/​cli/​logs_cached_json.go Refreshes failed-PR records lacking evidence.
docs/​src/​content/​docs/​reference/​checkout.md Documents lifecycle safeguards and limits.
.github/​workflows/​workflow-normalizer.lock.yml Wires checkout invalidation.
.github/​workflows/​windows-grower.lock.yml Wires checkout invalidation.
.github/​workflows/​weekly-safe-outputs-spec-review.lock.yml Wires checkout invalidation.
.github/​workflows/​video-analyzer.lock.yml Wires checkout invalidation.
.github/​workflows/​update-astro.lock.yml Wires checkout invalidation.
.github/​workflows/​typist.lock.yml Wires checkout invalidation.
.github/​workflows/​test-quality-sentinel.lock.yml Wires checkout invalidation.
.github/​workflows/​terminal-stylist.lock.yml Wires checkout invalidation.
.github/​workflows/​super-linter.lock.yml Wires checkout invalidation.
.github/​workflows/​sub-issue-closer.lock.yml Wires checkout invalidation.
.github/​workflows/​step-name-alignment.lock.yml Wires checkout invalidation.
.github/​workflows/​static-analysis-report.lock.yml Wires checkout invalidation.
.github/​workflows/​stale-repo-identifier.lock.yml Wires checkout invalidation.
.github/​workflows/​stale-pr-cleanup.lock.yml Wires checkout invalidation.
.github/​workflows/​squad.lock.yml Wires checkout invalidation.
.github/​workflows/​squad-plan.lock.yml Wires checkout invalidation.
.github/​workflows/​squad-implement-worker.lock.yml Wires checkout invalidation.
.github/​workflows/​squad-game-planner.lock.yml Wires checkout invalidation.
.github/​workflows/​spec-librarian.lock.yml Wires checkout invalidation.
.github/​workflows/​spec-extractor.lock.yml Wires checkout invalidation.
.github/​workflows/​spec-enforcer.lock.yml Wires checkout invalidation.
.github/​workflows/​smoke-workflow-call.lock.yml Wires checkout invalidation.
.github/​workflows/​smoke-work-queue.lock.yml Wires checkout invalidation.
.github/​workflows/​smoke-test-tools.lock.yml Wires checkout invalidation.
.github/​workflows/​smoke-temporary-id.lock.yml Wires checkout invalidation.
.github/​workflows/​smoke-service-ports.lock.yml Wires checkout invalidation.
.github/​workflows/​smoke-pydantic.lock.yml Wires checkout invalidation.
.github/​workflows/​smoke-pi.lock.yml Wires checkout invalidation.
.github/​workflows/​smoke-pi-sub-agents.lock.yml Wires checkout invalidation.
.github/​workflows/​smoke-pi-routed.lock.yml Wires checkout invalidation.
.github/​workflows/​smoke-otel-backends.lock.yml Wires checkout invalidation.
.github/​workflows/​smoke-opencode.lock.yml Wires checkout invalidation.
.github/​workflows/​smoke-kiro.lock.yml Wires checkout invalidation.
.github/​workflows/​smoke-goose.lock.yml Wires checkout invalidation.
.github/​workflows/​smoke-gemini.lock.yml Wires checkout invalidation.
.github/​workflows/​smoke-drive.lock.yml Wires checkout invalidation.
.github/​workflows/​smoke-deepseek-harness.lock.yml Wires checkout invalidation.
.github/​workflows/​smoke-cursor.lock.yml Wires checkout invalidation.
.github/​workflows/​smoke-crush.lock.yml Wires checkout invalidation.
.github/​workflows/​smoke-copilot-dynamic-workflow.lock.yml Adds PR-state read permission.
.github/​workflows/​smoke-copilot-auto.lock.yml Wires checkout invalidation.
.github/​workflows/​smoke-codex.lock.yml Wires checkout invalidation.
.github/​workflows/​smoke-claude.lock.yml Wires checkout invalidation.
.github/​workflows/​smoke-ci.lock.yml Wires checkout invalidation.
.github/​workflows/​smoke-builtin-ledgers.lock.yml Wires checkout invalidation.
.github/​workflows/​smoke-aider.lock.yml Wires checkout invalidation.
.github/​workflows/​smoke-agy.lock.yml Wires checkout invalidation.
.github/​workflows/​smoke-agent-scoped-approved.lock.yml Wires checkout invalidation.
.github/​workflows/​smoke-agent-public-none.lock.yml Wires checkout invalidation.
.github/​workflows/​smoke-agent-public-approved.lock.yml Wires checkout invalidation.
.github/​workflows/​smoke-agent-all-none.lock.yml Wires checkout invalidation.
.github/​workflows/​smoke-agent-all-merged.lock.yml Wires checkout invalidation.
.github/​workflows/​skillet.lock.yml Wires checkout invalidation.
.github/​workflows/​sighthound-security-scan.lock.yml Wires checkout invalidation.
.github/​workflows/​sergo.lock.yml Wires checkout invalidation.
.github/​workflows/​semantic-function-refactor.lock.yml Wires checkout invalidation.
.github/​workflows/​security-review.lock.yml Wires checkout invalidation.
.github/​workflows/​scout.lock.yml Wires checkout invalidation.
.github/​workflows/​schema-feature-coverage.lock.yml Wires checkout invalidation.
.github/​workflows/​schema-consistency-checker.lock.yml Wires checkout invalidation.
.github/​workflows/​safe-output-health.lock.yml Wires checkout invalidation.
.github/​workflows/​research.lock.yml Wires checkout invalidation.
.github/​workflows/​repo-tree-map.lock.yml Exports invalidation status.
.github/​workflows/​repo-audit-analyzer.lock.yml Wires checkout invalidation.
.github/​workflows/​refactoring-cadence.lock.yml Wires checkout invalidation.
.github/​workflows/​python-data-charts.lock.yml Wires checkout invalidation.
.github/​workflows/​purelock.lock.yml Wires checkout invalidation.
.github/​workflows/​prompt-clustering-analysis.lock.yml Wires checkout invalidation.
.github/​workflows/​pr-sous-chef.lock.yml Wires checkout invalidation.
.github/​workflows/​pr-code-quality-reviewer.lock.yml Wires checkout invalidation.
.github/​workflows/​portfolio-analyst.lock.yml Wires checkout invalidation.
.github/​workflows/​ponytail-reviewer.lock.yml Wires checkout invalidation.
.github/​workflows/​poem-bot.lock.yml Wires checkout invalidation.
.github/​workflows/​pdf-summary.lock.yml Wires checkout invalidation.
.github/​workflows/​outcome-collector.lock.yml Wires checkout invalidation.
.github/​workflows/​notion-issue-summary.lock.yml Wires checkout invalidation.
.github/​workflows/​necromancer.lock.yml Wires checkout invalidation.
.github/​workflows/​metrics-collector.lock.yml Wires checkout invalidation.
.github/​workflows/​lockfile-stats.lock.yml Wires checkout invalidation.
.github/​workflows/​linter-miner.lock.yml Wires checkout invalidation.
.github/​workflows/​lint-monster.lock.yml Wires checkout invalidation.
.github/​workflows/​issue-monster.lock.yml Wires checkout invalidation.
.github/​workflows/​issue-arborist.lock.yml Wires checkout invalidation.
.github/​workflows/​instructions-janitor.lock.yml Wires checkout invalidation.
.github/​workflows/​hourly-ci-cleaner.lock.yml Wires checkout invalidation.
.github/​workflows/​hippo-embed.lock.yml Wires checkout invalidation.
.github/​workflows/​grumpy-reviewer.lock.yml Wires checkout invalidation.
.github/​workflows/​gpclean.lock.yml Wires checkout invalidation.
.github/​workflows/​go-pattern-detector.lock.yml Wires checkout invalidation.
.github/​workflows/​go-logger.lock.yml Wires checkout invalidation.
.github/​workflows/​go-fan.lock.yml Wires checkout invalidation.
.github/​workflows/​github-remote-mcp-auth-test.lock.yml Wires checkout invalidation.
.github/​workflows/​github-mcp-tools-report.lock.yml Wires checkout invalidation.
.github/​workflows/​functional-pragmatist.lock.yml Wires checkout invalidation.
.github/​workflows/​front-page-copy-guard.lock.yml Wires checkout invalidation.
.github/​workflows/​feature-grower.lock.yml Wires checkout invalidation.
.github/​workflows/​example-workflow-analyzer.lock.yml Wires checkout invalidation.
.github/​workflows/​example-permissions-warning.lock.yml Wires checkout invalidation.
.github/​workflows/​example-failure-category-filter.lock.yml Wires checkout invalidation.
.github/​workflows/​evoskill-evolver.lock.yml Wires checkout invalidation.
.github/​workflows/​eslint-refiner.lock.yml Exports invalidation status.
.github/​workflows/​eslint-monster.lock.yml Exports invalidation status.
.github/​workflows/​eslint-miner.lock.yml Exports invalidation status.
.github/​workflows/​eslint-factory-dispatcher.lock.yml Exports invalidation status.
.github/​workflows/​engine-conformance-pydantic-ai.lock.yml Exports invalidation status.
.github/​workflows/​engine-conformance-pi.lock.yml Exports invalidation status.
.github/​workflows/​engine-conformance-opencode.lock.yml Exports invalidation status.
.github/​workflows/​engine-conformance-kiro.lock.yml Exports invalidation status.
.github/​workflows/​engine-conformance-goose.lock.yml Exports invalidation status.
.github/​workflows/​engine-conformance-gemini.lock.yml Exports invalidation status.
.github/​workflows/​engine-conformance-dispatcher.lock.yml Exports invalidation status.
.github/​workflows/​engine-conformance-deepseek-harness.lock.yml Exports invalidation status.
.github/​workflows/​engine-conformance-cursor.lock.yml Exports invalidation status.
.github/​workflows/​engine-conformance-crush.lock.yml Exports invalidation status.
.github/​workflows/​engine-conformance-copilot.lock.yml Exports invalidation status.
.github/​workflows/​engine-conformance-codex.lock.yml Exports invalidation status.
.github/​workflows/​engine-conformance-claude.lock.yml Exports invalidation status.
.github/​workflows/​engine-conformance-aider.lock.yml Exports invalidation status.
.github/​workflows/​engine-conformance-agy.lock.yml Exports invalidation status.
.github/​workflows/​duplicate-code-detector.lock.yml Wires checkout invalidation.
.github/​workflows/​draft-pr-cleanup.lock.yml Wires checkout invalidation.
.github/​workflows/​docs-noob-tester.lock.yml Wires checkout invalidation.
.github/​workflows/​dictation-prompt.lock.yml Wires checkout invalidation.
.github/​workflows/​dev-hawk.lock.yml Wires checkout invalidation.
.github/​workflows/​detection-analysis-report.lock.yml Wires checkout invalidation.
.github/​workflows/​designer-drift-audit.lock.yml Wires checkout invalidation.
.github/​workflows/​design-decision-gate.lock.yml Wires checkout invalidation.
.github/​workflows/​dependabot-go-checker.lock.yml Wires checkout invalidation.
.github/​workflows/​delight.lock.yml Wires checkout invalidation.
.github/​workflows/​deep-report.lock.yml Exports invalidation status.
.github/​workflows/​dead-code-remover.lock.yml Wires checkout invalidation.
.github/​workflows/​daily-workflow-updater.lock.yml Wires checkout invalidation.
.github/​workflows/​daily-workflow-security-model.lock.yml Wires checkout invalidation.
.github/​workflows/​daily-token-consumption-report.lock.yml Exports invalidation status.
.github/​workflows/​daily-team-evolution-insights.lock.yml Exports invalidation status.
.github/​workflows/​daily-syntax-error-quality.lock.yml Wires checkout invalidation.
.github/​workflows/​daily-storify.lock.yml Wires checkout invalidation.
.github/​workflows/​daily-squid-image-scan.lock.yml Wires checkout invalidation.
.github/​workflows/​daily-spending-forecast.lock.yml Wires checkout invalidation.
.github/​workflows/​daily-semgrep-scan.lock.yml Wires checkout invalidation.
.github/​workflows/​daily-security-red-team.lock.yml Wires checkout invalidation.
.github/​workflows/​daily-secrets-analysis.lock.yml Exports invalidation status.
.github/​workflows/​daily-safe-outputs-conformance.lock.yml Wires checkout invalidation.
.github/​workflows/​daily-safe-output-optimizer.lock.yml Wires checkout invalidation.
.github/​workflows/​daily-safe-output-integrator.lock.yml Wires checkout invalidation.
.github/​workflows/​daily-report-dispatcher.lock.yml Exports invalidation status.
.github/​workflows/​daily-repo-chronicle.lock.yml Exports invalidation status.
.github/​workflows/​daily-regulatory.lock.yml Exports invalidation status.
.github/​workflows/​daily-performance-summary.lock.yml Wires checkout invalidation.
.github/​workflows/​daily-observability-report.lock.yml Exports invalidation status.
.github/​workflows/​daily-news.lock.yml Wires checkout invalidation.
.github/​workflows/​daily-model-inventory.lock.yml Wires checkout invalidation.
.github/​workflows/​daily-max-ai-credits-test.lock.yml Wires checkout invalidation.
.github/​workflows/​daily-malicious-code-scan.lock.yml Wires checkout invalidation.
.github/​workflows/​daily-issues-report.lock.yml Exports invalidation status.
.github/​workflows/​daily-graft-intelligence.lock.yml Wires checkout invalidation.
.github/​workflows/​daily-grader-audit.lock.yml Wires checkout invalidation.
.github/​workflows/​daily-go-test-stubs-aider.lock.yml Wires checkout invalidation.
.github/​workflows/​daily-geo-optimizer.lock.yml Wires checkout invalidation.
.github/​workflows/​daily-function-namer.lock.yml Wires checkout invalidation.
.github/​workflows/​daily-firewall-report.lock.yml Exports invalidation status.
.github/​workflows/​daily-file-diet.lock.yml Wires checkout invalidation.
.github/​workflows/​daily-fact.lock.yml Wires checkout invalidation.
.github/​workflows/​daily-experiment-report.lock.yml Wires checkout invalidation.
.github/​workflows/​daily-evals-report.lock.yml Exports invalidation status.
.github/​workflows/​daily-ecosystem-explorer.lock.yml Wires checkout invalidation.
.github/​workflows/​daily-documentation-diagram.lock.yml Wires checkout invalidation.
.github/​workflows/​daily-doc-updater.lock.yml Wires checkout invalidation.
.github/​workflows/​daily-doc-healer.lock.yml Wires checkout invalidation.
.github/​workflows/​daily-credit-limit-test.lock.yml Wires checkout invalidation.
.github/​workflows/​daily-compiler-quality.lock.yml Exports invalidation status.
.github/​workflows/​daily-code-metrics.lock.yml Wires checkout invalidation.
.github/​workflows/​daily-code-debt-aider.lock.yml Wires checkout invalidation.
.github/​workflows/​daily-cli-tools-tester.lock.yml Wires checkout invalidation.
.github/​workflows/​daily-cli-performance.lock.yml Wires checkout invalidation.
.github/​workflows/​daily-choice-test.lock.yml Wires checkout invalidation.
.github/​workflows/​daily-architecture-diagram.lock.yml Wires checkout invalidation.
.github/​workflows/​daily-ambient-context-optimizer.lock.yml Wires checkout invalidation.
.github/​workflows/​craft.lock.yml Wires checkout invalidation.
.github/​workflows/​copilot-session-insights.lock.yml Wires checkout invalidation.
.github/​workflows/​copilot-pr-prompt-analysis.lock.yml Wires checkout invalidation.
.github/​workflows/​copilot-pr-nlp-analysis.lock.yml Wires checkout invalidation.
.github/​workflows/​copilot-pr-merged-report.lock.yml Wires checkout invalidation.
.github/​workflows/​copilot-cli-deep-research.lock.yml Wires checkout invalidation.
.github/​workflows/​copilot-centralization-optimizer.lock.yml Wires checkout invalidation.
.github/​workflows/​copilot-centralization-drilldown.lock.yml Wires checkout invalidation.
.github/​workflows/​copilot-agent-analysis.lock.yml Wires checkout invalidation.
.github/​workflows/​commit-changes-analyzer.lock.yml Wires checkout invalidation.
.github/​workflows/​code-scanning-fixer.lock.yml Wires checkout invalidation.
.github/​workflows/​cloclo.lock.yml Wires checkout invalidation.
.github/​workflows/​cli-version-checker.lock.yml Wires checkout invalidation.
.github/​workflows/​cli-consistency-checker.lock.yml Wires checkout invalidation.
.github/​workflows/​ci-coach.lock.yml Wires checkout invalidation.
.github/​workflows/​changeset.lock.yml Wires checkout invalidation.
.github/​workflows/​breaking-change-checker.lock.yml Wires checkout invalidation.
.github/​workflows/​bot-detection.lock.yml Wires checkout invalidation.
.github/​workflows/​blog-auditor.lock.yml Wires checkout invalidation.
.github/​workflows/​aw-issue-clustering.lock.yml Wires checkout invalidation.
.github/​workflows/​aw-failure-investigator.lock.yml Wires checkout invalidation.
.github/​workflows/​auto-triage-issues.lock.yml Wires checkout invalidation.
.github/​workflows/​audit-workflows.lock.yml Wires checkout invalidation.
.github/​workflows/​artifacts-summary.lock.yml Exports invalidation status.
.github/​workflows/​architecture-guardian.lock.yml Wires checkout invalidation.
.github/​workflows/​archie.lock.yml Wires checkout invalidation.
.github/​workflows/​approach-validator.lock.yml Wires checkout invalidation.
.github/​workflows/​api-consumption-report.lock.yml Wires checkout invalidation.
.github/​workflows/​agent-performance-analyzer.lock.yml Wires checkout invalidation.
.github/​workflows/​agent-job-health.lock.yml Wires checkout invalidation.
.github/​workflows/​actions-aw-linter-factory.lock.yml Wires checkout invalidation.
.github/​workflows/​ab-testing-advisor.lock.yml Wires checkout invalidation.

Review effort: Max

Comment thread pkg/workflow/compiler_main_job_helpers.go
pelikhan and others added 2 commits October 18, 2026 21:37
Disambiguate commit associations by affirmative branch evidence, skip obsolete non-fast-forward fallbacks without hiding real push failures, inspect captured fetch stderr, and decode binary job logs before classifying missing refs.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Record attempt-specific lifecycle evidence, branch disambiguation, checkout and safe-output safeguards, deletion-safe writes, alternatives, and platform race limitations.

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

Copy link
Copy Markdown
Collaborator Author

Regarding the skills-review completion notice: no code change is needed because this notification requests none. The associated review approved without actionable findings; completion of that review is not a claim about current CI.

@pelikhan

Copy link
Copy Markdown
Collaborator Author

Regarding the code-quality completion notice: the actionable inline findings were addressed in df5b89a, with a reply and resolution on each thread. The notification itself requires no additional change.

@pelikhan

Copy link
Copy Markdown
Collaborator Author

Regarding the Test Quality Sentinel result: no code change is needed because it reports no actionable finding. Its no-action status is not treated as proof of publication or current CI success.

@pelikhan

Copy link
Copy Markdown
Collaborator Author

Regarding the Ponytail Reviewer result: no code change is needed because it requests none. Its reported-no-action outcome does not establish publication or current CI success.

@pelikhan

Copy link
Copy Markdown
Collaborator Author

Regarding the design-gate completion notice: reviewed the accompanying ADR requirement and addressed it in ed9ce82. The completed record is now linked in the PR body.

@pelikhan

Copy link
Copy Markdown
Collaborator Author

Accepted the ADR requirement: added and linked ADR-70141 in ed9ce82, documenting branch-aware evidence, alternatives including concurrency, and the remaining race limits. No prior draft existed locally, so this record was prepared from the implementation and leaves maintainer acceptance explicit rather than inventing approval.

@pelikhan

Copy link
Copy Markdown
Collaborator Author

Regarding the managed review-memory snapshot: its branch-association and stale-fallback findings were addressed in df5b89a. No additional code change is needed, and the historical memory and generated metadata are left unchanged.

@gh-aw-bot

Copy link
Copy Markdown
Collaborator

@copilot address the following outstanding work in one pass:

  1. Update this branch with the latest main using make merge-main, resolving any conflicts and preserving the intended changes.
  2. Fix failing check impacted-go-tests (FAILURE): https://github.com/github/gh-aw/actions/runs/39201167667/job/117894350802.

Push the necessary fixes, reply to each listed review thread and resolve it when addressed. Ignore feedback already answered or resolved. Use the pr-finisher skill and stop when only human review or CI remains; do not trigger CI.

Sous-chef head: ed9ce82
Sous-chef work: 42e5d572d9d75b7168fe7d0aeda0717cc07e65ed240f6d299e6fec661214f1ac
Sous-chef state: f06d46e3e92f4c65a8ace915041d16d32d6180d66ff955b9ce95a96f98713e57

Generated by 👨‍🍳 PR Sous Chef · pi · haiku45 · 4.86 AIC · ⌖ 10.2 AIC · ⊞ 1.1K · ◷
Comment /souschef to run again

Copilot AI and others added 2 commits October 19, 2026 05:12
…spork

Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>
Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>

Copilot AI commented Oct 19, 2026

Copy link
Copy Markdown
Contributor

@copilot address the following outstanding work in one pass:

  1. Update this branch with the latest main using make merge-main, resolving any conflicts and preserving the intended changes....

Merged the latest main with make merge-main; the impacted test failure was fixed by updating the expectations for the five 524,288-character fields. make agent-report-progress passes. Commit: ce72f8d. No CI was triggered.

Copilot AI requested a review from gh-aw-bot October 19, 2026 05:29
@pelikhan
pelikhan merged commit a5a5d04 into main Oct 19, 2026
2 checks passed
@pelikhan
pelikhan deleted the pelikhan-symmetrical-spork branch October 19, 2026 07:40
@github-actions

Copy link
Copy Markdown
Contributor

🎉 This pull request is included in a new release.

Release: v0.92.6

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