0.3.5-alpha.2.fix.1

This commit is contained in:
2026-09-21 22:40:28 +02:00
parent 0077ea8b4d
commit 5b7939cbd8
5 changed files with 112 additions and 9 deletions

View File

@@ -0,0 +1,91 @@
<!-- 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`.