v0.3.8-pre.012-fix.001

This commit is contained in:
2026-09-04 07:23:33 +02:00
parent cfbf849e2a
commit eaefec2259
5 changed files with 108 additions and 13 deletions

View File

@@ -1,12 +1,12 @@
# file: Cargo.toml
# version: 471
# version: 472
[workspace]
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"]
[workspace.package]
version = "0.3.8-pre.12"
version = "0.3.8-pre.12.fix.1"
edition = "2024"
license = "MIT"
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
// version: 9
// version: 10
//! Desktop template and frontend contract tests for the Store Desk scaffold.
@@ -37,6 +37,13 @@ fn pre_002_fix_001_vite_config_matches_ksp_desk_template_except_identity_ports_a
assert_eq!(store, reference);
}
#[test]
fn pre_012_fix_001_tsconfig_matches_common_ksp_desk_template_byte_exact() {
let store = include_str!("../tsconfig.json");
let reference = include_str!("../../ksp-app-backfill-desk/tsconfig.json");
assert_eq!(store, reference);
}
#[test]
fn pre_002_frontend_dependency_baseline_is_ksp_owned_and_select_free() {
let parsed = parse_json(include_str!("../package.json"));

View File

@@ -3,17 +3,29 @@
"target": "ES2022",
"useDefineForClassFields": true,
"module": "ESNext",
"lib": ["ES2022", "DOM", "DOM.Iterable"],
"lib": [
"ES2022",
"DOM",
"DOM.Iterable"
],
"skipLibCheck": true,
"allowJs": false,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"moduleResolution": "Bundler",
"moduleResolution": "bundler",
"allowImportingTsExtensions": true,
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true
"noEmit": true,
"strict": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"noFallthroughCasesInSwitch": true,
"allowSyntheticDefaultImports": true,
"types": [
"vite/client",
"node"
]
},
"include": ["frontend/ts/**/*.ts", "vite.config.ts"]
"include": [
"frontend",
"vite.config.ts"
]
}

View File

@@ -0,0 +1,54 @@
# Delta 0.3.8-pre.012-fix.001 — réalignement TypeScript Store Desk
## Base requise
- delivery : `0.3.8-pre.012` ;
- `workspace.package.version` : `0.3.8-pre.12`.
## Défaut observé
Le gate technique final était vert jusqu'au build Tauri Store Desk. `npm run build` échouait dans TypeScript avec `TS2882` sur l'import side-effect :
```text
datatables.net-bs5/css/dataTables.bootstrap5.css
```
Une réinstallation npm ne modifiait rien. Le `tsconfig.json` Store Desk était le seul Desk KSP à ne plus correspondre au gabarit commun Config/Wallet/SOL Prices/Backfill. Après réalignement sur ce gabarit, `tsc && vite build` puis `cargo tauri build --bundles deb,rpm` ont réussi.
## Correction
- remplacer `crates/ksp-app-store-desk/tsconfig.json` par le gabarit Desk commun byte-for-byte ;
- rétablir notamment `types = ["vite/client", "node"]`, `allowImportingTsExtensions = true` et les garde-fous TypeScript communs ;
- ajouter un canari `desktop_contract` imposant l'identité exacte avec le `tsconfig.json` Backfill Desk ;
- documenter la preuve et le besoin de rejouer le gate final sur l'overlay officiel.
## Scope négatif
Aucun changement de runtime Rust, frontend TypeScript/HTML/SASS métier, DTO, IPC, Store API/façade, PostgreSQL, SQL, migration, Config métier, Tauri capability ou dépendance npm.
## Version
`workspace.package.version = 0.3.8-pre.12.fix.1` : le fix touche une configuration de build frontend et un test Rust.
## Gate opérateur
```bash
cargo fmt --all -- --check
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 --all-features -- -D warnings
cargo test --workspace --all-targets --all-features
cargo check -p ksp-store-lib --no-default-features
cargo tree -p ksp-app-store-desk --edges normal
cargo tree -p ksp-app-store-desk -e features
cargo tree -p ksp-store-lib --edges normal
cargo tree -p ksp-store-lib -e features
cargo tree --duplicates
(cd crates/ksp-app-store-desk && cargo tauri build --bundles deb,rpm)
```
Un échec intermédiaire invalide le gate, même si le shell poursuit les commandes suivantes.

View File

@@ -1,5 +1,5 @@
<!-- file: docs/validation/025-V0_3_8_STORE_DESK.md -->
<!-- version: 27 -->
<!-- version: 28 -->
# Validation v0.3.8 — Store Desk V1 RAW
@@ -891,3 +891,25 @@ Après tous les contrôles précédents, le build Store Desk est exécuté **en
Tout défaut ouvre `pre.012-fix.NNN` avant `pre.013`.
## 41. `pre.012-fix.001` — réalignement TypeScript Store Desk et fermeture du build frontend
Le gate technique final `pre.012` a confirmé que le format Rust, les audits, `cargo check`, Clippy `--all-targets --all-features -D warnings`, les tests workspace et le check Store sans feature par défaut sont verts. Le smoke Store Desk read-only a également fermé proprement le runtime.
Le build Tauri final a toutefois révélé un défaut de configuration frontend :
```text
TS2882: Cannot find module or type declarations for side-effect import of
'datatables.net-bs5/css/dataTables.bootstrap5.css'
```
Le `tsconfig.json` de Store Desk avait divergé du gabarit commun Config/Wallet/SOL Prices/Backfill et ne déclarait notamment pas les types `vite/client` et `node`. Un `npm i -D` sans changement de dépendances n'a pas corrigé le problème ; le réalignement de `tsconfig.json` sur le gabarit Desk commun a ensuite permis à `tsc && vite build` de passer et au build Tauri de produire les bundles `.deb` et `.rpm`.
`pre.012-fix.001` officialise strictement cette correction :
- [X] `crates/ksp-app-store-desk/tsconfig.json` est byte-for-byte identique au gabarit `ksp-app-backfill-desk/tsconfig.json`, lui-même aligné avec Config/Wallet/SOL Prices ;
- [X] `moduleResolution = "bundler"`, `allowImportingTsExtensions = true`, `types = ["vite/client", "node"]` et les garde-fous TypeScript communs sont présents ;
- [X] un canari `desktop_contract` impose désormais cet alignement exact ;
- [X] aucun runtime Rust, DTO, IPC, Store API/façade, PostgreSQL, SQL, migration, Config métier, capability Tauri ou dépendance npm n'est modifié ;
- [X] `workspace.package.version` devient `0.3.8-pre.12.fix.1` car `tsconfig.json` est un changement build/config et un test Rust est ajouté.
Le gate final doit être rejoué sur l'overlay officiel. Le build Tauri reste la dernière opération lourde et doit passer avec le `tsconfig.json` versionné par ce fix, sans correction locale supplémentaire.