v0.3.8-pre.002
This commit is contained in:
@@ -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.
|
||||
|
||||
@@ -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`, l’opé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é n’est 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 n’est ouvert et aucune donnée Store n’est chargée ;
|
||||
- [X] aucun contrôle `Premier / Précédent / Suivant` Store n’est rendu ;
|
||||
- [X] DataTables reste l’unique 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 d’assemblage `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 l’environnement d’assemblage, `cargo` absent ;
|
||||
- [ ] `cargo check --workspace` : non exécuté dans l’environnement d’assemblage, `cargo` absent ;
|
||||
- [ ] `cargo clippy --workspace --all-targets` : non exécuté dans l’environnement d’assemblage, `cargo` absent ;
|
||||
- [ ] `cargo test -p ksp-app-store-desk` : à exécuter par l’opérateur ;
|
||||
- [ ] `cargo tree -p ksp-app-store-desk --edges normal` : à exécuter par l’opérateur ;
|
||||
- [ ] `cargo tree -p ksp-app-store-desk -e features` : à exécuter par l’opérateur.
|
||||
|
||||
La case `pre.002` de la section « Gates futures » reste ouverte jusqu’au retour de ces gates Cargo opérateur.
|
||||
|
||||
Reference in New Issue
Block a user