diff --git a/Cargo.toml b/Cargo.toml index 9248dca..189beb6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,12 +1,12 @@ # file: Cargo.toml -# version: 470 +# version: 471 [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.11.fix.1" +version = "0.3.8-pre.12" edition = "2024" license = "MIT" repository = "https://git.sasedev.com/Sasedev/khadhroony-solana-project" diff --git a/deltas/0.3.8/pre.012.md b/deltas/0.3.8/pre.012.md new file mode 100644 index 0000000..2e9dd79 --- /dev/null +++ b/deltas/0.3.8/pre.012.md @@ -0,0 +1,135 @@ + + + +# Delta `0.3.8-pre.012` — gate technique final Store Desk + +## 1. Base requise + +Base directe obligatoire : + +```text +0.3.8-pre.011-fix.001 +``` + +Le gate opérateur de cette base est entièrement vert : audits Rust/Markdown, workspace check, Clippy sans warning, Store Desk avec ses 6 canaris de release completeness, Store façade et compilation `--no-default-features` passent. + +## 2. Objectif + +Ouvrir exclusivement le gate technique final de `0.3.8` sans nouveau développement fonctionnel ni réconciliation documentaire durable. + +Cette tranche ne modifie aucun : + +```text +src/** +test fonctionnel +frontend/** +manifest de crate +dépendance ou feature +Store API/façade/PostgreSQL +SQL/schema/migration +Config/capability Tauri +README/USAGE +CHANGELOG/ROADMAP +prompt suivant +``` + +## 3. Version + +```text +workspace.package.version = 0.3.8-pre.12 +``` + +Aucune autre propriété Cargo n'est modifiée. + +## 4. Gate déterministe final + +```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 +``` + +Ce gate est séquentiel : tout échec bloque `pre.012`, même si un shell interactif poursuit les commandes suivantes. Aucun succès ultérieur ne masque un Clippy/test/check antérieur en échec. + +## 5. Smoke read-only opt-in + +Si un Store PostgreSQL opérateur sûr est disponible, le smoke desktop s'effectue **avant** le build final via : + +```bash +(cd crates/ksp-app-store-desk && cargo tauri dev) +``` + +Parcours minimal : + +```text +Store health = ready +charger une page RAW Transactions +charger une page RAW Accounts, même vide +ouvrir un détail Transaction/Account lorsqu'une row existe +charger la table Observation du détail, vide autorisé +fermer l'application et vérifier le shutdown Store propre +``` + +Le smoke est strictement read-only. Il ne doit déclencher aucune archive, purge, force-rehydrate, backfill, write ou autre mutation. Sans environnement live sûr explicitement disponible, le smoke reste non exécuté et aucune réussite n'est revendiquée. + +## 6. Build Tauri final + +Après tous les contrôles déterministes et le smoke éventuel, exécuter **en toute dernière opération lourde** : + +```bash +(cd crates/ksp-app-store-desk && cargo tauri build) +``` + +Un échec du build ouvre `pre.012-fix.NNN`. + +## 7. Fichiers ajoutés + +```text +deltas/0.3.8/pre.012.md +``` + +## 8. Fichiers modifiés + +```text +Cargo.toml +docs/plans/029-V0_3_8_STORE_DESK_PLAN.md +docs/validation/025-V0_3_8_STORE_DESK.md +``` + +## 9. Fichiers supprimés + +Aucun. + +## 10. Validations de l'environnement d'assemblage + +```text +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 +contrôle statique version/scope/header +reconstruction exacte de l'overlay sur pre.011-fix.001 +``` + +Cargo/rustc/rustfmt/Tauri ne sont pas disponibles dans l'environnement d'assemblage ; aucun gate Cargo ni build Tauri n'est déclaré PASS ici. + +## 11. Suite + +Après gate entièrement vert : + +```text +0.3.8-pre.013 — réconciliation documentaire finale +0.3.8-pre.014 — préparation publication + prompt suivant +0.3.8-rel.001 — publication stable +``` + +Tout défaut découvert avant cette clôture ouvre `pre.012-fix.NNN`. diff --git a/docs/plans/029-V0_3_8_STORE_DESK_PLAN.md b/docs/plans/029-V0_3_8_STORE_DESK_PLAN.md index 8d9e3d8..e47dc95 100644 --- a/docs/plans/029-V0_3_8_STORE_DESK_PLAN.md +++ b/docs/plans/029-V0_3_8_STORE_DESK_PLAN.md @@ -1,5 +1,5 @@ - + # Plan v0.3.8 — Store Desk V1 RAW @@ -628,7 +628,36 @@ Le frontend est rescanné contre toute ouverture réseau navigateur, stockage na ### pre.012 — gate technique final -`cargo fmt --check`, audits, check/clippy/tests workspace complets selon règles, cargo trees, duplicates, `cargo tauri build`, smoke PostgreSQL read-only opt-in si environnement sûr. +Ouvrir exclusivement la preuve technique finale sur la candidate déjà durcie, sans nouveau runtime, frontend, DTO, contrat Store, SQL, migration, Config, dépendance ou test fonctionnel. Le gate est séquentiel : tout échec invalide la tranche même si le shell poursuit ensuite d'autres commandes. + +Ordre attendu avant le build desktop final : + +```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 +``` + +Si un environnement PostgreSQL opérateur sûr est disponible, un smoke **strictement read-only** est exécuté ensuite via Store Desk : Store `ready`, page Transaction, page Account, détail/observations lorsqu'une row existe, puis fermeture propre. Aucune archive, purge, force-rehydrate ou autre mutation n'est admise. + +Le build Tauri est l'ultime opération lourde de la tranche : + +```bash +(cd crates/ksp-app-store-desk && cargo tauri build) +``` + +Un défaut ouvre `pre.012-fix.NNN`; aucune réconciliation README/USAGE durable n'est faite avant un gate entièrement vert. ### pre.013 — réconciliation documentaire finale diff --git a/docs/validation/025-V0_3_8_STORE_DESK.md b/docs/validation/025-V0_3_8_STORE_DESK.md index abb143d..0f1686a 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 @@ -835,3 +835,59 @@ Le gate opérateur de `0.3.8-pre.11` confirme que les audits KSP, `cargo check - - [X] la version workspace devient `0.3.8-pre.11.fix.1` car un test Rust est modifié. Le gate Cargo du fix reste à rejouer après application du delta. + +## 40. Clôture `pre.011-fix.001` et ouverture `pre.012` — gate technique final + +Le gate opérateur de `0.3.8-pre.11.fix.1` est entièrement vert. La correction du firewall `release_completeness.rs` élimine les dix diagnostics `clippy::implicit-return` sans modifier les assertions ni les inventaires : + +```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), 716 file(s)) +cargo check --workspace: PASS +cargo clippy --workspace --all-targets: PASS, aucun warning +cargo test -p ksp-app-store-desk: PASS + 37 unitaires + 6 dependency-boundary + 15 desktop-contract + 14 desktop-security + 1 public-API + 6 release-completeness +cargo test -p ksp-store-lib: PASS +cargo check -p ksp-store-lib --no-default-features: PASS +``` + +`pre.011` est donc fermée sans réserve. `pre.012` n'ajoute aucun développement fonctionnel ; elle synchronise uniquement la prerelease et matérialise le gate technique final. + +Gate déterministe requis : + +```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 +``` + +Les commandes constituent une séquence unique : un échec de format, audit, check, Clippy, test, feature-gate ou graphe bloque la clôture, même si le shell continue ensuite. + +Smoke PostgreSQL/desktop : opt-in uniquement si le Store configuré est un environnement sûr en lecture. Il doit se limiter à ouvrir le Store, obtenir `ready`, charger une page Transaction et Account, ouvrir un détail/les observations lorsqu'une row existe, puis fermer proprement. Aucun chemin archive/purge/force-rehydrate ou autre mutation n'est admis. L'absence d'environnement live sûr est documentée et n'autorise aucune réussite inventée. + +Après tous les contrôles précédents, le build Store Desk est exécuté **en dernière opération** : + +```bash +(cd crates/ksp-app-store-desk && cargo tauri build) +``` + +Tout défaut ouvre `pre.012-fix.NNN` avant `pre.013`. +