Skip to content

fix: coalesce safe queued issue admission before allocating work runners - #754

Merged
efraespada merged 1 commit into
developfrom
bugfix/730-coalesce-repeated-issue-admission-events-before-allocating-complete-runner-jobs
Oct 28, 2026
Merged

efraespada merged 1 commit into
developfrom
bugfix/730-coalesce-repeated-issue-admission-events-before-allocating-complete-runner-jobs

Conversation

@efraespada

@efraespada efraespada commented Oct 28, 2026 •

Copy link
Copy Markdown
Member

Repeated Issue Form labels and internal metadata callbacks can allocate complete work-runner jobs for the same admission. This change admits events on an isolated hosted job, serializes each issue without canceling running work or replacing pending intent, and reuses a receipt only for an equivalent backlog reconciliation that was already queued during successful work.

The product account is authenticated natively, including when the bot-login Variable is absent. Open/start/deploy/close/reopen/edit/assignment intent and all unproven or partial work retain the normal guarded pipeline. A receipt binds native issue state, actor/product account, configuration, workflow SHA and the shipped runtime/manifests; only same-workflow successful native provenance can cover a queued event. Byte-identical description persistence also omits the redundant provider write.

Validation: 760 root Jest suites / 13,635 passing tests (35 existing skips), all global and module coverage budgets and setup acceptance; 267 extension tests at 100% in all four coverage metrics; types, lint, specifications, documentation, workflow contracts, npm package, CLI/API/web smoke and Graphify. Local patch audit: 140 executable changed lines covered, zero misses or uncovered changed branches. Normal commit hooks repeated the complete build, root Jest and lint successfully. The no-op regression fails on the previous implementation and passes with the fix. The built Node subaction was exercised against a local read-only provider fixture: internal filtering, private opaque receipt creation, and changed-state refusal. Package verification covers the isolated subaction, CLI, typed API and local web session.

The automatic token gains only actions: read on the hosted admission job; product PAT scopes and full-job permissions are unchanged. Inspection gets no agent keys. GitHub bounds each native queue at 100 pending runs, and receipts expire after one day; missing proof preserves full execution. Consumers need the matching runtime before installing the new workflow. No live consumer rollout, latency improvement, deployment or release is claimed.

Closes #730.

…-complete-runner-jobs: coalesce safe queued issue admission before allocating work runners
@docs-page

docs-page Bot commented Oct 28, 2026

Copy link
Copy Markdown

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

docs.page/vypdev/copilot~754

Documentation is deployed and generated using docs.page

@vypbot
vypbot self-requested a review October 28, 2026 02:35
@vypbot vypbot added the size: XXL Indicates an extremely large task or issue that requires significant time and effort to complete. label Oct 28, 2026
@vypbot vypbot added this to vypdev Oct 28, 2026
@vypbot vypbot moved this to In Progress in vypdev Oct 28, 2026
@vypbot
vypbot changed the base branch from develop to master October 28, 2026 02:35
@vypbot
vypbot changed the base branch from master to develop October 28, 2026 02:35
@vypbot

vypbot commented Oct 28, 2026

Copy link
Copy Markdown
Contributor

Bugbot: review complete

Current status: No active findings on da43f90.

Pull request · Verified commit · Workflow run

@vypbot

vypbot commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

Copilot approval · Human review needed

Status: A protected workflow, policy, or trust-boundary file changed.
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: da43f9006cc7; base: 5269ef813bb3; reason: protected-path.

@vypbot vypbot added the 65% Progress: 65% label Oct 28, 2026
@codecov-commenter

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 94.71%. Comparing base (5b3664f) to head (da43f90).
⚠️ Report is 27 commits behind head on develop.

Additional details and impacted files
@@             Coverage Diff             @@
##           develop     #754      +/-   ##
===========================================
+ Coverage    94.50%   94.71%   +0.21%     
===========================================
  Files         1035     1069      +34     
  Lines        33299    34388    +1089     
  Branches      9824    10188     +364     
===========================================
+ Hits         31468    32572    +1104     
+ Misses         699      684      -15     
  Partials      1132     1132              
Files with missing lines Coverage Δ
extension/tooling/package_contract.mts 100.00% <100.00%> (ø)
issue-admission/index.cjs 100.00% <100.00%> (ø)
src/actions/common_action.ts 100.00% <ø> (ø)
src/actions/github_action.ts 95.86% <100.00%> (+0.14%) ⬆️
src/actions/issue_event_admission_action.ts 100.00% <100.00%> (ø)
src/actions/main_run_lifecycle.ts 100.00% <ø> (ø)
...plication/policies/issue_event_admission_policy.ts 100.00% <100.00%> (ø)
...on/policies/native_workflow_coordination_policy.ts 100.00% <100.00%> (ø)
src/application/policies/setup_runner_policy.ts 100.00% <100.00%> (ø)
...ecases/execution/issue_event_admission_workflow.ts 100.00% <100.00%> (ø)
... and 3 more

... and 11 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.

@efraespada
efraespada merged commit a34daa5 into develop Oct 28, 2026
13 of 14 checks passed
@github-project-automation github-project-automation Bot moved this from In Progress to Done in vypdev Oct 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

65% Progress: 65% 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.

🐛🧑‍💻 - Coalesce repeated issue admission events before allocating complete runner jobs

3 participants