Files
khadhroony-solana-project/deltas/0.2.6/pre.018-fix.001.md

4.2 KiB

Delta 0.2.6-pre.018-fix.001 — ownership Config du canari resources et resynchronisation candidate

Base requise

0.2.6-pre.018 appliquée
workspace.package.version = 0.2.6-pre.18

Le gate opérateur du 22 août 2026 confirme :

cargo fmt --all                                  OK
python3 scripts/audit_rust_workspace_rules.py   clean
cargo check --workspace                         OK
cargo clippy --workspace --all-targets          OK
cargo test -p ksp-wallet-lib                    84 passed / 1 ignored
cargo test -p ksp-app-config-desk               OK
cargo test -p ksp-app-wallet-desk               OK

cargo test -p ksp-config-lib puis cargo test --workspace échouent toutefois sur le canari d'ownership :

workspace_crates_do_not_hardcode_config_managed_physical_files

La cause est locale à crates/ksp-app-wallet-desk/tests/release_compliance.rs : le nouveau test de resources de pre.018 recopie littéralement le nom physique du dotenv alors que KSP-CONFIG impose que ce nom reste possédé par ksp-config-lib.

Le cargo tauri build lancé ensuite a techniquement produit les bundles .deb, .rpm et .AppImage, mais ne constitue pas la preuve finale de release, puisque le gate Rust précédent était rouge. Il devra être rejoué après ce fix et redevenir l'absolue dernière opération.

Signal technique

workspace.package.version = 0.2.6-pre.18.fix.1
package.json Config Desk  = 0.2.6-pre.18.fix.1
package.json Wallet Desk  = 0.2.6-pre.18.fix.1
tauri.conf Config Desk    = 0.2.6-pre.18.fix.1
tauri.conf Wallet Desk    = 0.2.6-pre.18.fix.1
commit                    = v0.2.6-pre.018-fix.001

Aucun tag prerelease.

Correction ownership

Le canari Wallet Desk conserve exactement son objectif de sécurité, mais ne possède plus le nom physique du dotenv :

ksp_config_lib::DEFAULT_DOTENV_PATH

remplace le littéral local. La règle ksp-config-lib/tests/ownership.rs reste donc stricte ; aucun contournement, exclusion ou allow n'est ajouté.

Les autres interdictions du canari (wallets, logs, secret, private) restent inchangées car elles vérifient le contenu des resources Tauri et ne redéfinissent pas un nom de document Config enregistré.

Versions candidate

Les versions Cargo, npm et Tauri des deux Desks sont resynchronisées sur pre.18.fix.1. Le badge Wallet Desk suit le même signal.

Les canaris pre.018 ne figent plus une chaîne prerelease particulière : ils comparent maintenant package.json, tauri.conf.json et le badge Wallet Desk à env!("CARGO_PKG_VERSION"). Un futur pre.018-fix.NNN ne pourra donc pas introduire une divergence de version simplement parce qu'un test contient encore l'ancien numéro.

Parcours Tauri dev

Le parcours essayé avec :

bash -lc 'cd crates/ksp-app-wallet-desk && cargo tauri dev'

n'est pas retenu : dans l'environnement opérateur, le login shell remplace le PATH et perd Cargo.

La forme canonique reste crate-local, sans login shell :

cd crates/ksp-app-wallet-desk
KSP_WALLETS_DIRECTORY=var/wallet-desk-pre018-fix001 cargo tauri dev

ou, depuis la racine :

(cd crates/ksp-app-wallet-desk && KSP_WALLETS_DIRECTORY=var/wallet-desk-pre018-fix001 cargo tauri dev)

Validation opérateur requise

Rejouer le gate depuis le début :

cargo fmt --all
python3 scripts/audit_rust_workspace_rules.py
cargo check --workspace
cargo clippy --workspace --all-targets
cargo test -p ksp-config-lib
cargo test -p ksp-wallet-lib
cargo test -p ksp-app-config-desk
cargo test -p ksp-app-wallet-desk
cargo test --workspace

Puis les audits de dépendances si souhaités :

cargo tree -p ksp-config-lib --depth 1
cargo tree -p ksp-app-wallet-desk --depth 1
cargo tree -p ksp-app-wallet-desk -d

Le parcours fonctionnel cargo tauri dev et les smokes live retenus sont exécutés avant le build.

Après tout ce qui précède, l'absolue dernière opération est :

(cd crates/ksp-app-wallet-desk && cargo tauri build)

Si ce build est vert, 0.2.6-pre.018-fix.001 devient la candidate validée et la seule étape suivante est 0.2.6-rel.001 + tag stable v0.2.6.