v0.3.15-pre.006

This commit is contained in:
2026-09-13 11:30:56 +02:00
parent 9ee3cd4a53
commit 0a8ce6e5f9
23 changed files with 1298 additions and 112 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/plans/036-V0_3_15_RAW_TRANSACTION_INGEST_DESK_PLAN.md -->
<!-- version: 5 -->
<!-- version: 6 -->
# Plan v0.3.15 — Raw Transaction Ingest Desk
@@ -710,14 +710,24 @@ Budget cible : une tranche Worker.
Créer `ksp-app-raw-transaction-ingest-desk` sur le gabarit KSP existant, avec shell, splash, dépendances frontend, DTO de base, IDs de routes et états, sans démarrer de Worker.
**État : implémenté côté assemblage.** La crate mixte lib/bin reprend le gabarit des Desk KSP, réserve les ports stricts `1440/1441`, embarque les 16 ressources Config du registre, expose seulement Config/Logging + shell/splash/tracing, et fixe les cinq IDs V1 ainsi que les sept états applicatifs. Le contrat `route_foundation` est statique et ne prétend aucune composabilité. Transport, Store et Worker restent absents du graphe direct de cette tranche ; aucun Start/Stop Worker n'existe encore.
**État : implémenté et gate opérateur PASS après `pre.005-fix.001` puis `pre.005-fix.002`.** La crate mixte lib/bin reprend le gabarit des Desk KSP, réserve les ports stricts `1440/1441`, embarque les 16 ressources Config du registre, expose Config/Logging + shell/splash/tracing, et fixe les cinq IDs V1 ainsi que les sept états applicatifs. Le premier fix retire un import Rust inutilisé ; le second restaure le shell clair KSP commun, borne `#routeFoundation` contre les débordements et corrige le canari Clippy `implicit_return`. Le gate opérateur final passe audits, `cargo check`, Clippy strict, tests Desk, workspace complet et parcours visuel via `cargo tauri dev`. Aucun script npm applicatif n'est exécuté directement ; Tauri possède ce cycle. Transport, Store et Worker runtime restent non construits et aucun Start/Stop Worker n'existe encore.
Budget cible : une tranche Desk fondation.
#### `pre.005-fix.001` — correction Clippy import
Correctif Rust minimal de l'import `tauri::Manager` inutilisé dans `src/tauri.rs`.
#### `pre.005-fix.002` — conformité template + overflow + Clippy test
Restauration du template Desk KSP clair, bornage de la grille de routes et correction du retour explicite exigé dans `tests/release_completeness.rs`.
### `pre.006` — inventaire de routes composables
Résoudre Config côté Rust et projeter les routes composables/non composables avec raisons sûres et génération d'inventaire, sans endpoint, URL, secret ou source key côté frontend.
**État : implémenté côté assemblage.** Le Desk ouvre uniquement la dépendance directe `ksp-onchain-transport-lib` nécessaire aux capabilities typées. Le backend énumère les profils du composite validé, résout Transport et Store via `ksp-config-lib`, exige un réseau logique unique identique au Store, puis calcule les cinq routes sans I/O réseau. HTTP est prouvé directement par rôles + `request_kinds` sur les settings typés, sans construire de pool/client ; WS repose sur `WsProtocolKind` + `WsSubscriptionKind`; Yellowstone exige un endpoint gRPC activé. L'inventaire expose profil, réseau, génération, route/state/selectable et reason codes sûrs. Il n'ouvre ni Store, ni session Transport, ni Worker et ne projette aucune ressource physique.
Budget cible : une tranche composition.
### `pre.007` — reconstruction Start des ressources Transport

View File

@@ -1,5 +1,5 @@
<!-- file: docs/validation/032-V0_3_15_RAW_TRANSACTION_INGEST_DESK.md -->
<!-- version: 6 -->
<!-- version: 7 -->
# Validation v0.3.15 — Raw Transaction Ingest Desk
@@ -356,11 +356,11 @@ Le forecast durable est porté par la section 20 du plan `036` sous forme hiéra
### `pre.005` — scaffold Desk
**Statut : réalisé côté assemblage ; gate Cargo/npm opérateur requis.** `ksp-app-raw-transaction-ingest-desk` existe comme crate Tauri mixte lib/bin sur le gabarit KSP, ports `1440/1441`, splash/assets/fonts communs, Config/Logging et tracing frontend. Le backend fixe exactement cinq route IDs (`yellowstone-hydrated`, `standard-logs-hydrated`, `standard-block-direct`, `helius-transaction-hydrated`, `http-block-polling`) et sept états (`unavailable`, `configured`, `starting`, `running`, `stopping`, `stopped`, `faulted`) dans un DTO de fondation explicitement non-composable. Le manifest ne dépend encore ni de Transport, ni Store, ni Worker ; aucune commande Start/Stop n'existe. Les audits Rust/Markdown disponibles dans le sandbox sont propres ; la parité du socle npm, les 16 ressources Config, les ports et les assets communs sont contrôlés statiquement. Cargo n'est pas disponible dans le sandbox et le build npm reste un gate opérateur.
**Statut : réalisé et gate opérateur PASS après deux fixes.** `ksp-app-raw-transaction-ingest-desk` existe comme crate Tauri mixte lib/bin, ports `1440/1441`, splash/assets/fonts communs, Config/Logging et tracing frontend. `pre.005-fix.001` retire un import Rust inutilisé détecté par Clippy. `pre.005-fix.002` restaure le template clair commun des Desk KSP, corrige le débordement de `#routeFoundation` et le retour explicite du canari release-completeness. Le gate final passe audits, `cargo check`, Clippy strict, tests Desk, `cargo test --workspace --all-targets --all-features` et `cargo tauri dev`; le parcours visuel confirme le shell corrigé. Aucun script npm applicatif n'est lancé directement : Tauri déclenche ses hooks conformément à `KSP-APP-034`.
### `pre.006` — inventaire composable
Config -> inventaire de routes composables/non composables + raisons sûres.
**Statut : réalisé côté assemblage ; gate opérateur requis.** Le backend énumère les profils du composite Config validé et reconstruit une génération complète d'inventaire sans probe réseau. Transport et Store sont résolus par `ksp-config-lib`; la cohérence impose un réseau unique identique au Store. Les capabilities HTTP sont vérifiées par rôle/méthodes sans dispatch, les capabilities WS par `WsProtocolKind` + `WsSubscriptionKind`, et Yellowstone par présence d'un endpoint gRPC activé. Les cinq routes produisent uniquement `Configured` ou `Unavailable` avec reason codes sûrs. Le frontend reçoit seulement profil logique, réseau, génération, IDs/familles/labels, state/selectable/reason ; aucun endpoint, URL, secret, metadata, Store URI, source key ou handle runtime n'est projeté. Aucun Store, session Transport ou Worker n'est démarré.
### `pre.007` — ressources Start