From eaefec2259710886c962684d4753e997c5d10b11 Mon Sep 17 00:00:00 2001 From: SinuS Von SifriduS Date: Fri, 4 Sep 2026 07:23:33 +0200 Subject: [PATCH] v0.3.8-pre.012-fix.001 --- Cargo.toml | 4 +- .../tests/desktop_contract.rs | 9 +++- crates/ksp-app-store-desk/tsconfig.json | 30 +++++++---- deltas/0.3.8/pre.012-fix.001.md | 54 +++++++++++++++++++ docs/validation/025-V0_3_8_STORE_DESK.md | 24 ++++++++- 5 files changed, 108 insertions(+), 13 deletions(-) create mode 100644 deltas/0.3.8/pre.012-fix.001.md diff --git a/Cargo.toml b/Cargo.toml index 189beb6..13d3b23 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -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" diff --git a/crates/ksp-app-store-desk/tests/desktop_contract.rs b/crates/ksp-app-store-desk/tests/desktop_contract.rs index 89ca664..19e06dd 100644 --- a/crates/ksp-app-store-desk/tests/desktop_contract.rs +++ b/crates/ksp-app-store-desk/tests/desktop_contract.rs @@ -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")); diff --git a/crates/ksp-app-store-desk/tsconfig.json b/crates/ksp-app-store-desk/tsconfig.json index 2892429..b5e3e21 100644 --- a/crates/ksp-app-store-desk/tsconfig.json +++ b/crates/ksp-app-store-desk/tsconfig.json @@ -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" + ] } diff --git a/deltas/0.3.8/pre.012-fix.001.md b/deltas/0.3.8/pre.012-fix.001.md new file mode 100644 index 0000000..a89f576 --- /dev/null +++ b/deltas/0.3.8/pre.012-fix.001.md @@ -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. diff --git a/docs/validation/025-V0_3_8_STORE_DESK.md b/docs/validation/025-V0_3_8_STORE_DESK.md index 0f1686a..15eb3d1 100644 --- a/docs/validation/025-V0_3_8_STORE_DESK.md +++ b/docs/validation/025-V0_3_8_STORE_DESK.md @@ -1,5 +1,5 @@ - + # 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.