78 lines
3.1 KiB
Markdown
78 lines
3.1 KiB
Markdown
<!-- 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.
|