Files
khadhroony-solana-project/deltas/0.3.7/pre.005-fix.001.md

4.3 KiB

Delta 0.3.7-pre.005-fix.001 — Canari Store/Transport déterministe

1. Base requise

0.3.7-pre.005
workspace.package.version = 0.3.7-pre.5

2. Objectif

Corriger l'unique échec du gate opérateur pre.005 sans modifier le runtime Store/Transport : le test de cohérence réseau des trois profils Backfill ne doit pas exiger un secret Yellowstone gRPC PublicNode lorsqu'il vérifie seulement le réseau HTTP déclaré et le réseau logique Store.

3. Cause

pre_005_all_composite_profiles_keep_resolved_transport_and_store_networks_identical appelait resolve_transport_config_profile() pour publicnode_testnet. Cette API résout légitimement l'ensemble du profil Transport V3, y compris grpc_endpoints.secret_metadata, et exige donc KSP_SECRET_PUBLICNODE_TESTNET_GRPC_X_TOKEN.

Le secret est pertinent pour un runtime gRPC réel, mais il n'est pas une précondition du canari déterministe de cohérence réseau HTTP/Store. Le test mélangeait donc deux responsabilités.

4. Correction

  • remplacer dans le test de composition pre.005 le mapping Transport complet par la lecture des champs non secrets du ResolvedConfigProfile déjà validé ;
  • extraire, trier et dédupliquer les cluster des seuls endpoints HTTP enabled ;
  • lire le champ network du profil Store composé ;
  • conserver l'exigence d'exactement un réseau HTTP et de son égalité stricte avec le réseau Store pour devnet, mainnet et testnet ;
  • ne modifier ni le composite de production, ni std.transport, ni std.store, ni le runtime Backfill Desk.

Les tests propriétaires de ksp-config-lib restent responsables de la résolution des credentials PublicNode gRPC ; les tests unitaires store_runtime restent responsables de la comparaison runtime effective avant Store::open.

5. Version

Le correctif modifie un test Rust compilé. Conformément à VER-ID-007 et VER-ID-010 :

workspace.package.version = 0.3.7-pre.5.fix.1
label = 0.3.7-pre.005-fix.001

6. Fichiers ajoutés

deltas/0.3.7/pre.005-fix.001.md

7. Fichiers modifiés

Cargo.toml
crates/ksp-app-backfill-desk/tests/config_composition.rs
docs/validation/024-V0_3_7_BACKFILL_DESK.md

8. Fichiers supprimés

Aucun.

9. Validations exécutées dans l'environnement d'assemblage

python3 scripts/audit_rust_workspace_rules.py
python3 scripts/audit_markdown_tables.py README.md RULES.md ROADMAP.md CHANGELOG.md docs prompts crates deltas/0.3.7

Contrôles ciblés :

  • parse TOML du workspace ;
  • test source : aucune référence au secret KSP_SECRET_PUBLICNODE_TESTNET_GRPC_X_TOKEN dans le canari Backfill pre.005 ;
  • test source : le composite de production et les fichiers std.transport.json / std.store.json restent byte-for-byte inchangés par rapport à pre.005 ;
  • test source : la vérification conserve exactement les profils devnet, mainnet, testnet et l'exigence d'un réseau HTTP unique identique au réseau Store.

10. Validations non exécutées dans l'environnement d'assemblage

cargo et rustfmt ne sont pas disponibles dans cet environnement. Gate opérateur :

cargo fmt --all
python3 scripts/audit_rust_workspace_rules.py
python3 scripts/audit_markdown_tables.py README.md RULES.md ROADMAP.md CHANGELOG.md docs prompts crates deltas/0.3.7
cargo check --workspace
cargo clippy --workspace --all-targets
cargo test -p ksp-app-backfill-desk
cargo tree -p ksp-app-backfill-desk --edges normal
cargo tree -p ksp-app-backfill-desk -e features

11. Décisions et suite

Le fix reste strictement dans le périmètre pre.005 conformément à VER-LIFECYCLE-009.

La décision suivante est enregistrée mais explicitement différée conformément à VER-LIFECYCLE-010 : Backfill Desk doit cibler Mainnet par défaut, tout en restant reconfigurable vers Devnet/Testnet, et doit permettre de tester les moyens de transport historiques pertinents — HTTP standard, HTTP provider/configuré (notamment Helius) et Yellowstone gRPC. WebSocket n'est pas retenu pour le backfill V1 tant qu'aucun besoin fonctionnel n'est démontré. Cette correction Config/Transport ouvrira une prerelease dédiée après validation du présent fix ; elle ne sera pas mélangée à pre.006 DTO/request initialement prévu.

12. Questions ouvertes

Aucune pour ce correctif.