Skip to content

integration: compose qualified CLI liveness and VM reattach inputs - #1442

Closed
Enrique Saurez (esaurez) wants to merge 8 commits into
feature/nvx-refactorfrom
private/simple-1108-02e4-sl33b-inputs-20261110
Closed

Enrique Saurez (esaurez) wants to merge 8 commits into
feature/nvx-refactorfrom
private/simple-1108-02e4-sl33b-inputs-20261110

Conversation

@esaurez

@esaurez Enrique Saurez (esaurez) commented Nov 10, 2026 •

Copy link
Copy Markdown
Contributor

Scope

Input-only integration for #1108 / SL3.3b, not the recovery implementation.
This is the actual composition requested for its two qualified functional
inputs, not a replay of either producer or a fabricated linear ancestry.

The normal two-parent merge is
9785ad4ac2ca4cbb54b36768fb71453f0b69d10b, tree
96659c88a0634382ddd23307d1f47a1bd3faf27b.
Its first parent is qualified SL3.3a from #1436,
13bbbc81c983c0bdfc66ddd149b146c05165ec29; its second parent is qualified
SL2.10b from #1438, 92ac710d5ed88e0d14c4f36b2a7aafa9f7573f13.
Both exact commits are ancestors. The OpenVMM pin remains
14dc4116ec7e57567633c4b7b07892aca3a58522.

The current integration tip is b134e702dc97feb620dfa642d0dac1fa46c33246, tree 214e97e91cf3b8b618f14043216ac18a95509798.
Its normal append commit reconciles the already-qualified Process::open
return type: CLI liveness accepts only Opened::Running as a held process,
maps proved Opened::Exited to absence, and still propagates lookup errors.
The existing own-process test helper uses the same explicit enum match.

The PR's actual base is the published branch of #1436. The secondary input
is explicit rather than pretending that base already contained #1438.
All four original producer branches and PRs remain unchanged.

Resolution and test accounting

The automatic textual merge was clean. A subsequent necessary two-file API
composition repair updates CLI liveness and its existing helper to the
secondary input's Opened result; it adds no producer API or assertion
weakening. No test is retired.
The diff against the first parent is the existing qualified secondary
producer, including its tests, plus that explicitly listed compatibility
repair, not a new implementation of the producer. All other tests retain
their source definitions from the two input commits.

Qualification status

Draft; this exact joined source has independent Linux and Windows qualification.
The evidence below belongs to b134e702dc97feb620dfa642d0dac1fa46c33246
itself, not either producer and not the later recovery consumer. The selected
base remains 13bbbc81c983c0bdfc66ddd149b146c05165ec29; the secondary
input remains 92ac710d5ed88e0d14c4f36b2a7aafa9f7573f13.

The independently executed joint software gates cover the composed
process-identity and exit-proof APIs, VM stopping/reporting, CLI log claims
and endpoint liveness, affected callers and runtime-adapter checks:
41 Linux software gates and 30 Windows software gates passed, with zero
failures.
These are gate-command counts, not a count of individual tests.
Current native, kernel, configuration and guest-input validation preceded
the actual cold runtime checks: MSHV 1 passed / 0 failed / 0 ignored and
WHP 1 passed / 0 failed / 0 ignored
. Whole-owned-process closure was
confirmed on both hosts.

Sanitized exact-source qualification receipt:

{
  "head": "b134e702dc97feb620dfa642d0dac1fa46c33246",
  "tree": "214e97e91cf3b8b618f14043216ac18a95509798",
  "inputs": [
    "13bbbc81c983c0bdfc66ddd149b146c05165ec29",
    "92ac710d5ed88e0d14c4f36b2a7aafa9f7573f13"
  ],
  "openvmm": "14dc4116ec7e57567633c4b7b07892aca3a58522",
  "software": { "linux_gates": 41, "windows_gates": 30, "failures": 0 },
  "runtime": {
    "mshv": { "passed": 1, "failed": 0, "ignored": 0 },
    "whp": { "passed": 1, "failed": 0, "ignored": 0 },
    "whole_owned_processes_remaining": 0
  },
  "current_guest_packet_sha256": "30dce6fa643dc54a0895741f8bda06eb355c0b91e090cbfe3cbfcd5371aa3a12",
  "native_review": {
    "head": "b134e702dc97feb620dfa642d0dac1fa46c33246",
    "model": "claude-opus-5.5",
    "reasoning": "max",
    "context": "long_context",
    "scope": "all changed full test/helper bodies, separate from consumer",
    "result": "clear",
    "source_only": true
  }
}

An earlier pre-use guest/source mismatch remains a failed attempt: no copy
or VM was started for that attempt. A fresh current Alpine family was
prepared and validated before the successful runtime checks above. The
explicit API-composition correction and its test accounting remain
disclosed above; no earlier mismatch is counted as a pass.

Full CI run 42856066537,
attempt 1, also completed successfully for this exact head and the selected
13bbbc81c983c0bdfc66ddd149b146c05165ec29 base: 43 completed jobs =
34 success + 9 conditional skips
, with the run's Required status check
successful
. Skipped publishing, performance, merge-group, debug-kernel
and pinned-OpenVMM jobs are not represented as executed coverage.

This receipt does not claim #1446 / 8921c451 consumer QA, qualification
of a newer ultimate-feature integration, formal GitHub approval, or merge
readiness. The GitHub Copilot evidence-coverage concern is being reassessed
separately; "No open issues" alone does not close every review gate.

Historical initial-publication note (not the current qualification state):

The next scoped PR will branch above this published join and add SL3.3b's
own recovery delta. Its fresh review must cover the joined contracts, and
any exact-source joint validation will have its own explicit receipt.

Enrique Saurez and others added 7 commits November 10, 2026 01:05
Port the preserved SL2.10 implementation and coupled callers, API snapshots, docs and real-process tests onto feature c52c710 without changing legacy lifecycle policy.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 0c8e42ad-4102-451f-96f0-0a4ae0483d1a
Port the scoped SL3.2b donor cf485b7 onto verified feature c52c710 without its historical producer history. Persist prepared capability and outputs before spawn, the matching process before commit, and every SavedVm field in the private runtime record.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: eb3cc7e0-f51e-45ed-b911-c7b214740e05
Use the existing PID and atomic create-directory retry to retain unique fixture directories without a long diagnostic prefix. Keep the scenario name in creation errors. Capture and restore control sockets now fit approved data-volume temp roots without changing production limits, assertions, timeouts or skipped tests.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 0c8e42ad-4102-451f-96f0-0a4ae0483d1a
Apply the pinned rustfmt wrapping requested by the final-head review; fixture semantics and production source remain unchanged.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 0c8e42ad-4102-451f-96f0-0a4ae0483d1a
Port only SL3.3a onto coordinator-qualified SL3.2b 99d0045. Retain the prepared log claim and identity, hold and recheck the endpoint owner, and require the Linux log match. Preserve Windows job/handle fallback primitives and the donor fork-race fix without adding recovery or signaling.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: eb3cc7e0-f51e-45ed-b911-c7b214740e05
Return Running or opaque exit proof after checking the recorded identity.
Preserve indeterminate errors and current VM/transport verification policies.
Keep the existing exit-handle and recovery tests alongside opening proof cases.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 0c8e42ad-4102-451f-96f0-0a4ae0483d1a
Compose exact qualified13bb and92ac as preserved parents for issue1108 SL3.3b. No producer tree replay or manual resolution. Joint QA remains pending.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: eb3cc7e0-f51e-45ed-b911-c7b214740e05
@esaurez Enrique Saurez (esaurez) added the tests-modified Changes existing tests, test data, or test wiring label Nov 10, 2026
@github-actions

github-actions Bot commented Nov 10, 2026 •

Copy link
Copy Markdown
Contributor

This pull request changes existing tests

It modifies or removes 71 existing test asset(s), listed below. Review each with care: a change to a test can hide a regression that the test caught. See doc/contribute.md#changes-to-existing-tests.

Test code

Change What Before After
modified helper fn held_process in host::restore::tests nvx-rs/src/host/restore/tests.rs:27 nvx-rs/src/host/restore/tests.rs:27
modified helper fn end_and_wait in host::template::clone::tests::launch, impl VmmDir`` nvx-rs/src/host/template/clone/tests/launch.rs:362 nvx-rs/src/host/template/clone/tests/launch.rs:362
modified helper fn wait_exit in host::template::clone::tests::launch, impl VmmDir`` nvx-rs/src/host/template/clone/tests/launch.rs:372 nvx-rs/src/host/template/clone/tests/launch.rs:372
modified helper fn drop in host::template::clone::tests::launch, impl Drop for VmmDir`` nvx-rs/src/host/template/clone/tests/launch.rs:412 nvx-rs/src/host/template/clone/tests/launch.rs:412
modified helper fn assert_vmm_ended in host::template::clone::tests::restore nvx-rs/src/host/template/clone/tests/restore.rs:422 nvx-rs/src/host/template/clone/tests/restore.rs:422
modified helper fn drop in host::template::store::leases::tests, impl Drop for VmmDir`` nvx-rs/src/host/template/store/leases/tests.rs:2459 nvx-rs/src/host/template/store/leases/tests.rs:2459
modified helper fn recorded_process in cli (tests) nvx-rs/tests/cli.rs:800 nvx-rs/tests/cli.rs:800
modified helper fn assert_runtime_record in cli/lifecycle (tests) nvx-rs/tests/cli/lifecycle.rs:142 nvx-rs/tests/cli/lifecycle.rs:142
modified helper fn check_lifecycle in cli/lifecycle (tests) nvx-rs/tests/cli/lifecycle.rs:550 nvx-rs/tests/cli/lifecycle.rs:550
modified helper fn recycled_process_id in cli/lifecycle (tests) nvx-rs/tests/cli/lifecycle.rs:1425 nvx-rs/tests/cli/lifecycle.rs:1428
modified helper fn kill in store (tests) nvx-rs/tests/store.rs:176 nvx-rs/tests/store.rs:176
modified helper fn drop in supervisor (tests), impl Drop for VmmDirectory`` nvx-rs/tests/supervisor.rs:449 nvx-rs/tests/supervisor.rs:449
modified helper fn open_running in supervisor (tests) nvx-rs/tests/supervisor.rs:572 nvx-rs/tests/supervisor.rs:574
modified helper fn assert_ended in supervisor (tests) nvx-rs/tests/supervisor.rs:580 nvx-rs/tests/supervisor.rs:583
modified helper fn check_vmm in supervisor (tests) nvx-rs/tests/supervisor.rs:1226 nvx-rs/tests/supervisor.rs:1241
modified helper fn drop in template_capture (tests), impl Drop for Orphan`` nvx-rs/tests/template_capture.rs:530 nvx-rs/tests/template_capture.rs:530
modified helper fn new in common/mod (tests), impl Sandbox`` tests/runtime-adapter/tests/common/mod.rs:154 tests/runtime-adapter/tests/common/mod.rs:154
modified helper fn vmm in common/mod (tests), impl Sandbox`` tests/runtime-adapter/tests/common/mod.rs:406 tests/runtime-adapter/tests/common/mod.rs:409
modified helper fn activate in vm_clone (tests), impl CloneControl for Early`` tests/runtime-adapter/tests/vm_clone.rs:2314 tests/runtime-adapter/tests/vm_clone.rs:2314
modified helper fn refuses_early in vm_clone (tests) tests/runtime-adapter/tests/vm_clone.rs:2354 tests/runtime-adapter/tests/vm_clone.rs:2354
modified test fn every_kind_has_a_code_of_its_own_spelling in error::tests nvx-rs/src/error/tests.rs:50 nvx-rs/src/error/tests.rs:50
modified test fn a_launch_whose_vmm_exited_ends_while_a_process_spawned_in_its_window_holds_its_log in host::platform::windows::tests nvx-rs/src/host/platform/windows/tests.rs:1049 nvx-rs/src/host/platform/windows/tests.rs:1060
modified test fn exit_handles_are_independently_owned_and_exist_only_for_exit_events in host::process::tests nvx-rs/src/host/process/tests.rs:220 nvx-rs/src/host/process/tests.rs:235
modified test fn hosts_without_pidfds_poll_and_never_signal in host::process::tests nvx-rs/src/host/process/tests.rs:259 nvx-rs/src/host/process/tests.rs:317
modified test fn processes_count_the_bytes_that_their_read_calls_read in host::process::tests nvx-rs/src/host/process/tests.rs:324 nvx-rs/src/host/process/tests.rs:383
modified test fn a_process_runs_until_its_last_thread_exits in host::process::tests::linux nvx-rs/src/host/process/tests/linux.rs:112 nvx-rs/src/host/process/tests/linux.rs:112
modified test fn a_process_whose_command_name_is_not_utf8_can_be_examined in host::process::tests::linux nvx-rs/src/host/process/tests/linux.rs:165 nvx-rs/src/host/process/tests/linux.rs:167
modified test fn reports_are_summarized_without_free_form_fields in host::report::tests nvx-rs/src/host/report/tests.rs:4 nvx-rs/src/host/report/tests.rs:4
modified test fn a_clone_whose_launch_failed_before_it_began_launches_no_more_until_its_release in host::template::clone::tests::launch nvx-rs/src/host/template/clone/tests/launch.rs:1547 nvx-rs/src/host/template/clone/tests/launch.rs:1549
modified test fn a_launch_whose_caller_crashes_once_its_vmm_started_ends_the_vmm_as_reattach_recovers_it in host::template::clone::tests::launch nvx-rs/src/host/template/clone/tests/launch.rs:2299 nvx-rs/src/host/template/clone/tests/launch.rs:2301
modified test fn a_restore_whose_caller_crashes_before_its_commit_ends_its_vmm_as_reattach_recovers_it in host::template::clone::tests::launch nvx-rs/src/host/template/clone/tests/launch.rs:2332 nvx-rs/src/host/template/clone/tests/launch.rs:2336
modified test fn a_reattach_that_cannot_record_a_failure_ends_and_forgets_nothing_of_the_clone in host::template::clone::tests::launch nvx-rs/src/host/template/clone/tests/launch.rs:3634 nvx-rs/src/host/template/clone/tests/launch.rs:3643
modified test fn a_reattach_makes_the_record_of_an_earlier_failure_durable_before_it_ends_the_launch in host::template::clone::tests::launch nvx-rs/src/host/template/clone/tests/launch.rs:3736 nvx-rs/src/host/template/clone/tests/launch.rs:3748
modified test fn a_launch_that_cannot_be_ended_keeps_its_records_and_its_lease_until_a_reattach_ends_it in host::template::clone::tests::restore nvx-rs/src/host/template/clone/tests/restore.rs:1175 nvx-rs/src/host/template/clone/tests/restore.rs:1175
modified test fn a_clone_that_crashes_after_its_spawn_keeps_its_lease_until_its_unrecorded_vmm_exits in host::template::store::leases::tests nvx-rs/src/host/template/store/leases/tests.rs:2623 nvx-rs/src/host/template/store/leases/tests.rs:2625
modified test fn a_clone_that_crashes_after_recording_its_vmm_keeps_its_lease_until_reattach_ends_it in host::template::store::leases::tests nvx-rs/src/host/template/store/leases/tests.rs:2654 nvx-rs/src/host/template/store/leases/tests.rs:2658
modified test fn another_process_serving_the_endpoint_is_refused in host::transport::tests nvx-rs/src/host/transport/tests.rs:142 nvx-rs/src/host/transport/tests.rs:142
modified test fn spawn_returns_the_same_outputs_and_capability_with_a_verified_process in host::vm::tests nvx-rs/src/host/vm/tests.rs:894 nvx-rs/src/host/vm/tests.rs:896
modified test fn a_library_vm_outlives_the_caller_that_spawned_it_without_retaining_its_output_pipe in host::vm::tests nvx-rs/src/host/vm/tests.rs:1055 nvx-rs/src/host/vm/tests.rs:1059
modified test fn spawn_caller_helper in host::vm::tests nvx-rs/src/host/vm/tests.rs:1088 nvx-rs/src/host/vm/tests.rs:1094
modified test fn an_unrelated_process_started_in_the_library_spawn_window_gets_no_vm_claim in host::vm::tests nvx-rs/src/host/vm/tests.rs:1139 nvx-rs/src/host/vm/tests.rs:1146
modified test fn current_cold_spawn_boots_a_guest_accepts_shell_input_and_exits_cleanly in host::vm::tests nvx-rs/src/host/vm/tests.rs:1195 nvx-rs/src/host/vm/tests.rs:1203
modified test fn reattaching_returns_the_held_owned_child_and_authenticated_connection in host::vm::tests::reattach nvx-rs/src/host/vm/tests/reattach.rs:229 nvx-rs/src/host/vm/tests/reattach.rs:229
modified test fn a_prepared_launch_hands_the_vmm_its_checked_images_alone in checked_handoff (tests) nvx-rs/tests/checked_handoff.rs:487 nvx-rs/tests/checked_handoff.rs:487
modified test fn a_vmm_keeps_the_scratch_images_claim_once_its_launcher_is_gone in checked_handoff (tests) nvx-rs/tests/checked_handoff.rs:717 nvx-rs/tests/checked_handoff.rs:718
modified test fn a_stop_under_another_identity_never_ends_a_process_that_its_record_does_not_name in cli (tests) nvx-rs/tests/cli.rs:978 nvx-rs/tests/cli.rs:981
modified test fn a_start_that_was_interrupted_is_ended_under_another_identity_too in cli (tests) nvx-rs/tests/cli.rs:1026 nvx-rs/tests/cli.rs:1031
modified test fn stop_reports_its_timeout_and_leaves_the_vm_running in cli (tests) nvx-rs/tests/cli.rs:1139 nvx-rs/tests/cli.rs:1144
modified test fn a_sandbox_whose_openvmm_exited_reports_it_once_and_starts_again in cli (tests) nvx-rs/tests/cli.rs:1186 nvx-rs/tests/cli.rs:1193
modified test fn a_start_that_ends_before_openvmm_opens_the_images_leaves_it_the_checked_ones in cli (tests) nvx-rs/tests/cli.rs:2013 nvx-rs/tests/cli.rs:2021

... and 21 more, which the job's summary lists.

Relocated unchanged: 0; added: 54. Compared the merge base c52c7101d4f6 with b134e702dc97.

Compose the existing CLI liveness contract with SL2.10b Opened results. Preserve held-running versus proved-exited distinction and propagate lookup failures. Update only its existing own-process test helper.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: eb3cc7e0-f51e-45ed-b911-c7b214740e05

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

The exact joined source lacks independent joint Linux and Windows validation of its composed process-identity, exit-proof, CLI log-claim, and endpoint-liveness contracts.

No open issues 🎉

What changed in this PR

Composes the CLI launch-liveness and process/VM inputs from #1436 and #1438 as the foundation for #1108’s later recovery work. This integration does not implement recovery, and the joined source remains independently unqualified.

Changes:

  • Reconciles CLI liveness and existing callers with explicit Opened::Running and Opened::Exited results.
  • Incorporates verified exit proofs, confirmed VM stopping, and separate outcome-report errors from the producer inputs.
  • Updates tests, public API snapshots, and documentation while preserving legacy recovery and best-effort reporting policies.
File Description
tests/​runtime-adapter/​tests/​vm_steps.rs Matches the running-process variant in launch-step checks.
tests/​runtime-adapter/​tests/​vm_clone.rs Adapts clone checks to explicit opening and exit proofs.
tests/​runtime-adapter/​tests/​common/​mod.rs Shortens sandbox paths and adapts process lookup.
tests/​runtime-adapter/​src/​bin/​runtime-adapter-host.rs Handles exit proofs and report-read errors.
nvx-rs/​tests/​template_capture.rs Adapts orphan cleanup to explicit process results.
nvx-rs/​tests/​supervisor.rs Preserves lifecycle assertions with the new process API.
nvx-rs/​tests/​store.rs Updates process lookup and recovery waits.
nvx-rs/​tests/​fake_openvmm.rs Adapts reattachment and process-isolation assertions.
nvx-rs/​tests/​cli/​lifecycle.rs Updates lifecycle checks for explicit exit confirmation.
nvx-rs/​tests/​cli/​download.rs Isolates Unix executable copying from concurrent forks.
nvx-rs/​tests/​cli.rs Updates recorded-process helpers and lifecycle waits.
nvx-rs/​tests/​checked_handoff.rs Requires exit proofs in handoff checks.
nvx-rs/​src/​host/​vm/​tests/​reattach.rs Adapts the reattachment exit assertion.
nvx-rs/​src/​host/​vm/​tests.rs Adds real-process stop coverage and adapts existing tests.
nvx-rs/​src/​host/​vm.rs Adds confirmed stopping and adapts saved-process verification.
nvx-rs/​src/​host/​transport/​tests.rs Preserves unrelated-peer liveness checks.
nvx-rs/​src/​host/​transport.rs Handles explicit process-opening results before connection.
nvx-rs/​src/​host/​template/​store/​leases/​tests.rs Updates lease recovery and cleanup process checks.
nvx-rs/​src/​host/​template/​clone/​tests/​restore.rs Adapts restore liveness and exit assertions.
nvx-rs/​src/​host/​template/​clone/​tests/​launch.rs Updates clone launch, recovery, and report checks.
nvx-rs/​src/​host/​template/​clone/​records.rs Preserves best-effort report reads.
nvx-rs/​src/​host/​supervisor/​reattach.rs Maps explicit process results into existing reattachment policy.
nvx-rs/​src/​host/​store/​vmm.rs Adapts live-process lookup.
nvx-rs/​src/​host/​store/​locked.rs Preserves launch recovery behavior with explicit opening results.
nvx-rs/​src/​host/​restore/​tests.rs Updates the held-process fixture.
nvx-rs/​src/​host/​report/​tests.rs Tests missing, malformed, unreadable, and sharing-blocked reports.
nvx-rs/​src/​host/​report.rs Distinguishes missing reports from read and parse failures.
nvx-rs/​src/​host/​process/​tests/​linux.rs Updates Linux identity and final-thread checks.
nvx-rs/​src/​host/​process/​tests.rs Adds recorded-identity and reaped-child opening coverage.
nvx-rs/​src/​host/​process.rs Introduces explicit opening results and opaque exit proofs.
nvx-rs/​src/​host/​platform/​windows/​tests.rs Adds a wait-only handle fixture for stop tests.
nvx-rs/​src/​host/​instance/​locked.rs Retains legacy best-effort reporting.
nvx-rs/​src/​host/​cli/​store/​tests/​liveness.rs Reconciles the own-process helper with Opened.
nvx-rs/​src/​host/​cli/​store/​liveness.rs Maps running and exited results while propagating errors.
nvx-rs/​src/​error/​tests.rs Includes StillRunning in error-code coverage.
nvx-rs/​src/​error.rs Adds the StillRunning kind and code mappings.
nvx-rs/​README.md Documents process proofs, stopping, and report errors.
nvx-rs/​public-api/​windows.txt Records the Windows public API additions.
nvx-rs/​public-api/​linux.txt Records the Linux public API additions.
doc/​usage.md Documents the still-running error code.

Review effort: Balanced

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

No active review issues remain for the process-liveness and VM lifecycle integration.

No open issues 🎉

Review effort: Balanced

@esaurez
Enrique Saurez (esaurez) force-pushed the private/simple-1108-02e4-sl33a-20261110 branch from 13bbbc8 to b2dfce4 Compare November 10, 2026 18:32
Base automatically changed from private/simple-1108-02e4-sl33a-20261110 to feature/nvx-refactor November 10, 2026 20:34
@esaurez

Copy link
Copy Markdown
Contributor Author

Superseded by the merged liveness and process-open integrations #1436 and #1438. This join's only additional production change, the explicit Opened::Running/Opened::Exited adaptation, is already byte-identical in the merged liveness source. Its complete test-helper file differs only in panic wording. This input-only PR contains no recovery implementation.

Closing only the redundant aggregate, while retaining its branch and source at b134e702dc97feb620dfa642d0dac1fa46c33246. The separate recovery scope of #1108 is unchanged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feat-nvx-refactor tests-modified Changes existing tests, test data, or test wiring

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants