Skip to content

fix: prevent workflow predecessor deadlocks on shared runners - #693

Merged
efraespada merged 3 commits into
developfrom
bugfix/692-runtime-predecessor-queue-can-deadlock-per-pr-workflows-on-shared-runners
Oct 25, 2026
Merged

efraespada merged 3 commits into
developfrom
bugfix/692-runtime-predecessor-queue-can-deadlock-per-pr-workflows-on-shared-runners

Conversation

@efraespada

@efraespada efraespada commented Oct 25, 2026 •

Copy link
Copy Markdown
Member

Queued runs for unrelated PRs can no longer occupy shared runners while waiting for each other before setup. The runtime verifies the executing workflow's pinned native resource/lane contract and delegates coordination to GitHub; legacy and custom workflows retain the fail-closed predecessor fence.

What changed

  • Read the current repository's workflow at GITHUB_WORKFLOW_SHA, select the direct executing job, and require the exact existing push, PR analysis or review-state group. Missing proof keeps the predecessor queue; provider, parsing and deadline failures stop before setup.
  • Add scheduler-inversion replays against shipped and setup workflows, retained mutation fencing, bounded source inspection and sanitized failure coverage. Update the owning SDD, catalog, operator documentation and generated bundles.

Validation

  • Codecov on 972023c: 100% of modified coverable lines, with no missing or partial changed lines; all seven affected runtime files are 100% covered.
  • CI Check on 972023c: 714 suites passed; 12,067 tests passed and 35 skipped. Global Jest coverage: 97.85% lines, 94.35% branches. All configured coverage budgets passed.
  • Setup Platform Smoke on 972023c: Ubuntu, macOS and Windows passed.
  • All seven changed runtime modules: 100% lines, statements, functions and branches. Focused verification: 124 tests passed with explicit 100% thresholds. Added incomplete-metadata, deadline, default polling, retry-observer and entrypoint boundary cases; simplified the redundant PR-number fallback without changing admission semantics.
  • Commit hooks passed build, the full test suite and lint. Typecheck, build synchronization, workflow, specification, documentation, agent-doc, docs-page and npm package validation passed; packaged CLI/API/local-web smoke passed.
  • graphify update . completed.

Review notes

CI follow-up: regenerated the runtime bundles after aligning the local installation with the committed lockfile (undici 6.29.1). The lockfile and source implementation are unchanged by that follow-up; Linux and macOS now pass generated-bundle validation.

Existing installations with the current native groups need the fixed runtime without workflow edits or a new input. A process already waiting in an older runtime must be inspected and rerun after upgrading, preserving necessary predecessor callbacks. Existing freshness, findings, permission and deployment guards remain in force.

Closes #692

…-shared-runners: fix runtime predecessor deadlocks with verified native coordination
@vypbot vypbot added the size: XXL Indicates an extremely large task or issue that requires significant time and effort to complete. label Oct 25, 2026
@docs-page

docs-page Bot commented Oct 25, 2026

Copy link
Copy Markdown

To preview the documentation for this pull request, visit the following URL:

docs.page/vypdev/copilot~693

Documentation is deployed and generated using docs.page

@vypbot
vypbot self-requested a review October 25, 2026 04:06
@vypbot vypbot added this to vypdev Oct 25, 2026
@vypbot vypbot moved this to In Progress in vypdev Oct 25, 2026
@vypbot
vypbot changed the base branch from develop to master October 25, 2026 04:07
@vypbot
vypbot changed the base branch from master to develop October 25, 2026 04:07
@vypbot

vypbot commented Oct 25, 2026 •

Copy link
Copy Markdown
Contributor

Copilot approval · Human review needed

Status: Only open, non-draft, complete same-repository pull requests are eligible.
Completed: 1/1 observed checks succeeded; Bugbot complete.
Action required: Ask a human reviewer to decide.
Impact: No new approval is confirmed for this revision.
See checks

Technical evidence

Revision: 972023cff8ec; base: b76ccecbcf73; reason: unsupported-pr.

@vypbot

vypbot commented Oct 25, 2026 •

Copy link
Copy Markdown
Contributor

Bugbot: review complete

Current status: No active findings on 972023c.

Pull request · Verified commit · Workflow run

…-shared-runners: rebuild runtime bundles with locked dependencies
@vypbot vypbot added 90% Progress: 90% state:ai-processing and removed 85% Progress: 85% state:ai-processing labels Oct 25, 2026
@codecov-commenter

codecov-commenter commented Oct 25, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 94.18%. Comparing base (274db40) to head (972023c).
⚠️ Report is 1652 commits behind head on develop.

Additional details and impacted files
@@             Coverage Diff             @@
##           develop     #693      +/-   ##
===========================================
+ Coverage    90.94%   94.18%   +3.23%     
===========================================
  Files          135      976     +841     
  Lines         6251    31709   +25458     
  Branches      1338     9315    +7977     
===========================================
+ Hits          5685    29865   +24180     
- Misses         172      702     +530     
- Partials       394     1142     +748     
Files with missing lines Coverage Δ
src/actions/common_action.ts 100.00% <100.00%> (+1.44%) ⬆️
src/actions/main_run_lifecycle.ts 100.00% <100.00%> (ø)
...on/policies/native_workflow_coordination_policy.ts 100.00% <100.00%> (ø)
...rkflow/wait_for_previous_workflow_runs_use_case.ts 100.00% <100.00%> (ø)
...orkflow/native_workflow_coordination_repository.ts 100.00% <100.00%> (ø)
...ure/composition/workflow_queue_composition_root.ts 100.00% <100.00%> (ø)
...ogging/logger_workflow_polling_observer_adapter.ts 100.00% <100.00%> (ø)

... and 1036 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

…-shared-runners: fully cover native coordination and queue boundaries
@efraespada
efraespada merged commit b76ccec into develop Oct 25, 2026
12 checks passed
@github-project-automation github-project-automation Bot moved this from In Progress to Done in vypdev Oct 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

90% Progress: 90% size: XXL Indicates an extremely large task or issue that requires significant time and effort to complete. state:verified

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

🐛🧑‍💻 - Runtime predecessor queue can deadlock per PR workflows on shared runners

3 participants