3.1 KiB
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 d’inté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 l’assertion d’adresse distante :
left: [::ffff:127.0.0.1]:54430
right: 127.0.0.1:54430
Quinn expose ici l’adresse IPv4 loopback sous forme IPv4-mapped IPv6. Les deux valeurs désignent la même IP et le même port ; l’assertion 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 n’est pas historisée comme validée : le test d’inté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.
L’assertion 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 d’erreur ou API publique n’est 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 n’est 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 à l’adaptation 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 n’est requis : le graphe de dépendances n’a pas changé et la gate alpha.2 l’a 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.