v0.3.8-pre.001
This commit is contained in:
113
docs/validation/025-V0_3_8_STORE_DESK.md
Normal file
113
docs/validation/025-V0_3_8_STORE_DESK.md
Normal 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.
|
||||
Reference in New Issue
Block a user