v0.3.8-pre.008-fix.001

This commit is contained in:
2026-09-03 19:59:25 +02:00
parent 489d686023
commit 8c23625fee
4 changed files with 71 additions and 5 deletions

View File

@@ -1,12 +1,12 @@
# file: Cargo.toml # file: Cargo.toml
# version: 462 # version: 463
[workspace] [workspace]
resolver = "3" resolver = "3"
members = ["crates/ksp-app-backfill-desk", "crates/ksp-app-config-desk", "crates/ksp-app-solprices-desk", "crates/ksp-app-store-desk", "crates/ksp-app-wallet-desk", "crates/ksp-config-lib", "crates/ksp-core-lib", "crates/ksp-interface-lib", "crates/ksp-job-api", "crates/ksp-job-backfill-lib", "crates/ksp-logging-lib", "crates/ksp-offchain-transport-lib", "crates/ksp-onchain-transport-lib", "crates/ksp-program-api", "crates/ksp-store-api", "crates/ksp-store-lib", "crates/ksp-store-postgres-lib", "crates/ksp-wallet-lib"] members = ["crates/ksp-app-backfill-desk", "crates/ksp-app-config-desk", "crates/ksp-app-solprices-desk", "crates/ksp-app-store-desk", "crates/ksp-app-wallet-desk", "crates/ksp-config-lib", "crates/ksp-core-lib", "crates/ksp-interface-lib", "crates/ksp-job-api", "crates/ksp-job-backfill-lib", "crates/ksp-logging-lib", "crates/ksp-offchain-transport-lib", "crates/ksp-onchain-transport-lib", "crates/ksp-program-api", "crates/ksp-store-api", "crates/ksp-store-lib", "crates/ksp-store-postgres-lib", "crates/ksp-wallet-lib"]
[workspace.package] [workspace.package]
version = "0.3.8-pre.8" version = "0.3.8-pre.8.fix.1"
edition = "2024" edition = "2024"
license = "MIT" license = "MIT"
repository = "https://git.sasedev.com/Sasedev/khadhroony-solana-project" repository = "https://git.sasedev.com/Sasedev/khadhroony-solana-project"

View File

@@ -1,5 +1,5 @@
// file: crates/ksp-app-store-desk/tests/desktop_contract.rs // file: crates/ksp-app-store-desk/tests/desktop_contract.rs
// version: 7 // version: 8
//! Desktop template and frontend contract tests for the Store Desk scaffold. //! Desktop template and frontend contract tests for the Store Desk scaffold.
@@ -245,7 +245,7 @@ fn pre_008_account_ipc_maps_datatables_filters_counts_and_bounded_detail_without
assert!(tauri.contains("store_get_account_detail")); assert!(tauri.contains("store_get_account_detail"));
assert!(frontend.contains("store_query_accounts")); assert!(frontend.contains("store_query_accounts"));
assert!(frontend.contains("store_get_account_detail")); assert!(frontend.contains("store_get_account_detail"));
assert!(frontend.contains("pubkey: pubkey === "" ? null : pubkey")); assert!(frontend.contains(r#"pubkey: pubkey === "" ? null : pubkey"#));
assert!(frontend.contains("recordsTotalDecimal")); assert!(frontend.contains("recordsTotalDecimal"));
assert!(frontend.contains("recordsFilteredDecimal")); assert!(frontend.contains("recordsFilteredDecimal"));
assert!(frontend.contains("data-account-detail")); assert!(frontend.contains("data-account-detail"));

View File

@@ -0,0 +1,54 @@
<!-- file: deltas/0.3.8/pre.008-fix.001.md -->
<!-- version: 1 -->
# Delta `0.3.8-pre.008-fix.001` — correction du canari pubkey Account
## Base requise
Base directe attendue : `0.3.8-pre.008` (`workspace.package.version = 0.3.8-pre.8`).
## Objet
Corriger un défaut de syntaxe strictement limité au canari desktop Account de `ksp-app-store-desk`, sans modifier le comportement runtime livré par `pre.008`.
## Défaut observé
Le gate opérateur de `pre.008` valide les audits KSP et les chemins Store, mais `cargo clippy --workspace --all-targets` et `cargo test -p ksp-app-store-desk` ne peuvent pas compiler `tests/desktop_contract.rs`. Le motif TypeScript suivant a été placé dans un string literal Rust ordinaire :
```text
pubkey: pubkey === "" ? null : pubkey
```
Les deux guillemets TypeScript ferment prématurément la chaîne Rust.
## Correction
Le canari utilise désormais un raw string literal Rust pour conserver exactement le motif TypeScript attendu, sans échappement ambigu.
Aucun contrat fonctionnel n'est modifié.
## Hors scope
Aucun changement frontend, runtime Account, IPC, DTO, Store API, Store façade, PostgreSQL, SQL, migration, Config ou capability Tauri.
## Version
```text
delivery = 0.3.8-pre.008-fix.001
workspace.package.version = 0.3.8-pre.8.fix.1
commit = v0.3.8-pre.008-fix.001
tag = aucun
```
## Gate requis
```bash
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 test -p ksp-store-lib
cargo check -p ksp-store-lib --no-default-features
```

View File

@@ -1,5 +1,5 @@
<!-- file: docs/validation/025-V0_3_8_STORE_DESK.md --> <!-- file: docs/validation/025-V0_3_8_STORE_DESK.md -->
<!-- version: 18 --> <!-- version: 19 -->
# Validation v0.3.8 — Store Desk V1 RAW # Validation v0.3.8 — Store Desk V1 RAW
@@ -674,3 +674,15 @@ cargo check -p ksp-store-lib --no-default-features: PASS
Le gate Cargo de `pre.008` reste à rejouer après application du delta. Le gate Cargo de `pre.008` reste à rejouer après application du delta.
## 33. `pre.008-fix.001` — correction du canari pubkey Account
Le gate opérateur de `0.3.8-pre.8` confirme que les audits KSP, `cargo check --workspace`, Store lib et `--no-default-features` sont verts. L'unique blocage est la compilation du canari `desktop_contract.rs` : le motif TypeScript `pubkey: pubkey === "" ? null : pubkey` a été placé dans un string literal Rust ordinaire sans échapper les guillemets internes.
`pre.008-fix.001` corrige uniquement ce canari :
- [X] le motif TypeScript est exprimé par un raw string literal Rust valide ;
- [X] le contrat vérifié reste exactement `pubkey: pubkey === "" ? null : pubkey` ;
- [X] aucun runtime Account, frontend, IPC, DTO, Store, PostgreSQL, SQL, Config ou capability Tauri n'est modifié ;
- [X] la version workspace devient `0.3.8-pre.8.fix.1` parce qu'un fichier de test Rust est modifié.
Le gate Cargo du fix reste à rejouer après application du delta.