v0.2.12-pre.003

This commit is contained in:
2026-08-27 09:33:29 +02:00
parent 0d01017c31
commit 5a165296d9
30 changed files with 806 additions and 111 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/plans/019-V0_2_12_SOL_PRICES_DESK_PLAN.md -->
<!-- version: 4 -->
<!-- version: 5 -->
# Plan `0.2.12` — SOL Prices Desk + intégration prix Wallet Desk
@@ -472,19 +472,19 @@ Remplacement du forecast tabulaire par des sous-sections éditables avec statut
### `pre.002` — Scaffold `ksp-app-solprices-desk`
**Statut : implémenté ; gate opérateur à confirmer.**
**Statut : réalisé ; gate opérateur de tranche PASS.**
Création du scaffold strict de `ksp-app-solprices-desk` : crate lib/bin, shell Tauri, frontend de base, splash, logging et paire de ports réservée `1434/1435`. La tranche n'implémente encore ni table prix, ni `MarketPriceService`, ni refresh réseau.
#### `pre.002-fix.001` — Alignement strict du gabarit desktop commun
**Statut : implémenté ; gate opérateur à confirmer.**
**Statut : réalisé ; gate opérateur de tranche PASS.**
Correction du scaffold pour reprendre réellement les conventions communes Config/Wallet Desk : dépendances frontend de gabarit, `ResizeObserver`, identité de fenêtre, footer, police/provenance splash, vocabulaire SCSS partagé, commande `get_runtime_status`, instrumentation shell et canaris anti-dérive. Aucun runtime Off-chain, composite ni table prix n'est avancé.
### `pre.003` — Composite Config et bootstrap Off-chain
**Statut : planifié.**
**Statut : implémenté ; gate opérateur à confirmer.**
Ajout atomique du composite `cfg.composite.ksp-app-solprices-desk`, de son descriptor registry et des resources packagées nécessaires aux trois Desks concernés, puis bootstrap Config -> Off-chain Transport du nouveau Desk. Le gate exige que le packaging Config reste cohérent ; aucune UI prix n'est ajoutée ici.

View File

@@ -1,5 +1,5 @@
<!-- file: docs/validation/015-V0_2_12_SOL_PRICES_DESK.md -->
<!-- version: 3 -->
<!-- version: 4 -->
# Validation `0.2.12` — SOL Prices Desk + intégration Wallet Desk
@@ -79,16 +79,16 @@ NOT RUN commande non exécutée dans le contexte indiqué
| Contrat | Valeur attendue | Statut |
|---------------------------------------|--------------------------------------------------------------|---------|
| Price Desk composite file | `config/composite.ksp-app-solprices-desk.json` | PENDING |
| Price Desk file_id | `cfg.composite.ksp-app-solprices-desk` | PENDING |
| schema | `schema.composite` existant | PENDING |
| Price Desk composite file | `config/composite.ksp-app-solprices-desk.json` | PASS |
| Price Desk file_id | `cfg.composite.ksp-app-solprices-desk` | PASS |
| schema | `schema.composite` existant | PASS |
| components | `logging`, `offchain_transport` | PENDING |
| default profile | `public_keyless` | PENDING |
| optional profile | `all_free` | PENDING |
| test profile | `tests` -> offchain `public_keyless` | PENDING |
| Wallet composite | ajoute offchain `public_keyless` à devnet/temporary/tests | PENDING |
| registry/resource count | 11 après nouveau composite | PENDING |
| registry + resources atomiques | Config + Config Desk + Wallet Desk + Price Desk même tranche | PENDING |
| registry/resource count | 11 après nouveau composite | PASS |
| registry + resources atomiques | Config + Config Desk + Wallet Desk + Price Desk même tranche | PASS |
| nouveau schema Config | inutile | OUT |
| modification `std.offchain_transport` | pas de lacune identifiée | OUT |
@@ -149,7 +149,7 @@ NOT RUN commande non exécutée dans le contexte indiqué
| frontendDist | hors source, path Price Desk dédié | PASS |
| hooks | npm dev/build cwd crate | PASS |
| backend cross-app | aucune référence Wallet par erreur | PASS |
| resources | registry complet packagé | PENDING |
| resources | registry complet packagé | PASS |
| bundle | targets/icons cohérents | PASS |
| Tauri production build Price Desk | crate-local PASS attendu | PENDING |
| Tauri production build Wallet Desk | crate-local PASS attendu | PENDING |
@@ -220,7 +220,7 @@ python3 scripts/audit_markdown_tables.py README.md ... deltas PASS
cargo fmt/check/clippy/test NOT RUN — cargo indisponible dans le sandbox
```
Le statut de `pre.002` reste donc « implémenté ; gate opérateur à confirmer » jusqu'au retour du gate Cargo de l'opérateur.
Le retour opérateur du `27 août 2026` clôt le gate de tranche : `cargo fmt --all`, installation npm, audits Rust/Markdown, `cargo check --workspace`, Clippy workspace, `cargo test -p ksp-app-solprices-desk` et `cargo tauri dev` passent. Le test applicatif exécute 12 unit tests, 4 canaris `desktop_contract`, 3 canaris `desktop_security` et 1 canari `public_api`, tous PASS.
## 14. Gate `0.2.12-pre.002-fix.001`
@@ -239,4 +239,33 @@ TRACING_DOMAIN_SHELL réellement consommé PAS
MarketPriceService / composite / refresh / table prix absent par contrat
```
Le gate Cargo du checkout opérateur précédent a confirmé que `pre.002` compile et que ses tests passent, mais il signalait deux warnings `TRACING_DOMAIN_SHELL` unused. Le fix consomme désormais ce domaine dans `configure_setup`; le gate complet doit être rejoué sur `0.2.12-pre.2.fix.1` avant passage à `pre.003`.
Le gate opérateur du `27 août 2026` sur `0.2.12-pre.2.fix.1` est propre : audits Rust/Markdown, `cargo check --workspace`, `cargo clippy --workspace --all-targets` et `cargo test -p ksp-app-solprices-desk` passent sans les deux warnings précédents. `cargo tauri dev` démarre Vite sur `1434` puis le backend Rust sans warning. `cargo test --workspace` n'a pas été rejoué dans ce retour précis et n'est donc pas revendiqué ici.
## 15. Gate `0.2.12-pre.003`
La tranche matérialise uniquement la composition Config et le bootstrap Off-chain provider-neutral :
```text
composite cfg.composite.ksp-app-solprices-desk PASS structurel
profils public_keyless / all_free / tests PASS structurel
composants logging + offchain_transport par file_id PASS structurel
registry Config 11 descriptors
resources Config Desk / Wallet Desk / SOL Prices Desk 11/11 chacune
Logging SOL Prices Desk résolu depuis le composite PASS structurel
ResolvedOffchainTransportConfig construit au bootstrap PASS structurel
service provider-neutral public_keyless 8 entrées attendues par canari
MarketPriceRuntime / rows / observations / refresh commands absent par contrat pre.003
navigation et contrôles frontend existants journalisés en debug PASS structurel/canari
IPC frontend request/completion debug / trace
```
Le contrat de logging frontend est volontairement durable : action utilisateur et transition de vue en `debug`, étapes techniques fréquentes/fin d'IPC en `trace`, sans sérialiser prix, credentials, headers ni payloads métier. Les futurs boutons de refresh devront reprendre le même bridge et le même niveau de discipline.
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
validation syntaxique des JSON modifiés PASS
cargo fmt/check/clippy/test NOT RUN — cargo indisponible dans le sandbox
```