v0.2.12-pre.009-fix.001

This commit is contained in:
2026-08-27 17:57:50 +02:00
parent 233aaf9bd8
commit ca6af3d904
12 changed files with 242 additions and 183 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/validation/015-V0_2_12_SOL_PRICES_DESK.md -->
<!-- version: 17 -->
<!-- version: 18 -->
# Validation `0.2.12` — SOL Prices Desk + intégration Wallet Desk
@@ -147,36 +147,36 @@ NOT RUN commande non exécutée dans le contexte indiqué
## 9. Tauri/package matrix
| Contrat | Attendu | Statut |
|------------------------------------|------------------------------------|---------|
| Price Desk ports | 1434/1435 strict | PASS |
| windows | splash + main | PASS |
| Rust package | lib + bin; `main.rs` mince | PASS |
| commands | centralisées `tauri.rs` | PASS |
| 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é | PASS |
| bundle | targets/icons cohérents | PASS |
| versions apps modifiées | npm/Tauri = Cargo `0.2.12-pre.9` | PASS |
| Tauri production build Price Desk | crate-local PASS attendu | PENDING |
| Tauri production build Wallet Desk | crate-local PASS attendu | PENDING |
| Contrat | Attendu | Statut |
|------------------------------------|--------------------------------------|--------|
| Price Desk ports | 1434/1435 strict | PASS |
| windows | splash + main | PASS |
| Rust package | lib + bin; `main.rs` mince | PASS |
| commands | centralisées `tauri.rs` | PASS |
| 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é | PASS |
| bundle | targets/icons cohérents | PASS |
| version bundle Tauri | dérivée de Cargo; pas de duplication | PASS |
| Tauri production build Price Desk | pre.009 TS6133; fix retest | RETEST |
| Tauri production build Wallet Desk | pre.009 .deb/.rpm/.AppImage | PASS |
## 10. Gates techniques/live finaux
| Gate | Statut |
|--------------------------------------------------------------|---------|
| `cargo fmt --all` | PENDING |
| `python3 scripts/audit_rust_workspace_rules.py` | PENDING |
| `python3 scripts/audit_markdown_tables.py ... deltas/0.2.12` | PENDING |
| `cargo check --workspace` | PENDING |
| `cargo clippy --workspace --all-targets` | PENDING |
| `cargo test --workspace` | PENDING |
| Price Desk functional dev path | PASS |
| Wallet Desk functional price path | PASS |
| keyless app-composition live smoke | PENDING |
| Price Desk `cargo tauri build` | PENDING |
| Wallet Desk `cargo tauri build` | PENDING |
| Gate | Statut |
|--------------------------------------------------------------|--------|
| `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 --workspace` | PASS |
| Price Desk functional dev path | PASS |
| Wallet Desk functional price path | PASS |
| keyless app-composition live smoke | PASS |
| Price Desk `cargo tauri build` | RETEST |
| Wallet Desk `cargo tauri build` | PASS |
Le live `0.2.12` valide la composition applicative générique; il ne répète pas l'audit provider `7/7` de `0.2.11` sans raison.
@@ -750,8 +750,8 @@ Price Desk batch IPC garde 1..=64 avant parsing des provider
batch vide rejet KSP sûr
batch hostile 65 IDs rejet KSP sûr avant parsing provider
Price Desk manual refresh aucun scheduler/fetch/browser persistence
Price Desk package metadata npm/Tauri == CARGO_PKG_VERSION
Wallet package metadata npm/Tauri == CARGO_PKG_VERSION
Price Desk version bundle Cargo autoritatif; Tauri config sans version
Wallet version bundle Cargo autoritatif; Tauri config sans version
Wallet frontendDist chemin Wallet dédié canarisé
Wallet provider-neutrality aucun type provider concret dans src/
Wallet exactness aucun f64/f32 backend, aucun calcul flottant frontend
@@ -771,7 +771,10 @@ python3 scripts/audit_rust_workspace_rules.py PASS
python3 scripts/audit_markdown_tables.py README.md ... deltas PASS
JSON package/tauri des deux apps modifiées PASS
contrôles statiques versions/resources/frontières PASS
cargo fmt/check/clippy/test/live/tauri build NOT RUN — cargo indisponible
cargo fmt/check/clippy/test/workspace opérateur PASS
smoke live composition keyless opérateur PASS
Wallet Desk cargo tauri build PASS — deb/rpm/AppImage
SOL Prices Desk cargo tauri build FAIL — TS6133 fonction frontend inutilisée
```
Il doit résoudre le composite committed `public_keyless`, mapper `ResolvedOffchainTransportConfig`, conserver exactement les huit entrées génériques du registry, exécuter `MarketPriceService::refresh_all` et obtenir au moins une observation SOL/USD. Il ne réaudite pas les huit wire adapters individuellement.
@@ -794,3 +797,53 @@ cargo test -p ksp-app-solprices-desk --test market_price_composition_live_smoke
Conformément à `KSP-APP-034`, les deux `cargo tauri build` restent les dernières opérations lourdes.
## 29. Fix `0.2.12-pre.009-fix.001` — build Price Desk et version Tauri Cargo-owned
Le gate opérateur de `pre.009` est techniquement propre jusqu'aux builds finaux :
```text
cargo fmt --all PASS
audits Rust/Markdown PASS
cargo check --workspace PASS
cargo clippy --workspace --all-targets PASS
cargo test -p ksp-app-solprices-desk PASS
cargo test --workspace PASS
market_price_composition_live_smoke PASS
cargo tauri build — Wallet Desk PASS
cargo tauri build — SOL Prices Desk FAIL
```
L'échec Price Desk est strictement frontend/build :
```text
TS6133: appendMarketPriceCell is declared but its value is never read
```
La fonction n'est plus utilisée depuis le rendu UX de `pre.007`; elle est supprimée sans remplacement.
Le même gate a conduit à supprimer le couplage artificiel des trois sources de version desktop. Le contrat retenu est :
```text
workspace.package.version / Cargo package source de vérité KSP
tauri.conf.json.version absent
Tauri bundle version dérivée automatiquement de Cargo
package.json manifest frontend privé, non autoritatif
```
Conséquence opérateur : un bump du workspace ne demande plus de modifier `tauri.conf.json` ou `package.json` d'une app hors scope. Les trois Desks utilisent le même contrat et leurs canaris vérifient l'absence de version Tauri dupliquée ainsi que `private: true` côté npm.
Gate attendu après application :
```bash
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
cargo test -p ksp-app-solprices-desk --test market_price_composition_live_smoke -- --ignored --nocapture
(cd crates/ksp-app-solprices-desk && cargo tauri build)
```
Le build Wallet n'a pas besoin d'être rejoué pour valider la correction TypeScript Price Desk, mais un build opportuniste reste autorisé pour confirmer le fallback Cargo sur une autre app.