Files
khadhroony-solana-project/deltas/0.3.7/pre.012.md
2026-09-02 20:29:50 +02:00

4.8 KiB

Delta 0.3.7-pre.012 — frontend fonctionnel, summary terminal et autocomplete Program ID

1. Base requise

0.3.7-pre.011
workspace.package.version = 0.3.7-pre.11

2. Objectif

Terminer le frontend fonctionnel sans ouvrir de nouveau runtime : enrichir les feedbacks terminal/erreurs et ajouter à l'adresse un autocomplete HTML libre alimenté exclusivement par le registre canonique ksp-core-lib::entries()/ProgramIdEntry.

3. Dataset Program ID canonique

ProgramIdAutocompleteOptionDto projette uniquement les métadonnées publiques nécessaires à l'UX :

program_id
code
name
domain
family
protocol

program_id_autocomplete_options() parcourt directement ksp_core_lib::entries(). Aucune liste de Program IDs n'est copiée dans Backfill Desk ni dans le frontend.

BackfillDeskOptionsDto transporte ce dataset sûr avec les autres options de campagne. Aucun endpoint, URL, credential, secret ou donnée Store n'est ajouté.

4. Autocomplete libre côté HTML

L'input backfillAddress reste un <input type="text"> libre et référence :

<datalist id="backfillProgramIds">

Le frontend construit chaque <option> avec le Program ID canonique comme value, un label lisible et des data-* sûrs (code, name, domain, family, protocol). Une adresse valide qui n'appartient pas au registre reste acceptée normalement par le mapping Rust existant.

L'instrumentation de sélection ne journalise jamais l'adresse : seulement le code KSP éventuel et registryMatch. Aucun browser storage n'est introduit.

5. Polish monitoring et erreurs

La carte latest-value affiche désormais un résumé terminal explicite pour completed, cancelled ou failed. Les échecs Cancel et Resume sont projetés dans leurs feedbacks UI via le contrat d'erreur sûr déjà existant, sans contexte arbitraire ni payload métier.

Aucun comportement Job/Store/Transport, checkpoint, Resume ou Cancel n'est modifié.

6. Version

workspace.package.version = 0.3.7-pre.12
label = 0.3.7-pre.012

7. Fichiers ajoutés

deltas/0.3.7/pre.012.md

8. Fichiers modifiés

Cargo.toml
crates/ksp-app-backfill-desk/frontend/main.html
crates/ksp-app-backfill-desk/frontend/ts/main.ts
crates/ksp-app-backfill-desk/src/app_state.rs
crates/ksp-app-backfill-desk/src/dto_common.rs
crates/ksp-app-backfill-desk/src/lib.rs
crates/ksp-app-backfill-desk/src/transport_runtime.rs
crates/ksp-app-backfill-desk/tests/desktop_contract.rs
crates/ksp-app-backfill-desk/tests/desktop_security.rs
crates/ksp-app-backfill-desk/unit_tests/backfill_request.rs
crates/ksp-app-backfill-desk/unit_tests/dto_common.rs
docs/plans/028-V0_3_7_BACKFILL_DESK_PLAN.md
docs/validation/024-V0_3_7_BACKFILL_DESK.md

9. Fichiers supprimés

Aucun.

10. Gate précédent acquis

Le replay opérateur de 0.3.7-pre.011 est propre : audits Rust/Markdown, cargo check --workspace, Clippy, 50 tests unitaires Job Backfill et toutes les suites Backfill Desk passent. Le smoke Tauri confirme également la reprise in-session réelle avec nouveau JobId backend et checkpoint réémis Rust-only.

11. Validations exécutées dans l'environnement d'assemblage

python3 scripts/audit_rust_workspace_rules.py
python3 scripts/audit_markdown_tables.py README.md RULES.md ROADMAP.md CHANGELOG.md docs prompts crates deltas/0.3.7

Contrôles ciblés :

  • dataset dérivé exclusivement de ksp_core_lib::entries() ;
  • aucune valeur Program ID canonique hardcodée dans HTML/TypeScript ;
  • <datalist> relié à un input adresse toujours libre ;
  • data-* limités aux métadonnées publiques du registre ;
  • aucune adresse journalisée pendant l'évaluation autocomplete ;
  • aucun localStorage, sessionStorage, IndexedDB ou cookie ajouté ;
  • summary terminal et feedbacks Cancel/Resume sûrs ;
  • aucune dépendance/feature Cargo modifiée ;
  • std.store.json inchangé ;
  • syntaxe TypeScript validée par transpilation locale ;
  • contrôle différentiel des headers et reconstruction stricte du delta.

12. Validations non exécutées dans l'environnement d'assemblage

cargo et rustfmt ne sont pas disponibles dans l'environnement d'assemblage. Gate opérateur obligatoire avant pre.013 :

cargo fmt --all
python3 scripts/audit_rust_workspace_rules.py
python3 scripts/audit_markdown_tables.py README.md RULES.md ROADMAP.md CHANGELOG.md docs prompts crates deltas/0.3.7
cargo check --workspace
cargo clippy --workspace --all-targets
cargo test -p ksp-job-backfill-lib
cargo test -p ksp-app-backfill-desk

Aucun cargo tree n'est requis : dépendances et features Cargo sont inchangées.

13. Suite

pre.013 est réservé au hardening/completude : tests desktop/security/dependency/composition/release-completeness et canaries DTO, sans nouvelle capacité métier.