5.8 KiB
Delta v0.3.8-pre.1 — audit, brainstorming et planification Store Desk
Base requise
v0.3.7
workspace.package.version = 0.3.7
La source de code est exclusivement l'archive stable KSP v0.3.7 fournie. kbot3 a été extrait séparément et utilisé uniquement comme référence fonctionnelle/UX conformément au prompt 027.
Résumé
Cette tranche ouvre v0.3.8 sans scaffold Tauri lourd. Elle vérifie archives/règles, audite Store/API/PostgreSQL, les Desks KSP et DataTables, réaudite les fonctions Store historiques de kbot3, puis fixe capabilities/gaps/screens/tables/pagination/DTO/threat model et sizing.
Décision centrale issue du brainstorming pagination :
RawPage cursor/keyset existant = conservé comme primitive canonique machine
nouvelle pagination inspection = offset + limit + totaux + summaries backend-neutral
DataTables serverSide = consommateur de la primitive inspection via Tauri invoke
pagination visible = UNE SEULE, le pager DataTables
Cette décision évite la double pagination kbot3 sans sacrifier la pagination keyset existante. L'offset/count est confiné à une capability d'inspection réutilisable hors Tauri et à son implémentation backend privée ; aucun DTO DataTables ni SQL n'entre dans l'application ou le contrat RAW canonique.
Recalibrage explicite du prompt 027
Le prompt supposait initialement une pagination Store cursor distincte d'un paging DataTables local, avec possibilité paging: false. pre.001 avait précisément pour mission de trancher cette question avant planification. Le résultat du brainstorming remplace cette hypothèse UI par :
séparation des contrats oui
séparation visuelle des pagers non
Les frontières normatives restent inchangées : Store Desk dépend uniquement de ksp-store-lib, aucune dépendance backend/SQL, Config reste owner des targets/secrets, V1 reste read-only et kbot3 reste uniquement fonctionnel.
Vérification des archives
- KSP v0.3.7 : SHA-256
d57132960e4c280a67e59bea02ce08a61665890bdfb6ef16b7faf1b3c57070ae, 1 702 entrées, ZIP propre ; - kbot3 : SHA-256
ee47643b9f8b582ee8db97b2381ec107e45aef8c009fee44757531514615d318, 2 501 entrées, ZIP propre ; - aucune entrée absolue, traversal, séparateur inversé ou lien symbolique ZIP ;
workspace.package.version = 0.3.7etdeltas/0.3.7/rel.001.mdconfirmés ;- Store API/lib/PostgreSQL et Backfill Desk stable confirmés.
Audits locaux avant modification
General Rust rule audit: clean
Rust export completeness audit: 0 candidate(s)
KSP workspace Rust rule audit: clean
Markdown table audit: clean (301 table(s), 687 file(s))
cargo est absent de l'environnement d'assemblage. cargo fmt/check/clippy/test ne sont donc pas déclarés PASS localement. Le journal opérateur fourni rapporte un gate stable v0.3.7 complet et reste une preuve externe de baseline.
Audits post-modification
General Rust rule audit: clean
Rust export completeness audit: 0 candidate(s)
KSP workspace Rust rule audit: clean
Markdown table audit: clean (283 table(s), 153 file(s))
Le diff contre la base contient exactement Cargo.toml, le plan, la validation et le delta pre.001, sans suppression. Les gates Cargo restent non exécutés localement faute de binaire cargo.
Architecture d'inspection retenue
Contrats candidats à matérialiser à partir de pre.003 :
RawInspectionPageRequest { offset, limit }
RawInspectionPage<T> { items, total_items, filtered_items }
RawTransactionInspectionQuery
RawAccountStateInspectionQuery
RawTransactionSummary
RawAccountStateSummary
RawTransactionInspectionRead
RawAccountStateInspectionRead
Les traits existants RawTransactionRead / RawAccountStateRead restent inchangés afin de ne pas casser les implémentations externes et de préserver le chemin keyset.
DataTables V1 : serverSide: true, ajax fonction custom vers Tauri, searching: false, page length 25/50/100, ordre canonique Store seulement. recordsTotal / recordsFiltered proviennent des counts exacts Store. Aucun second pager n'est rendu.
Décisions complémentaires
GABARIT STORE DESK = KSP; aucune source de shell/package/assets/code depuis kbot3 ;- ports Vite/HMR : 1438/1439 ;
- dépendances KSP V1 : Config + Logging + Store facade ; aucun Store API/PostgreSQL direct ;
- npm : socle KSP +
datatables.net-bs5 ^3.0; Select reporté faute de fonction réelle ; - audit externe du 2026-09-03 : DataTables 3.0.3 / Select 4.0.1 ; ranges KSP conservés ;
- composite prévu : Logging + Store uniquement ;
- navigation initiale : Overview / RAW Transactions / RAW Accounts ;
- observations intégrées aux détails puis listing ajouté après extension Store backend-neutral ;
- rows principales alimentées par summaries Store, sans N+1 ni gros bytes ;
u64projetés comme chaînes décimales IPC ; counts vérifiés JS-safe avant DataTables ;- V1 strictement read-only.
Fichiers ajoutés
docs/plans/029-V0_3_8_STORE_DESK_PLAN.md;docs/validation/025-V0_3_8_STORE_DESK.md;deltas/0.3.8/pre.001.md.
Fichier modifié
Cargo.toml: header444vers445, version workspace0.3.7vers0.3.8-pre.1conformément àVER-ID-009.
Non inclus
- aucune crate
ksp-app-store-deskencore créée ; - aucun Rust/TypeScript/HTML/SASS applicatif ;
- aucun composite runtime créé ;
- aucun SQL ou changement backend ;
- aucune capability Store encore ajoutée ;
- aucune reprise de code kbot3 ;
- aucune modification CHANGELOG/ROADMAP ;
- aucune publication stable.
Suite prévue
pre.002 crée uniquement le scaffold KSP de ksp-app-store-desk. pre.003 introduit ensuite les contrats backend-neutral d'inspection ; pre.004 et pre.005 implémentent respectivement les vertical slices PostgreSQL Transaction et Account avant le branchement des tables DataTables métier.