Repository navigation
Description
Parent: #1087, in #1076. Needs: #1112, #1119, #1120. Unblocks: #1122, #1127. 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: the old clone path, the template store, and the sandbox store with its supervisor, 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. The old clone path, template store, leases, capture transactions, host::instance, the store-coupled supervisor and host::store, with their last records and identity types, are gone.
Notes.
- What stays:
TimeContract::eligibility; the host-layer assertions follow the deletions. spawn_commandstays until nvx-rs slimming 4.2.3: the old configs, the old launch code andbundledare gone #1122, andhost::vm::spawn's private lock stays.
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.
-
SL6.2b: The old clone path is gone.
- Objective: The old clone path has no remaining caller after the new restore and activation paths take over. Its records, planning, launch and reattachment code are deleted together with references and tests that exist only for that path.
- Contents: Leaving code. Delete the clone records, the failure records, store-based reattach,
CloneControl, the old clone launch,ClonePlanandCloneRequest. The stores' identity types, and thehost::templatealiases that the template store still uses, stay. The backward scan for OpenVMM's fatal line goes with the failure records. - Scope:
- Delete the clone and failure records under
nvx-rs/src/host/template/clone/, including the backward scan for OpenVMM's fatal line. - Delete store-based reattach,
CloneControl, the old clone launch,ClonePlanandCloneRequest. - Remove the module declarations, exports and documentation references of the deleted clone path, with
template/clone/tests.rs,template/clone/tests/{launch,restore}.rsandtemplate/clone/{failure,launch,records}/tests.rs; the description retires each test that the Test changes report removes. - Keep the stores' identity types and the
host::templatealiases still used by the template store.
- Delete the clone and failure records under
- Not in this PR:
- Rewriting, refactoring or improving any clone-independent code that stays.
- Re-homing clone records, planning or reattachment in another module.
- Adding a replacement clone API, compatibility aliases or migration readers.
- Deleting store identities or template aliases; SL6.2a and SL6.1 remove them after their last users.
- Approach: Delete the old clone modules and make only the import, export, module-list and test removals required by that deletion. Do not extract reusable pieces or preserve dormant APIs; retain the identity types and aliases that the next deletion still compiles against.
- Done when:
- The clone-record, failure-record, old clone-launch and store-based reattach tests are retired.
CloneControl,ClonePlan,CloneRequestand the backward fatal-line scan are absent.- The template store still builds with its existing identity types and aliases.
- Needs: SL5.2, in nvx-rs slimming 4.1.2: the test adapter is gone #1119.
- Estimate: 0 core lines (deletions), 2 counted files.
-
SL6.2a: The template store is gone.
- Objective: Nothing uses the template store after the old clone path is removed. The store, leases, capture transactions and store-only planning surface are deleted, while the retained time eligibility API remains.
- Contents: Leaving code. Delete the template store, its leases, the capture transactions and
TemplatePlan, theeligibilitymethod thathost::snapshotimplements on the store'sGeneration, and thehost::templatealiases that nothing uses now.TimeContract::eligibilitystays. - Scope:
- Delete
nvx-rs/src/host/template/store.rsand itsstore/modules, leases and capture transactions, with theirtests.rsfiles andtemplate/plan/tests.rs; the description retires each test that the Test changes report removes. - Delete
TemplatePlanand the template-store planning tests that only exercise it. - Delete the store
Generation::eligibilityimplementation and its tests. - Remove the now-unused
host::templatealiases, module declarations, exports and references. - Keep
TimeContract::eligibilityand its tests.
- Delete
- Not in this PR:
- Rewriting, refactoring or improving retained snapshot or time code.
- Moving template-store leases, transactions or plans to another owner.
- Adding a replacement template store or compatibility layer.
- Changing
TimeContract::eligibility; it remains the retained eligibility API. - Deleting the sandbox store or supervisor; SL6.1 does that next.
- Approach: Remove the template-store subtree and its store-only plan and eligibility adapter, then delete only references made dead by those removals. Do not fold store behavior into snapshots or preserve aliases for hypothetical callers.
- Done when:
- Template-store, lease, capture-transaction and
TemplatePlantests are retired. - Only the store-specific
Generation::eligibilitytests leave. TimeContract::eligibilityand its tests remain unchanged.- No
host::templatealias remains solely for the deleted store.
- Template-store, lease, capture-transaction and
- Needs: SL6.2b, above.
- Estimate: 0 core lines (deletions), 3 counted files.
-
SL6.1: The sandbox store and its supervisor are gone.
- Objective: The sandbox store, instance layer and store-coupled supervisor have no remaining users. They and their final store identities are deleted, leaving the low-level VM spawn lock and later launch cleanup in place.
- Contents: Leaving code. Delete
host::instance, the store-coupled supervisor with its publicSpawnLockandlock_spawns,host::store, and the last lease and identity types:TemplateReference,StoreGenerationandactivation::Identity.spawn_commandstays until SL6.3, andhost::vm::spawn's private lock stays. The host-layer assertions follow. The store and the supervisor are now split files, all deleted;platform/{linux,windows}/log_claim.rsandhost::vm::spawn's support stay. - Scope:
- Delete
nvx-rs/src/host/instance/,host/store/andhost/supervisor/, with their module declarations, exports andtests.rsfiles; the description retires each test that the Test changes report removes. - Delete the supervisor's public
SpawnLockandlock_spawnsand the last store typesTemplateReference,StoreGenerationandactivation::Identity. - Remove
tests/store.rs,tests/supervisor.rs, the instance integration cases and the corresponding host-module assertions. - Keep
spawn_commanduntil SL6.3 and keephost::vm::spawn's private lock. - Keep
platform/{linux,windows}/log_claim.rsand the support used byhost::vm::spawn.
- Delete
- Not in this PR:
- Rewriting, refactoring or improving retained VM, platform or process code.
- Re-homing the store, instance or supervisor APIs under new module names.
- Adding replacement leases, identities, supervision or persistent host state.
- Deleting
spawn_command; SL6.3 removes it after the remaining old launch code. - Changing the private VM spawn lock or platform log-claim behavior.
- Approach: Delete the three obsolete module trees and remove only references, assertions and tests tied to them. Preserve the low-level spawn and log-claim pieces at their current owners; do not create a smaller supervisor or store facade.
- Done when:
- The instance, sandbox-store and supervisor unit and integration tests are retired.
host::{instance,store,supervisor}and the three last identity types are absent.- The host-module assertions no longer expect the deleted modules.
spawn_command, the private VM spawn lock and platform log claims remain.
- Needs: SL3.10b, in nvx-rs slimming 3.1.7: the CLI uses only the new interface #1112; SL5.2, in nvx-rs slimming 4.1.2: the test adapter is gone #1119; SL6.2a, above; SL6.0a, in nvx-rs slimming 4.2.1: the code that stays stops using what leaves #1120; SL6.0b, in nvx-rs slimming 4.2.1: the code that stays stops using what leaves #1120; SL6.0c, in nvx-rs slimming 4.2.1: the code that stays stops using what leaves #1120.
- Estimate: 0 core lines (deletions), 3 counted files.
Tests. Each PR retires the tests of what it deletes. TimeContract::eligibility's tests stay. The host-layer assertions follow the deleted modules. The fake OpenVMM's cases, split from the instance suite in #1120, stay. Every other test passes unchanged.
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.
SL6.2b - no completed first-iteration handoff recorded. Inspect any preserved partial/prior work before implementing the issue's scope.
SL6.2a - no completed first-iteration handoff recorded. Inspect any preserved partial/prior work before implementing the issue's scope.
SL6.1 - no completed first-iteration handoff recorded. Inspect any preserved partial/prior work before implementing the issue's scope.
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.
host: read strict snapshots through the platform layer
host: read strict snapshots through the platform layer
host: read strict snapshots through the platform layer
host: read strict snapshots through the platform layer
host: read strict snapshots through the platform layer
host: read strict snapshots through the platform layer
host: delete the old clone path
host: delete the old clone path
host: delete the old clone path
host: delete the old clone path
host: delete the template store
ppenna commentedon Nov 12, 2026
SL6.1 scope decision:
host::supervisorkeeps only re-exports, until SL6.3.host::spawnandhost::platform::inheritare crate-private. Sospawn,spawn_vm,VmmCommand,Launched,Inheritedandspawn_commandare public only throughhost::supervisor. Code that stays uses them:examples/external-launch.rscallssupervisor::spawn_vm(b2a70a3, 2026-11-10, after this group was planned);tests/checked_handoff.rs, which case-matrix rows name as coverage;PreparedLaunchdoctest.Deleting
host/supervisor/whole would break them, and would add public API or retire them early.Decision: SL6.1 deletes all supervision and store coupling:
SpawnLock,lock_spawns, and the store-coupled launch, wait and stop.host/supervisor/mod.rsstays only as a transitional public path that re-exports those six items, with no code of its own. This adds no public API and changes no code that stays. It differs from this group's wording ("deletehost/supervisor/", "no smaller supervisor facade") only in the module path. SL6.3 (#1122) settles the rest.The code that stays now uses
host::store's file helpers and the instance's and the supervisor's identities from elsewhere. SL6.0d and SL6.0e (#1120) move it first.29 remaining items
doc: name the owner and command of each gate and test
host: read strict snapshots through the platform layer
host: delete the old clone path
host: delete the template store
host: delete the sandbox store, the instance layer and the supervision
host: delete the artifact discovery that no NVX program uses
nvx-rs: delete the error codes and the constructor that nothing makes
doc: name the owner and command of each gate and test
host: read strict snapshots through the platform layer
host: delete the old clone path
host: delete the template store
host: delete the sandbox store, the instance layer and the supervision
host: delete the artifact discovery that no NVX program uses
nvx-rs: delete the error codes and the constructor that nothing makes
doc: name the owner and command of each gate and test