Skip to content

Add FIFO Scenario scheduling - #2376

Draft
Roman Lutz (romanlutz) wants to merge 1 commit into
copilot/romanlutz-scenario-pr-04-history-upstreamfrom
copilot/romanlutz-scenario-pr-05-queue-upstream
Draft

Add FIFO Scenario scheduling#2376
Roman Lutz (romanlutz) wants to merge 1 commit into
copilot/romanlutz-scenario-pr-04-history-upstreamfrom
copilot/romanlutz-scenario-pr-05-queue-upstream

Conversation

@romanlutz

@romanlutz Roman Lutz (romanlutz) commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds process-local single-active FIFO scheduling, stable queue positions, queued cancellation, race-safe handoff, overload evidence, and lightweight startup reconciliation. Reconciliation only owns scheduler-managed local runs and is non-destructive for shared backends.

What this layer adds

  • One active Scenario run per backend process with stable FIFO ordering.
  • Queue position, enqueue time, queued cancellation, and race-safe handoff.
  • Scheduler provenance retained through Scenario metadata construction.
  • Lightweight startup reconciliation scoped to scheduler-managed local runs.
  • Structured target overload evidence without pretending to provide adaptive throttling.

Preview

Single-active FIFO Scenario queue

Stack

This is 5 of 7 in native GitHub Stack #2390 and depends on #2375.

Layer Scope Pull request
1 Progress foundation #2372
2 Catalog and launch #2373
3 Live progress #2374
4 Run history #2375
5 FIFO scheduling (this PR) #2376
6 Configuration sizing #2377
7 Result details #2378

See the full implementation, screenshots, walkthrough, validation, and operational notes.

Validation

  • Backend: 15,212 passed, 120 skipped.
  • Frontend: 68/68 suites, 1,286/1,286 tests; lint, TypeScript, and production build passed.
  • Mock E2E, retries disabled: 91 passed, 0 failed, 0 skipped.
  • Seeded E2E, retries disabled: 62 passed, 0 failed, 0 skipped.
  • All configured pre-commit hooks passed; distinguished-engineer review approved the final stack.

Operational boundary

Scheduling and locks are process-local. Multi-worker or multi-replica deployments need durable coordination and leases; that is intentionally deferred and documented in the gist.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 5d02c2d5-b499-4f78-a04d-03bffa750817
Comment thread pyrit/backend/services/scenario_run_service.py
Comment thread pyrit/backend/services/scenario_run_service.py
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.

2 participants