Repository navigation
Description
Parent: #1089, in #1076. Needs: #1128. Unblocks: #1131, #1132. No PR of this group merges before the API-ready commit.
Leaving code only. Every PR in this group changes only code that this workstream removes from NVX: NVXC v1's frames, FEATURES and GuestFeatures, with the fake OpenVMM's v1 handler, with the edits that remove references to it. Nothing that stays changes, and no later PR uses what these PRs change, so the size limits for kept code don't apply. Each PR still records its core lines and counted files, and its description opens with this note.
Goal. NVXC v1's frames, FEATURES and GuestFeatures are gone, with the fake OpenVMM's v1 handler and feature state; v2 is NVXC's only version.
PRs, in order. Each PR has one goal, leaves dev green, and names in its description each old test of its area as kept, rewritten or retired, with each change that check_test_changes.py reports. Its tests follow the repository's test layout: a module's unit tests, and the code that only they use, sit in its tests.rs or tests/ and move with it. The estimates count core lines (code, not comments, docs or tests) and counted files; each PR records its measured values. Each PR does what its Scope says and no more: a case, input or layout that its Scope doesn't name, and whatever "Not in this PR" lists, is out of scope. Address every review comment within the scope, and ask before acting on one that asks for more.
- SL4.4d: NVXC v1 and FEATURES are gone.
- Objective: After every NVX control path uses v2, v1 and feature advertisement are dead compatibility code. This leaving-code-only PR removes that code and its references so v2 is the sole NVXC protocol.
- Contents: Leaving code. Delete v1's frames, FEATURES and
GuestFeatures, with the fake VMM's v1 handler and feature state. The guest agents no longer serve v1 or FEATURES. - Scope:
- Deletion of NVXC v1 frame constants, codec paths and v1-only tests.
- Deletion of FEATURES handling and the
GuestFeaturestype, constants, state and callers. - Deletion of the guest agents' v1 serving paths and the fake VMM's v1 handler and feature state; its production and
tests.rschanges are flagged and explained. - Reference and test updates required for the remaining v2-only code to compile and run.
- Not in this PR:
- Rewriting, renaming or cleaning up v2 code that remains: this PR changes only code that leaves and references to it.
- Changing v2 framing, streaming, capture or restore behavior: SL4.4a through SL4.4c establish those behaviors.
- Adding compatibility negotiation or a v1 fallback: v2 is the only supported internal version.
- Incrementing contract-version constants or their generated copies: this workstream does not deploy mixed versions.
- Deleting unrelated guest, host or fake-VMM code.
- Approach: Delete the now-unreferenced v1 and FEATURES branches in place, then remove imports, state and tests that mention them. Keep v2 code byte-for-byte where reference removal does not force an edit; do not combine the deletion with refactoring or protocol changes.
- Done when:
- No NVXC v1, FEATURES or
GuestFeaturescode or caller remains. - Guest agents and the fake VMM serve v2 alone, and a v1 peer is refused.
- Fake-backed CLI tests pass through v2 without feature advertisement.
- Capture and restore, including an exec on the returned live session, pass with v1 removed.
- No NVXC v1, FEATURES or
- Needs: SL4.4c, in nvx-rs slimming 5.1.1: NVXC v2 carries every control path, and streams execs #1128.
- Estimate: 0 core lines (deletions), 5 counted files.
Tests. The remaining tests, fake-backed CLI tests included, pass on v2 alone, and a v1 peer is refused. Capture and restore, with an exec on the returned session, pass with v1 gone.
Done when: every PR above has merged, with dev green.
Activity
esaurez commentedon Nov 10, 2026
Workstream source/progress checkpoint - 2026-11-10 UTC
Checked boxes below mean merged scope, not merely an implemented first iteration. Implementation branches are source checkpoints, not automatic qualification, Ready or merge approval. Some starting inputs are frozen/anonymous commits rather than standalone branches; their exact SHAs and known merged producer refs are recorded explicitly.
The original technical scope remains authoritative, supplemented only by any portable technical clarification in this issue. No machine-specific execution policy is part of this checkpoint.
nvx-rs: delete NVXC v1 and FEATURES
error: delete the guest-features-missing code
nvx-rs: delete NVXC v1 and FEATURES
error: delete the guest-features-missing code
nvx-rs: delete NVXC v1 and FEATURES
error: delete the guest-features-missing code
nvx-rs: delete NVXC v1 and FEATURES
error: delete the guest-features-missing code
nvx-rs: delete NVXC v1 and FEATURES
error: delete the guest-features-missing code
ppenna commentedon Nov 12, 2026
Completed on
feature/nvx-refactor. SL4.4d, #1545, the group's only slice, has merged. It deletes NVXC v1's frames and codec paths, FEATURES,GuestFeatures, the guest agents' v1 serving, the fake OpenVMM's v1 handler and feature state, and the publicErrorCode::GuestFeaturesMissing. A v1 peer is now refused, and v2 is NVXC's only version.The push CI run at
55f44aa4607, which contains it, passed: https://github.com/microsoft/nvx/actions/runs/43296907012nvx-rs: delete NVXC v1 and FEATURES
error: delete the guest-features-missing code
nvx-rs: delete NVXC v1 and FEATURES
error: delete the guest-features-missing code