# Delta `0.3.4-pre.001-fix.001` — forecast souple éditable ## 1. Base requise Base directe attendue : ```text 0.3.4-pre.001 workspace.package.version = 0.3.4-pre.1 ``` Le gate opérateur de `pre.001` du 30 août 2026 est entièrement propre : audits Rust/Markdown, `cargo check --workspace`, Clippy, tests ciblés Store/Config et `cargo check -p ksp-store-lib --no-default-features` passent. ## 2. Motif du correctif Le sizing recalibré de `docs/plans/025-V0_3_4_STORE_POSTGRES_RAW_ACCOUNT_PLAN.md` était présenté sous forme de tableau. Cette forme décrit correctement le forecast mais ne permet pas d'insérer proprement l'historique des correctifs sous la prerelease concernée. Le projet possède déjà une convention documentaire adaptée : chaque prerelease du forecast est une sous-section `### pre.NNN` et chaque correctif éventuel est une sous-sous-section `#### pre.NNN-fix.MMM` placée directement sous sa tranche. ## 3. Correction La section `Sizing recalibré` devient un forecast souple éditable : ```text ## Sizing recalibré — prereleases souples ### pre.NNN — objet #### pre.NNN-fix.MMM — correctif éventuel ``` Chaque tranche expose désormais : - un statut modifiable ; - son budget cible ; - sa responsabilité technique principale ; - un emplacement naturel pour les fixes successifs. Le découpage `pre.001` à `pre.013` puis `rel.001`, les budgets et les responsabilités techniques restent inchangés. Le correctif ajoute seulement la hiérarchie documentaire nécessaire à l'historique futur. `pre.001-fix.001` est lui-même enregistré sous `pre.001` dans ce forecast. ## 4. Version Cargo inchangée Ce correctif est strictement documentaire. Conformément à `VER-ID-008` : ```text workspace.package.version = 0.3.4-pre.1 ``` `Cargo.toml` n'est pas modifié. ## 5. Fichiers ajoutés ```text deltas/0.3.4/pre.001-fix.001.md ``` ## 6. Fichiers modifiés ```text docs/plans/025-V0_3_4_STORE_POSTGRES_RAW_ACCOUNT_PLAN.md ``` Le header documentaire du plan passe de `version: 1` à `version: 2` parce que ce fichier est réellement modifié. ## 7. Fichiers non modifiés En particulier : ```text Cargo.toml src/** tests/** config/** migrations/** docs/validation/021-V0_3_4_STORE_POSTGRES_RAW_ACCOUNT.md deltas/0.3.4/pre.001.md ``` Le delta historique `pre.001.md` reste immuable ; le correctif est tracé uniquement dans le nouveau delta `pre.001-fix.001.md` et dans le forecast du plan. ## 8. Invariants techniques Aucun changement n'est apporté au design V002 figé par `pre.001` : ```text 2 tables seulement PK state = (pubkey, slot, state_hash) BYTEA pour les bytes/fixed-width NUMERIC(20,0) pour les u64 non bornés à i64 atomicité state + observation idempotence par comparaison exacte pagination keyset (slot, pubkey, state_hash) cursor account V1 KSPA distinct de KSPT 10 capabilities RAW finales = 6 transaction + 4 account ``` ## 9. Gate opérateur hérité Le gate exécuté sur `0.3.4-pre.001` avant ce correctif documentaire est PASS : ```text General Rust rule audit: clean Rust export completeness audit: 0 candidate(s) KSP workspace Rust rule audit: clean Markdown table audit: clean (240 table(s), 134 file(s)) 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-postgres-lib: PASS cargo test -p ksp-config-lib: PASS cargo check -p ksp-store-lib --no-default-features: PASS ``` Comme le fix ne touche ni code, ni build, ni runtime, ni config, ni migration, aucun nouveau live PostgreSQL n'est requis. L'audit Markdown doit simplement rester propre après la restructuration du plan. ## 10. Validation post-fix Les audits statiques applicables ont été rejoués après la restructuration : ```text General Rust rule audit: clean Rust export completeness audit: 0 candidate(s) KSP workspace Rust rule audit: clean Markdown table audit: clean (239 table(s), 135 file(s)) ``` La diminution d'une table correspond exactement au remplacement du tableau de sizing par des sous-sections ; le fichier delta supplémentaire porte le nombre de fichiers Markdown audités à 135. Contrôles de scope : ```text Cargo.toml : byte-identique à pre.001 validation 021 : byte-identique à pre.001 deltas/0.3.4/pre.001.md : byte-identique à pre.001 ```