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

3.4 KiB

Delta 0.3.5-alpha.8.fix.1

Base requise

0.3.5-alpha.8.

La gate utilisateur du 2026-09-22 valide :

  • fmt et les trois audits ;
  • cargo check --workspace ;
  • les suites game-realtime-transport-lib, game-realtime-websocket-lib et game-realtime-webtransport-lib ;
  • les deux tests du launcher fallback ;
  • le smoke WebSocket ;
  • le smoke WebTransport ;
  • le smoke de composition fallback, terminé par game-realtime-transport-fallback-smoke: PASS ;
  • les graphes de dépendances attendus.

La gate complète échoue uniquement sur Clippy strict dans game-realtime-transport-fallback-smoke :

unused import: game_realtime_transport_lib::RealtimeConnection
missing return statement

Les erreurs implicit-return portent uniquement sur des closures qui retournent une future async.

alpha.8 n'est donc pas historisée comme validée avant ce correctif.

Cause

Le launcher importe explicitement RealtimeConnection alors que ses bounds utilisent le chemin qualifié complet : l'import n'est jamais consommé.

En parallèle, la règle workspace clippy::implicit-return s'applique aussi à la valeur de retour des closures. Les formes :

|| async { ... }

doivent donc être écrites :

|| return async { ... }

même lorsque le corps async contient déjà ses propres return explicites.

Correction

La version technique passe à :

0.3.5-alpha.8.fix.1

Le correctif :

  • supprime l'import inutilisé RealtimeConnection de src/main.rs ;
  • rend explicite le return de toutes les closures async du sélecteur dans src/main.rs ;
  • applique la même forme aux closures async des tests unitaires.

Aucun comportement runtime, backend, contrat, mapping d'erreur, endpoint, framing, TLS/pinning ou dépendance n'est modifié.

La politique de fallback reste strictement :

Timeout -> fallback autorisé
Io      -> fallback autorisé
Connect -> fallback interdit

et toutes les autres catégories restent non-fallback.

Fichiers modifiés

Cargo.toml
README.md
crates/apps/game-realtime-transport-fallback-smoke/src/main.rs
crates/apps/game-realtime-transport-fallback-smoke/unit_tests/fallback.rs
docs/plans/005-V0_3_5_WEBTRANSPORT_QUIC_POC_PLAN.md

Nouveau fichier :

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

Aucun fichier history/0.3.5/alpha.8.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.9 reste la tranche suivante pour le POC datagram isolé si elle demeure justifiée par l'API/backend réellement disponibles.

Validation attendue

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-transport-fallback-smoke --all-targets --all-features
cargo run -p game-realtime-transport-fallback-smoke

Le smoke doit terminer par :

game-realtime-transport-fallback-smoke: PASS

Après validation

Créer history/0.3.5/alpha.8.fix.1.md à partir des résultats réellement fournis, puis ouvrir directement 0.3.5-alpha.9 si le POC datagram reste pertinent.