# Delta `0.2.12-pre.001` — audit/sizing SOL Prices Desk + Wallet integration ## 1. Base requise ```text v0.2.11 ``` Archive opérateur utilisée : `khadhroony-solana-project-v0.2.11-full-from-gitea.zip`. Vérifications d'identité : ```text workspace.package.version = 0.2.11 PASS à l'entrée deltas/0.2.11/rel.001.md présent prompts/017-V0_2_12_START_PROMPT.md présent .git absent de l'archive ``` Le tag stable n'est donc pas revérifiable localement par Git; l'archive opérateur et ses marqueurs internes sont l'autorité de reprise. ## 2. Objectif Exécuter le gate obligatoire `pre.001` du prompt `0.2.12` sans commencer l'implémentation fonctionnelle : relire règles/architecture, auditer Off-chain/Config/Tauri/Wallet, fixer screen map, DTO/commands, Config/composite, état de présentation, threat model, intégration Wallet, tests/build/live et forecast. ## 3. Décisions prises ```text nouvelle app ksp-app-solprices-desk ports 1434/1435 rôle HID provider-agnostic uniquement composite Price Desk oui file_id cfg.composite.ksp-app-solprices-desk components logging + offchain_transport profil default public_keyless profil opt-in all_free profil tests public_keyless schema composite existant, aucun nouveau format état présentation backend Tauri en mémoire uniquement prix IPC chaîne décimale exacte, jamais f64 refresh row + selected/many + all via MarketPriceService auto-refresh OUT prix canonique OUT valorisation USD balance Wallet OUT nouvelle crate UI/API partagée OUT Price Desk dialog plugin OUT Price Desk capabilities core:default + tracing:default Wallet Off-chain extension additive du composite/runtime ``` L'ajout du nouveau descriptor Config doit être atomique avec les resources Tauri de Config Desk, Wallet Desk et SOL Prices Desk, parce que `prepare_packaged_runtime` parcourt le registry complet. ## 4. Fichiers ajoutés ```text docs/plans/019-V0_2_12_SOL_PRICES_DESK_PLAN.md docs/validation/015-V0_2_12_SOL_PRICES_DESK.md deltas/0.2.12/pre.001.md ``` ## 5. Fichiers modifiés ```text Cargo.toml docs/000-README.md docs/plans/000-README.md docs/plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md docs/validation/000-README.md ``` `workspace.package.version` passe à `0.2.12-pre.1` conformément à `VER-ID-009` pour toute prerelease non-fix. ## 6. Fichiers supprimés ```text aucun ``` ## 7. Fichiers volontairement inchangés ```text ROADMAP.md CHANGELOG.md prompts/017-V0_2_12_START_PROMPT.md docs/architecture/** config/** crates/** .env.example README/USAGE des crates ``` L'architecture durable contient déjà la frontière HID/Off-chain pertinente. Les Config/runtime/app sources sont réservées aux tranches d'implémentation suivantes. `ROADMAP.md` et `CHANGELOG.md` restent hors `pre.001` et sont réservés au couloir de publication prévu. ## 8. Audit interne exécuté Points confirmés : ```text MarketPriceService expose registry/refresh/refresh_many/refresh_all MarketPriceDecimal exact suffit à l'IPC via projection String registry/availability sont provider-neutral ResolvedOffchainTransportConfig possède déjà MarketPriceService schema composite V1 suffit au nouveau Desk Wallet composite a logging/transport/wallet et sera étendu additivement Config packaging copie tout le registry logique Config Desk ports 1430/1431 Wallet Desk ports 1432/1433 nouvelle paire KSP réservée 1434/1435 capabilities actuelles = core:default + tracing:default Price Desk n'a besoin ni dialog, ni fs, ni network plugin frontend ``` ## 9. Audit externe exécuté Sources officielles actuelles Tauri 2 et TS-RS réauditées. Tauri `2.11.5` est la release courante observée et la base utilise `tauri = ^2.11`; TS-RS `12.0.0` est courant et la base utilise `ts-rs = ^12.0`. Les patterns `beforeDevCommand`/`beforeBuildCommand`/`devUrl`/`frontendDist`, capabilities et `core:default` restent documentés. Aucune mise à niveau de dépendance n'est justifiée par `pre.001`. ## 10. Validations exécutées Sur l'archive extraite dans le sandbox : ```text python3 scripts/audit_rust_workspace_rules.py PASS python3 scripts/audit_markdown_tables.py README.md ... crates PASS avant modification ``` Preuve opérateur fournie sur la base stable avant ouverture : ```text cargo fmt --all PASS Rust rules audit PASS Markdown table audit PASS cargo check --workspace PASS cargo clippy --workspace --all-targets PASS cargo test --workspace PASS ``` Après le présent changement documentaire : ```text python3 scripts/audit_rust_workspace_rules.py PASS python3 scripts/audit_markdown_tables.py ... deltas/0.2.12 PASS ``` ## 11. Validations non exécutées dans ce sandbox ```text cargo fmt --all cargo check --workspace cargo clippy --workspace --all-targets cargo test --workspace cargo tauri dev cargo tauri build ``` Cause : executable `cargo` absent du sandbox de préparation. Aucune de ces commandes n'est déclarée localement PASS. Le code Rust/config/runtime n'a pas été modifié par `pre.001`; le gate de base Cargo est couvert par la preuve opérateur fournie. ## 12. Forecast souple recalibré ```text pre.001 audit/sizing/maps/Config/security pre.002 scaffold SOL Prices Desk pre.003 Config composite + registry/resources atomiques + bootstrap pre.004 runtime/registry rows/DTOs pre.005 refresh row pre.006 refresh many/all + in-flight/cooldown pre.007 UX/polish/instrumentation pre.008 hardening Price Desk pre.009 Wallet composite/runtime Off-chain pre.010 Wallet DTO/commands prix pre.011 Wallet UI prix + non-régressions pre.012 hardening cross-app pre.013 gate technique/live + builds finaux pre.014 réconciliation documentaire pre.015 prompt suivant + CHANGELOG + ROADMAP rel.001 publication stable ``` Le scope reste clôturable; aucun redécoupage n'est requis avant `pre.002`. ## 13. Questions ouvertes Aucune question bloquante pour `pre.002`. Les détails visuels exacts (largeurs/labels/ordre final des colonnes) pourront être ajustés dans `pre.007` sans rouvrir les frontières provider-neutral, Config ou sécurité.