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.005le mapping Transport complet par la lecture des champs non secrets duResolvedConfigProfiledéjà validé ; - extraire, trier et dédupliquer les
clusterdes seuls endpoints HTTPenabled; - lire le champ
networkdu profil Store composé ; - conserver l'exigence d'exactement un réseau HTTP et de son égalité stricte avec le réseau Store pour
devnet,mainnetettestnet; - ne modifier ni le composite de production, ni
std.transport, nistd.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_TOKENdans le canari Backfillpre.005; - test source : le composite de production et les fichiers
std.transport.json/std.store.jsonrestent byte-for-byte inchangés par rapport àpre.005; - test source : la vérification conserve exactement les profils
devnet,mainnet,testnetet 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.