[rush-daemon][WS2.8][7/9] Wire request admission - #5970
Merged
Mo Jazayeri (mojaza) merged 3 commits intoAug 27, 2026
Merged
Conversation
Mo Jazayeri (mojaza)
marked this pull request as ready for review
August 27, 2026 01:35
Mo Jazayeri (mojaza)
marked this pull request as draft
August 27, 2026 01:39
Contributor
There was a problem hiding this comment.
Pull request overview
Adds WS2.8 request classification and admission across opt-in rushd global and phased routing.
Changes:
- Adds protocol-minor-4 admission options, queue progress, command origin, and typed failures.
- Introduces workspace scheduling, command classification, deadlines, cancellation, and graph serialization.
- Adds integration tests, documentation, API reports, and change records.
Reviewed changes
Copilot reviewed 33 out of 33 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
libraries/rush-daemon/README.md |
Documents admission behavior and limitations. |
libraries/rush-daemon/src/GlobalCommandRequest.ts |
Resolves origin and admission options. |
libraries/rush-daemon/src/GlobalCommandRequestClient.ts |
Adds admission capability and queue output. |
libraries/rush-daemon/src/GlobalCommandRequestRouter.ts |
Integrates global request admission. |
libraries/rush-daemon/src/PhasedRequestClient.ts |
Adds phased queue-position support. |
libraries/rush-daemon/src/PhasedRequestRouter.ts |
Adds workspace and graph admission. |
libraries/rush-daemon/src/RushCommandRequestPolicy.ts |
Classifies built-in and custom commands. |
libraries/rush-daemon/src/WorkspaceRequestAdmission.ts |
Implements shared admission control. |
libraries/rush-daemon/src/test/GlobalCommandRequestRouter.test.ts |
Adapts global routing tests. |
libraries/rush-daemon/src/test/PhasedRequestInteractive.test.ts |
Adds command origin fixture data. |
libraries/rush-daemon/src/test/PhasedRequestInput.test.ts |
Adds command origin fixture data. |
libraries/rush-daemon/src/test/PhasedRequestRouter.test.ts |
Adds command origin fixture data. |
libraries/rush-daemon/src/test/PhasedRequestRouterTestUtilities.ts |
Supports queue-position test output. |
libraries/rush-daemon/src/test/RequestAdmissionIntegration.test.ts |
Covers admission lifecycle and concurrency. |
libraries/rush-daemon/src/test/RushCommandRequestPolicy.test.ts |
Verifies command classifications. |
libraries/rush-daemon-protocol/README.md |
Documents admission protocol contracts. |
libraries/rush-daemon-protocol/src/ControlMessageValidation.ts |
Validates admission controls. |
libraries/rush-daemon-protocol/src/DaemonClientCaps.ts |
Adds admission capability negotiation. |
libraries/rush-daemon-protocol/src/DaemonCommandResult.ts |
Adds typed admission failure results. |
libraries/rush-daemon-protocol/src/DaemonControlKinds.ts |
Registers queue-position controls. |
libraries/rush-daemon-protocol/src/DaemonControlMessage.ts |
Extends the control-message union. |
libraries/rush-daemon-protocol/src/DaemonPhasedRequest.ts |
Adds admission and command origin fields. |
libraries/rush-daemon-protocol/src/DaemonProtocolVersion.ts |
Advances protocol minor version. |
libraries/rush-daemon-protocol/src/DaemonRequestAdmission.ts |
Defines admission types and validation. |
libraries/rush-daemon-protocol/src/DaemonRushCommand.ts |
Defines parsed command origins. |
libraries/rush-daemon-protocol/src/RequestAdmissionControlValidation.ts |
Validates capability and queue positions. |
libraries/rush-daemon-protocol/src/index.ts |
Exports new protocol APIs. |
libraries/rush-daemon-protocol/src/test/ControlFrame.test.ts |
Tests admission control frames. |
libraries/rush-daemon-protocol/src/test/RequestAdmission.test.ts |
Tests admission option validation. |
common/reviews/api/rush-daemon.api.md |
Updates daemon API report. |
common/reviews/api/rush-daemon-protocol.api.md |
Updates protocol API report. |
common/changes/@rushstack/rush-daemon/mojazayeri-request-admission_2026-08-21-22-37.json |
Records daemon package change. |
common/changes/@rushstack/rush-daemon-protocol/mojazayeri-request-admission_2026-08-21-22-37.json |
Records protocol package change. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Mo Jazayeri (mojaza)
marked this pull request as ready for review
August 27, 2026 02:01
Base automatically changed from
mojazayeri-microsoft-rushd-ws2-interactive-io-upstream-86a
to
main
August 27, 2026 02:05
Mo Jazayeri (mojaza)
force-pushed
the
mojazayeri-microsoft-rushd-ws2-8-request-admission-upstream
branch
2 times, most recently
from
August 27, 2026 17:52
7159fba to
8183897
Compare
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Mo Jazayeri (mojaza)
force-pushed
the
mojazayeri-microsoft-rushd-ws2-8-request-admission-upstream
branch
from
August 27, 2026 20:45
8183897 to
e5155ca
Compare
Bharat Middha (bmiddha)
approved these changes
Aug 27, 2026
Mo Jazayeri (mojaza)
deleted the
mojazayeri-microsoft-rushd-ws2-8-request-admission-upstream
branch
August 27, 2026 23:33
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds WS2.8 scheduler classification and request admission for the opt-in rushd phased/global routing stack.
Depends on #5969. This is layer 7/9, follows #5949, advances #5897, and keeps the parser/action prerequisite tracked by #5895. Azure PBI: https://onedrive.visualstudio.com/EFun/_workitems/edit/3216024
This pull request is intentionally a draft for human review. Do not merge or enable auto-merge until the dependent WS2 layers are reviewed in order.
Details
SHARED-BUILD,SHARED-READ, orEXCLUSIVE; unknown commands and custom/plugin replacements fail closed toEXCLUSIVEthrough explicit parsed command origin.RequestSchedulerper warm workspace across phased and global routes.noWaitand boundedwaitTimeoutMsadmission options, queued cancellation, capability-gated one-based queue-position controls, and deterministic typed admission results.Limitations
--no-waitand--wait-timeoutremains deferred to WS4; this layer accepts resolved typed values only.SHARED-BUILDrequests may hold admission concurrently, but the phased router intentionally retains graph-execution serialization. WS2.9 owns coordinated selection merging.apps/rushlauncher integration remain out of scope;rushdstays opt-in under@rushstack/rush-daemon.How it was tested
node common/scripts/install-run-rush.js build --only @rushstack/rush-daemon-protocol --only @rushstack/rush-daemon— passed and reran successfully to stabilize API reports.libraries/rush-daemon-protocol, using installed Jest 29.7.0:node $jest --rootDir . --roots lib-commonjs --testRegex '.*[.]test[.]js$' --transform '{}' --runInBand— 10 suites passed, 49 tests passed.libraries/rush-daemon, using installed Jest 29.7.0:node $jest --rootDir . --transform '{}' --runInBand --runTestsByPath lib-commonjs/test/CommandResultPolicy.test.js lib-commonjs/test/GlobalCommandRequestRouter.test.js lib-commonjs/test/PhasedRequestInteractive.test.js lib-commonjs/test/PhasedRequestRouter.test.js lib-commonjs/test/RequestAdmissionIntegration.test.js lib-commonjs/test/RushCommandRequestPolicy.test.js— 6 suites passed; 67 tests passed, 1 skipped, 68 total.node common/scripts/install-run-rush.js change --verify— passed.git diff --check 139bc7a7fb8abc4b5986e06d2ae9c4018d5485db..HEAD— passed.git merge-base --is-ancestor 139bc7a7fb8abc4b5986e06d2ae9c4018d5485db HEAD— passed; exact live parent merge base is139bc7a7fb8abc4b5986e06d2ae9c4018d5485db, and original handoff parent3eadbbb9335f2bbf3d0bd2455136232415294d9eremains an ancestor.git range-diff 7cfc9f0b7b198a15195e0d7677c00e970955d453..8730ba6884d32ff92214ddd6d7bfe19209fdadc0 139bc7a7fb8abc4b5986e06d2ae9c4018d5485db..HEAD— preserves the two source commits with attributable WS2.7 conflict resolution and inherited-test adaptations.