# Validation v0.3.7 — Backfill Desk ## 1. Gate pre.001 - [X] Archive KSP v0.3.6 testée intégralement avant travail. - [X] Archive kbot3 testée intégralement et extraite dans un arbre séparé. - [X] Aucune entrée ZIP absolue, traversal, séparateur inversé ou lien symbolique détecté. - [X] `workspace.package.version = 0.3.6` confirmé sur la base. - [X] `deltas/0.3.6/rel.001.md` confirmé. - [X] `ksp-job-api`, `ksp-job-backfill-lib` et les trois Desks existants confirmés. - [X] Règles générales, Rust, dépendances, documentation, file contracts, version workflow et prompt structure relus. - [X] Architectures Layers/Dependencies/Components/Jobs/Apps relues. - [X] README/USAGE/plan/validation/delta v0.3.6 relus. - [X] Surfaces publiques Job/Backfill auditées depuis le code stable. - [X] Config composite/Transport/Store audités. - [X] Gabarits Config Desk, Wallet Desk et SOL Prices Desk audités. - [X] Ports 1436/1437 confirmés libres dans les gabarits existants ; 1434/1435 appartiennent à SOL Prices. - [X] kbot3 audité uniquement comme référence fonctionnelle/UX. - [X] Matrice REPRENDRE/REDESSINER/REPORTER/REJETER produite. - [X] Screen map, DTO/command map, Config/composition map et dependency map produits. - [X] Threat model produit. - [X] Single-run lifecycle, rôle HTTP, validation réseau et reprise in-session tranchés. - [X] Gate Tauri/live tranché sans dépendance payante obligatoire. - [X] Forecast scindé afin d'éviter une tranche Transport+Store manifestement trop large. - [X] Aucun scaffold Tauri, code Rust/TS/HTML ou composite runtime ajouté en pre.001. ## 2. Preuve des archives | Source | SHA-256 | Résultat | Usage | |-----------------------------------------------------------|--------------------------------------------------------------------|---------------------------|--------------------------------| | `khadhroony-solana-project-v0.3.6.zip` | `90eceb9fd28d87e580e3881cdd3eda935784532caac07d0ba3fb845be664c845` | 1 594 entrées, ZIP propre | source exclusive de code | | `khadhroony-bot3_v0.5.3-pre.005-fix010-thelatest1(2).zip` | `ee47643b9f8b582ee8db97b2381ec107e45aef8c009fee44757531514615d318` | 2 501 entrées, ZIP propre | référence fonctionnelle isolée | | `Texte collé(20260901-220002).txt` | `f70930be652d2532e2403f01227af9870fd31ec0603e64ddadca4a44d910d8cc` | journal opérateur | preuve externe baseline v0.3.6 | Le journal opérateur fourni rapporte `cargo clean`, `cargo fmt`, audits Rust/Markdown, `cargo check --workspace`, Clippy, suites ciblées de toutes les crates, arbres Job/Backfill et `cargo tree --duplicates` sur v0.3.6. Cette preuve est conservée comme externe ; elle n'est pas assimilée à une exécution locale de pre.001. ## 3. Baseline locale - [X] `python3 scripts/audit_rust_workspace_rules.py` : propre, zéro candidat d'export. - [X] `python3 scripts/audit_markdown_tables.py README.md RULES.md ROADMAP.md CHANGELOG.md docs prompts crates deltas` : 295 tables / 652 fichiers propres avant modification. - [ ] `cargo fmt --all` : non exécuté localement, exécutable `cargo` absent. - [ ] `cargo check --workspace` : non exécuté localement, exécutable `cargo` absent. - [ ] `cargo clippy --workspace --all-targets` : non exécuté localement, exécutable `cargo` absent. ## 4. Surface KSP acquise à préserver - [X] `BackfillRequest` reste l'autorité des bornes et de la cohérence des scopes. - [X] Latest/Before/After/Explicit restent les seuls scopes V1. - [X] `BackfillJobRuntime` reste single-run. - [X] `BackfillJobHandle` reste la primitive de contrôle. - [X] `BackfillSnapshotSource` latest-value reste la primitive d'observation. - [X] `BackfillCheckpoint` reste opaque et Rust-only. - [X] Transport reste propriétaire retry/reroute/rate-limit/provider/endpoint. - [X] Store reste propriétaire backend/persistence/idempotence. - [X] Config reste propriétaire documents/env/secrets/composites. ## 5. Décisions de composition - [X] Composite dédié `config/composite.ksp-app-backfill-desk.json` prévu. - [X] Profils `devnet`, `mainnet`, `testnet` prévus avec couples Transport/Store de même réseau. - [X] Default prévu : `devnet`. - [X] Aucun `std.job_backfill.json` en V1. - [X] Les rôles sont dérivés de Transport et validés pour `getSignaturesForAddress` + `getTransaction`. - [X] Aucun rôle `history_backfill` n'est hardcodé ; la base standard actuelle expose `default`. - [X] Une incohérence réseau est rejetée avant Start. - [X] Le Desk ouvre Store via `ksp-store-lib`, jamais via backend direct. ## 6. Contrat IPC prévu - [X] DTO applicatifs spécifiques au Desk ; aucune contrainte serde/TS-RS ajoutée aux crates Job. - [X] Options DTO : réseau sûr, rôles, commitments, scopes, bornes, readiness. - [X] Request DTO : inputs campagne uniquement. - [X] Status DTO : lifecycle/phase/boundary/compteurs/checkpoint-present/contiguous/failure code. - [X] Cancel/Resume responses sûres. - [X] Aucun checkpoint opaque, Store, Transport, channel Tokio, URL, secret ou RAW payload ne traverse IPC. - [X] Monitoring prévu via latest-value + événement Tauri, avec commande status de resynchronisation. ## 7. Threat model - [X] URI Store et secrets Config restent backend-only. - [X] Endpoint URLs/provider credentials restent backend-only. - [X] Signatures et adresse ne sont pas loggées côté frontend. - [X] RAW transaction data n'est pas projetée. - [X] Bornes et signatures sont revalidées côté Rust. - [X] Double Start est rejeté atomiquement. - [X] Cancel/terminal race est résolue par lifecycle réel et handle installé avant spawn. - [X] Checkpoint frontend forgé impossible : aucun checkpoint n'est sérialisé. - [X] Capabilities Tauri prévues minimales : core + tracing seulement tant qu'aucun autre besoin n'est démontré. ## 8. Gates futures - [ ] Package Rust lib + bin conforme. - [ ] Ports Vite/HMR 1436/1437 stricts. - [ ] Splash/main + tracing conformes. - [ ] Composite Backfill Desk packagé et valide. - [ ] Transport readiness et role inventory sûrs. - [ ] Store readiness et cohérence réseau. - [ ] Quatre scopes + commitments + bornes mappés. - [ ] Single active run + Start. - [ ] Snapshot latest-value bridge. - [ ] Cancel + races terminales. - [ ] Checkpoint/frontier projection + Resume in-session. - [ ] Frontend/security/composition tests verts. - [ ] `cargo test --workspace` final vert. - [ ] `(cd crates/ksp-app-backfill-desk && cargo tauri build)` final vert. - [ ] Smoke live opt-in exécuté si environnement sûr disponible, sinon explicitement non requis. - [ ] Réconciliation README/USAGE/plan/validation dans sa tranche dédiée. - [ ] Prompt 0.3.8 + CHANGELOG + ROADMAP uniquement dans la lane de publication.