Files
khadhroony-solana-project/deltas/0.2.12/pre.005.md
2026-08-27 10:43:01 +02:00

3.3 KiB

Delta 0.2.12-pre.005 — Refresh individuel SOL/USD

1. Identité

release : 0.2.12
tranche : pre.005
version Cargo : 0.2.12-pre.5
base : 0.2.12-pre.4.fix.2

Le gate opérateur de la base est intégralement propre : audits Rust/Markdown, cargo check --workspace, Clippy, cargo test -p ksp-app-solprices-desk, cargo test --workspace et cargo tauri dev passent.

2. Scope réalisé

pre.005 branche le premier chemin réseau explicite de SOL Prices Desk sans élargir la surface Off-chain Transport :

refresh individuel par provider_id opaque                     oui
MarketPriceService::refresh                                    réutilisé directement
nouvel adapter/provider                                        non
mutex présentation tenu pendant I/O                            non
état loading                                                    mémoire backend par ligne
succès                                                          nouvelle observation exacte mémorisée
outcome sans observation                                       ancienne observation réussie conservée
availability / retry                                           projection du registry Off-chain
commande Tauri refresh_market_price                            oui
refresh many / all                                             non, réservé à pre.006
polling / auto-refresh                                         non

Le DTO de ligne existant reste lossless : prix et timestamps sont toujours des chaînes exactes. Aucune valeur f64 n'est introduite.

3. Frontend

La table reçoit une colonne Action et un bouton Refresh par provider. Pendant l'appel, la ligne est localement affichée loading et le contrôle est désactivé ; la réponse backend remplace ensuite uniquement la ligne ciblée.

Le logging suit le contrat commun des Desks :

clic Refresh                       debug
requête IPC                        debug
fin IPC                            trace
application de la row              trace
échec                              warn

Seul le provider_id opaque peut accompagner ces événements. Aucun prix, payload provider, credential, header ou URL n'est journalisé.

4. Tests/canaris

Les canaris de la crate évoluent pour vérifier :

  • présence du seul refresh_market_price et absence des refresh many/all ;
  • centralisation Tauri dans tauri.rs ;
  • absence de reqwest/fetch/persistance navigateur ;
  • conservation de la dernière observation lorsqu'un outcome ne produit aucun nouveau prix ;
  • remise à loading = false pour un provider non éligible sans dispatch réseau ;
  • logging frontend du clic et de l'IPC sans valeurs métier.

5. Hors scope confirmé

refresh selected/many/all
scheduling/polling
consensus/fallback provider
prix canonique KSP
valorisation USD Wallet
persistance Config/Store/browser

6. Gate

À exécuter par l'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.2.12
cargo check --workspace
cargo clippy --workspace --all-targets
cargo test -p ksp-app-solprices-desk
cargo test --workspace
(cd crates/ksp-app-solprices-desk && cargo tauri dev)