7.3 KiB
Delta 0.2.12-pre.002-fix.001 — alignement strict du gabarit desktop commun
1. Base requise
Ce correctif s'applique exclusivement après :
v0.2.11
+ 0.2.12-pre.001
+ 0.2.12-pre.001-fix.001
+ 0.2.12-pre.002
La base opérateur fournie contient déjà plusieurs corrections locales du scaffold pre.002; elles sont conservées et servent de source réelle à ce fix.
2. Motif du correctif
Le scaffold initial était fonctionnel mais encore trop dérivé au lieu d'être une reprise stricte du gabarit desktop KSP. KSP-APP-008/009/015/019/023/027/028 imposent que Config Desk reste la référence et que les Desks suivants réutilisent les conventions stabilisées sauf justification explicite.
L'opérateur avait déjà corrigé plusieurs écarts avant ce delta :
@fltsci/tauri-plugin-tracing ajouté à package.json
resize-observer-polyfill ajouté à package.json
footer commun rétabli dans main.html
DOS_Amazigh.ttf rétabli pour le splash
splash.scss réaligné sur la police commune
Le présent fix poursuit cet alignement au lieu d'écraser ces corrections.
3. Version technique
Le fix modifie Rust, TypeScript, HTML, SCSS et configuration Tauri réellement consommés au runtime. Conformément à VER-ID-007/010, le signal Cargo devient :
workspace.package.version = 0.2.12-pre.2.fix.1
Le nouveau Desk synchronise également son package.json et son tauri.conf.json sur 0.2.12-pre.2.fix.1.
4. Commandes et conventions backend réalignées
Le wrapper Tauri temporaire :
runtime_status
devient :
get_runtime_status
Il reprend ainsi la convention déjà utilisée par Wallet Desk (get_runtime_status) et reste cohérent avec Config Desk (get_logging_runtime_status). La méthode interne AppState::runtime_status reste inchangée : seul le nom de commande IPC exposé suit le gabarit get_*.
configure_commands() adopte la même présentation progressive que les Desks existants. configure_setup() émet désormais l'événement shell via TRACING_DOMAIN_SHELL, ce qui supprime les deux warnings unused import / dead_code observés par l'opérateur sans supprimer une convention déjà utilisée dans Wallet Desk.
5. Frontend commun réellement repris
frontend/ts/main.ts réutilise désormais les invariants du template Config/Wallet :
ResizeObserver importé depuis resize-observer-polyfill
window.ResizeObserver installé avant le shell SimpleBar
getCurrentWindow().label lu au bootstrap
navigation installée via helper dédié
loadRuntimeStatus() dédié
commande get_runtime_status
startup data load protégé par try/catch + warning sûr
Le package resize-observer-polyfill n'est donc plus seulement déclaré : il est réellement consommé par le bundle.
Le badge de version propre au scaffold est retiré du header. Comme dans Config/Wallet Desk, le header garde l'identité fonctionnelle et le titre de vue ; la version reste visible dans Diagnostics via le DTO runtime.
6. HTML/SASS et splash
Le shell réutilise le vocabulaire de classes déjà stabilisé dans Wallet Desk :
app-runtime-list
app-placeholder
app-placeholder i
_app.scss reprend le socle partagé dans le même ordre et ne conserve que les différences réellement applicatives.
Les partials communs suivants restent byte-equivalents hors headers file/version avec Config Desk et Wallet Desk :
_bootswatch.scss
_fontawesome.scss
_simplebar.scss
_variables.scss
main.scss
splash.scss
Le splash est réaligné sur la forme de titre commune :
KSP SOL Prices Desk — Chargement
Le fichier frontend/fonts/README.md est ajouté pour tracer la même police DOS_Amazigh.ttf et la même empreinte SHA-256 que les deux Desks existants.
7. Canari anti-dérive du gabarit
tests/desktop_contract.rs ajoute un canari durable qui vérifie :
- dépendances frontend communes présentes ;
- consommation réelle de
resize-observer-polyfill; - bootstrap via
getCurrentWindow(); - commande
get_runtime_status; - footer et classes shell communes ;
- présence du manifest de font ;
- bytes
DOS_Amazigh.ttfidentiques dans les trois Desks ; - corps des six partials SCSS communs identiques entre Config, Wallet et SOL Prices Desk.
Le canari ne demande pas que les styles métier _app.scss soient identiques : seuls le socle et le vocabulaire du template doivent rester communs, les sélecteurs spécifiques à chaque application restant légitimes.
8. Scope fonctionnel inchangé
Le fix n'ajoute aucun :
MarketPriceService
ResolvedOffchainTransportConfig
composite cfg.composite.ksp-app-solprices-desk
provider DTO
refresh row/many/all
table prix
DataTables
plugin dialog/fs/http/shell frontend
pre.003 reste propriétaire du composite Config et du bootstrap Off-chain.
9. Retour opérateur acquis sur la base avant fix
L'opérateur a exécuté sur 0.2.12-pre.2 :
npm i -D PASS / 0 vulnerability
cargo fmt --all PASS
cargo test -p ksp-app-solprices-desk PASS / 12 unit + 7 integration/public tests
cargo tauri dev PASS lancement Vite 1434 + binaire Tauri
Les seuls diagnostics Rust visibles étaient :
unused import TRACING_DOMAIN_SHELL
constant TRACING_DOMAIN_SHELL is never used
Ce fix corrige précisément ces warnings en conservant le domaine shell et en l'utilisant comme Wallet Desk.
10. Fichiers modifiés
Cargo.toml
crates/ksp-app-solprices-desk/package.json
crates/ksp-app-solprices-desk/tauri.conf.json
crates/ksp-app-solprices-desk/frontend/main.html
crates/ksp-app-solprices-desk/frontend/splash.html
crates/ksp-app-solprices-desk/frontend/sass/_app.scss
crates/ksp-app-solprices-desk/frontend/ts/main.ts
crates/ksp-app-solprices-desk/src/tauri.rs
crates/ksp-app-solprices-desk/tests/desktop_contract.rs
docs/plans/019-V0_2_12_SOL_PRICES_DESK_PLAN.md
docs/validation/015-V0_2_12_SOL_PRICES_DESK.md
11. Fichier ajouté
crates/ksp-app-solprices-desk/frontend/fonts/README.md
deltas/0.2.12/pre.002-fix.001.md
12. Fichiers volontairement inchangés
crates/ksp-app-config-desk/**
crates/ksp-app-wallet-desk/**
deltas/0.2.12/pre.002.md
ROADMAP.md
CHANGELOG.md
prompts/017-V0_2_12_START_PROMPT.md
config/**
Les deux Desks stables restent la référence ; le correctif réaligne le nouveau Desk sur leur socle commun au lieu de modifier rétroactivement leurs surfaces métier.
13. Gate opérateur attendu
Après application :
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
(cd crates/ksp-app-solprices-desk && cargo tauri dev)
Le cargo tauri dev doit confirmer le splash/font/footer/styles, Vite 1434/1435, l'absence de warnings TRACING_DOMAIN_SHELL et le chargement de Diagnostics via get_runtime_status.
Aucun cargo tauri build final n'est exigé par ce fix intermédiaire ; les builds de production restent dans le couloir final prévu par le plan.