v0.1.4-pre.004-fix.001

This commit is contained in:
2026-08-16 10:44:33 +02:00
parent fcc1e9913d
commit db80e58ff1
2 changed files with 141 additions and 2 deletions

View File

@@ -1,12 +1,12 @@
# file: Cargo.toml
# version: 65
# version: 66
[workspace]
resolver = "3"
members = ["crates/ksp-app-config-desk", "crates/ksp-config-lib", "crates/ksp-core-lib", "crates/ksp-logging-lib"]
[workspace.package]
version = "0.1.4-pre.4"
version = "0.1.4-pre.4.fix.1"
edition = "2024"
license = "MIT"
repository = "https://git.sasedev.com/Sasedev/khadhroony-solana-project"

View File

@@ -0,0 +1,139 @@
<!-- file: deltas/0.1.4/pre.004-fix.001.md -->
<!-- version: 1 -->
# Delta 0.1.4-pre.004-fix.001 — correction Clippy du verrou single-instance
## Base requise
```text
0.1.4-pre.004
workspace.package.version = "0.1.4-pre.4"
```
La tranche `pre.004` a été appliquée puis validée localement. Les contrôles fournis ont montré :
- `cargo fmt --all` : succès ;
- `cargo check --workspace` : succès ;
- `cargo test -p ksp-app-config-desk` : succès, dont le test d'API publique ;
- `cargo test -p ksp-config-lib` : succès, `87` tests unitaires + `4` tests ownership + `12` tests API publique ;
- `cargo tree -p ksp-app-config-desk` : exécuté ;
- `cargo clippy --workspace --all-targets` : compilation réussie mais avec un warning `clippy::suspicious_open_options` dans `src/main.rs`.
Ce fix corrige uniquement ce warning avant de poursuivre vers le frontend de `pre.005`.
## Version Cargo
Le correctif touche un fichier Rust consommé par le runtime. Conformément à `VER-ID-007` et `VER-ID-010`, `workspace.package.version` passe de :
```text
0.1.4-pre.4
```
à :
```text
0.1.4-pre.4.fix.1
```
L'identifiant documentaire de livraison reste :
```text
0.1.4-pre.004-fix.001
```
## 1. Cause du warning
Le launcher ouvre le fichier utilisé pour le verrou single-instance avec :
```rust
std::fs::OpenOptions::new()
.read(true)
.write(true)
.create(true)
```
Comme `create(true)` est demandé, Clippy exige que le comportement de troncature soit explicite. Le fichier n'est pas un fichier de contenu à réécrire : il sert uniquement de support au verrou exclusif inter-processus.
Le troncage n'est donc pas souhaité.
## 2. Correction
L'ouverture devient explicitement non destructive :
```rust
std::fs::OpenOptions::new()
.read(true)
.write(true)
.create(true)
.truncate(false)
.open(&lock_path)
```
Cette modification :
- supprime l'ambiguïté signalée par `clippy::suspicious_open_options` ;
- ne modifie pas le lifecycle du verrou ;
- ne vide pas inutilement un fichier de lock existant ;
- conserve `try_lock_exclusive()` comme mécanisme single-instance effectif.
Aucune suppression du fichier de lock n'est introduite : le verrou appartient au descripteur ouvert et est libéré lorsque le processus ferme ce descripteur.
## 3. Capability tracing à venir
`tauri-plugin-tracing` n'est pas encore installé dans `pre.004-fix.001`. La capability actuelle reste donc volontairement limitée à :
```json
"permissions": [
"core:default"
]
```
Lors de l'introduction effective de `tauri-plugin-tracing`, prévue avec le frontend/tracing de `pre.005`, `crates/ksp-app-config-desk/capabilities/default.json` devra ajouter dans le même delta :
```text
tracing:default
```
Le permissionnement ne doit pas être ajouté avant le plugin auquel il correspond.
## 4. Fichiers modifiés
| Fichier | Type | Rôle |
|------------------------------------------|----------|-----------------------------------|
| `Cargo.toml` | build | version technique du fix |
| `crates/ksp-app-config-desk/src/main.rs` | Rust | politique de troncature explicite |
| `deltas/0.1.4/pre.004-fix.001.md` | Markdown | traçabilité du correctif |
## 5. Hors scope
Ce correctif n'ajoute pas :
- `tauri-plugin-tracing` ;
- `tracing:default` ;
- packages npm ;
- frontend Vite/TypeScript/SCSS ;
- Config/Logging runtime applicatif ;
- commande Tauri ;
- DTO TS-RS.
Ces éléments restent dans les tranches prévues à partir de `pre.005`.
## 6. Validations demandées
Après application du fix :
```bash
cargo fmt --all
cargo check --workspace
cargo clippy --workspace --all-targets
cargo test -p ksp-app-config-desk
cargo tree -p ksp-app-config-desk
```
Le résultat attendu de `cargo clippy --workspace --all-targets` est l'absence du warning :
```text
clippy::suspicious_open_options
```
Aucun test Config supplémentaire n'est requis pour cette correction localisée au launcher de l'application ; `ksp-config-lib` n'est pas modifiée.