v0.2.12-pre.008-fix.002
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/plans/019-V0_2_12_SOL_PRICES_DESK_PLAN.md -->
|
||||
<!-- version: 15 -->
|
||||
<!-- version: 16 -->
|
||||
|
||||
# Plan `0.2.12` — SOL Prices Desk + intégration prix Wallet Desk
|
||||
|
||||
@@ -555,15 +555,21 @@ Finalisation de la table responsive sans changer le contrat de dispatch : résum
|
||||
|
||||
### `pre.008` — Intégration Wallet minimale + recalibrage de clôture
|
||||
|
||||
**Statut : implémenté ; corrigé par `pre.008-fix.001`, gate opérateur à confirmer.**
|
||||
**Statut : réalisé ; corrigé par `pre.008-fix.001` puis `pre.008-fix.002`, gate opérateur final à confirmer.**
|
||||
|
||||
Absorption de l'ancien couloir Wallet `pre.009`–`pre.011` dans une seule tranche : ajout `offchain_transport/public_keyless` au composite Wallet, runtime Off-chain auxiliaire, `refresh_all` lors de `refresh_wallet_balance`, moyenne SOL/USD backend sans `f64`, `WalletBalanceDto.sol_usd_average` et une seule case UI `SOL/USD moyen`/`N.A.`. Aucun panneau provider, aucune command prix Wallet, aucun provider ID frontend et aucune valorisation USD du solde. La tranche réconcilie également le présent forecast avec cette réduction de scope.
|
||||
Absorption de l'ancien couloir Wallet `pre.009`–`pre.011` dans une seule tranche : ajout `offchain_transport/public_keyless` au composite Wallet, runtime Off-chain auxiliaire, `refresh_all` lors de `refresh_wallet_balance`, moyenne SOL/USD backend sans `f64` et projection compacte dans Wallet Desk. La correction `fix.002` complète le besoin opérateur réellement attendu : `WalletBalanceDto` expose également un équivalent USD exact calculé côté Rust à partir des lamports et de la moyenne du refresh courant ; Dashboard et Details affichent le prix moyen et l'équivalent ou `N.A.`. Aucun panneau provider, aucune command prix Wallet et aucun provider ID frontend ne sont ajoutés. La tranche réconcilie également le forecast avec cette réduction de scope.
|
||||
|
||||
#### `pre.008-fix.001` — Correction du canari desktop et Clippy de la moyenne
|
||||
|
||||
**Statut : réalisé ; gate opérateur technique partiellement PASS, interrompu par un canari historique de version.**
|
||||
|
||||
Le premier gate de `pre.008` confirme `cargo check --workspace` mais révèle deux défauts purement techniques : des littéraux Rust non échappés dans le nouveau canari `desktop_contract.rs`, qui empêchent `cargo fmt` et les targets de test de parser le fichier, et un warning Clippy `manual_is_multiple_of` dans le formateur décimal Wallet. Le fix remplace les littéraux fragiles par des raw strings Rust et applique `u128::is_multiple_of(10)`. Son gate confirme ensuite `fmt`, audits, `check` et Clippy, puis s'arrête sur le canari `pre_018_packaged_runtime_bundles_config_resources_and_keeps_wallet_desk_version_coherent`, encore couplé à une version littérale dans le HTML. Le runtime Tauri et le refresh balance/prix fonctionnent.
|
||||
|
||||
#### `pre.008-fix.002` — Équivalent USD, projection Details et version desktop dynamique
|
||||
|
||||
**Statut : implémenté ; gate opérateur à confirmer.**
|
||||
|
||||
Le premier gate de `pre.008` confirme `cargo check --workspace` mais révèle deux défauts purement techniques : des littéraux Rust non échappés dans le nouveau canari `desktop_contract.rs`, qui empêchent `cargo fmt` et les targets de test de parser le fichier, et un warning Clippy `manual_is_multiple_of` dans le formateur décimal Wallet. Le fix remplace les littéraux fragiles par des raw strings Rust et applique `u128::is_multiple_of(10)`. Aucune logique de moyenne, aucun appel Off-chain, aucun DTO ni aucune UI n'est modifié.
|
||||
Correction du dernier écart fonctionnel de la tranche : le refresh produisait bien une moyenne SOL/USD mais elle n'était visible que dans le résumé Dashboard, tandis que Details n'affichait ni cette moyenne ni la valeur USD équivalente de la balance. `WalletBalanceDto.sol_usd_equivalent` est désormais calculé côté Rust sans flottant, à partir des lamports et de `sol_usd_average`, avec arrondi half-up à huit décimales maximum ; l'UI rend moyenne et équivalent dans Dashboard et Details, ou `N.A.` si le prix auxiliaire est indisponible. Le badge statique `0.2.6` est remplacé par `RuntimeStatusDto.application_version`, et le canari packaging vérifie ce binding version-neutral au lieu d'exiger la version courante en littéral dans `main.html`.
|
||||
|
||||
### `pre.009` — Hardening transversal + gate technique/live final
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/validation/015-V0_2_12_SOL_PRICES_DESK.md -->
|
||||
<!-- version: 14 -->
|
||||
<!-- version: 15 -->
|
||||
|
||||
# Validation `0.2.12` — SOL Prices Desk + intégration Wallet Desk
|
||||
|
||||
@@ -586,9 +586,10 @@ getBalance + refresh_all lancés dans l
|
||||
observations prises pour moyenne uniquement succès du refresh courant
|
||||
moyenne backend, aucune conversion f64, 8 décimales max
|
||||
WalletBalanceDto.sol_usd_average Option<String>
|
||||
UI Wallet une case SOL/USD moyen / N.A.
|
||||
WalletBalanceDto.sol_usd_equivalent Option<String>, calcul exact backend
|
||||
UI Wallet moyenne + équivalent dans Dashboard/Details, sinon N.A.
|
||||
provider_id / URL / credential / command prix dans frontend absent
|
||||
valorisation balance SOL en USD absente
|
||||
calcul de valorisation frontend / f64 absent
|
||||
WalletSession / VIEW / OWNER / secrets inchangés
|
||||
```
|
||||
|
||||
@@ -615,16 +616,60 @@ cargo check --workspace PASS
|
||||
cargo clippy --workspace --all-targets FAIL — desktop_contract.rs + manual_is_multiple_of
|
||||
```
|
||||
|
||||
Le correctif attendu est strictement mécanique :
|
||||
`pre.008-fix.001` corrige ces deux défauts mécaniques. Son gate opérateur du `27 août 2026` donne ensuite :
|
||||
|
||||
```text
|
||||
desktop_contract.rs raw strings Rust valides
|
||||
wallet_balance.rs coefficient.is_multiple_of(10)
|
||||
version 0.2.12-pre.8.fix.1
|
||||
logique moyenne / Off-chain / DTO / frontend inchangée
|
||||
cargo fmt --all PASS
|
||||
python3 scripts/audit_rust_workspace_rules.py PASS
|
||||
python3 scripts/audit_markdown_tables.py README.md ... deltas PASS
|
||||
cargo check --workspace PASS
|
||||
cargo clippy --workspace --all-targets PASS
|
||||
cargo test -p ksp-app-wallet-desk FAIL — 1 canari desktop historique
|
||||
cargo test --workspace NOT RUN après l'échec ciblé
|
||||
cargo tauri dev Wallet Desk PASS
|
||||
```
|
||||
|
||||
Gate opérateur à rejouer après application :
|
||||
Le test ciblé passe `61` unit tests, `3` tests de composition et `18/19` tests `desktop_contract`. L'unique échec est :
|
||||
|
||||
```text
|
||||
pre_018_packaged_runtime_bundles_config_resources_and_keeps_wallet_desk_version_coherent
|
||||
assertion failed: main.contains(packaged_version)
|
||||
```
|
||||
|
||||
Le runtime manuel confirme en parallèle que le chemin métier est opérationnel :
|
||||
|
||||
```text
|
||||
provider_count=8
|
||||
observed_provider_count=6
|
||||
average_available=true
|
||||
sol_usd_average_available=true
|
||||
getBalance succès
|
||||
cargo tauri dev succès
|
||||
```
|
||||
|
||||
Deux écarts restent donc à corriger dans `pre.008-fix.002` : le badge principal est encore figé à `0.2.6`, et la vue Details ne montre pas l'information prix auxiliaire. La demande opérateur précise en outre que l'équivalent USD de la balance doit être visible.
|
||||
|
||||
## 26. Gate `0.2.12-pre.008-fix.002` — équivalent USD et version dynamique
|
||||
|
||||
Le correctif attendu reste dans la responsabilité Wallet condensée de `pre.008` :
|
||||
|
||||
```text
|
||||
WalletBalanceDto.sol_usd_average conservé
|
||||
WalletBalanceDto.sol_usd_equivalent ajouté, Option<String>
|
||||
source de l'équivalent lamports + moyenne du refresh courant
|
||||
calcul Rust/u128, aucun f64/f32/JS
|
||||
arrondi équivalent half-up, 8 décimales max
|
||||
prix auxiliaire indisponible moyenne N.A. + équivalent N.A.
|
||||
balance SOL autoritative inchangée
|
||||
Dashboard moyenne + équivalent
|
||||
Details moyenne + équivalent
|
||||
badge 0.2.6 statique supprimé
|
||||
version affichée RuntimeStatusDto.application_version
|
||||
canari packaging version-neutral, vérifie le binding dynamique
|
||||
provider_id / URL / credential / command prix Wallet absent
|
||||
```
|
||||
|
||||
Gate opérateur à rejouer :
|
||||
|
||||
```bash
|
||||
cargo fmt --all
|
||||
@@ -636,4 +681,3 @@ cargo test -p ksp-app-wallet-desk
|
||||
cargo test --workspace
|
||||
(cd crates/ksp-app-wallet-desk && cargo tauri dev)
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user