test: make v2.4.1 Axis B IVNP gate deterministic #92

Merged
ada merged 16 commits from ada/axis-b-v241-port-20260912 into master 2026-09-12 09:30:57 +00:00
Collaborator

Problem

The public-IVNP Axis-B fixture was network-flaky and could not reliably prove the required Rust middle-hop topology. PR #91 superseded v2.4.0 with v2.4.1, so the deterministic proof must preserve the exact v2.4.1 client/upstream defaults and produce secret-safe release evidence.

Approach

  • Add an isolated five-router signed-RouterInfo IVNP mesh using authenticated NTCP2/tunnel transport.
  • Keep one fixed upstream Go ingress and shared infrastructure alive across both arms; swap only the gateway implementation (upstream Go control vs Rust /sdk/connect candidate).
  • Pin upstream v2.4.1 commit and official ARM64 client checksum, bind proof to clean candidate HEAD/tree/harness/binary hashes, and require native Linux ARM64 for IVNP_AXIS_B_PASS.
  • Require run-unique application responses, exact lease/capability/Rust-marker correlation, no direct/protocol-8 fallback, active signed runtime evidence, semantic shared-mesh parity, bounded retryable cleanup, and removal of private state/raw bearer capabilities.

Validation

Exact PR HEAD: f76f53825d0103d5f987c5bea48ca31945068e3e

  • bash -n scripts/v240-axis-b-ivnp-smoke.sh scripts/test-v240-axis-b-ivnp-smoke.sh
  • scripts/test-v240-axis-b-ivnp-smoke.sh
  • PYTHONOPTIMIZE=1 scripts/test-v240-axis-b-ivnp-smoke.sh
  • git diff --check origin/master..HEAD
  • Forgejo CI #1024: success at the exact HEAD.
  • Native Linux ARM64 signed-IVNP Axis-B gate: IVNP_AXIS_B_PASS at the exact HEAD.
    • official upstream v2.4.1 client and pinned upstream commit
    • Go control and Rust candidate both returned distinct run-unique responses
    • Rust authenticated gateway marker correlated with the active lease/capability
    • shared ingress/mesh and active runtime parity verified
    • final process/container/helper cleanup verified
    • sensitive state absent and preserved raw ov1.* bearer count zero

No production tag, image, or deployment is included in this PR. Post-merge tagged-dev verification and production promotion remain separate release steps.

## Problem The public-IVNP Axis-B fixture was network-flaky and could not reliably prove the required Rust middle-hop topology. PR #91 superseded v2.4.0 with v2.4.1, so the deterministic proof must preserve the exact v2.4.1 client/upstream defaults and produce secret-safe release evidence. ## Approach - Add an isolated five-router signed-RouterInfo IVNP mesh using authenticated NTCP2/tunnel transport. - Keep one fixed upstream Go ingress and shared infrastructure alive across both arms; swap only the gateway implementation (upstream Go control vs Rust `/sdk/connect` candidate). - Pin upstream v2.4.1 commit and official ARM64 client checksum, bind proof to clean candidate HEAD/tree/harness/binary hashes, and require native Linux ARM64 for `IVNP_AXIS_B_PASS`. - Require run-unique application responses, exact lease/capability/Rust-marker correlation, no direct/protocol-8 fallback, active signed runtime evidence, semantic shared-mesh parity, bounded retryable cleanup, and removal of private state/raw bearer capabilities. ## Validation Exact PR HEAD: `f76f53825d0103d5f987c5bea48ca31945068e3e` - `bash -n scripts/v240-axis-b-ivnp-smoke.sh scripts/test-v240-axis-b-ivnp-smoke.sh` - `scripts/test-v240-axis-b-ivnp-smoke.sh` - `PYTHONOPTIMIZE=1 scripts/test-v240-axis-b-ivnp-smoke.sh` - `git diff --check origin/master..HEAD` - Forgejo CI #1024: success at the exact HEAD. - Native Linux ARM64 signed-IVNP Axis-B gate: `IVNP_AXIS_B_PASS` at the exact HEAD. - official upstream v2.4.1 client and pinned upstream commit - Go control and Rust candidate both returned distinct run-unique responses - Rust authenticated gateway marker correlated with the active lease/capability - shared ingress/mesh and active runtime parity verified - final process/container/helper cleanup verified - sensitive state absent and preserved raw `ov1.*` bearer count zero No production tag, image, or deployment is included in this PR. Post-merge tagged-dev verification and production promotion remain separate release steps.
test: fix Axis B tunnel peer selection
All checks were successful
Rust CI / Format, lint, and test (pull_request) Successful in 3m19s
Rust CI / Build and start linux/arm64 image (no push) (pull_request) Successful in 21s
7a7aa60725
test: adapt Axis B fallback guard to v2.4.1
All checks were successful
Rust CI / Format, lint, and test (pull_request) Successful in 4m44s
Rust CI / Build and start linux/arm64 image (no push) (pull_request) Successful in 9s
a0248f131b
test: correlate Axis B marker after client re-registration
All checks were successful
Rust CI / Format, lint, and test (pull_request) Successful in 4m4s
Rust CI / Build and start linux/arm64 image (no push) (pull_request) Successful in 9s
d03764ac4e
test: bind Axis B marker to exact capability hash
All checks were successful
Rust CI / Format, lint, and test (pull_request) Successful in 2m21s
Rust CI / Build and start linux/arm64 image (no push) (pull_request) Successful in 11s
ddd64ff51e
test: preserve shared Axis B ingress parity
All checks were successful
Rust CI / Format, lint, and test (pull_request) Successful in 6m24s
Rust CI / Build and start linux/arm64 image (no push) (pull_request) Successful in 10s
e9f2e7c899
test: scrub Axis B fixture secrets
All checks were successful
Rust CI / Format, lint, and test (pull_request) Successful in 3m49s
Rust CI / Build and start linux/arm64 image (no push) (pull_request) Successful in 11s
02c0338014
test: harden Axis B release evidence
All checks were successful
Rust CI / Format, lint, and test (pull_request) Successful in 3m30s
Rust CI / Build and start linux/arm64 image (no push) (pull_request) Successful in 13s
f661c26f92
test: isolate Axis B client identity
All checks were successful
Rust CI / Format, lint, and test (pull_request) Successful in 2m39s
Rust CI / Build and start linux/arm64 image (no push) (pull_request) Successful in 13s
6f3aa0f18a
test: harden Axis B proof execution
All checks were successful
Rust CI / Format, lint, and test (pull_request) Successful in 3m24s
Rust CI / Build and start linux/arm64 image (no push) (pull_request) Successful in 8s
b65c008d25
test: wait for active Axis B proof
All checks were successful
Rust CI / Format, lint, and test (pull_request) Successful in 4m37s
Rust CI / Build and start linux/arm64 image (no push) (pull_request) Successful in 8s
ed5a9390fd
test: permit public Axis B certificate mode
All checks were successful
Rust CI / Format, lint, and test (pull_request) Successful in 3m19s
Rust CI / Build and start linux/arm64 image (no push) (pull_request) Successful in 9s
5786497252
test: stabilize Axis B route selection
All checks were successful
Rust CI / Format, lint, and test (pull_request) Successful in 4m1s
Rust CI / Build and start linux/arm64 image (no push) (pull_request) Successful in 9s
a71f0d8d59
test: admit deterministic Axis B peers
All checks were successful
Rust CI / Format, lint, and test (pull_request) Successful in 2m50s
Rust CI / Build and start linux/arm64 image (no push) (pull_request) Successful in 12s
34b3659d42
test: scope deterministic Axis B selection
All checks were successful
Rust CI / Format, lint, and test (pull_request) Successful in 3m35s
Rust CI / Build and start linux/arm64 image (no push) (pull_request) Successful in 9s
582967f9d5
test: compare Axis B routes semantically
All checks were successful
Rust CI / Format, lint, and test (pull_request) Successful in 3m13s
Rust CI / Build and start linux/arm64 image (no push) (pull_request) Successful in 8s
f76f53825d
ada left a comment

Independent release-gate review result for exact head f76f53825d0103d5f987c5bea48ca31945068e3e: APPROVE, no P0/P1 findings. Semantic parity, fail-closed proof handling, bounded cleanup, secret scrubbing, exact-head CI #1024, and native Linux ARM64 IVNP_AXIS_B_PASS were verified. Forgejo does not allow the PR author to submit an APPROVED review, so this records the independent review verdict without bypassing repository policy.

Independent release-gate review result for exact head `f76f53825d0103d5f987c5bea48ca31945068e3e`: **APPROVE**, no P0/P1 findings. Semantic parity, fail-closed proof handling, bounded cleanup, secret scrubbing, exact-head CI #1024, and native Linux ARM64 `IVNP_AXIS_B_PASS` were verified. Forgejo does not allow the PR author to submit an APPROVED review, so this records the independent review verdict without bypassing repository policy.
ada merged commit 4ac00a6d42 into master 2026-09-12 09:30:57 +00:00
ada deleted branch ada/axis-b-v241-port-20260912 2026-09-12 09:30:57 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
gofix/portal-tunnel-rs!92
No description provided.