0.3.15-pre.012-fix.001
This commit is contained in:
86
deltas/0.3.15/pre.012-fix.001.md
Normal file
86
deltas/0.3.15/pre.012-fix.001.md
Normal file
@@ -0,0 +1,86 @@
|
||||
<!-- file: deltas/0.3.15/pre.012-fix.001.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# Delta `0.3.15-pre.012-fix.001`
|
||||
|
||||
## Base
|
||||
|
||||
```text
|
||||
base archive : ksp-general-0.3.15-pre.012.zip
|
||||
base SHA-256 : 627a1152e3c5d97517dfbe7de630ca47dc52fd2c3b7683a325b52cfea7291331
|
||||
base version : 0.3.15-pre.12
|
||||
```
|
||||
|
||||
## Motif du fix
|
||||
|
||||
Le gate opérateur du 16 septembre 2026 a révélé un défaut de compilation dans la nouvelle protection stale-inventory de `pre.012`. `AppState::start_route` gardait un `std::sync::MutexGuard<u32>` dans la portée du futur jusqu'au `await` de `start_route_runtime`. Tauri exige un futur `Send` pour une commande async ; le Desk échouait donc à compiler avec :
|
||||
|
||||
```text
|
||||
future returned by `start_route` is not `Send`
|
||||
std::sync::MutexGuard<'_, u32> is not `Send`
|
||||
```
|
||||
|
||||
Les audits Rust/Markdown étaient propres et les tests Worker continuaient de passer, mais `cargo check`, Clippy, les tests Desk/workspace et `cargo tauri dev` étaient bloqués par cette erreur.
|
||||
|
||||
## Correction
|
||||
|
||||
La préparation Start synchrone est maintenant enfermée dans une portée lexicale :
|
||||
|
||||
```text
|
||||
let prepared = {
|
||||
lock generation
|
||||
revalidate + reconstruct Config/Transport
|
||||
return prepared value
|
||||
};
|
||||
await start_route_runtime(...)
|
||||
```
|
||||
|
||||
Le guard de génération est ainsi détruit structurellement avant le premier `await`. La protection stale-inventory de `pre.012` est conservée : aucune nouvelle génération ne peut être publiée entre le contrôle et la reconstruction synchrones.
|
||||
|
||||
Un canari de compilation impose désormais `Future + Send` au futur `AppState::start_route`, et le canari desktop vérifie la portée lexicale au lieu d'accepter `std::mem::drop(generation)` comme preuve suffisante.
|
||||
|
||||
## Version
|
||||
|
||||
```text
|
||||
workspace.package.version : 0.3.15-pre.12.fix.1
|
||||
root Cargo header counter : 623
|
||||
```
|
||||
|
||||
## Frontières
|
||||
|
||||
Aucun changement de comportement pour :
|
||||
|
||||
```text
|
||||
Start / Stop / shutdown
|
||||
Config / Transport / Store
|
||||
Worker / Common RAW
|
||||
monitoring frontend
|
||||
acquisition / replay / repair
|
||||
IPC security contract
|
||||
```
|
||||
|
||||
## Validation d'assemblage
|
||||
|
||||
Exécuté dans l'environnement d'assemblage : contrôles statiques ciblés du diff, inventaire du delta, intégrité ZIP et reconstruction byte-exact à partir de `pre.012`.
|
||||
|
||||
Cargo/rustfmt ne sont pas disponibles dans cet environnement. Les gates Cargo de ce fix restent à confirmer par l'opérateur.
|
||||
|
||||
## Inventaire exact du delta
|
||||
|
||||
Ajout :
|
||||
|
||||
```text
|
||||
deltas/0.3.15/pre.012-fix.001.md
|
||||
```
|
||||
|
||||
Modifications :
|
||||
|
||||
```text
|
||||
Cargo.toml
|
||||
crates/ksp-app-raw-transaction-ingest-desk/src/app_state.rs
|
||||
crates/ksp-app-raw-transaction-ingest-desk/tests/desktop_contract.rs
|
||||
crates/ksp-app-raw-transaction-ingest-desk/unit_tests/route_runtime.rs
|
||||
docs/validation/032-V0_3_15_RAW_TRANSACTION_INGEST_DESK.md
|
||||
```
|
||||
|
||||
Suppressions : aucune.
|
||||
Reference in New Issue
Block a user