4.7 KiB
Delta 0.3.7-pre.009 — monitoring latest-value Backfill Desk
1. Base requise
0.3.7-pre.008-fix.003
workspace.package.version = 0.3.7-pre.8.fix.3
2. Objectif
Projeter le flux latest-value déjà fourni par ksp-job-backfill-lib vers Backfill Desk, avec événement coalescé et commande de resynchronisation, sans parser les logs et sans encore ouvrir Cancel ou Resume.
3. Bridge latest-value
BackfillRunLaunch conserve une BackfillSnapshotSource indépendante du runtime exécuté. Le command handler démarre un task de monitoring qui lit la valeur complète courante puis attend JobSnapshotSource::wait_for_change; les updates intermédiaires peuvent être coalescées par le contrat Job et chaque notification frontend reste une valeur complète.
L'événement Tauri est ksp-backfill-status. Aucun event bus générique, queue métier ou parsing des logs n'est introduit.
4. Resynchronisation et terminal retenu
BackfillRunState conserve le handle pendant l'activité et retient la dernière JobNotification<BackfillJobSnapshot> terminale avant de libérer le slot single-run. backfill_status retourne la notification active courante ou ce dernier terminal retenu. L'UI peut ainsi se recaler au démarrage, après Start ou sur demande manuelle même si elle a manqué un événement.
5. DTO de statut sûr
BackfillRunStatusDto expose uniquement :
active / terminal
job_id / job_kind
sequence (texte décimal)
state / completion / phase / scope_kind / discovery_boundary
candidates_selected / candidates_admitted / candidates_finished
entities_inserted / entities_existing / entities_purged
observations_inserted / observations_existing
missing / conflicts / cancelled_candidates / holes
maximum_in_flight / contiguous_completed
checkpoint_present
failure_domain / failure_code
Aucune adresse, signature, ancre, URL/endpoint/provider, credential, payload RAW, contexte d'erreur ou valeur de checkpoint ne traverse cette surface.
6. Frontend
Le frontend installe le listener ksp-backfill-status, resynchronise via backfill_status, affiche le snapshot complet dans une carte dédiée et offre une action Resynchroniser. Le bouton Start reste verrouillé tant que le statut est actif et est réactivé sur terminal.
Cancel, état cancelling piloté par l'opérateur et shutdown coopératif restent réservés à pre.010.
7. Version
workspace.package.version = 0.3.7-pre.9
label = 0.3.7-pre.009
8. Fichiers ajoutés
crates/ksp-app-backfill-desk/src/backfill_status.rs
crates/ksp-app-backfill-desk/unit_tests/backfill_status.rs
deltas/0.3.7/pre.009.md
9. 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/backfill_run.rs
crates/ksp-app-backfill-desk/src/lib.rs
crates/ksp-app-backfill-desk/src/tauri.rs
crates/ksp-app-backfill-desk/tests/desktop_contract.rs
crates/ksp-app-backfill-desk/tests/desktop_security.rs
docs/plans/028-V0_3_7_BACKFILL_DESK_PLAN.md
docs/validation/024-V0_3_7_BACKFILL_DESK.md
10. Fichiers supprimés
Aucun.
11. Gate précédent acquis
Le replay opérateur de 0.3.7-pre.008-fix.003 est intégralement propre : audits Rust/Markdown, cargo check --workspace, Clippy, ksp-job-backfill-lib et toutes les suites Backfill Desk passent.
12. 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 :
- syntaxe TypeScript par transpilation locale ;
- source latest-value et
wait_for_changeprésents, sans log parsing ; - terminal retenu + commande de resynchronisation ;
- DTO de monitoring sans payload métier/checkpoint concret ;
- capabilities et dépendances inchangées ;
- contrôle différentiel strict et reconstruction par application du delta.
13. 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.010 :
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
14. Suite
pre.010 ajoutera Cancel, état cancelling, fermeture coopérative et races Start/Cancel/terminal.