v0.3.2-pre.004-fix.001

This commit is contained in:
2026-08-29 19:04:47 +02:00
parent 6d2b1401aa
commit 0a4cddafc4
17 changed files with 509 additions and 99 deletions

View File

@@ -0,0 +1,77 @@
<!-- file: deltas/0.3.2/pre.004-fix.001.md -->
<!-- version: 1 -->
# Delta `0.3.2-pre.004-fix.001` — Store targets réseau-spécifiques + gate fixes
## 1. Base
Base exacte : `0.3.2-pre.004`. Le gate opérateur du 29 août 2026 confirme `cargo check`, les tests Config/Store principaux et les trois builds Tauri, mais révèle :
```text
1 warning Clippy collapsible_if dans ksp-config-lib/unit_tests/store.rs
1 échec Config Desk : fixture cfg.std.store absente
```
La discussion de design menée pendant ce gate confirme aussi qu'une instance `Store` ne doit jamais multiplexer plusieurs réseaux.
## 2. Décision target/réseau
Le mécanisme de profiles Config existant devient directement le mécanisme de targets Store nommés :
```text
profile_id = target Store nommé
default_profile = target autonome
profile forcé = target explicitement imposé par job/worker/app
1 target = 1 network + 1 backend + 1 URI/base
1 StoreSettings = 1 RawNetworkId + 1 backend
```
`ksp-store-lib` ne contient aucun registry ni routeur multi-target. Pour changer de réseau, le consumer résout un autre profile `std.store` puis ouvre une autre instance Store.
## 3. Targets committed
```text
devnet -> network devnet -> KSP_SECRET_STORE_DEVNET_POSTGRES_URI -> ksp_devnet
mainnet -> network mainnet-beta -> KSP_SECRET_STORE_MAINNET_POSTGRES_URI -> ksp_mainnet
testnet -> network testnet -> KSP_SECRET_STORE_TESTNET_POSTGRES_URI -> ksp_testnet
```
`default_profile = devnet`, cohérent avec le défaut Transport et plus sûr pour les workflows de développement. Le schema reste extensible à d'autres targets/réseaux sûrs.
## 4. Deuxième protection réseau
`StoreSettings` exige désormais un `RawNetworkId`. Les futures opérations RAW devront rejeter avant I/O toute identité/query dont le réseau ne correspond pas au réseau de l'instance Store. Cette vérification ne route jamais automatiquement vers un autre target.
## 5. Correctifs de gate
- collapse du `if let` imbriqué signalé par Clippy ;
- ajout de `crates/ksp-config-lib/unit_tests/fixtures/std.store.json` ;
- Config Desk vérifie désormais explicitement que `cfg.std.store` appartient à l'inventaire profilé ;
- tests Config ajoutés pour la sélection explicite et indépendante de `devnet`, `mainnet` et `testnet`.
## 6. Version
```text
workspace.package.version = 0.3.2-pre.4.fix.1
```
## 7. Gate opérateur
```bash
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.2
cargo check --workspace
cargo clippy --workspace --all-targets
cargo test -p ksp-config-lib
cargo test -p ksp-store-lib
cargo test -p ksp-store-lib --no-default-features
cargo check -p ksp-store-lib --no-default-features
cargo test -p ksp-app-config-desk
```
Les trois builds Tauri `pre.004` sont déjà verts et les resources packagées ne changent pas dans ce fix.
## 8. Suite
Après gate propre, `pre.005` peut ouvrir la connexion PostgreSQL physique. Elle consommera un seul target/réseau déjà résolu ; aucun multiplexage réseau n'est à introduire.