Skip to content

Finalize work-queue workers inline and recover stranded runs - #69790

Merged
pelikhan merged 6 commits into
mainfrom
pelikhan-eslint-workflow-health
Oct 18, 2026
Merged

pelikhan merged 6 commits into
mainfrom
pelikhan-eslint-workflow-health

Conversation

@pelikhan

@pelikhan pelikhan commented Oct 17, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

  • Move worker_termination into each queue worker's existing trusted conclusion job. There is no additional per-worker job or workflow run, and the shared workflow_run completion observer is removed.
  • Release only the original bound assignment after independently authenticating the worker's repository, workflow, immutable revision, principal, attempt, dispatch correlation, and complete job-quiescence inventory. The enclosing Actions run may still be finishing conclusion diagnostics; it is not reported as completed.
  • Recover hard-cancelled or stranded workers before compaction in the existing scheduled agentic maintenance job. Recovery is bounded, requests no native cancellations, preserves renamed-worker and missed-binding recovery, and explicitly reports unresolved or ambiguous evidence.
  • Preserve completed Claims, pending/failed delivery barriers, retry accounting, and fairness debt. Releasing capacity never establishes a Result or authorizes replaying uncertain effects.
  • Retain privacy-preserving diagnostics: static lifecycle events, counts, flags, and sanitized failure categories rather than payloads, identities, or raw API error data.

Compatibility and capacity

The closed V3 evidence contract gains worker_termination, backed by a verified job-inventory digest and restricted to the exact original worker's reconciler identity. It permits release and cancellation of unfinished Claims, not Result or DeliveryFailure. Upgrade closed-schema readers before publishing this evidence; historical records are unchanged.

Capacity now bounds task-producing worker execution, not the number of Actions runs still finishing conclusion diagnostics. Agent permissions remain unchanged. Existing native-terminal reconciliation remains the fallback for workers whose inline finalizer cannot execute.

Updated the TypeSpec contract, generated schemas, lifecycle specification, operator documentation, and all 30 compiled queue workers. The formal-model documentation explicitly distinguishes existing native-terminal coverage from the new inline inventory check.

Earlier queue recovery

Before this redesign, the unchanged trusted operator reconciled six independently verified terminal reservations. That historical snapshot had zero retained reservations and zero claimed Work; the three failed and two pending delivery barriers were preserved. This is not a newly refreshed live-state claim. No worker was dispatched or rerun for this change.

Validation

  • 345 tests passed across seven targeted JavaScript suites; runtime TypeScript checking passed.
  • Full native work-queue suite and Go/JavaScript release-evidence parity checks passed, including rejection of termination evidence for Result and DeliveryFailure.
  • Queue, maintenance, conclusion, and compiler/CLI regressions passed after integrating the concurrent remote repair; actual compilation integration passed.
  • Change-scoped publication gate passed, including Go/custom/JavaScript lint, schema freshness, and workflow drift checking. All 344 workflows compile; existing warnings remain.
  • Generated wiring checks confirm unchanged worker job counts, unchanged agent permissions, no completion trigger, and reconciliation before maintenance compaction.

The concurrent branch update is preserved through a non-rewriting merge. This PR is not merged, and the redesign is not yet deployed.

Reconcile exact bound worker attempts on completion without relaunching work or changing independent delivery barriers. Preserve repository action pins for workers-only event generation and cover native identity, retries, and completed siblings.

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

github-actions Bot commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor

🧠 Matt Pocock Skills Reviewer was cancelled during the skills-based review.

Warning

Threat Detection Engine Failure — The analysis engine could not complete. This is a tooling failure, not a security finding.

What happened

The threat detection engine failed to produce results.

Review the workflow run logs for details.

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

@github-actions

github-actions Bot commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor

❌ Test Quality Sentinel was cancelled during test quality analysis.

Warning

Threat Detection Engine Failure — The analysis engine could not complete. This is a tooling failure, not a security finding.

What happened

The threat detection engine failed to produce results.

Review the workflow run logs for details.

🧪 Test quality analysis by Test Quality Sentinel

@github-actions

github-actions Bot commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor

❌ Ponytail Reviewer was cancelled. Please review the logs for details.

Ponytail Reviewer

Outcome: unconfirmed

The agent emitted a no-op output, but successful task completion is unconfirmed.

Agent messages are omitted from this comment. The category uses structured run status, not interpretation of agent prose.

Generated from Ponytail Reviewer · gpt56 · 6.95 AIC · ⌖ 5.33 AIC · ⊞ 14.6K · ◷

Generated by Ponytail Reviewer for #69790

@github-actions

github-actions Bot commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor

❌ Design Decision Gate 🏗️ was cancelled during design decision gate check.

Warning

Threat Detection Engine Failure — The analysis engine could not complete. This is a tooling failure, not a security finding.

What happened

The threat detection engine failed to produce results.

Review the workflow run logs for details.

🏗️ ADR gate enforced by Design Decision Gate 🏗️

@github-actions

github-actions Bot commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor

⚠️ PR Code Quality Reviewer was cancelled during code quality review.

Warning

Threat Detection Engine Failure — The analysis engine could not complete. This is a tooling failure, not a security finding.

What happened

The threat detection engine failed to produce results.

Review the workflow run logs for details.

🔎 Code quality review by PR Code Quality Reviewer

@pelikhan
pelikhan marked this pull request as ready for review October 17, 2026 22:17
@github-actions

github-actions Bot commented Oct 17, 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 🏗️

@github-actions

github-actions Bot commented Oct 17, 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 · haiku45 · 19.7 AIC · ⌖ 8.59 AIC · ◇ 3.15 AIC · ⊞ 9.2K · ◷

🧪 Test quality analysis by Test Quality Sentinel

@github-actions

github-actions Bot commented Oct 17, 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 17, 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 17, 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 · 8.14 AIC · ⌖ 5.42 AIC · ⊞ 14.6K · ◷

Generated by Ponytail Reviewer for #69790

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

Copy link
Copy Markdown
Contributor

🧪 Test Quality Sentinel Report

✅ Test Quality Score: 88/100 — Excellent

Analyzed 14 test(s): 12 design, 2 implementation, 0 violation(s).

📊 Metrics (14 tests)
Metric Value
Analyzed 14 (Go: 6, JS: 8)
✅ Design 12 (86%)
⚠️ Implementation 2 (14%)
Edge/error coverage 10 (71%)
Duplicate clusters 0
Inflation No (test:prod ≈ 0.44:1)
🚨 Violations 0
Test File Classification Key Coverage
releases only the exact terminal binding... (it.each ×3) reconcile_work_queue_run.test.cjs design_test Terminal state verification, retry preservation
enforces retry exhaustion... reconcile_work_queue_run.test.cjs design_test Edge case: max attempts enforcement
ignores unrelated %s events... (it.each ×3) reconcile_work_queue_run.test.cjs design_test Event filtering, guard clauses
does not mutate for %s events... (it.each ×5) reconcile_work_queue_run.test.cjs design_test Fork/rerun/state validation
does not reconcile another reservation... reconcile_work_queue_run.test.cjs design_test Unbound work rejection
retains capacity on independently read %s mismatch... (it.each ×7) reconcile_work_queue_run.test.cjs design_test Independent auth validation, error handling
does not infer terminal state... reconcile_work_queue_run.test.cjs design_test Webhook alone insufficient
preserves completed siblings... reconcile_work_queue_run.test.cjs design_test State preservation, no spurious Result creation
TestGenerateWorkQueueEventWorkflowSkipsRepoConfigWhenIssueMirroringIsUnused compile_post_processing_work_queue_test.go design_test Config skipping, file cleanup
TestGenerateWorkQueueWorkerEventsHonorRepoConfiguration compile_post_processing_work_queue_test.go implementation_test Error path on missing config
TestGenerateWorkQueueEventWorkflowWhenIssueMirroringIsEnabled work_queue_event_workflow_test.go design_test YAML generation, event triggers
TestGenerateWorkQueueEventWorkflowRemovesWhenIssueMirroringIsUnused work_queue_event_workflow_test.go design_test File cleanup on unused features
TestGenerateWorkQueueEventWorkflowReconcilesWorkersWithoutIssueMirroring work_queue_event_workflow_test.go design_test Worker deduplication, sorting, workflow filtering
TestGenerateWorkQueueEventWorkflowSeparatesIssueAndRunEvents work_queue_event_workflow_test.go implementation_test Conditional workflow generation
✅ Behavioral Coverage Highlights

Excellent signals:

  • State machine validation: JS tests verify terminal reservation release, retry accounting preservation, and work state transitions (available → completed → cancelled).
  • Independent authentication: 7-case parameterized test (retains capacity on independently...) confirms publisher/principal/repository/revision/attempt/correlation mismatches are rejected before ledger mutation.
  • Error handling: Comprehensive edge cases (webhook alone insufficient, retry exhaustion, unbound work, fork filtering, API unavailable).
  • Behavioral guards: Tests verify what the system does, not implementation details — YAML structure, file cleanup, event filtering, state preservation.
  • Table-driven rigor: Parameterized tests (.each() in JS, multiple scenarios in Go) cover success and error paths systematically.

Minor notes:

  • 2 implementation tests are appropriate (config error handling, conditional generation) and tightly coupled to the feature.
  • No mock violations: JS uses vitest mocks for external I/O (GitHub API); Go uses require.* assertions (not a mock library).
  • All Go test files have correct (go/redacted):build !integration tag on line 1.

Verdict

✅ passed. 14% implementation tests (threshold: 30%). No violations. Test inflation ratio 0.44:1 (well below 2:1 threshold). Excellent behavioral coverage of work-queue reconciliation, state preservation, and event handling.

🧪 Test quality analysis by Test Quality Sentinel · copilot · haiku45 · 19.7 AIC · ⌖ 8.59 AIC · ⊞ 9.2K · ◷
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.

✅ Test Quality Sentinel: 88/100. 14% implementation tests (threshold: 30%). Excellent behavioral coverage with no violations.

🧪 Test quality analysis by Test Quality Sentinel · copilot · haiku45 · 19.7 AIC · ⌖ 8.59 AIC · ⊞ 9.2K
Comment /review to run again

@github-actions

Copy link
Copy Markdown
Contributor

🏗️ Design Decision Gate — ADR Required

This PR makes significant changes to core business logic (145 new lines in pkg/) but does not have a linked Architecture Decision Record (ADR).

📄 Draft ADR committed: docs/adr/69790-event-driven-work-queue-terminal-reservation-release.md. Review and complete it before merging.

Decision captured: Release work queue reservations through a generated workflow_run: completed handler in agentic-workqueue.yml. The handler lists compiled workers explicitly and runs trusted default-branch code. The webhook only selects the stored binding. reconcileDispatch then checks the native run attempt independently before it releases capacity.

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

📋 What to do next
  1. Review the draft ADR that was committed to your branch. It was generated from the PR diff.
  2. Complete the missing sections. Check the [TODO: verify] deciders, then refine the alternatives: dispatcher-only reconciliation, worker self-cleanup, and a catch-all workflow_run trigger. Also refine the trade-offs: the zizmor dangerous-trigger suppression, matching workers by name, and handling only first attempts.
  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-69790: Event-Driven Release of Work Queue Reservations on Worker Termination

After the PR body links an ADR, this gate will run again and check that the implementation matches the decision.

❓ Why ADRs Matter

ADRs keep a permanent, searchable record of why the codebase looks the way it does. Future contributors, including your future self, will thank you.

📋 Michael Nygard ADR Format Reference

An ADR is complete only when it has these four sections:

  • 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, both positive and negative?

ADRs are stored in docs/adr/ as Markdown files, numbered by PR number.

🏗️ ADR gate enforced by Design Decision Gate 🏗️ · pi · opus55 · 32 AIC · ⌖ 40.4 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-17T22:22:07.387+00:00
review_event: REQUEST_CHANGES
top_themes:
  - brittle self-trigger exclusion by workflow name
  - workflow_run cleanup tied to mutable worker names
  - unbound completed runs discarded without bounded recovery
files_reviewed:
  - .github/workflows/agentic-workqueue.yml
  - actions/setup/js/reconcile_work_queue_run.cjs
  - actions/setup/js/reconcile_work_queue_run.test.cjs
  - pkg/cli/compile_post_processing.go
  - pkg/cli/compile_post_processing_work_queue_test.go
  - pkg/workflow/work_queue_event_workflow.go
  - pkg/workflow/work_queue_event_workflow_test.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 · 95.8 AIC · ⌖ 6.33 AIC · ⊞ 12.7K · ◷
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.

REQUEST_CHANGES: the new terminal-cleanup path still has three correctness/reliability holes that can strand reservations.

### Blocking themes
  • self-trigger avoidance is keyed to the mutable display name Agentic Workqueue, so a real worker with that name loses cleanup entirely
  • workflow_run.workflows is keyed to current names only, so worker renames can skip completion cleanup for older in-flight runs
  • the JS reconciler drops completed runs as unbound instead of attempting a bounded authenticated recovery path

Static review only; I did not execute the code.

🔎 Code quality review by PR Code Quality Reviewer · copilot · gpt54 · 95.8 AIC · ⌖ 6.33 AIC · ⊞ 12.7K
Comment /review to run again

Comment thread pkg/workflow/work_queue_event_workflow.go Outdated
Comment thread pkg/workflow/work_queue_event_workflow.go Outdated
Comment thread actions/setup/js/reconcile_work_queue_run.cjs Outdated

@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 to the new workflow_run terminal-reservation reconciler (reconcile_work_queue_run.cjs) and its generator (work_queue_event_workflow.go); also used /codebase-design on the generator refactor.

📋 Key Themes & Highlights

Key Themes

  • The core fix (independent re-authentication of the completed native run before releasing a reservation) is sound and well covered by the 123-line test suite, including the mismatch/rejection matrix (revision, principal, repository, correlation, attempt, publisher, unavailable).
  • One new branch in reconcile_work_queue_run.cjs — the work_queue_run_binding_ambiguous guard for multiple dispatches bound to the same run — has no regression test (see inline comment).
  • Minor maintainability nit: the "Agentic Workqueue" self-reference string is duplicated across WorkQueueEventsEnabled and GenerateWorkQueueEventWorkflow, plus implicitly tied to the YAML name: literal (see inline comment).

Positive Highlights

  • ✅ Clean separation between writeWorkQueueIssueEventsJob and writeWorkQueueTerminationJob, each independently gated by event_name checks — good defense against cross-trigger confusion.
  • ✅ The reconciler correctly refuses to infer terminal state from the webhook payload alone, re-verifying via the GitHub API (does not infer terminal state from the webhook alone test) — textbook /diagnosing-bugs root-cause handling rather than trusting untrusted event data.
  • ✅ Idempotency is tested (main(options) called twice with no extra transactions), and retry-exhaustion vs. silent-reopen is explicitly covered.
  • ✅ Docs updated in the same PR to describe the new automatic cleanup and fallback path.

No blocking issues found; the two inline suggestions are small, non-blocking improvements.

🧠 Reviewed using Matt Pocock's skills by Matt Pocock Skills Reviewer · copilot · sonnet50 · 106.4 AIC · ⌖ 15 AIC · ⊞ 10.1K
Comment /matt to run again

Comment thread pkg/workflow/work_queue_event_workflow.go Outdated
Comment thread actions/setup/js/reconcile_work_queue_run.cjs Outdated

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.

🔵 Needs a closer look

Privileged queue-state writes need human security review, and a trigger-matching defect remains unresolved.

1 open issue
What changed in this PR

Adds automatic terminal-reservation cleanup for gh-aw queue workers while preserving completed claims and independent delivery verification.

Changes:

  • Generate completion handlers even without Issue mirroring.
  • Reconcile exact run bindings using existing retry rules.
  • Add regression coverage and document cleanup behavior.
File Description
pkg/​workflow/​work_queue_event_workflow.go Generate separate Issue and worker-completion handlers.
pkg/​workflow/​work_queue_event_workflow_test.go Test worker selection and event separation.
pkg/​cli/​compile_post_processing.go Load repository configuration for workers-only generation.
pkg/​cli/​compile_post_processing_work_queue_test.go Cover workers-only configuration loading.
docs/​src/​content/​docs/​reference/​work-queue.md Document automatic cleanup and fallback reconciliation.
actions/​setup/​js/​reconcile_work_queue_run.test.cjs Cover binding checks, retries, and delivery preservation.
actions/​setup/​js/​reconcile_work_queue_run.cjs Reconcile the completed run’s stored reservation.
.github/​workflows/​agentic-workqueue.yml Add generated completion triggers and cleanup job.

Review effort: Max

Comment thread pkg/workflow/work_queue_event_workflow.go Outdated
@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. Review (pkg/workflow/work_queue_event_workflow.go:26): Treating the literal display name "Agentic Workqueue" as the self-workflow sentinel silently disables terminal cleanup for any real worker that happens to use that name, so reservations can leak indefinitely. - Finalize work-queue workers inline and recover stranded runs #69790 (comment)
  3. Review (pkg/workflow/work_queue_event_workflow.go:98): The workflow_run.workflows filter is keyed to the current workflow names only, so renaming a worker drops completed events for older in-flight runs and reintroduces stuck reservations during rollouts. - Finalize work-queue workers inline and recover stranded runs #69790 (comment)
  4. Review (actions/setup/js/reconcile_work_queue_run.cjs:22): Returning unbound here throws away the only terminal signal for a completed worker when the bind write was missed or stale, so capacity can stay stranded until some later manual or periodic reconciliation happens to notice it. - Finalize work-queue workers inline and recover stranded runs #69790 (comment)
  5. Review (pkg/workflow/work_queue_event_workflow.go:26): [/codebase-design] The magic string "Agentic Workqueue" (the generated handler's own display name) is duplicated here, at line 40, and implicitly tied to the name: Agentic Workqueue literal at line 86 — three places that must stay in sync by convention, not by the compiler enforcing it. - Finalize work-queue workers inline and recover stranded runs #69790 (comment)
  6. Review (actions/setup/js/reconcile_work_queue_run.cjs:23): [/tdd] The candidates.length !== 1 branch throws work_queue_run_binding_ambiguous, but the new test file never exercises more than one bound dispatch for the same run_id/run_attempt. This is the one genuinely new piece of selection logic in this file (filtering latest.projection.dispatches by run binding), and it has no regression coverage. - Finalize work-queue workers inline and recover stranded runs #69790 (comment)
  7. Review (pkg/workflow/work_queue_event_workflow.go:101): workflow_run.workflows entries are Actions filter patterns; strconv.Quote only handles YAML quoting. The generated entry for Daily AIC Consumption Report (Sentry + Grafana OTel) therefore treats + as a quantifier instead of matching the literal name. That worker's completions do not start cleanup, leaving reservations for fallback reconciliation. Unescaped wildcards can also match unrelated workflows. Escape pattern metacharacters before quoting, add regression cases for special-character names, and regenerate .github/workflows/agentic-workqueue.yml. The escaping requirement is demonstrated in actions/runner#3763. - Finalize work-queue workers inline and recover stranded runs #69790 (comment)
  8. Fix failing check JS Tests (shard 4/4) (FAILURE): https://github.com/github/gh-aw/actions/runs/39074870795/job/117519897755.

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: 48a4ff9
Sous-chef work: 0fc8fdb30abc7882f2ed732956d87bfb01a91b76c967e7685f78716391d05f77 31f7e812d45f0792093269b7b90445aa9803225a204ec130694b9ceb0227d7cc 66dcd46aea0945ce4a2d5a7af7902571446e12aaac8074d8588d8facca3a97d9 940ec0811e374d4b66f74e19f2c46e8d221316bb74fec0db6ae808ff3ca941cd 9646f1bac29232c17e76ed694352841d180a81906bf8d3950b47c91c119a0568 bf335b95a5a30edb32f2bf4c63bd6c85f2ea61c4af34f32d2efa71fd3a17e641 c55deff7410ac4881eb7a8b8dec30fd6e92d6123493fcd6cd14024c8dafda870
Sous-chef state: c2e53410d1b71d5966bd769406248997f042d3aa393b0ee4d4546fc88e74841b

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

…low-health

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

Copy link
Copy Markdown
Collaborator Author

@copilot merge main and recompile

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

Copilot AI commented Oct 17, 2026

Copy link
Copy Markdown
Contributor

@copilot merge main and recompile

make merge-main completed. origin/main was already an ancestor of this branch, so no merge commit was needed. The command rebuilt and recompiled all 344 workflows successfully; the working tree remains clean.

pelikhan and others added 2 commits October 17, 2026 17:33
Release original worker reservations after authenticated job quiescence in the existing conclusion job. Reconcile hard-cancelled and stranded runs before scheduled compaction without an additional per-worker workflow run.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Preserve upstream updates and cover recovery of renamed workers and missed binding writes through scheduled maintenance. Keep normal termination inside the original worker's existing conclusion job and reject ambiguous bindings without exposing private identities.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@pelikhan pelikhan changed the title Fix terminal work-queue reservation cleanup Finalize work-queue workers inline and recover stranded runs Oct 18, 2026
@pelikhan
pelikhan merged commit 6fc2e07 into main Oct 18, 2026
50 checks passed
@pelikhan
pelikhan deleted the pelikhan-eslint-workflow-health branch October 18, 2026 00:45
@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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants