v0.3.7-pre.013-fix.001

This commit is contained in:
2026-09-02 21:14:15 +02:00
parent fa04bdbcf6
commit 0847edda4c
4 changed files with 104 additions and 5 deletions

View File

@@ -1,12 +1,12 @@
# file: Cargo.toml
# version: 438
# version: 439
[workspace]
resolver = "3"
members = ["crates/ksp-app-backfill-desk", "crates/ksp-app-config-desk", "crates/ksp-app-solprices-desk", "crates/ksp-app-wallet-desk", "crates/ksp-config-lib", "crates/ksp-core-lib", "crates/ksp-interface-lib", "crates/ksp-job-api", "crates/ksp-job-backfill-lib", "crates/ksp-logging-lib", "crates/ksp-offchain-transport-lib", "crates/ksp-onchain-transport-lib", "crates/ksp-program-api", "crates/ksp-store-api", "crates/ksp-store-lib", "crates/ksp-store-postgres-lib", "crates/ksp-wallet-lib"]
[workspace.package]
version = "0.3.7-pre.13"
version = "0.3.7-pre.13.fix.1"
edition = "2024"
license = "MIT"
repository = "https://git.sasedev.com/Sasedev/khadhroony-solana-project"

View File

@@ -1,5 +1,5 @@
// file: crates/ksp-app-backfill-desk/tests/desktop_contract.rs
// version: 15
// version: 16
//! Structural desktop contract checks for the Backfill Desk scaffold.
@@ -458,7 +458,7 @@ fn pre_013_final_v1_command_and_frontend_control_inventory_is_exact() {
assert!(!tauri.contains(forbidden), "unexpected V1 Tauri command marker {forbidden}");
}
let frontend = read_text(root.join("frontend/main.html").as_path());
for required in ["backfillStart", "backfillCancel", "backfillResume", "backfillRefresh", "backfillProgramIds"] {
for required in ["startBackfillRequest", "cancelBackfillRun", "resumeBackfillRun", "refreshBackfillStatus", "backfillProgramIds"] {
assert!(frontend.contains(required), "missing final frontend control {required}");
}
}

View File

@@ -0,0 +1,79 @@
<!-- file: deltas/0.3.7/pre.013-fix.001.md -->
<!-- version: 1 -->
# Delta `0.3.7-pre.013-fix.001` — canari frontend aligné sur les IDs réels
## 1. Base requise
```text
0.3.7-pre.013
workspace.package.version = 0.3.7-pre.13
```
## 2. Défaillance observée
Le gate opérateur de `pre.013` passe les audits, `cargo check --workspace`, Clippy et les tests Job Backfill, puis échoue dans `desktop_contract.rs` :
```text
pre_013_final_v1_command_and_frontend_control_inventory_is_exact ... FAILED
missing final frontend control backfillStart
```
Le test avait introduit des noms synthétiques qui ne correspondent pas aux IDs HTML existants.
## 3. Correction
Le canari conserve un inventaire exact mais cible les IDs frontend réels :
```text
startBackfillRequest
cancelBackfillRun
resumeBackfillRun
refreshBackfillStatus
backfillProgramIds
```
Aucun fichier de production ou frontend n'est modifié.
## 4. Échec distinct hors périmètre
Le replay workspace étendu révèle aussi un échec `ksp-config-lib` parce que le `config/std.store.json` local utilise désormais TLS `disabled` tandis que le test/fixture committed attendent `verify_full`. Ce changement Config est antérieur à `pre.013` et n'est pas mélangé dans ce fix. Il doit être réconcilié dans une prerelease dédiée avant le gate technique final.
## 5. Version
```text
workspace.package.version = 0.3.7-pre.13.fix.1
label = 0.3.7-pre.013-fix.001
```
## 6. Fichiers ajoutés
```text
deltas/0.3.7/pre.013-fix.001.md
```
## 7. Fichiers modifiés
```text
Cargo.toml
crates/ksp-app-backfill-desk/tests/desktop_contract.rs
docs/validation/024-V0_3_7_BACKFILL_DESK.md
```
## 8. Fichiers supprimés
Aucun.
## 9. Gate après application
```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
```
Aucun `cargo tree` requis : aucune dépendance ni feature Cargo n'est modifiée.

View File

@@ -1,5 +1,5 @@
<!-- file: docs/validation/024-V0_3_7_BACKFILL_DESK.md -->
<!-- version: 22 -->
<!-- version: 23 -->
# Validation v0.3.7 — Backfill Desk
@@ -575,3 +575,23 @@ Le gate opérateur de `pre.012-fix.001` ferme la tranche frontend : audits Rust/
- [X] aucune dépendance/feature Cargo ajoutée ;
- [X] audits statiques Rust/Markdown propres dans l'environnement d'assemblage ;
- [ ] replay opérateur `cargo fmt/check/clippy/test` de `pre.013` à exécuter avant le gate technique final `pre.014`.
## 28. `pre.013-fix.001` — inventaire frontend borné aux IDs réels
Le replay opérateur de `pre.013` confirme les audits Rust/Markdown, `cargo check --workspace`, Clippy et les 50 tests `ksp-job-backfill-lib`. La suite Backfill Desk s'arrête toutefois sur le nouveau canari `pre_013_final_v1_command_and_frontend_control_inventory_is_exact` : le test cherchait cinq noms de contrôles synthétiques (`backfillStart`, `backfillCancel`, `backfillResume`, `backfillRefresh`, `backfillProgramIds`) alors que les quatre premiers ne correspondent pas aux IDs HTML réels.
Le correctif conserve la règle d'inventaire exacte et remplace uniquement ces marqueurs par les IDs réellement possédés par le frontend : `startBackfillRequest`, `cancelBackfillRun`, `resumeBackfillRun`, `refreshBackfillStatus`, `backfillProgramIds`. Aucun HTML, TypeScript, runtime, DTO, IPC, Config ou manifest de crate n'est modifié.
Le même replay opérateur a également révélé un échec distinct de `ksp-config-lib` : le fichier `config/std.store.json` local a été passé à TLS `disabled` alors que le test committed et sa fixture attendent encore `verify_full`. Cette incohérence est antérieure à `pre.013` et n'est volontairement pas mélangée dans ce fix de hardening ; elle devra être réconciliée dans une prerelease dédiée avant le gate technique final.
### Gate du fix
- [X] inventaire Tauri inchangé à neuf commandes ;
- [X] IDs frontend canariés sur les identifiants HTML réels ;
- [X] suites `dependency_boundary.rs` et `release_completeness.rs` réauditées statiquement ;
- [X] aucun code de production/frontend/Config modifié ;
- [X] aucune dépendance/feature Cargo ajoutée ;
- [X] version Cargo synchronisée en `0.3.7-pre.13.fix.1` ;
- [X] audits statiques Rust/Markdown propres dans l'environnement d'assemblage ;
- [ ] replay opérateur `cargo fmt/check/clippy/test` du fix à exécuter avant toute nouvelle prerelease.