Files
khadhroony-solana-project/docs/validation/025-V0_3_8_STORE_DESK.md
2026-09-03 09:56:41 +02:00

6.3 KiB

Validation v0.3.8 — Store Desk V1 RAW

1. Gate pre.001

  • archive stable KSP v0.3.7 identifiée comme base exclusive ;
  • workspace.package.version = 0.3.7 avant modification ;
  • deltas/0.3.7/rel.001.md présent ;
  • prompt 027 et règles KSP relus ;
  • Store API/lib/PostgreSQL et gabarits Desk audités ;
  • archive kbot3 isolée et utilisée uniquement comme référence fonctionnelle/UX ;
  • npm/DataTables KSP inventorié ;
  • capability/gap/screen/table/pagination/DTO/threat maps produites ;
  • décision d'architecture pagination tranchée avant scaffold ;
  • 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

  • python3 scripts/audit_rust_workspace_rules.py : propre, zéro candidat d'export ;
  • 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

  • RawPageRequest / RawPage<T> cursor-keyset existants sont conservés sans modification ;
  • le pager Store Desk ne les expose pas ;
  • DataTables serverSide exige start, length, recordsTotal, recordsFiltered ;
  • DataTables accepte ajax comme fonction custom, compatible avec un invoke() Tauri sans fetch ;
  • une primitive Store backend-neutral d'inspection offset/count est justifiée ;
  • deux capabilities read fine-grained Tx/Account sont préférées à la modification des traits RAW existants ;
  • les pages d'inspection retournent des summaries sans payload/data bytes ;
  • total_items et filtered_items sont exacts dans la sémantique de query ;
  • page length UX = 25/50/100 ; length = -1 interdit ;
  • DataTables search arbitraire désactivée en V1 ;
  • filtres Store explicites et ordre canonique seulement ;
  • un seul pager est visible : celui de DataTables ;
  • aucun pager « bloc Store » ou paging local imbriqué ne subsiste.

5. Capability gaps et trajectoire

  • list/get RawTransaction cursor existe ;
  • list/get RawAccountState cursor existe ;
  • read observation par key existe pour Tx et Account ;
  • inspection offset/count/summary manque en v0.3.7 ;
  • listing observations Tx/Account manque ;
  • aucun gap n'est contourné par SQL dans l'app ;
  • inspection Tx/Account est planifiée dans Store API/lib/PostgreSQL avant l'UI métier ;
  • observation listing reste une extension Store dédiée ultérieure ;
  • les counts restent logiques/backend-neutral et n'exposent aucun diagnostic physique PostgreSQL.

6. Gabarit / npm

  • GABARIT STORE DESK = KSP ;
  • ports réservés 1438/1439 ;
  • shell/splash/fonts/assets dérivent uniquement des Desks KSP ;
  • datatables.net-bs5 ^3.0 retenu ;
  • Select non retenu par défaut ;
  • aucune version/package kbot3 n'est utilisée ;
  • audit externe : DataTables 3.0.3 / Select 4.0.1 le 2026-09-03, sans upgrade opportuniste.

7. DTO / sécurité

  • tous les u64 métier traversent IPC en texte décimal ;
  • counts convertis en number uniquement après contrôle JS-safe ;
  • payload transaction et account data sont detail-only ;
  • summaries d'inspection excluent les gros bytes ;
  • aucun cursor Store dans le pager DataTables ;
  • aucune URI/credential/backend handle/SQL n'est projeté ;
  • offset/limit hostiles sont rejetés avant I/O ;
  • draw DataTables sert uniquement à l'ordonnancement frontend ;
  • aucune persistence navigateur RAW ;
  • 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

  • python3 scripts/audit_rust_workspace_rules.py : General Rust clean, export completeness 0, KSP workspace Rust clean ;
  • 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 ;
  • diff contre l'archive v0.3.7 : exactement quatre fichiers ajoutés/modifiés, aucune suppression ;
  • archive delta testée par unzip -t ;
  • gates Cargo : non exécutés dans l'environnement d'assemblage, cargo absent.