v0.3.8-pre.002

This commit is contained in:
2026-09-03 10:44:49 +02:00
parent 3df8fc74c1
commit 6a1892792c
50 changed files with 3409 additions and 23 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/plans/029-V0_3_8_STORE_DESK_PLAN.md -->
<!-- version: 1 -->
<!-- version: 2 -->
# Plan v0.3.8 — Store Desk V1 RAW
@@ -60,17 +60,17 @@ Store Desk -> composition + DTO + commands + UX
### 3.2 Dépendances applicatives prévues
| Dépendance | Statut Store Desk | Justification |
|--------------------------|-------------------|----------------------------------------------------|
| `ksp-config-lib` | REQUISE | composite, profils, bootstrap Config |
| `ksp-logging-lib` | REQUISE | runtime Logging et tracing KSP |
| `ksp-store-lib` | REQUISE | unique façade Store autorisée |
| `ksp-core-lib` | NON REQUISE V1 | réexports Store suffisants pour les contrats visés |
| `ksp-store-api` | INTERDITE DIRECTE | la Desk ne contourne pas la façade |
| `ksp-store-postgres-lib` | INTERDITE | backend physique privé |
| `tokio-postgres` | INTERDITE | driver physique |
| `deadpool-postgres` | INTERDITE | pool physique |
| Transport RPC/gRPC/WS | INTERDIT V1 | inspection Store uniquement |
| Dépendance | Statut Store Desk | Justification |
|--------------------------|-------------------|-------------------------------------------------|
| `ksp-config-lib` | REQUISE | composite, profils, bootstrap Config |
| `ksp-logging-lib` | REQUISE | runtime Logging et tracing KSP |
| `ksp-store-lib` | REQUISE | unique façade Store autorisée |
| `ksp-core-lib` | REQUISE SCAFFOLD | erreurs applicatives typées et gabarit Desk KSP |
| `ksp-store-api` | INTERDITE DIRECTE | la Desk ne contourne pas la façade |
| `ksp-store-postgres-lib` | INTERDITE | backend physique privé |
| `tokio-postgres` | INTERDITE | driver physique |
| `deadpool-postgres` | INTERDITE | pool physique |
| Transport RPC/gRPC/WS | INTERDIT V1 | inspection Store uniquement |
## 4. Gabarit KSP Store Desk
@@ -338,8 +338,9 @@ refresh
### 10.2 RAW Transactions
```text
filtres Store : slot min/max, direction, page size
contrôles Store : Premier, Précédent, Suivant, Refresh
filtres Store : slot min/max, direction
page size/pagination : contrôles DataTables 25/50/100 + pager unique
contrôle applicatif : Refresh
filtres Store explicites : dataset complet de la query
table
bouton/interaction Détail
@@ -541,16 +542,12 @@ Archive/règles/prompt, gabarit KSP/npm, audit fonctionnel kbot3, capability/gap
### pre.002 — scaffold `ksp-app-store-desk`
Package lib/bin, ports 1438/1439, shell/splash/assets/fonts/SASS KSP, tracing frontend, capabilities minimales, `datatables.net-bs5` et table skeleton sans données Store. Aucun Store ouvert.
Package lib/bin, ports 1438/1439, shell/splash/assets/fonts/SASS KSP, tracing frontend, capabilities minimales, `datatables.net-bs5` et table skeleton sans données Store. Aucun Store ouvert. Le skeleton peut paginer son dataset vide/local pour valider le rendu DataTables, mais ne matérialise aucun second pager Store et ne préjuge pas du branchement `serverSide` de `pre.007`/`pre.008`.
### pre.003 — contrats Store d'inspection
Ajouter dans `ksp-store-api` les types page offset/count, queries Tx/Account, summaries sans gros bytes et deux traits read d'inspection. Réexports `ksp-store-lib`, canaris external backend/public API/security. Aucun SQL encore.
#### pre.003-fix.NNN — correctifs éventuels de contrat
Lane strictement bornée aux invariants des nouveaux contrats d'inspection.
### pre.004 — inspection PostgreSQL RawTransaction
Implémenter summary query, counts exacts, offset/limit checked et trait Tx dans `ksp-store-postgres-lib`, puis dispatch façade Store. Conserver intégralement le listage keyset existant. Tests no-payload/N+1, counts filtres, offset hostile et conformance.

View File

@@ -1,5 +1,5 @@
<!-- file: docs/validation/025-V0_3_8_STORE_DESK.md -->
<!-- version: 1 -->
<!-- version: 2 -->
# Validation v0.3.8 — Store Desk V1 RAW
@@ -111,3 +111,77 @@ Le journal opérateur fourni pour v0.3.7 rapporte un gate complet. Il reste une
- [X] diff contre l'archive v0.3.7 : exactement quatre fichiers ajoutés/modifiés, aucune suppression ;
- [X] archive delta testée par `unzip -t` ;
- [ ] gates Cargo : non exécutés dans l'environnement d'assemblage, `cargo` absent.
## 10. Gate opérateur de la base `pre.001`
Après application de `pre.001`, lopérateur a exécuté :
```text
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
cargo check --workspace
cargo clippy --workspace --all-targets
```
Résultats fournis :
```text
General Rust rule audit: clean
Rust export completeness audit: 0 candidate(s)
KSP workspace Rust rule audit: clean
Markdown table audit: clean (314 table(s), 690 file(s))
cargo check --workspace: PASS
cargo clippy --workspace --all-targets: PASS
```
Cette preuve opérateur ferme le gate technique de la base `0.3.8-pre.1` avant matérialisation de `pre.002`. Aucun test crate ciblé nest inféré au-delà des commandes effectivement fournies.
## 11. `pre.002` — scaffold Store Desk matérialisé
- [X] `crates/ksp-app-store-desk` créé comme package Rust lib + bin ;
- [X] workspace avancé à `0.3.8-pre.2` ;
- [X] ports Vite/HMR stricts 1438/1439 ;
- [X] identité Tauri `KSP Store Desk` / `com.sasedev.ksp-app-store-desk` ;
- [X] splash, logo, favicon et font repris byte-exact depuis le gabarit Desk KSP ;
- [X] shell et SASS dérivés du gabarit KSP, sans source kbot3 ;
- [X] Config + Logging initialisés selon le pattern Desk KSP ;
- [X] `ksp-core-lib` admis au scaffold pour les erreurs applicatives typées, sans contourner Store ;
- [X] aucune dépendance `ksp-store-lib`, `ksp-store-api`, `ksp-store-postgres-lib`, Transport ou Job dans cette tranche ;
- [X] capabilities limitées à `core:default` + `tracing:default` ;
- [X] frontend tracing installé pour navigation, boutons, refresh et IPC ;
- [X] dépendances npm KSP stables conservées ;
- [X] `datatables.net-bs5` ajouté sans Select ;
- [X] skeletons RAW Transactions / RAW Accounts vides créés ;
- [X] aucun Store nest ouvert et aucune donnée Store nest chargée ;
- [X] aucun contrôle `Premier / Précédent / Suivant` Store nest rendu ;
- [X] DataTables reste lunique owner visuel du paging dès le scaffold ;
- [X] le mode local vide de `pre.002` ne préjuge pas du `serverSide` prévu en `pre.007`/`pre.008` ;
- [X] plan corrigé : suppression du placeholder préventif `pre.003-fix.NNN` ;
- [X] plan corrigé : screen-map alignée sur le pager DataTables unique.
## 12. Gates dassemblage `pre.002`
- [X] `python3 scripts/audit_rust_workspace_rules.py` : General Rust clean, export completeness 0, KSP workspace Rust clean ;
- [X] audit Markdown : clean, 283 tables / 155 fichiers sur le périmètre `deltas/0.3.8` ;
- [X] manifest parse : 4 JSON + 2 TOML ;
- [X] package baseline : 7 dépendances runtime obligatoires, devDependencies exactes sur 4 Desks KSP, Select absent ;
- [X] assets : 5 fichiers binaires byte-identical sur 4 Desks KSP ;
- [X] SASS partagé : 5 fichiers body-identical au gabarit KSP ;
- [X] splash : body identique au gabarit modulo identité Store Desk et metadata fichier ;
- [X] audit shell/DataTables : structure KSP + deux skeletons + owner visuel unique du pager ;
- [X] audit statique des dépendances/scopes Store/Transport/Job : aucun bypass ;
- [X] ports : 1438/1439 stricts et sans collision avec les autres Desks ;
- [X] audit frontend : pas de `fetch`, storage navigateur ni dialogue bloquant ;
- [X] audit TypeScript syntaxique par `transpileModule` 5.8.3 : 5 fichiers propres ;
- [X] audit Rust source du nouveau scaffold : aucun `panic!`, `unwrap`, `expect` ou bloc `unsafe` ;
- [X] delta scope : 47 ajouts, 3 modifications, 0 suppression ; 46 fichiers applicatifs + delta ;
- [X] archive delta finale vérifiée par `unzip -t` ;
- [ ] `cargo fmt --all` : non exécuté dans lenvironnement dassemblage, `cargo` absent ;
- [ ] `cargo check --workspace` : non exécuté dans lenvironnement dassemblage, `cargo` absent ;
- [ ] `cargo clippy --workspace --all-targets` : non exécuté dans lenvironnement dassemblage, `cargo` absent ;
- [ ] `cargo test -p ksp-app-store-desk` : à exécuter par lopérateur ;
- [ ] `cargo tree -p ksp-app-store-desk --edges normal` : à exécuter par lopérateur ;
- [ ] `cargo tree -p ksp-app-store-desk -e features` : à exécuter par lopérateur.
La case `pre.002` de la section « Gates futures » reste ouverte jusquau retour de ces gates Cargo opérateur.