Files
khadhroony-solana-project/docs/validation/024-V0_3_7_BACKFILL_DESK.md
2026-09-02 09:31:46 +02:00

9.2 KiB

Validation v0.3.7 — Backfill Desk

1. Gate pre.001

  • Archive KSP v0.3.6 testée intégralement avant travail.
  • Archive kbot3 testée intégralement et extraite dans un arbre séparé.
  • Aucune entrée ZIP absolue, traversal, séparateur inversé ou lien symbolique détecté.
  • workspace.package.version = 0.3.6 confirmé sur la base.
  • deltas/0.3.6/rel.001.md confirmé.
  • ksp-job-api, ksp-job-backfill-lib et les trois Desks existants confirmés.
  • Règles générales, Rust, dépendances, documentation, file contracts, version workflow et prompt structure relus.
  • Architectures Layers/Dependencies/Components/Jobs/Apps relues.
  • README/USAGE/plan/validation/delta v0.3.6 relus.
  • Surfaces publiques Job/Backfill auditées depuis le code stable.
  • Config composite/Transport/Store audités.
  • Gabarits Config Desk, Wallet Desk et SOL Prices Desk audités.
  • Ports 1436/1437 confirmés libres dans les gabarits existants ; 1434/1435 appartiennent à SOL Prices.
  • kbot3 audité uniquement comme référence fonctionnelle/UX.
  • Matrice REPRENDRE/REDESSINER/REPORTER/REJETER produite.
  • Screen map, DTO/command map, Config/composition map et dependency map produits.
  • Threat model produit.
  • Single-run lifecycle, rôle HTTP, validation réseau et reprise in-session tranchés.
  • Gate Tauri/live tranché sans dépendance payante obligatoire.
  • Forecast scindé afin d'éviter une tranche Transport+Store manifestement trop large.
  • 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

  • python3 scripts/audit_rust_workspace_rules.py : propre, zéro candidat d'export.
  • 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

  • BackfillRequest reste l'autorité des bornes et de la cohérence des scopes.
  • Latest/Before/After/Explicit restent les seuls scopes V1.
  • BackfillJobRuntime reste single-run.
  • BackfillJobHandle reste la primitive de contrôle.
  • BackfillSnapshotSource latest-value reste la primitive d'observation.
  • BackfillCheckpoint reste opaque et Rust-only.
  • Transport reste propriétaire retry/reroute/rate-limit/provider/endpoint.
  • Store reste propriétaire backend/persistence/idempotence.
  • Config reste propriétaire documents/env/secrets/composites.

5. Décisions de composition

  • Composite dédié config/composite.ksp-app-backfill-desk.json prévu.
  • Profils devnet, mainnet, testnet prévus avec couples Transport/Store de même réseau.
  • Default prévu : devnet.
  • Aucun std.job_backfill.json en V1.
  • Les rôles sont dérivés de Transport et validés pour getSignaturesForAddress + getTransaction.
  • Aucun rôle history_backfill n'est hardcodé ; la base standard actuelle expose default.
  • Une incohérence réseau est rejetée avant Start.
  • Le Desk ouvre Store via ksp-store-lib, jamais via backend direct.

6. Contrat IPC prévu

  • DTO applicatifs spécifiques au Desk ; aucune contrainte serde/TS-RS ajoutée aux crates Job.
  • Options DTO : réseau sûr, rôles, commitments, scopes, bornes, readiness.
  • Request DTO : inputs campagne uniquement.
  • Status DTO : lifecycle/phase/boundary/compteurs/checkpoint-present/contiguous/failure code.
  • Cancel/Resume responses sûres.
  • Aucun checkpoint opaque, Store, Transport, channel Tokio, URL, secret ou RAW payload ne traverse IPC.
  • Monitoring prévu via latest-value + événement Tauri, avec commande status de resynchronisation.

7. Threat model

  • URI Store et secrets Config restent backend-only.
  • Endpoint URLs/provider credentials restent backend-only.
  • Signatures et adresse ne sont pas loggées côté frontend.
  • RAW transaction data n'est pas projetée.
  • Bornes et signatures sont revalidées côté Rust.
  • Double Start est rejeté atomiquement.
  • Cancel/terminal race est résolue par lifecycle réel et handle installé avant spawn.
  • Checkpoint frontend forgé impossible : aucun checkpoint n'est sérialisé.
  • 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.

9. pre.002 — scaffold desktop

Le scaffold ksp-app-backfill-desk matérialise le gabarit Desk avant toute ouverture Transport/Store/Backfill : lib+bin, verrou single-instance, Config/Logging standard transitoire, splash commun, bridge Logging frontend, shell Backfill / Diagnostics, ports 1436/1437 et capabilities core:default + tracing:default.

Contraintes de gabarit vérifiées statiquement : mêmes assets splash/logo/DOS Amazigh que les trois Desk existantes, corps des cinq fichiers SASS partagés identique à SOL Prices Desk, splash HTML/SCSS identique hors identité Backfill et métadonnées de fichier, shell commun header + sidebar + content + footer, dépendances frontend minimales @fltsci/tauri-plugin-tracing, Font Awesome, Tauri API, Bootstrap, ResizeObserver polyfill et SimpleBar, plus les mêmes devDependencies que les trois Desk. Les clics, tabs, transitions de vue, refresh diagnostic et IPC sont instrumentés sans payload Backfill, adresse, signature, endpoint ou secret.

Gate statique local

  • audit Rust workspace propre, zéro candidat d'export ;
  • audit Markdown propre : 270 tableaux / 149 fichiers ;
  • 4 manifests JSON et 2 manifests TOML parsés ;
  • 6 dépendances frontend minimales aux versions du gabarit ;
  • devDependencies strictement identiques dans Config Desk, Wallet Desk, SOL Prices Desk et Backfill Desk ;
  • 5 assets binaires strictement identiques dans les quatre Desk ;
  • 5 fichiers SASS partagés identiques à SOL Prices Desk hors header de propriété ;
  • splash commun et shell sidebar contrôlés ;
  • capabilities core:default + tracing:default seulement ;
  • aucune dépendance Transport/Store/Backfill ouverte en pre.002 ;
  • audit frontend interaction/security propre ;
  • audit syntaxique TypeScript propre sur 5 fichiers ;
  • diff pre.001 -> pre.002 borné à 46 ajouts, 3 modifications et aucune suppression ;
  • cargo fmt/check/clippy/test : non exécutés, cargo/rustfmt absents du sandbox ;
  • typecheck npm complet / build Tauri : non exécutés dans le sandbox.

Le contrôle TypeScript local est syntaxique avec le compilateur global disponible ; il ne remplace pas le typecheck complet avec dépendances npm et bindings TS-RS générés. Toute correction révélée par le gate opérateur reste dans la lane pre.002-fix.NNN.