v0.2.12-pre.006
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/validation/015-V0_2_12_SOL_PRICES_DESK.md -->
|
||||
<!-- version: 10 -->
|
||||
<!-- version: 11 -->
|
||||
|
||||
# Validation `0.2.12` — SOL Prices Desk + intégration Wallet Desk
|
||||
|
||||
@@ -50,13 +50,13 @@ NOT RUN commande non exécutée dans le contexte indiqué
|
||||
|------------------------|-----------------------------------------|---------|
|
||||
| splash Price Desk | lifecycle KSP commun | PASS |
|
||||
| main shell Price Desk | header/navigation KSP | PASS |
|
||||
| table providers | registry provider-neutral, ordre stable | PENDING |
|
||||
| prix exact | String issue de `MarketPriceDecimal` | PENDING |
|
||||
| availability/fraîcheur | état générique + timestamps réels | PENDING |
|
||||
| refresh row | `MarketPriceService::refresh` | PENDING |
|
||||
| table providers | registry provider-neutral, ordre stable | PASS |
|
||||
| prix exact | String issue de `MarketPriceDecimal` | PASS |
|
||||
| availability/fraîcheur | état générique + timestamps réels | PASS |
|
||||
| refresh row | `MarketPriceService::refresh` | PASS |
|
||||
| refresh selected/many | `MarketPriceService::refresh_many` | PENDING |
|
||||
| refresh all | `MarketPriceService::refresh_all` | PENDING |
|
||||
| Diagnostics | profils/counts sûrs seulement | PENDING |
|
||||
| Diagnostics | profils/counts sûrs seulement | PASS |
|
||||
| Wallet price panel | Dashboard compact provider-neutral | PENDING |
|
||||
| auto-refresh | aucun scheduler/polling | OUT |
|
||||
| Wallet USD valuation | aucun prix canonique | OUT |
|
||||
@@ -65,13 +65,13 @@ NOT RUN commande non exécutée dans le contexte indiqué
|
||||
|
||||
| Contrat | Entrée/sortie sûre | Statut |
|
||||
|----------------------------------------|--------------------------------------------------------------------|---------|
|
||||
| `MarketPriceRuntimeStatusDto` | profiles/counts sans secret | PENDING |
|
||||
| `MarketPriceProviderRowDto` | ID/display/pair/semantics/auth/availability/price/timestamps/retry | PENDING |
|
||||
| `MarketPriceRefreshRequestDto` | provider_id opaque seulement | PENDING |
|
||||
| `MarketPriceRuntimeStatusDto` | profiles/counts sans secret | PASS |
|
||||
| `MarketPriceProviderRowDto` | ID/display/pair/semantics/auth/availability/price/timestamps/retry | PASS |
|
||||
| single refresh direct | provider_id opaque seulement | PASS |
|
||||
| `MarketPriceRefreshManyRequestDto` | liste bornée d’IDs opaques | PENDING |
|
||||
| `MarketPriceRefreshResultDto` | rows/outcome classifiés | PENDING |
|
||||
| runtime/list/refresh/many/all commands | aucun URL/header/API key/body | PENDING |
|
||||
| TS-RS exports | bindings générés non versionnés | PENDING |
|
||||
| TS-RS exports | bindings générés non versionnés | PASS |
|
||||
| provider-specific type dans IPC | interdit | OUT |
|
||||
| prix `f64` comme vérité IPC | interdit | OUT |
|
||||
|
||||
@@ -110,12 +110,12 @@ NOT RUN commande non exécutée dans le contexte indiqué
|
||||
|
||||
| Risque/canari | Attendu | Statut |
|
||||
|--------------------------------|----------------------------------------------|---------|
|
||||
| URL arbitraire depuis frontend | impossible par contrat command | PENDING |
|
||||
| extraction API key/header | aucune projection/log | PENDING |
|
||||
| provider_id inconnu | erreur KSP sûre | PENDING |
|
||||
| URL arbitraire depuis frontend | impossible par contrat command | PASS |
|
||||
| extraction API key/header | aucune projection/log | PASS |
|
||||
| provider_id inconnu | erreur KSP sûre | PASS |
|
||||
| batch duplicate/oversized | rejet avant dispatch | PENDING |
|
||||
| refresh spam | limites/cooldown Off-chain toujours actifs | PENDING |
|
||||
| stale observation | timestamps/état distingués | PENDING |
|
||||
| refresh spam | limites/cooldown Off-chain toujours actifs | PASS |
|
||||
| stale observation | timestamps/état distingués | PASS |
|
||||
| double-click race | in-flight/order contrôlés | PENDING |
|
||||
| close pendant refresh | aucune persistance/sûreté frontend requise | PENDING |
|
||||
| CWD/resource confusion | canaris propres à chaque app | PENDING |
|
||||
@@ -486,3 +486,47 @@ runtime prix / frontend / providers inchangés
|
||||
```
|
||||
|
||||
La version technique devient `0.2.12-pre.5.fix.1`. Le gate attendu doit confirmer le test ciblé puis le workspace complet avant d'ouvrir `pre.006`.
|
||||
|
||||
## 22. Gate `0.2.12-pre.006`
|
||||
|
||||
Le gate opérateur de `pre.005-fix.001` fourni le 2026-08-27 confirme la fermeture de la tranche précédente :
|
||||
|
||||
```text
|
||||
cargo fmt --all PASS
|
||||
python3 scripts/audit_rust_workspace_rules.py PASS
|
||||
python3 scripts/audit_markdown_tables.py ... deltas/0.2.12 PASS
|
||||
cargo check --workspace PASS
|
||||
cargo clippy --workspace --all-targets PASS
|
||||
cargo test -p ksp-app-solprices-desk PASS
|
||||
cargo test --workspace PASS
|
||||
```
|
||||
|
||||
`pre.006` matérialise ensuite le batch manuel provider-neutral :
|
||||
|
||||
```text
|
||||
MarketPriceRefreshManyRequestDto implémenté, IDs opaques uniquement
|
||||
MarketPriceRefreshResultDto implémenté, rows + requested/refreshed counts
|
||||
refresh_market_prices implémenté via MarketPriceService::refresh_many
|
||||
refresh_all_market_prices implémenté via MarketPriceService::refresh_all
|
||||
ordre selected ordre courant des rows / requête conservé
|
||||
ordre all ordre stable provider-id du service
|
||||
in-flight backend validation atomique avant mutation
|
||||
doublon / ID inconnu rejet sûr avant état loading partiel
|
||||
mutex présentation pendant await non
|
||||
cooldown / retry_at projection Off-chain existante
|
||||
Refresh selected / Refresh all frontend implémentés
|
||||
logging clic sélection/selected/all debug, compte/ID opaque seulement
|
||||
logging résultat batch trace, requested/refreshed counts seulement
|
||||
polling / setInterval / scheduler / sleep consommateur absent
|
||||
fallback / consensus / moyenne absent
|
||||
```
|
||||
|
||||
Validations sandbox après matérialisation :
|
||||
|
||||
```text
|
||||
python3 scripts/audit_rust_workspace_rules.py PASS
|
||||
python3 scripts/audit_markdown_tables.py README.md ... deltas PASS
|
||||
cargo fmt/check/clippy/test NOT RUN — cargo indisponible dans le sandbox
|
||||
```
|
||||
|
||||
Les lignes `refresh selected/many`, `refresh all`, `MarketPriceRefreshManyRequestDto`, `MarketPriceRefreshResultDto`, ordre many, batch duplicate/oversized et double-click race de la matrice générale restent `PENDING` jusqu'au gate opérateur de cette tranche.
|
||||
|
||||
Reference in New Issue
Block a user