v0.3.8-pre.001

This commit is contained in:
2026-09-03 09:56:41 +02:00
parent 68678a22c6
commit 3df8fc74c1
4 changed files with 866 additions and 2 deletions

View File

@@ -0,0 +1,113 @@
<!-- file: docs/validation/025-V0_3_8_STORE_DESK.md -->
<!-- version: 1 -->
# Validation v0.3.8 — Store Desk V1 RAW
## 1. Gate `pre.001`
- [X] archive stable KSP v0.3.7 identifiée comme base exclusive ;
- [X] `workspace.package.version = 0.3.7` avant modification ;
- [X] `deltas/0.3.7/rel.001.md` présent ;
- [X] prompt 027 et règles KSP relus ;
- [X] Store API/lib/PostgreSQL et gabarits Desk audités ;
- [X] archive kbot3 isolée et utilisée uniquement comme référence fonctionnelle/UX ;
- [X] npm/DataTables KSP inventorié ;
- [X] capability/gap/screen/table/pagination/DTO/threat maps produites ;
- [X] décision d'architecture pagination tranchée avant scaffold ;
- [X] aucun code kbot3, SQL app-owned ou scaffold Store Desk livré en `pre.001`.
## 2. Preuve des archives
| Source | SHA-256 | Résultat | Usage |
|--------------------------------------------------------|--------------------------------------------------------------------|---------------------------|----------------------------|
| `khadhroony-solana-project-v0.3.7.zip` | `d57132960e4c280a67e59bea02ce08a61665890bdfb6ef16b7faf1b3c57070ae` | 1 702 entrées, ZIP propre | source exclusive de code |
| `khadhroony-bot3_v0.5.3-pre.005-fix010-thelatest1.zip` | `ee47643b9f8b582ee8db97b2381ec107e45aef8c009fee44757531514615d318` | 2 501 entrées, ZIP propre | référence fonctionnelle/UX |
Aucune entrée absolue, traversal, séparateur inversé ou lien symbolique ZIP n'a été détectée.
## 3. Baseline locale avant modification
- [X] `python3 scripts/audit_rust_workspace_rules.py` : propre, zéro candidat d'export ;
- [X] audit Markdown : propre, 301 tables / 687 fichiers ;
- [ ] `cargo fmt --all -- --check` : non exécuté localement, `cargo` absent ;
- [ ] `cargo check --workspace` : non exécuté localement, `cargo` absent ;
- [ ] `cargo clippy --workspace --all-targets` : non exécuté localement, `cargo` absent ;
- [ ] tests ciblés Store/Config : non exécutés localement, `cargo` absent.
Le journal opérateur fourni pour v0.3.7 rapporte un gate complet. Il reste une preuve externe de baseline et n'est pas présenté comme une exécution locale de `pre.001`.
## 4. Décision pagination / inspection
- [X] `RawPageRequest` / `RawPage<T>` cursor-keyset existants sont conservés sans modification ;
- [X] le pager Store Desk ne les expose pas ;
- [X] DataTables `serverSide` exige `start`, `length`, `recordsTotal`, `recordsFiltered` ;
- [X] DataTables accepte `ajax` comme fonction custom, compatible avec un `invoke()` Tauri sans fetch ;
- [X] une primitive Store backend-neutral d'inspection offset/count est justifiée ;
- [X] deux capabilities read fine-grained Tx/Account sont préférées à la modification des traits RAW existants ;
- [X] les pages d'inspection retournent des summaries sans payload/data bytes ;
- [X] `total_items` et `filtered_items` sont exacts dans la sémantique de query ;
- [X] page length UX = 25/50/100 ; `length = -1` interdit ;
- [X] DataTables search arbitraire désactivée en V1 ;
- [X] filtres Store explicites et ordre canonique seulement ;
- [X] **un seul pager est visible : celui de DataTables** ;
- [X] aucun pager « bloc Store » ou paging local imbriqué ne subsiste.
## 5. Capability gaps et trajectoire
- [X] list/get RawTransaction cursor existe ;
- [X] list/get RawAccountState cursor existe ;
- [X] read observation par key existe pour Tx et Account ;
- [X] inspection offset/count/summary manque en v0.3.7 ;
- [X] listing observations Tx/Account manque ;
- [X] aucun gap n'est contourné par SQL dans l'app ;
- [X] inspection Tx/Account est planifiée dans Store API/lib/PostgreSQL avant l'UI métier ;
- [X] observation listing reste une extension Store dédiée ultérieure ;
- [X] les counts restent logiques/backend-neutral et n'exposent aucun diagnostic physique PostgreSQL.
## 6. Gabarit / npm
- [X] `GABARIT STORE DESK = KSP` ;
- [X] ports réservés 1438/1439 ;
- [X] shell/splash/fonts/assets dérivent uniquement des Desks KSP ;
- [X] `datatables.net-bs5 ^3.0` retenu ;
- [X] Select non retenu par défaut ;
- [X] aucune version/package kbot3 n'est utilisée ;
- [X] audit externe : DataTables 3.0.3 / Select 4.0.1 le 2026-09-03, sans upgrade opportuniste.
## 7. DTO / sécurité
- [X] tous les `u64` métier traversent IPC en texte décimal ;
- [X] counts convertis en `number` uniquement après contrôle JS-safe ;
- [X] payload transaction et account data sont detail-only ;
- [X] summaries d'inspection excluent les gros bytes ;
- [X] aucun cursor Store dans le pager DataTables ;
- [X] aucune URI/credential/backend handle/SQL n'est projeté ;
- [X] offset/limit hostiles sont rejetés avant I/O ;
- [X] `draw` DataTables sert uniquement à l'ordonnancement frontend ;
- [X] aucune persistence navigateur RAW ;
- [X] instrumentation exclut payload, URI, secrets et valeurs de filtres.
## 8. Gates futures
- [ ] `pre.002` scaffold KSP strict + DataTables skeleton ;
- [ ] `pre.003` contrats Store inspection offset/count/summaries ;
- [ ] `pre.004` PostgreSQL + façade inspection RawTransaction ;
- [ ] `pre.005` PostgreSQL + façade inspection RawAccountState ;
- [ ] `pre.006` composite Logging+Store + Overview/health ;
- [ ] `pre.007` RawTransaction DataTables serverSide + détail ;
- [ ] `pre.008` RawAccountState DataTables serverSide + détail ;
- [ ] `pre.009` observation listing/inspection Store ;
- [ ] `pre.010` observations UI + hardening UX ;
- [ ] `pre.011` security/dependency/release completeness ;
- [ ] `pre.012` gate technique final + Tauri build + smoke read-only opt-in ;
- [ ] `pre.013` réconciliation documentaire ;
- [ ] `pre.014` prompt suivant + CHANGELOG + ROADMAP ;
- [ ] `rel.001` publication stable v0.3.8.
## 9. Gate post-modification `pre.001`
- [X] `python3 scripts/audit_rust_workspace_rules.py` : General Rust clean, export completeness 0, KSP workspace Rust clean ;
- [X] `python3 scripts/audit_markdown_tables.py README.md RULES.md ROADMAP.md CHANGELOG.md docs prompts crates deltas/0.3.8` : clean, 283 tables / 153 fichiers ;
- [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.