v0.3.7-pre.005
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/plans/028-V0_3_7_BACKFILL_DESK_PLAN.md -->
|
||||
<!-- version: 5 -->
|
||||
<!-- version: 6 -->
|
||||
|
||||
# Plan v0.3.7 — Backfill Desk
|
||||
|
||||
@@ -245,9 +245,13 @@ Le replay opérateur de `pre.003-fix.001` est ensuite intégralement propre : au
|
||||
|
||||
Construire `HttpTransportPool`, dériver l'inventaire sûr des réseaux/rôles, vérifier le support simultané de `getSignaturesForAddress` et `getTransaction`, puis exposer `backfill_options()` sans provider, endpoint physique ni URL. `BackfillDeskOptionsDto` apparaît ici comme sous-contrat Transport seulement (`configured_networks`, rôles compatibles, diagnostic sûr, readiness) ; `pre.006` l'étendra avec commitments, scopes et bornes plutôt que d'ouvrir prématurément `ksp-job-backfill-lib`. Une composition Transport avec plusieurs clusters HTTP actifs ou sans rôle compatible reste non-ready. Une erreur de résolution/construction Transport est conservée comme diagnostic sûr afin que le shell puisse rester ouvrable.
|
||||
|
||||
Le replay opérateur de `pre.004` est acquis : audits, `cargo check --workspace`, Clippy, toutes les suites ciblées Backfill Desk et les deux arbres de dépendances passent. Le lancement `cargo tauri dev` confirme également le profil Logging `supertrace`, le profil Transport `devnet_public`, un réseau HTTP unique, un rôle compatible et `transport_ready = true`; les clics de tabs frontend apparaissent bien au niveau `DEBUG`.
|
||||
|
||||
### pre.005 — Store readiness
|
||||
|
||||
Ouvrir `ksp-store-lib::Store`, vérifier réseau Store/Transport avant run, lifecycle de fermeture et erreurs sûres. Scinder ici plutôt que mélanger Transport + Store dans une seule tranche large.
|
||||
Ouvrir uniquement `ksp-store-lib::Store` depuis le profil Store sélectionné par le composite. La Desk résout d'abord les settings Store, dérive leur réseau logique et exige un unique réseau Transport identique **avant** `Store::open`; aucun URI, backend physique ni détail de pool n'est projeté vers l'IPC. Après ouverture, un unique `Store::health()` borné produit `store_ready`, tandis que `network_coherent` et `composition_ready` rendent la chaîne Transport + Store explicite. Une erreur Config, ouverture ou health conserve le shell utilisable avec un diagnostic sûr, sans inventer de readiness.
|
||||
|
||||
Le `Store` ouvert reste détenu côté Rust et doit être fermé explicitement via `Store::close()` lors d'une demande de fermeture de la fenêtre principale. La Desk intercepte cette fermeture une seule fois, empêche la destruction immédiate, lance le close borné puis quitte l'application. Aucun `BackfillRequest`, `BackfillJobRuntime`, accès backend PostgreSQL direct ou capability Tauri supplémentaire n'est admis dans cette tranche.
|
||||
|
||||
### pre.006 — DTO/request mapping
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/validation/024-V0_3_7_BACKFILL_DESK.md -->
|
||||
<!-- version: 5 -->
|
||||
<!-- version: 6 -->
|
||||
|
||||
# Validation v0.3.7 — Backfill Desk
|
||||
|
||||
@@ -224,3 +224,32 @@ Une seule network distincte et au moins un rôle compatible sont requis pour `tr
|
||||
- [X] audit Rust workspace local propre, zéro candidat d'export ;
|
||||
- [ ] `cargo fmt/check/clippy/test` de `pre.004` à rejouer par l'opérateur ; `cargo`/`rustfmt` restent absents du sandbox.
|
||||
|
||||
## 13. `pre.005` — Store readiness et cohérence réseau
|
||||
|
||||
### Gate opérateur `pre.004` acquis
|
||||
|
||||
- [X] audits Rust/Markdown propres ;
|
||||
- [X] `cargo check --workspace` propre ;
|
||||
- [X] `cargo clippy --workspace --all-targets` propre ;
|
||||
- [X] `cargo test -p ksp-app-backfill-desk` : 17 unitaires + 3 composition + 8 desktop contract + 5 desktop security + 1 public API, aucun échec ;
|
||||
- [X] arbres `cargo tree` Backfill Desk exécutés sans anomalie rapportée ;
|
||||
- [X] `cargo tauri dev` démarre le shell sur le profil Logging `supertrace` et le profil Transport `devnet_public` ;
|
||||
- [X] le runtime réel rapporte un seul réseau, un rôle compatible et `transport_ready = true` ;
|
||||
- [X] les changements de tabs sont visibles dans le tracing frontend `DEBUG`.
|
||||
|
||||
### Gate statique local `pre.005`
|
||||
|
||||
- [X] dépendance directe `ksp-store-lib` ajoutée à Backfill Desk ;
|
||||
- [X] aucune dépendance directe `ksp-store-api`, `ksp-store-postgres-lib`, `ksp-job-backfill-lib`, `reqwest` ou `tokio-postgres` ajoutée ;
|
||||
- [X] le réseau Store est dérivé des settings Config résolus et comparé au réseau Transport unique avant `Store::open` ;
|
||||
- [X] une incohérence ou l'absence de réseau Transport cohérent empêche l'ouverture Store ;
|
||||
- [X] `Store::health()` est exécuté une fois après ouverture et sa projection reste backend-neutre ;
|
||||
- [X] `BackfillDeskOptionsDto` expose seulement réseau Store, `network_coherent`, `store_ready`, `composition_ready` et diagnostics sûrs en plus du sous-contrat Transport ;
|
||||
- [X] aucune URI PostgreSQL, URL Transport, identité provider, credential ou objet Store n'est projeté vers l'IPC ;
|
||||
- [X] le `Store` est détenu côté Rust derrière une fermeture one-shot et `Store::close()` ;
|
||||
- [X] la fermeture de la fenêtre principale est interceptée pour exécuter le close Store borné avant la sortie applicative ;
|
||||
- [X] capabilities Tauri inchangées : `core:default + tracing:default` ;
|
||||
- [X] tracing de développement Backfill inchangé : Config `supertrace`, fallback `trace` ;
|
||||
- [X] aucun `BackfillRequest`, `BackfillJobRuntime`, Start/Cancel/Resume n'est ouvert ;
|
||||
- [X] audit Rust workspace local propre, zéro candidat d'export ;
|
||||
- [ ] `cargo fmt/check/clippy/test` de `pre.005` à rejouer par l'opérateur ; `cargo`/`rustfmt` restent absents du sandbox.
|
||||
|
||||
Reference in New Issue
Block a user