251 lines
6.3 KiB
Markdown
251 lines
6.3 KiB
Markdown
<!-- file: deltas/0.2.8/pre.002-fix.001.md -->
|
|
<!-- version: 1 -->
|
|
|
|
# Delta `0.2.8-pre.002-fix.001` — Clippy et normalisation documentaire
|
|
|
|
## 1. Objet
|
|
|
|
Ce correctif ferme le défaut Clippy observé après application de `0.2.8-pre.002` et audite l'organisation des documents actifs `0.2.8` afin d'éviter les sections désordonnées ou les fichiers fourre-tout.
|
|
|
|
La livraison `pre.002.md` reste immutable ; ce fix porte uniquement les corrections nouvelles.
|
|
|
|
Version workspace :
|
|
|
|
```text
|
|
0.2.8-pre.2.fix.1
|
|
```
|
|
|
|
Livraison / commit attendu :
|
|
|
|
```text
|
|
0.2.8-pre.002-fix.001
|
|
v0.2.8-pre.002-fix.001
|
|
```
|
|
|
|
Aucun tag prerelease.
|
|
|
|
## 2. Clippy : défaut reproduit par l'opérateur
|
|
|
|
Le checkpoint opérateur de `pre.002` a donné :
|
|
|
|
```text
|
|
cargo fmt --all OK
|
|
python3 scripts/audit_rust_workspace_rules.py clean
|
|
cargo check --workspace OK
|
|
cargo clippy --workspace --all-targets FAIL
|
|
cargo test -p ksp-onchain-transport-lib OK
|
|
cargo test --workspace OK
|
|
```
|
|
|
|
Le seul blocage est `clippy::implicit_return` dans le nouveau fichier :
|
|
|
|
```text
|
|
crates/ksp-onchain-transport-lib/unit_tests/ws_protocol_session.rs
|
|
```
|
|
|
|
Cinq diagnostics sont concernés :
|
|
|
|
```text
|
|
1 retour explicite manquant après la boucle `while let` de `accept_until_close`
|
|
2 predicates `find` sans `return` explicite
|
|
2 closures `map` sans `return` explicite
|
|
```
|
|
|
|
Le runtime WebSocket, les façades protocolaires et les tests fonctionnels ne sont pas en échec : le ciblé Transport et le workspace complet passent avant ce fix.
|
|
|
|
## 3. Correction Rust
|
|
|
|
Le fix ajoute uniquement les retours explicites exigés par la politique Clippy KSP dans la fixture de test.
|
|
|
|
Aucun changement n'est apporté à :
|
|
|
|
```text
|
|
WsSession
|
|
SolanaStandardWsSession
|
|
HeliusLaserStreamWsSession
|
|
WsProtocolKind
|
|
wire WebSocket
|
|
reconnect/backpressure/shutdown
|
|
Config
|
|
transactionSubscribe
|
|
heartbeat
|
|
```
|
|
|
|
Comme le correctif modifie du code de test consommé par le build, Cargo passe conformément à `VERSION_WORKFLOW.md` de :
|
|
|
|
```text
|
|
0.2.8-pre.2
|
|
```
|
|
|
|
à :
|
|
|
|
```text
|
|
0.2.8-pre.2.fix.1
|
|
```
|
|
|
|
## 4. Audit structurel des documents
|
|
|
|
Références appliquées :
|
|
|
|
```text
|
|
docs/rules/RULES_DOCUMENTATION.md
|
|
docs/rules/FILE_CONTRACTS.md
|
|
docs/plans/000-README.md
|
|
docs/validation/000-README.md
|
|
```
|
|
|
|
Constats :
|
|
|
|
```text
|
|
docs/plans : 000-README puis 001..015, ordre cohérent, aucune collision
|
|
docs/validation : 000-README puis 001..011, ordre cohérent, aucune collision
|
|
plan 015 : une seule responsabilité, planifier/auditer la release 0.2.8
|
|
validation 011 : une seule responsabilité, conserver critères/matrices/preuves 0.2.8
|
|
deltas/0.2.8 : journal de livraison séparé, aucun second changelog dans docs/
|
|
```
|
|
|
|
Aucun nouveau répertoire ou fichier documentaire durable n'est nécessaire. Les plans historiques `0.2.5` à `0.2.7` sont de taille comparable ou supérieure ; la taille du plan `015` ne justifie donc pas à elle seule un split.
|
|
|
|
Deux défauts d'organisation internes sont toutefois corrigés :
|
|
|
|
1. le plan présentait les décisions de façade dans une première section puis des décisions d'architecture détaillées beaucoup plus loin ; elles sont regroupées dans une seule section `Architecture et frontières de protocole` ;
|
|
2. la validation répétait le forecast détaillé alors que `FILE_CONTRACTS.md` attribue cette responsabilité au plan ; cette duplication est supprimée.
|
|
|
|
L'ordre du plan actif devient :
|
|
|
|
```text
|
|
état courant
|
|
forecast souple
|
|
sources / baseline
|
|
héritage v0.2.7
|
|
audit Helius
|
|
matrice normative
|
|
architecture et frontières
|
|
threat model
|
|
dépendances
|
|
stratégie de validation / smoke
|
|
questions reportées
|
|
critères de split / clôture
|
|
checkpoint courant
|
|
```
|
|
|
|
La validation reste organisée autour de :
|
|
|
|
```text
|
|
références
|
|
gate pre.001
|
|
matrices provider/façades
|
|
contrat transaction à valider
|
|
checklists lifecycle/non-régression/sécurité
|
|
smoke
|
|
preuves pre.002/fix
|
|
contrôle structurel docs
|
|
```
|
|
|
|
## 5. État de validation `pre.002` reporté correctement
|
|
|
|
Les preuves opérateur reçues sont intégrées à `docs/validation/011-*` :
|
|
|
|
```text
|
|
Transport unit tests 313 passed
|
|
Transport public API tests 37 passed
|
|
release completeness 25 passed
|
|
doctor tests compile_fail 2 passed
|
|
cargo test -p Transport OK
|
|
cargo test --workspace OK
|
|
```
|
|
|
|
Le seul gate restant à revalider après application du fix est la chaîne complète, en particulier Clippy.
|
|
|
|
## 6. Fichiers de la livraison
|
|
|
|
Nouveau :
|
|
|
|
```text
|
|
deltas/0.2.8/pre.002-fix.001.md
|
|
```
|
|
|
|
Modifiés :
|
|
|
|
```text
|
|
Cargo.toml
|
|
crates/ksp-onchain-transport-lib/unit_tests/ws_protocol_session.rs
|
|
docs/plans/015-V0_2_8_HELIUS_LASERSTREAM_WEBSOCKET_PLAN.md
|
|
docs/validation/011-V0_2_8_HELIUS_LASERSTREAM_WEBSOCKET.md
|
|
```
|
|
|
|
Aucun autre fichier n'est nécessaire.
|
|
|
|
## 7. Validations exécutées dans le sandbox de préparation
|
|
|
|
Exécuté après le fix :
|
|
|
|
```text
|
|
python3 scripts/audit_rust_workspace_rules.py
|
|
General Rust rule audit: clean
|
|
Rust export completeness audit: 0 candidate(s)
|
|
KSP workspace Rust rule audit: clean
|
|
```
|
|
|
|
Audit structurel local des documents :
|
|
|
|
```text
|
|
DOC STRUCTURE AUDIT: clean
|
|
docs/plans = 000..015 ordonné
|
|
docs/validation = 000..011 ordonné
|
|
H2/H3 plan actif = cohérent
|
|
H2/H3 validation = cohérent
|
|
```
|
|
|
|
Le sandbox ne fournit pas Cargo/rustfmt ; aucune commande Cargo n'est donc déclarée réussie pour le fix lui-même.
|
|
|
|
## 8. Gate opérateur
|
|
|
|
Après application :
|
|
|
|
```bash
|
|
cargo fmt --all
|
|
python3 scripts/audit_rust_workspace_rules.py
|
|
cargo check --workspace
|
|
cargo clippy --workspace --all-targets
|
|
cargo test -p ksp-onchain-transport-lib
|
|
cargo test --workspace
|
|
```
|
|
|
|
Attendu :
|
|
|
|
```text
|
|
aucun `clippy::implicit_return`
|
|
aucun warning Rust
|
|
313+ tests Transport hérités/pré.002 verts
|
|
37+ public API verts
|
|
25+ release completeness verts
|
|
2 doctests compile_fail verts
|
|
workspace complet vert
|
|
```
|
|
|
|
Si ce checkpoint est vert, `pre.002` + `pre.002-fix.001` sont `DONE` et `pre.003` peut commencer.
|
|
|
|
## 9. Suite
|
|
|
|
`pre.003` reste inchangé : ajouter uniquement sur `HeliusLaserStreamWsSession` les six familles standard Helius supportées :
|
|
|
|
```text
|
|
account
|
|
logs
|
|
program
|
|
root
|
|
signature
|
|
slot
|
|
```
|
|
|
|
avec réutilisation du wire standard et absence durable de :
|
|
|
|
```text
|
|
block
|
|
slotsUpdates
|
|
vote
|
|
```
|
|
|
|
Config Helius, `transactionSubscribe` et heartbeat restent hors `pre.003` conformément au forecast.
|