Files
khadhroony-solana-project/crates/ksp-app-solprices-desk
2026-08-27 19:11:07 +02:00
..
2026-08-27 08:38:22 +02:00
2026-08-27 17:57:50 +02:00
2026-08-27 08:38:22 +02:00
2026-08-27 17:18:29 +02:00
2026-08-27 17:57:50 +02:00
2026-08-27 17:18:29 +02:00
2026-08-27 08:38:22 +02:00
2026-08-27 10:02:46 +02:00
2026-08-27 17:18:29 +02:00
2026-08-27 19:11:07 +02:00
2026-08-27 17:57:50 +02:00
2026-08-27 08:38:22 +02:00
2026-08-27 19:11:07 +02:00
2026-08-27 08:38:22 +02:00

ksp-app-solprices-desk

ksp-app-solprices-desk est l'application desktop spécialisée de visualisation et de refresh manuel des prix SOL/USD fournis par ksp-offchain-transport-lib.

L'application reste une HID provider-neutral : elle consomme le registry, les observations, les disponibilités et les opérations génériques du service Off-chain sans connaître les endpoints, credentials, limites ou wire formats propres aux providers.

Package

package : ksp-app-solprices-desk
lib     : ksp_app_solprices_desk_lib
bin     : ksp-app-solprices-desk

Le binaire reste un launcher mince. La bibliothèque applicative possède l'assemblage Tauri, le bootstrap Config/Logging/Off-chain, l'état de présentation en mémoire et les commands Tauri.

Responsabilités

ksp-config-lib                 -> composite, profils, secrets et runtime packagé
ksp-offchain-transport-lib     -> providers, HTTP, registry, availability, limits et refresh
ksp-logging-lib                -> logging/tracing applicatif
ksp-app-solprices-desk         -> orchestration Tauri + projections provider-neutral sûres

Le Desk ne possède aucun client HTTP provider et ne réimplémente ni admission, ni cooldown, ni retry provider.

Vues

Prices

La vue Prices affiche l'inventaire SOL/USD dans l'ordre stable du registry et conserve chaque observation séparée.

La projection comprend notamment :

  • identité/display provider et paire ;
  • sémantique et mode d'authentification ;
  • availability générique ;
  • prix exact sous forme de String ;
  • timestamp provider lorsqu'il existe ;
  • timestamp de réception KSP ;
  • retry_at lorsqu'il existe ;
  • état Refreshing local à la présentation.

Aucune moyenne, aucun fallback automatique et aucun prix canonique ne sont produits par cette application.

Les actions manuelles sont :

Refresh
Refresh selected
Refresh all
Select all providers
Clear selection

Le batch applicatif est borné à 1..=64 IDs opaques avant parsing/dispatch. Les doublons, IDs inconnus et conflits in_flight sont rejetés avant mutation partielle.

Diagnostics

La vue Diagnostics expose uniquement des informations de runtime sûres : identité/version applicative, profils résolus et compte de providers. Aucun endpoint, header, API key, payload provider ou prix n'est journalisé comme diagnostic brut.

Config et profils

Le composite dédié est :

cfg.composite.ksp-app-solprices-desk

Il compose :

logging
Off-chain Transport

Profils committed :

public_keyless   profil par défaut
all_free         modes gratuits incluant les credentials Config requis
tests            profil déterministe de composition

Le frontend ne sélectionne ni provider concret ni secret. La résolution des credentials reste entièrement possédée par Config.

Frontières desktop

Le frontend utilise uniquement :

core:default
tracing:default

Il ne possède aucun accès direct filesystem, HTTP, shell ou persistence navigateur. Les refresh passent uniquement par les commands Rust centralisées dans tauri.rs.

Il n'existe aucun polling, auto-refresh ou scheduler prix dans le Desk. Les deadlines/cooldowns affichés proviennent de ksp-offchain-transport-lib.

Ports et build

Les ports réservés sont :

Vite HTTP : 1434
Vite WS   : 1435

Le frontend build est isolé sous :

builds/khadhroony-solana-project/ksp-app-solprices-desk/dist

La version du binaire et des bundles Tauri provient de la version Cargo résolue. tauri.conf.json ne duplique pas cette version ; package.json reste un manifeste frontend privé non autoritatif pour la release KSP.

Runtime packagé

Les onze resources Config/Schemas enregistrées sont embarquées dans le bundle. Au démarrage release, ksp-config-lib prépare la racine KSP user-writable commune, seed les documents absents, resynchronise les schemas et ne bundle jamais .env.

Développement et validation

(cd crates/ksp-app-solprices-desk && cargo tauri dev)

Gate Rust courant :

cargo fmt --all
python3 scripts/audit_rust_workspace_rules.py
cargo check --workspace
cargo clippy --workspace --all-targets
cargo test -p ksp-app-solprices-desk
cargo test --workspace

Smoke live de composition opt-in :

cargo test -p ksp-app-solprices-desk --test market_price_composition_live_smoke -- --ignored --nocapture

Build production :

(cd crates/ksp-app-solprices-desk && cargo tauri build)

Voir également USAGE.md, ../ksp-offchain-transport-lib/README.md et ../../docs/validation/015-V0_2_12_SOL_PRICES_DESK.md.