Files
games/deltas/0.3.5/alpha.2.fix.1.md

3.1 KiB
Raw Blame History

Delta 0.3.5-alpha.2.fix.1

Base requise

0.3.5-alpha.2, candidate dont la gate utilisateur du 2026-09-21 a atteint les tests dintégration WebTransport après fmt, audits, check workspace et Clippy propres.

Cause

Le test positif détablissement ouvre correctement la session WebTransport mais échoue sur lassertion dadresse distante :

left:  [::ffff:127.0.0.1]:54430
right: 127.0.0.1:54430

Quinn expose ici ladresse IPv4 loopback sous forme IPv4-mapped IPv6. Les deux valeurs désignent la même IP et le même port ; lassertion brute sur SocketAddr confond donc différence de représentation et défaut de transport.

La même gate confirme parallèlement que :

  • les quatre tests unitaires WebTransport passent ;
  • le test de mauvais pin passe ;
  • la compilation workspace et Clippy sont propres ;
  • les audits Rust/workspace, Markdown et distribution sont propres.

alpha.2 nest pas historisée comme validée : le test dintégration positif reste rouge jusquà ce correctif.

Correction

La version technique passe à :

0.3.5-alpha.2.fix.1

tests/establishment.rs normalise uniquement les SocketAddr observées avant comparaison :

  • une adresse IPv4 reste inchangée ;
  • une IPv6 IPv4-mapped est ramenée à son IPv4 canonique avec le même port ;
  • une IPv6 native reste inchangée.

Lassertion continue donc de détecter un port différent, une IPv4 différente ou une IPv6 réellement différente. Elle cesse seulement de considérer 127.0.0.1 et ::ffff:127.0.0.1 comme deux endpoints distincts.

Aucun code de production WebTransport, certificat, pinning, configuration Quinn, mapping derreur ou API publique nest modifié.

Fichiers modifiés

Cargo.toml
README.md
crates/common/game-realtime-webtransport-lib/tests/establishment.rs
docs/plans/005-V0_3_5_WEBTRANSPORT_QUIC_POC_PLAN.md

Nouveau fichier :

deltas/0.3.5/alpha.2.fix.1.md

Aucun fichier history/0.3.5/alpha.2.md nest créé avant une gate entièrement verte.

Plan

Le forecast fonctionnel ne change pas. Après validation de ce fix, 0.3.5-alpha.3 reste la tranche dédiée au stream bidirectionnel principal, au framing borné u32 big-endian + payload et à ladaptation RealtimeConnection.

Validation attendue

Le correctif touche un test Rust et la version Cargo ; la gate repart depuis le début :

cargo fmt --all
cargo fmt --all -- --check

python3 scripts/audit_rust_workspace_rules.py
python3 scripts/audit_markdown_tables.py README.md RULES.md ROADMAP.md CHANGELOG.md docs prompts crates Android Web deltas history
python3 scripts/audit_distribution_layout.py

cargo check --workspace
cargo clippy --workspace --all-targets --all-features -- -D warnings

cargo test -p game-realtime-webtransport-lib --all-targets --all-features

Aucun cargo tree supplémentaire nest requis : le graphe de dépendances na pas changé et la gate alpha.2 la déjà produit.

Après validation

Créer history/0.3.5/alpha.2.fix.1.md à partir des résultats réellement fournis, puis ouvrir directement 0.3.5-alpha.3.