Files
2026-08-27 08:38:22 +02:00

6.7 KiB

Delta 0.2.12-pre.002 — scaffold ksp-app-solprices-desk

1. Base requise

v0.2.11
+ 0.2.12-pre.001
+ 0.2.12-pre.001-fix.001

La version workspace passe à :

0.2.12-pre.2

conformément au workflow des prereleases non-fix.

2. Objectif

Créer uniquement le gabarit desktop Tauri de ksp-app-solprices-desk avant toute composition Off-chain fonctionnelle.

La responsabilité de la tranche est limitée à :

package Rust mixte lib/bin
launcher single-instance mince
assemblage Tauri
splash commun KSP
shell principal Prices / Diagnostics
bootstrap Config standard + Logging
bridge Logging frontend
ports Vite/HMR 1434/1435
capabilities minimales
packaging du registry Config courant
canaris desktop/security/public API

3. Frontières préservées

pre.002 n'introduit volontairement aucun :

MarketPriceService
ResolvedOffchainTransportConfig
composite cfg.composite.ksp-app-solprices-desk
table provider
DTO prix
refresh row/many/all
reqwest
provider SDK
fetch frontend
auto-refresh
localStorage/sessionStorage
plugin dialog/fs/http/shell frontend

Le composite SOL Prices Desk et son bootstrap Off-chain restent exclusivement propriétaires de pre.003.

4. Scaffold Tauri

Identité créée :

package Rust       ksp-app-solprices-desk
lib                ksp_app_solprices_desk_lib
bin                ksp-app-solprices-desk
productName        KSP SOL Prices Desk
identifier         com.sasedev.ksp-app-solprices-desk
Vite HTTP          1434 strict
Vite HMR           1435
frontendDist       ../../../builds/khadhroony-solana-project/ksp-app-solprices-desk/dist
windows            splash + main
permissions        core:default + tracing:default
plugin desktop     tauri-plugin-tracing uniquement

main.rs reste un launcher mince avec verrou single-instance et normalisation du current working directory de développement vers la racine workspace.

Les commandes Tauri sont centralisées dans src/tauri.rs :

emit_frontend_log
runtime_status
splash_frontend_ready

runtime_status est volontairement limité au scaffold et ne projette encore aucun état Off-chain.

5. Config et Logging transitoires de scaffold

Le gabarit doit déjà respecter le splash commun et le runtime Logging KSP. Avant l'introduction du composite dédié en pre.003, le Desk résout donc le document Logging standard via ksp-config-lib, avec le même fallback console borné que les Desks existants.

Cette décision ne préjuge pas la composition finale : pre.003 remplacera ce bootstrap transitoire par le composite logging + offchain_transport prévu par le plan.

Le bundle pre.002 embarque les 10 ressources du registry Config courant. Il n'invente pas le onzième composite avant son descriptor. La synchronisation à 11 ressources restera atomique dans pre.003 pour Config Desk, Wallet Desk et SOL Prices Desk.

6. Frontend

Le frontend crée seulement le shell prévu :

Prices       placeholder explicite non fonctionnel
Diagnostics  version / phase / count Config / Logging sûr

Le header suit le contrat KSP SOL Prices Desk — <vue>. La navigation contient Prices et Diagnostics mais aucune table DataTables ni interaction prix.

Le splash reprend le lifecycle commun piloté par Rust et le bridge Logging frontend. Aucun fichier de font n'est ajouté au nouveau package ; le scaffold utilise une police système pour le texte du splash.

7. Dépendances

La crate ajoute uniquement les dépendances nécessaires au gabarit actuel :

chrono
fs2
ksp-config-lib
ksp-core-lib
ksp-logging-lib
serde
tauri
tauri-plugin-tracing
tokio(time)
ts-rs

Le frontend n'ajoute que les dépendances réellement utilisées par le scaffold :

@fortawesome/fontawesome-free
@tauri-apps/api
bootstrap
simplebar

DataTables et tauri-plugin-dialog ne sont pas ajoutés prématurément.

8. Canaris ajoutés

Tests unitaires :

CommandErrorDto sans context sensible
frontend log levels/targets contrôlés
splash timings/order bornés

Tests d'intégration :

public API run au crate-root
ports 1434/1435 + strictPort
product/identifier/frontendDist/hooks propres
lib + bin + main launcher mince
splash + main
10 ressources Config courantes, aucun composite solprices anticipé
capabilities core + tracing uniquement
absence Off-chain/reqwest/plugin dialog
absence fetch/storage/dialogues navigateur
commandes centralisées tauri.rs
absence MarketPriceService/refresh dans Rust applicatif

9. Fichiers ajoutés

crates/ksp-app-solprices-desk/**
deltas/0.2.12/pre.002.md

Les bindings TS-RS et autres artefacts générés ne sont pas versionnés.

10. Fichiers modifiés

Cargo.toml
docs/plans/019-V0_2_12_SOL_PRICES_DESK_PLAN.md
docs/validation/015-V0_2_12_SOL_PRICES_DESK.md

Le plan marque pre.002 comme « implémenté ; gate opérateur à confirmer ».

11. Fichiers volontairement inchangés

config/**
crates/ksp-app-config-desk/**
crates/ksp-app-wallet-desk/**
crates/ksp-config-lib/**
crates/ksp-offchain-transport-lib/**
ROADMAP.md
CHANGELOG.md
prompts/017-V0_2_12_START_PROMPT.md

Aucun document Config, registry ou resource d'un Desk existant n'est modifié avant la tranche atomique pre.003.

12. Validations exécutées dans le sandbox

Avant la rédaction finale du delta :

python3 scripts/audit_rust_workspace_rules.py                                      PASS
python3 scripts/audit_markdown_tables.py README.md RULES.md ROADMAP.md CHANGELOG.md docs prompts crates deltas/0.2.12
                                                                                   PASS

Le sandbox ne possède ni cargo ni rustc. Les validations suivantes ne sont donc pas déclarées PASS localement :

cargo fmt --all
cargo check --workspace
cargo clippy --workspace --all-targets
cargo test -p ksp-app-solprices-desk
cargo test --workspace

Le build Tauri de production n'appartient pas à ce gate intermédiaire ; il reste réservé au couloir final du plan.

13. Gate opérateur attendu

Après application de l'archive :

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

Une correction découverte par ce gate reste un pre.002-fix.NNN et n'avance pas à pre.003.

14. Suite

La prochaine responsabilité reste :

0.2.12-pre.003 — composite Config + registry/resources atomiques + bootstrap Off-chain

Aucune table prix ni commande de refresh ne doit être fusionnée dans pre.003.