Files
khadhroony-solana-project/deltas/0.2.12/pre.002-fix.001.md

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.ttf identiques 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.