B2 rework: rebuild the tests on the routed world and the target meters

The route-proof world's hand-built promotion is deleted: the world runs over
stub host programs, so Routing installs and proves the route for real and
every former promote_by_hand is a real step. The salvage fixtures of the old
B2 are not ported.

New tests pin each ruling under its own mutation: a full ledger still admits
and counts every survival actuation, first deployments are metered, a refused
preflight starts no private-mount unit and fails at once with the reopen time,
the actuation log slides, a clock step stalls nothing past one window, a
failed challenge ends the pass instead of losing a CAS, a proved challenge
clears the degradation, both storms are bounded, restarts are spaced,
counted in the mint and read from the target's own log (unreadable history no
longer stops crash recovery), and the v3 lift is pinned over golden bytes cut
with the 583b2a7 encoder, refusing a record that shows retired meters.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
Meta Vens 2026-09-30 00:31:12 +02:00
commit 8212b9d15d
4 changed files with 801 additions and 211 deletions

File diff suppressed because it is too large Load diff

View file

@ -42,3 +42,21 @@ borrowed from `transaction-fencing`.
| `transaction-pre-fence-abort-terminal` | the same abort finished: Complete, `FailedBeforeFencing` |
| `transaction-post-fence-abort` | Fencing continuity, post-fencing abort in flight |
| `provider-anchor` | one line: the provider trust-anchor file bytes, hex. A test writes it to the fixed path so the Engine can read the plan's anchor |
## Generation v3 (the B2 lift)
`generation-v3-odin` and `generation-v3-route-proof` are the exact
`idunn.admitted_generation.v3` payloads the encoder at Idunn `583b2a7` wrote
(`admitted_envelope` over `rmp_serde::to_vec`), printed by a throwaway test that
is not kept. The first is the v2 `generation-with-receipts` record lifted by that
revision's own `LegacyAdmittedGeneration::into_current`, the second is the
generation `route_proof::committed_generation` admits through a real route-proof
deployment. Both are synthetic.
| File | Schema | What it is |
|---|---|---|
| `generation-v3-odin` | `idunn.admitted_generation.v3` | routed, Odin-correlated generation |
| `generation-v3-route-proof` | `idunn.admitted_generation.v3` | routed, route-proof generation, no Odin receipts |
`control_plane.rs` decodes them through `LegacyAdmittedGenerationV3`; the
fixtures die with that struct.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long