Files
khadhroony-solana-project/deltas/0.3.8/pre.002.md
2026-09-03 10:44:49 +02:00

7.6 KiB
Raw Blame History

Delta v0.3.8-pre.2 — scaffold KSP Store Desk

Base requise

0.3.8-pre.1
workspace.package.version = 0.3.8-pre.1

La base pre.001 a été validée par lopérateur avec cargo fmt, audits Rust/Markdown, cargo check --workspace et cargo clippy --workspace --all-targets verts avant ouverture de cette tranche.

Objectif

Matérialiser uniquement le scaffold desktop ksp-app-store-desk défini par le plan pre.001, sans ouvrir Store ni anticiper les contrats dinspection de pre.003.

Le scaffold fixe dès maintenant linvariant UX de pagination :

DataTables = unique owner visuel du pager
Store pager parallèle = absent
Store serverSide réel = différé à pre.007 / pre.008

Les DataTables de pre.002 sont volontairement vides et locales ; elles valident le shell et le rendu, pas encore la sémantique métier dinspection.

Recalibrage documentaire issu du retour opérateur

Le sizing pre.001 contenait un placeholder préventif pre.003-fix.NNN. Il est supprimé : conformément au workflow KSP, un pre.NNN-fix.MMM nexiste que lorsquun défaut réel de la tranche correspondante doit être corrigé. Aucun fix futur nest réservé à lavance.

La screen-map est également corrigée pour supprimer le résidu Premier / Précédent / Suivant Store. Les seuls contrôles de pagination visibles prévus pour les tables métier sont ceux de DataTables ; Refresh reste un contrôle applicatif indépendant.

Enfin, ksp-core-lib est admis au scaffold comme dépendance KSP pour les erreurs applicatives typées, conformément au pattern des Desks existants. Cette dépendance ne donne aucun accès Store et ne modifie pas la règle selon laquelle la future application métier ouvrira Store exclusivement via ksp-store-lib.

Scaffold livré

ksp-app-store-desk est un package Rust mixte lib + bin avec :

ports Vite/HMR 1438/1439 stricts
fenêtres splash + main
single-instance crate-local
bootstrap Config standard
runtime Logging KSP + fallback sûr
tracing backend/frontend
assets/fonts/SASS KSP
capabilities core:default + tracing:default
Overview / RAW Transactions / RAW Accounts / Diagnostics
deux skeletons DataTables vides
aucun Store ouvert
aucun SQL
aucun accès réseau frontend

Le shell expose Diagnostics comme surface technique du gabarit Desk ; les trois écrans métier du screen-map restent Overview / RAW Transactions / RAW Accounts.

Dépendances Rust

Autorisées dans cette tranche :

ksp-config-lib
ksp-core-lib
ksp-logging-lib
chrono
fs2
serde
tauri
tauri-plugin-tracing
tokio(time)
ts-rs

Explicitement absentes :

ksp-store-lib
ksp-store-api
ksp-store-postgres-lib
ksp-onchain-transport-lib
ksp-offchain-transport-lib
ksp-job-api
ksp-job-backfill-lib
reqwest
tokio-postgres
deadpool-postgres

Store est volontairement absent de pre.002. Le branchement Config composite + ksp-store-lib reste dans pre.006, après matérialisation et implémentation des capabilities dinspection.

Dépendances frontend

Socle runtime :

@fltsci/tauri-plugin-tracing ^0.3
@fortawesome/fontawesome-free ^7.3
@tauri-apps/api ^2.11
bootstrap ^5.3
datatables.net-bs5 ^3.0
resize-observer-polyfill ^1.5
simplebar ^6.3

Les devDependencies restent celles du gabarit KSP stable. datatables.net-select-bs5 nest pas ajouté : aucune fonction de sélection ne le justifie dans le scaffold.

Pagination visible

Les deux tables RAW sont initialisées avec :

paging = true
pageLength = 25
lengthMenu = 25 / 50 / 100
searching = false
ordering = false
dataset = vide

Aucun bouton de pagination Store nexiste dans le HTML. En pre.007/pre.008, ce même pager DataTables passera en serverSide: true et sera alimenté par la primitive dinspection Store définie à partir de pre.003. Il ne sera pas doublé.

Sécurité et frontières

  • aucune source kbot3 nest copiée ;
  • aucun SQL nentre dans lapplication ;
  • aucune URI Store, credential, pool ou handle backend nest exposé ;
  • aucune dépendance Store physique ou API directe nest admise ;
  • aucun fetch, XMLHttpRequest, storage navigateur ou dialogue alert/confirm/prompt ;
  • frontend tracing couvre navigation, boutons, refresh et IPC ;
  • nouveau Rust sans unsafe, panic!, unwrap ni expect ;
  • assets binaires principaux repris byte-exact du gabarit KSP.

Fichiers ajoutés

  • crates/ksp-app-store-desk/** ;
  • deltas/0.3.8/pre.002.md.

Fichiers modifiés

  • Cargo.toml : workspace member Store Desk, header 445 vers 446, version 0.3.8-pre.1 vers 0.3.8-pre.2 ;
  • docs/plans/029-V0_3_8_STORE_DESK_PLAN.md : version documentaire 2, suppression du fix préventif, correction pager unique et dépendance core scaffold ;
  • docs/validation/025-V0_3_8_STORE_DESK.md : preuve du gate opérateur pre.001 et validation dassemblage pre.002.

Validations exécutées dans lenvironnement dassemblage

python3 scripts/audit_rust_workspace_rules.py
-> General Rust rule audit: clean
-> Rust export completeness audit: 0 candidate(s)
-> KSP workspace Rust rule audit: clean

Contrôles complémentaires exécutés avant empaquetage :

Markdown table audit: clean (283 table(s), 155 file(s))
Manifest parse audit: clean (4 JSON, 2 TOML)
Desk package baseline audit: clean (7 mandatory dependencies; devDependencies exact across 4 references; Select absent)
Desk binary asset audit: clean (5 assets byte-identical across 4 references)
Desk shared SASS audit: clean (5 shared files body-identical across 4 references)
Desk splash template audit: clean (body identical modulo Store Desk identity and file metadata)
Desk shell/DataTables skeleton audit: clean (header/sidebar/content/footer + SimpleBar + one visible pager owner)
Frontend interaction/security audit: clean
pre.002 dependency/capability boundary audit: clean
Desk port audit: clean (1438/1439 strict and collision-free)
Rust scaffold primitive audit: clean (no panic!/unwrap/expect/unsafe block)
TypeScript syntax audit: clean (5 file(s), transpileModule 5.8.3)
Delta scope audit: clean (47 added, 3 modified, 0 deleted; 46 app files + delta)
Final delta archive integrity: clean (`unzip -t`)

Le contrôle TypeScript est syntaxique par transpilation ; il ne remplace pas le typecheck npm complet avec dépendances installées et bindings TS-RS générés, ni un build Tauri.

Validations non exécutables localement

cargo nest pas installé dans lenvironnement dassemblage. Les gates suivants doivent donc être exécutés par lopérateur après application du delta :

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
cargo test -p ksp-app-store-desk
cargo tree -p ksp-app-store-desk --edges normal
cargo tree -p ksp-app-store-desk -e features

Non inclus

  • aucune capability Store dinspection ;
  • aucune modification de ksp-store-api, ksp-store-lib ou ksp-store-postgres-lib ;
  • aucun composite Store Desk ;
  • aucun Store ouvert au runtime ;
  • aucune query métier ou donnée RAW ;
  • aucun détail dentité ou observation ;
  • aucun serverSide Store réel ;
  • aucune modification CHANGELOG/ROADMAP ;
  • aucune reprise de code ou package kbot3.

Suite prévue

pre.003 introduit les contrats backend-neutral dinspection offset/count/summaries dans Store. Si un défaut réel de pre.003 apparaît ensuite, et seulement dans ce cas, un pre.003-fix.NNN pourra être créé conformément aux règles de versionnement.