Files
khadhroony-solana-project/deltas/0.1.4/pre.004-fix.001.md

4.0 KiB

Delta 0.1.4-pre.004-fix.001 — correction Clippy du verrou single-instance

Base requise

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 :

0.1.4-pre.4

à :

0.1.4-pre.4.fix.1

L'identifiant documentaire de livraison reste :

0.1.4-pre.004-fix.001

1. Cause du warning

Le launcher ouvre le fichier utilisé pour le verrou single-instance avec :

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 :

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 à :

"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 :

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 :

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 :

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.