Move guest behavior checks into minimal VM fixtures #6

Open
opened 2026-08-02 17:24:39 +01:00 by allod-agent · 0 comments
Member

Move guest-behavior assertions into minimal allod/vm fixtures so the module owner reports guest regressions directly and allod/archetypes can stay focused on runtime selection and wiring.

Primary goals:

  • Own guest behavior in vm — add minimal NixOS fixtures in allod/vm for guest behavior currently proven by the heavier allod/archetypes runtime-module-selection reporter.
  • Move assertions in coherent groups — migrate related guest-behavior assertions by design area, not one random assertion at a time, so each PR leaves one understandable ownership boundary.
  • Prove reporter ownership — treat a group as complete only when allod/vm demonstrably becomes the reporter by failing on matching sabotage before the heavier archetypes reporter is removed.
  • Keep archetypes narrow — leave allod/archetypes responsible for selecting and wiring the right guest modules against inventory/runtime facts, not re-proving behavior owned by vm.
  • Restore the native gate when feasible — remove check.sh from allod/archetypes and return to native nix flake check once flake-check performance improves enough to fit within dev-VM headroom.

Current state and specifics

allod/archetypes#31 tracks bringing the composition root's flake-check memory peak back under dev-VM headroom. The current pressure point is the runtime-module-selection check, which carries guest-behavior assertions and sabotage fixtures in the archetypes composition root because the microVM adoption arc needed those assurances quickly.

That was useful for integration, but it gives archetypes too much behavioral ownership and makes the expensive composition root report failures that should be caught closer to the guest module definitions. allod/strategy#20 already frames allod/vm as the owner of shared guest behavior; this issue is the allod/vm side of moving those checks to that design.

Migrate assertions in coherent groups, for example by persistent store/volume behavior, guest credential/materialization behavior, guest networking/interface behavior, and shared guest policy behavior. The exact grouping can change during implementation, but each group should be internally complete and reviewable.

For each group, first add the minimal allod/vm fixtures and sabotage cases. Then prove allod/vm is the reporter by making the matching sabotage fail there. Only after that proof should the heavier allod/archetypes reporter for the same behavior be deleted or reduced to a selection/wiring assertion.

Scope

In scope: minimal allod/vm guest fixtures, paired sabotage cases, and check coverage that proves guest behavior at the module owner.

Out of scope: changing inventory/runtime fact contracts, changing Nexus host lifecycle behavior, or removing allod/archetypes integration checks before allod/vm reports the same guest-behavior failure. The broader memory-reduction arc remains tracked by allod/archetypes#31 and allod/strategy#20; once that arc brings native flake-check performance back within dev-VM headroom, allod/archetypes should remove check.sh and restore nix flake check as the repo gate.

Part of allod/strategy#20
Refs allod/archetypes#31

Move guest-behavior assertions into minimal `allod/vm` fixtures so the module owner reports guest regressions directly and `allod/archetypes` can stay focused on runtime selection and wiring. Primary goals: - **Own guest behavior in `vm`** — add minimal NixOS fixtures in `allod/vm` for guest behavior currently proven by the heavier `allod/archetypes` `runtime-module-selection` reporter. - **Move assertions in coherent groups** — migrate related guest-behavior assertions by design area, not one random assertion at a time, so each PR leaves one understandable ownership boundary. - **Prove reporter ownership** — treat a group as complete only when `allod/vm` demonstrably becomes the reporter by failing on matching sabotage before the heavier `archetypes` reporter is removed. - **Keep archetypes narrow** — leave `allod/archetypes` responsible for selecting and wiring the right guest modules against inventory/runtime facts, not re-proving behavior owned by `vm`. - **Restore the native gate when feasible** — remove `check.sh` from `allod/archetypes` and return to native `nix flake check` once flake-check performance improves enough to fit within dev-VM headroom. ### Current state and specifics `allod/archetypes#31` tracks bringing the composition root's flake-check memory peak back under dev-VM headroom. The current pressure point is the `runtime-module-selection` check, which carries guest-behavior assertions and sabotage fixtures in the archetypes composition root because the microVM adoption arc needed those assurances quickly. That was useful for integration, but it gives `archetypes` too much behavioral ownership and makes the expensive composition root report failures that should be caught closer to the guest module definitions. `allod/strategy#20` already frames `allod/vm` as the owner of shared guest behavior; this issue is the `allod/vm` side of moving those checks to that design. Migrate assertions in coherent groups, for example by persistent store/volume behavior, guest credential/materialization behavior, guest networking/interface behavior, and shared guest policy behavior. The exact grouping can change during implementation, but each group should be internally complete and reviewable. For each group, first add the minimal `allod/vm` fixtures and sabotage cases. Then prove `allod/vm` is the reporter by making the matching sabotage fail there. Only after that proof should the heavier `allod/archetypes` reporter for the same behavior be deleted or reduced to a selection/wiring assertion. ### Scope In scope: minimal `allod/vm` guest fixtures, paired sabotage cases, and check coverage that proves guest behavior at the module owner. Out of scope: changing inventory/runtime fact contracts, changing Nexus host lifecycle behavior, or removing `allod/archetypes` integration checks before `allod/vm` reports the same guest-behavior failure. The broader memory-reduction arc remains tracked by `allod/archetypes#31` and `allod/strategy#20`; once that arc brings native flake-check performance back within dev-VM headroom, `allod/archetypes` should remove `check.sh` and restore `nix flake check` as the repo gate. Part of allod/strategy#20 Refs allod/archetypes#31
Sign in to join this conversation.
No description provided.