v0.5.1-pre.009
This commit is contained in:
131
docs/validation/V0_5_1_FOUNDATION_VALIDATION_REPORT.md
Normal file
131
docs/validation/V0_5_1_FOUNDATION_VALIDATION_REPORT.md
Normal file
@@ -0,0 +1,131 @@
|
||||
<!-- file: docs/validation/V0_5_1_FOUNDATION_VALIDATION_REPORT.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# Validation de fondation — clôture 0.5.1
|
||||
|
||||
## Périmètre
|
||||
|
||||
La version `0.5.1` ferme la première restructuration de fondation décidée pendant `0.5.0` : namespaces Khadhroony Solana, configuration composable, séparation source/runtime/public et réduction de la surface TS-RS aux applications.
|
||||
|
||||
Elle ne modifie volontairement ni le préfixe SQL historique `kb_sol_*`, ni la structure fonctionnelle profonde de `ks-wallet`, ni la couverture protocolaire Solana/DEX.
|
||||
|
||||
## Namespace et ownership
|
||||
|
||||
La cible validée est :
|
||||
|
||||
- dix bibliothèques Solana généralistes sous `ks-*` / `ks_*` ;
|
||||
- `kb-app-demo-desktop` conservé dans le domaine applicatif Bot ;
|
||||
- identités techniques actives sous `ks-lib-decoder.*`, `ks-lib-executor.*` et `ks-lib-materializer.*` ;
|
||||
- variables Solana sous `KS_*`, avec `KS_SECRET_*`, `KS_PUBLIC_*` et internes ;
|
||||
- `KB_*` réservé aux contrats réellement possédés par une application Bot.
|
||||
|
||||
Le workspace, le dépôt et le répertoire racine restent volontairement nommés `khadhroony-bot3`.
|
||||
|
||||
## Configuration composable
|
||||
|
||||
La configuration source est répartie entre :
|
||||
|
||||
```text
|
||||
config/
|
||||
├── kb-app-demo-desktop.default.config.json
|
||||
├── logging.config.json
|
||||
├── transport.config.json
|
||||
├── listeners.config.json
|
||||
├── store.config.json
|
||||
├── wallet.config.json
|
||||
├── execution.config.json
|
||||
├── exemples/
|
||||
└── schemas/
|
||||
```
|
||||
|
||||
Les documents spécialisés possèdent leurs defaults et profils indépendants. La composition d’un binaire sélectionne les documents et profils qu’il consomme sans obliger `ks-config` à connaître la structure métier de l’application.
|
||||
|
||||
`logs_directory` et `wallets_directory` sont globaux à leurs domaines respectifs. Les autorisations d’envoi appartiennent à la politique d’exécution. Les defaults de reconnexion WebSocket appartiennent au transport et peuvent être surchargés par endpoint.
|
||||
|
||||
## Frontières de sensibilité
|
||||
|
||||
La classification appliquée est :
|
||||
|
||||
```text
|
||||
Secret > Internal > Public
|
||||
```
|
||||
|
||||
Elle s’applique aussi aux valeurs composées après substitution des placeholders d’environnement.
|
||||
|
||||
Les contrats source/runtime susceptibles de contenir des valeurs résolues sensibles restent backend-only et ne dérivent ni `serde::Serialize` ni `Debug` par défaut.
|
||||
|
||||
Les snapshots de transport exposables ne transportent plus les URLs résolues. Les erreurs HTTP/WS et de validation ne recopient plus les valeurs rejetées, les corps HTTP distants ni les messages JSON-RPC distants susceptibles de réinjecter un credential.
|
||||
|
||||
## Tauri et TS-RS
|
||||
|
||||
`ks-config` et `ks-lib` ne produisent plus de bindings TS-RS.
|
||||
|
||||
Les contrats TypeScript/Tauri appartiennent à l’application consommatrice. `kb-app-demo-desktop` construit explicitement ses DTO publics et diagnostiques et ne retourne plus directement les contrats runtime `ks-*`.
|
||||
|
||||
Les canaris desktop et transport vérifient notamment :
|
||||
|
||||
- absence d’URL RPC/WS résolue dans les payloads ;
|
||||
- absence de DSN PostgreSQL ;
|
||||
- absence de chemin wallet/SQLite dans les payloads fonctionnels ;
|
||||
- absence de secret canari dans les projections publiques/diagnostiques ;
|
||||
- `Debug` sanitisé pour les clients/sessions transport.
|
||||
|
||||
## Validation opérateur du 10 août 2026
|
||||
|
||||
Après `0.5.1-pre.008-delta-fix-003`, l’opérateur a validé :
|
||||
|
||||
- `cargo fmt --all` ;
|
||||
- `cargo check --workspace` ;
|
||||
- `cargo clippy --all-targets` sans warning ;
|
||||
- `python3 scripts/audit_rust_workspace_rules.py` avec audit Rust général propre, export completeness à zéro candidat et audit Khadhroony propre ;
|
||||
- `cargo test --workspace` ;
|
||||
- `cargo tauri dev -c kb-app-demo-desktop/tauri.conf.json` avec chargement de la composition et initialisation des transports/store.
|
||||
|
||||
Les principales cibles unitaires observées après le dernier correctif comprennent :
|
||||
|
||||
- `kb-app-demo-desktop` : 165 tests ;
|
||||
- `ks-config` : 31 tests, plus 2 tests d’API externe ;
|
||||
- `ks-core` : 2 tests ;
|
||||
- `ks-lib` : 606 tests, plus 9 tests d’intégration/API externe ;
|
||||
- `ks-logging` : 25 tests ;
|
||||
- `ks-onchain-transport` : 124 tests ;
|
||||
- `ks-pipeline` : 109 tests, plus 3 tests d’API externe Metadata ;
|
||||
- `ks-pipeline-demo-scenarios` : 105 tests bibliothèque, 1 test CLI et 1 test d’API externe ;
|
||||
- `ks-program-ids` : 6 tests ;
|
||||
- `ks-store` : 84 tests ;
|
||||
- `ks-wallet` : 6 tests.
|
||||
|
||||
## Validation finale de `pre.009`
|
||||
|
||||
`0.5.1-pre.009` ne doit introduire aucun nouveau comportement fonctionnel. Après application du delta de clôture, la campagne standard doit être rejouée :
|
||||
|
||||
```bash
|
||||
cargo fmt --all
|
||||
cargo check --workspace
|
||||
cargo clippy --all-targets
|
||||
python3 scripts/audit_rust_workspace_rules.py
|
||||
cargo test --workspace
|
||||
```
|
||||
|
||||
Avant publication finale de `0.5.1`, le build desktop de release est recommandé afin de vérifier également TypeScript/Vite par la chaîne Tauri :
|
||||
|
||||
```bash
|
||||
cargo tauri build -c kb-app-demo-desktop/tauri.conf.json
|
||||
```
|
||||
|
||||
Ce rapport ne prétend pas que ce build de release a déjà été exécuté pour `0.5.1`.
|
||||
|
||||
## Reports
|
||||
|
||||
- restructuration fonctionnelle profonde du wallet : `0.5.2` ;
|
||||
- migration `kb_sol_*` vers `k_sol_*` et normalisation temporelle/provenance : `0.5.3` ;
|
||||
- centralisation finale des scénarios et audit des exécuteurs : `0.5.4` ;
|
||||
- nouvelle qualification réseau ElGamal uniquement si une possibilité technique nouvelle apparaît.
|
||||
|
||||
## Traçabilité
|
||||
|
||||
Le plan temporaire `0.5.1` et le prompt de session `030` sont archivés sous `olddocs/archivekbot3/`. Les décisions durables restent dans le ROADMAP, les guides, les règles et la politique de namespace active.
|
||||
|
||||
## Statut
|
||||
|
||||
**Fondation fonctionnelle `0.5.1` prête pour la validation finale de la prerelease de clôture.**
|
||||
Reference in New Issue
Block a user