v0.3.7-pre.012

This commit is contained in:
2026-09-02 20:29:50 +02:00
parent 618f940310
commit 4c16607e22
14 changed files with 388 additions and 26 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/plans/028-V0_3_7_BACKFILL_DESK_PLAN.md -->
<!-- version: 11 -->
<!-- version: 12 -->
# Plan v0.3.7 — Backfill Desk
@@ -292,6 +292,8 @@ La commande `backfill_resume()` alloue un nouveau JobId backend, refuse un run a
Formulaire complet, états responsive, instrumentation sûre, summary terminal, erreurs, boutons contextuels, aucun secret/browser storage. L'adresse reste une saisie libre, mais reçoit un autocomplete HTML via `datalist` alimenté depuis le registre canonique `ksp-core-lib::entries()`/`ProgramIdEntry` : aucune copie locale de Program IDs, et une valeur arbitraire valide reste toujours acceptée. Le comportement fonctionnel recherché est celui de l'ancien dataset `ks-program-ids` de kbot3, sans reprise de son code.
La tranche matérialise ce contrat via `ProgramIdAutocompleteOptionDto`, ajouté à `BackfillDeskOptionsDto`. Chaque `<option>` du `datalist` reçoit le Program ID canonique comme `value` et des `data-*` sûrs (`code`, `name`, `domain`, `family`, `protocol`) uniquement pour l'UX. Une sélection issue du registre ne journalise que le code KSP et le booléen de correspondance, jamais l'adresse saisie. La carte de monitoring reçoit en plus un résumé terminal explicite et les échecs Cancel/Resume sont projetés dans des feedbacks sûrs sans contexte arbitraire.
### pre.013 — hardening et complétude
Tests desktop/security/dependency/composition/release completeness, canaries DTO et scan des dépendances/interdictions.

View File

@@ -1,5 +1,5 @@
<!-- file: docs/validation/024-V0_3_7_BACKFILL_DESK.md -->
<!-- version: 19 -->
<!-- version: 20 -->
# Validation v0.3.7 — Backfill Desk
@@ -525,5 +525,18 @@ Le frontend expose **Reprendre** uniquement pour un snapshot terminal avec `chec
- [X] frontend Resume sans checkpoint ni payload de campagne ;
- [X] aucun fichier/table/JSON de checkpoint durable ajouté ;
- [X] aucune dépendance/feature Cargo ajoutée ;
- [ ] `cargo fmt/check/clippy/test` de `pre.011` à rejouer par l'opérateur.
- [X] replay opérateur `cargo fmt/check/clippy/test` de `pre.011` propre : 50 tests unitaires Job Backfill et toutes les suites Backfill Desk passent.
Le smoke Tauri `pre.011` confirme également le Resume réel : après un timeout Transport sur un run terminal, `backfill_resume` réémet le checkpoint Rust-only vers un nouveau JobId backend, le nouveau run est admis et repart sur le même rôle HTTP ; un Cancel ciblé ultérieur est accepté puis terminalise proprement le run repris.
## Pre.012 — frontend fonctionnel, summary terminal et autocomplete Program ID
- [X] `BackfillDeskOptionsDto` expose un dataset Program ID dérivé exclusivement de `ksp-core-lib::entries()`.
- [X] `ProgramIdAutocompleteOptionDto` ne contient que `program_id`, `code`, `name`, `domain`, `family` et `protocol`.
- [X] L'input `backfillAddress` reste un champ texte libre et référence `backfillProgramIds` via l'attribut HTML `list`.
- [X] Le frontend construit le `datalist` sans Program ID hardcodé et ajoute des `data-*` sûrs pour l'UX.
- [X] La sélection autocomplete ne journalise jamais l'adresse, seulement le code KSP éventuel et un booléen `registryMatch`.
- [X] Aucun `localStorage`, `sessionStorage`, IndexedDB ou cookie n'est ajouté.
- [X] Le monitoring affiche un résumé terminal explicite et les erreurs Cancel/Resume sont rendues via la projection d'erreur sûre.
- [X] Aucune dépendance/feature Cargo, aucun Store/Transport/Job runtime et aucun `std.store.json` modifié.
- [ ] Gate opérateur `cargo fmt` + audits + check/clippy/tests Backfill à rejouer avant `pre.013`.