Files
khadhroony-solana-project/deltas/0.2.8/pre.002-fix.001.md

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.