v0.3.8-pre.00-fix.001

This commit is contained in:
2026-09-03 18:45:53 +02:00
parent d5b4aef194
commit 32577ea48d
8 changed files with 291 additions and 17 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/plans/029-V0_3_8_STORE_DESK_PLAN.md -->
<!-- version: 8 -->
<!-- version: 9 -->
# Plan v0.3.8 — Store Desk V1 RAW
@@ -588,6 +588,10 @@ Brancher l'unique pager DataTables via `ajax` function/Tauri invoke, mapping off
Implémentation retenue : `store_query_transactions` reçoit uniquement `offset`, `limit`, `slot_min`, `slot_max` et `direction`, dérive le network du Store déjà ouvert et appelle `RawTransactionInspectionRead`. Les counts restent des chaînes décimales jusqu'au contrôle `Number.MAX_SAFE_INTEGER` côté frontend. Les rows sont payload-free. `store_get_transaction_detail` reçoit uniquement la signature de la row, recharge l'entité via `RawTransactionRead`/`RawTransactionRetentionRead` et expose au maximum 512 bytes sous forme de preview hex, avec taille exacte et indicateur de troncature. `Full`, `Archived` et `Purged` sont distingués ; un `Purged` utilise son tombstone. Les Accounts restent `serverSide:false` jusqu'à `pre.008`.
#### pre.007-fix.001 — UX uniforme pour identifiants longs
Les signatures et content hashes déjà visibles dans la table Transactions et son modal sont affichés sous une forme tronquée au centre, avec la valeur complète disponible au survol via tooltip natif et un bouton de copie explicite. Le mécanisme reste générique et doit être réutilisé par `pre.008` pour les pubkeys, owners, state hashes et autres identifiants longs. Les actions de copie sont tracées uniquement par identifiant logique de champ ; la valeur copiée n'est jamais journalisée. Aucun plugin clipboard Tauri ni capability supplémentaire n'est ajouté : le frontend utilise l'API Clipboard du WebView avec fallback local `document.execCommand("copy")`.
### pre.008 — RawAccountState DataTables serverSide + détail
Même intégration pour Account, pubkey/range/direction, summaries JS-safe, détail data borné, responsive/scrollX/copy UX.

View File

@@ -1,5 +1,5 @@
<!-- file: docs/validation/025-V0_3_8_STORE_DESK.md -->
<!-- version: 14 -->
<!-- version: 15 -->
# Validation v0.3.8 — Store Desk V1 RAW
@@ -576,5 +576,36 @@ cargo check -p ksp-store-lib --no-default-features: PASS
- [X] RAW Accounts reste volontairement `serverSide:false` jusqu'à `pre.008` ;
- [X] aucune modification `ksp-store-api`, `ksp-store-lib`, `ksp-store-postgres-lib`, migration ou capability n'est introduite par cette tranche applicative.
Le gate Cargo opérateur de `pre.007` reste à exécuter après application du delta.
Le gate opérateur de `pre.007` est ensuite entièrement vert :
```text
General Rust rule audit: clean
Rust export completeness audit: 0 candidate(s)
KSP workspace Rust rule audit: clean
Markdown table audit: clean (314 table(s), 704 file(s))
cargo check --workspace: PASS
cargo clippy --workspace --all-targets: PASS
cargo test -p ksp-app-store-desk: PASS (21 unitaires + 4 dependency + 9 desktop contract + 7 security + 1 public API)
cargo test -p ksp-store-lib: PASS
cargo check -p ksp-store-lib --no-default-features: PASS
```
Le smoke `cargo tauri dev` confirme le chemin réel `serverSide` Transactions : chargement initial de 25 rows, navigation de page, passage à 100 rows/page, IPC `store_query_transactions`, maintien de RAW Accounts hors `serverSide` et shutdown Store borné.
## 29. `pre.007-fix.001` — troncature, tooltip et copie des identifiants longs
À la demande opérateur, la présentation des chaînes longues est harmonisée avant `pre.008` :
- [X] signature de transaction tronquée au centre dans la table ;
- [X] content hash tronqué au centre dans la table ;
- [X] signature et content hash du modal utilisent la même présentation ;
- [X] la valeur complète reste accessible au survol par attribut `title` ;
- [X] chaque valeur dispose d'un bouton Copier explicite ;
- [X] Clipboard API utilisée en premier, avec fallback `document.execCommand("copy")` sans plugin Tauri supplémentaire ;
- [X] feedback visuel temporaire après copie ;
- [X] tracing `requested/completed/failed` ne transporte que le `fieldId`, jamais la signature, le hash ou la valeur copiée ;
- [X] le helper reste générique pour réutilisation directe en `pre.008` sur pubkey/owner/state hash ;
- [X] aucun changement backend, IPC, Store, SQL, Config ou capability Tauri.
Le gate Cargo de ce fix reste à rejouer après application du delta.