v0.3.7-pre.009
This commit is contained in:
124
deltas/0.3.7/pre.009.md
Normal file
124
deltas/0.3.7/pre.009.md
Normal file
@@ -0,0 +1,124 @@
|
||||
<!-- file: deltas/0.3.7/pre.009.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# Delta `0.3.7-pre.009` — monitoring latest-value Backfill Desk
|
||||
|
||||
## 1. Base requise
|
||||
|
||||
```text
|
||||
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 :
|
||||
|
||||
```text
|
||||
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
|
||||
|
||||
```text
|
||||
workspace.package.version = 0.3.7-pre.9
|
||||
label = 0.3.7-pre.009
|
||||
```
|
||||
|
||||
## 8. Fichiers ajoutés
|
||||
|
||||
```text
|
||||
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
|
||||
|
||||
```text
|
||||
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
|
||||
|
||||
```text
|
||||
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_change` pré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` :
|
||||
|
||||
```text
|
||||
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.
|
||||
Reference in New Issue
Block a user