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

92 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!-- file: deltas/0.3.5/alpha.2.fix.1.md -->
<!-- version: 1 -->
# 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 :
```text
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 à :
```text
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
```text
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 :
```text
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 :
```bash
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`.