# Delta `0.3.2-pre.012` — préparation de publication et prompt `0.3.3` ## 1. Base requise Base directe attendue : ```text 0.3.2-pre.011 workspace.package.version = 0.3.2-pre.11 ``` Le gate opérateur de `pre.011`, exécuté le **30 août 2026**, est entièrement vert : ```text cargo fmt --all PASS python3 scripts/audit_rust_workspace_rules.py PASS / clean python3 scripts/audit_markdown_tables.py PASS / clean — 186 tables / 142 fichiers cargo check --workspace PASS cargo clippy --workspace --all-targets PASS cargo test -p ksp-store-api PASS cargo test -p ksp-store-lib PASS cargo test -p ksp-store-lib --no-default-features PASS cargo test -p ksp-store-postgres-lib PASS cargo test -p ksp-config-lib PASS — 126 unit tests + ownership/public API cargo check -p ksp-store-lib --no-default-features PASS ``` Le gate technique complet de référence de `pre.010` reste également acquis : il a été rejoué après `cargo clean`, passe `cargo test --workspace`, les graphes Cargo, les trois builds Tauri Linux et le live PostgreSQL sur **major 17**. ## 2. Objectif Dernière prerelease avant `rel.001`, strictement limitée à la préparation de publication minimale définie par `VER-LIFECYCLE-003` : ```text bump workspace vers 0.3.2-pre.12 entrée stable candidate 0.3.2 dans CHANGELOG.md fermeture 0.3.2 et précision de 0.3.3 dans ROADMAP.md création du prompt 0.3.3 delta pre.012 ``` Aucun code, test, manifest de crate, README/USAGE, plan, validation, architecture, règle, config, schema ou migration n'est rouvert. ## 3. Version Cargo ```text 0.3.2-pre.11 -> 0.3.2-pre.12 ``` Le header `Cargo.toml` passe de la version fichier `345` à `346` parce que le fichier est réellement modifié. ## 4. Changelog `0.3.2` `CHANGELOG.md` enregistre la fondation stable candidate réellement livrée : ```text ksp-store-lib + ksp-store-postgres-lib feature postgres par défaut Store lié à exactement un RawNetworkId Config std.store avec targets devnet/mainnet/testnet et URI Secret séparées tokio-postgres + Deadpool + Rustls TLS Disabled / VerifyFull pool/connect/wait/create/recycle/shutdown bornés V000 bootstrap + ksp_store_schema_migrations history version/name/SHA-256 advisory transaction lock health/readiness portable et redacted 84 exports crate-root façade au gate hardening aucune capability/table RawTransaction ou RawAccountState métier ``` Il enregistre également le gate technique complet, le live PostgreSQL major 17 et la policy supportée PostgreSQL >= 15. ## 5. Roadmap `ROADMAP.md` : ```text passe 0.3.2 à [X] remplace les formulations prospectives par la fondation réellement livrée conserve 0.3.3 ouverte comme vertical slice RawTransaction complète précise que 0.3.3 couvre les six capabilities transaction/observation/rétention conserve RawAccountState + complétude RAW pour 0.3.4 ``` La séparation durable reste : ```text Store = persistence/navigation workers/jobs/executors = batch-size, priorité, backlog et policy ``` ## 6. Prompt `0.3.3` Le nouveau prompt : ```text prompts/022-V0_3_3_START_PROMPT.md ``` est confronté à : ```text docs/rules/PROMPT_STRUCTURE.md docs/rules/VERSION_WORKFLOW.md docs/rules/FILE_CONTRACTS.md docs/rules/RULES_KSP.md docs/rules/RULES_DEPENDENCIES.md docs/architecture/003-COMPONENT_CONTRACTS.md docs/architecture/004-COMPONENT_INVENTORY.md docs/architecture/005-DEPENDENCY_GRAPH.md docs/architecture/008-DATA_MATERIALIZATION_AND_STORE.md docs/architecture/009-ACQUISITION_WORKERS_AND_JOBS.md docs/plans/022-V0_3_1_STORE_RAW_PLAN.md docs/validation/018-V0_3_1_STORE_RAW.md docs/plans/023-V0_3_2_STORE_POSTGRES_FOUNDATION_PLAN.md docs/validation/019-V0_3_2_STORE_POSTGRES_FOUNDATION.md crates/ksp-store-api/src/** crates/ksp-store-lib/src/** crates/ksp-store-postgres-lib/src/** ``` Il impose une première tranche `pre.001` d'audit/design avant tout SQL métier lourd. ## 7. Archive historique requise pour la session suivante L'archive : ```text khadhroony-bot3_v0.5.3-pre.005-fix010.zip ``` reste **obligatoire au `0.3.3-pre.001`**, mais sa portée est réduite à l'ancien RAW transaction PostgreSQL : ```text raw transaction table transaction observations indexes/constraints raw queries raw transaction repository contrats DTO/entity/repository pertinents ``` Elle sert à produire une matrice : ```text REPRENDRE / REDESSINER / REPORTER / REJETER ``` Elle n'est ni une base de code ni une autorité sur `ksp-store-api` ou l'architecture KSP actuelle. ## 8. Scope strict du prompt suivant `0.3.3` doit implémenter les six capabilities : ```text RawTransactionRead RawTransactionWrite RawTransactionObservationRead RawTransactionObservationWrite RawTransactionRetentionRead RawTransactionRetentionWrite ``` sur le même couple Store/PostgreSQL, avec notamment : ```text migration métier à partir de V001 atomicité canonical + observation idempotence identical ERROR_CODE_RAW_CONFLICT pour contenu divergent get/list cursorisé network mismatch avant I/O retention/tombstone/ForceRehydrate concurrence/rollback PostgreSQL live gate ``` Le prompt force `pre.001` à fermer plusieurs questions physiques importantes avant code lourd : ```text binding de la database au RawNetworkId représentation PostgreSQL des u64/u32 sans narrowing ordre total + format du cursor concurrence/idempotence rétention physique honnête pour Full/Compacted/Archived/Purged error mapping SQL sûr ``` Sont explicitement réservés : ```text 0.3.4 -> RawAccountState PostgreSQL + complétude RAW 0.3.5 -> Interface events partagés si consumer réel 0.3.6 -> Job API + premier backfill 0.3.7 -> application backfill/inspection ``` ## 9. Prévision souple intégrée au prompt Le prompt réserve : ```text pre.001 audit contrats/kbot3/schema/concurrence/sizing pre.002 migration V001 + schema/indexes pre.003 mapping physique + lectures pre.004 persistence acquisition atomique + observations pre.005 list/query + cursor pre.006 retention/tombstone/ForceRehydrate pre.007 composition façade + conformance six capabilities pre.008 PostgreSQL integration réelle RawTransaction pre.009 hardening/completeness pre.010 gate technique final pre.011 réconciliation documentaire pre.012 préparation de publication rel.001 publication stable ``` La prévision reste souple et doit être recalibrée par `0.3.3-pre.001` selon le budget de 15–20 minutes par tranche intermédiaire. ## 10. Fichiers ajoutés ```text prompts/022-V0_3_3_START_PROMPT.md deltas/0.3.2/pre.012.md ``` ## 11. Fichiers modifiés ```text Cargo.toml CHANGELOG.md ROADMAP.md ``` ## 12. Fichiers supprimés ```text aucun ``` ## 13. Surfaces explicitement non rouvertes ```text README.md RULES.md .env.example config/** crates/** docs/** prompts/001..021 ``` En particulier : ```text crates/ksp-store-api/** crates/ksp-store-lib/** crates/ksp-store-postgres-lib/** docs/plans/023-V0_3_2_STORE_POSTGRES_FOUNDATION_PLAN.md docs/validation/019-V0_3_2_STORE_POSTGRES_FOUNDATION.md docs/architecture/** ``` ## 14. Validations de préparation À exécuter sur l'arbre reconstruit : ```text audit Rust workspace audit Markdown contrôle exact du payload overlay contrôle versions/file headers contrôle qu'aucun fichier hors lane n'est modifié ``` Aucun résultat Cargo nouveau n'est revendiqué par l'environnement de génération si Cargo n'y est pas disponible. ## 15. Gate opérateur La lane est documentaire/de publication ; le gate ciblé suffit : ```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/0.3.2 cargo check --workspace cargo clippy --workspace --all-targets cargo test -p ksp-store-api cargo test -p ksp-store-lib cargo test -p ksp-store-postgres-lib cargo test -p ksp-config-lib cargo check -p ksp-store-lib --no-default-features ``` Le live PostgreSQL, les trois builds Tauri et le workspace lourd n'ont pas besoin d'être rejoués dans cette tranche puisque `pre.012` ne touche aucune surface runtime/build/config/dependency. ## 16. Étape suivante Si le gate reste vert : ```text 0.3.2-rel.001 ``` La publication stable doit être strictement mécanique : ```text workspace.package.version = 0.3.2 deltas/0.3.2/rel.001.md ``` `rel.001` ne doit rouvrir ni `CHANGELOG.md`, ni `ROADMAP.md`, ni le prompt `0.3.3`, ni aucun autre document/code.