# Delta `0.3.4-pre.013` — préparation de publication et prompt `0.3.5` ## 1. Base requise Base directe attendue : ```text 0.3.4-pre.012 workspace.package.version = 0.3.4-pre.12 ``` Le gate opérateur de `pre.012`, exécuté le **31 août 2026**, est entièrement vert : audits Rust/Markdown, `cargo check --workspace`, Clippy all-targets, tests ciblés Store/API/PostgreSQL/Config et `cargo check -p ksp-store-lib --no-default-features` passent. Le gate Markdown confirme : ```text 240 tables / 151 fichiers ``` `pre.012` n'a rouvert ni code fonctionnel ni migration ; la préparation de publication peut donc commencer sans correctif intermédiaire. ## 2. Objectif Dernière prerelease avant `rel.001`, strictement limitée à la préparation de publication minimale définie par `VER-LIFECYCLE-003` : ```text workspace.package.version -> 0.3.4-pre.13 finalisation publication de CHANGELOG.md clôture de 0.3.4 et précision de 0.3.5 dans ROADMAP.md création de prompts/024-V0_3_5_START_PROMPT.md delta pre.013 ``` Aucun README, USAGE, plan, validation, architecture, règle, source Rust, test, Config, schema ou migration n'est rouvert. ## 3. Version Conformément à `VER-ID-009` : ```text workspace.package.version = 0.3.4-pre.13 ``` Le header du `Cargo.toml` racine est incrémenté uniquement parce que ce fichier est réellement modifié. ## 4. `CHANGELOG.md` Une entrée stable `0.3.4` est ajoutée en tête et synthétise : ```text RAW capabilities Store/PostgreSQL 10/10 4 RawAccount* ajoutées aux 6 RawTransaction* V002 additive RawAccountState/RawAccountObservation 32 ressources V002 checksum V002 ff21605ed45f7ab4c0f92bbb692700b4118a9488b04d50a31d259ac59bdb550e V000/V001 immuables u64 exact NUMERIC(20,0) bytes account complets <= 16 MiB acquisition state+observation atomique idempotence/conflit exacts observation supplémentaire reference-guarded metadata Yellowstone observation-only pagination keyset (slot,pubkey,state_hash) cursor KSPA V1 109 bytes anti-replay aucune rétention destructive account live PostgreSQL 17 vert workspace + no-default-features + graphes verts ``` Le changelog référence également le prompt `0.3.5` et précise que l'archive kbot3 n'y est pas requise. ## 5. `ROADMAP.md` L'entrée `0.3.4` passe à `[X]` et décrit la surface stable effectivement validée. L'entrée `0.3.5` est précisée sans préjuger du résultat de son `pre.001` : ```text ksp-interface-lib uniquement matrice HTTP/WS/Yellowstone/Helius logs / slot-root-slotsUpdates / transaction status / vote à auditer seuls les faits event-only réellement convergents et utiles sont matérialisés aucune duplication RawTransaction/RawAccountState aucun event bus aucune dépendance Interface -> Transport/Store ``` Les étapes `0.3.6` et `0.3.7` restent inchangées. ## 6. Prompt `0.3.5` Le nouveau prompt ouvre : ```text 0.3.5 — ksp-interface-lib : modèles passifs/event-only réellement partagés ``` Base autoritaire : ```text v0.3.4 ``` Le `pre.001` est réservé à : ```text lecture règles/architecture inventaire Interface actuel inventaire Store RAW 10/10 inventaire des surfaces HTTP/WS/gRPC/provider event-like identification des consumers matrice producer -> nature de fait matrice de convergence sémantique ownership Interface/Transport/Store/composition anti-duplication RawTransaction/RawAccountState API sketch des seuls types admis bornes / Debug / Clone / non_exhaustive graphe cible threat model sizing plan 026 + validation 022 ``` Le prompt interdit une grande enum `Event`, l'Option-soup, les DTOs provider promus tels quels, un event bus, une nouvelle persistence et tout codec/logging runtime non justifié. ## 7. Archive historique `0.3.5` **n'exige pas** : ```text khadhroony-bot3_v0.5.3-pre.005-fix010.zip ``` La raison est explicite dans le prompt : l'autorité de cette tranche est la sémantique actuelle déjà implémentée dans KSP, complétée par les sources officielles actuelles HTTP/WS/Yellowstone lorsque nécessaire. Un ancien modèle d'events ne doit pas piloter le contrat public par inertie. ## 8. Prévision souple `0.3.5` Le prompt réserve : ```text pre.001 audit consumers/sémantiques/ownership + sizing pre.002 première famille passive retenue pre.003 famille supplémentaire seulement si justifiée pre.004 API publique + consumer externe + anti-duplication pre.005 hardening/completeness Interface pre.006 gate technique final pre.007 réconciliation documentaire pre.008 préparation publication rel.001 publication stable ``` Le nombre réel de familles et de prereleases reste recalibrable par `pre.001` ; aucun quota minimal d'events n'est imposé. ## 9. Fichiers ajoutés ```text prompts/024-V0_3_5_START_PROMPT.md deltas/0.3.4/pre.013.md ``` ## 10. Fichiers modifiés ```text Cargo.toml CHANGELOG.md ROADMAP.md ``` ## 11. Fichiers supprimés ```text aucun ``` ## 12. Surfaces explicitement non rouvertes ```text README.md RULES.md crates/** docs/** config/** migrations/** prompts/001..023 ``` Hormis le nouveau delta, aucun fichier sous `docs/` ou `crates/` n'est modifié. ## 13. Migrations Aucune migration n'est modifiée. Les checksums stables restent : ```text V000 d29068b8c13b9dc0cc9ef6aaadd0fa12d41e0fe4c56541a1118c4bfc846a1450 V001 31488cda2f08f3f46c4cdbdbb6c18c243662fada02eac4487040c8735d72cc51 V002 ff21605ed45f7ab4c0f92bbb692700b4118a9488b04d50a31d259ac59bdb550e ``` ## 14. Validations exécutées pendant la génération ```text python3 scripts/audit_rust_workspace_rules.py -> General Rust rule audit: clean -> Rust export completeness audit: 0 candidate(s) -> KSP workspace Rust rule audit: clean python3 scripts/audit_markdown_tables.py README.md RULES.md ROADMAP.md CHANGELOG.md docs prompts crates deltas/0.3.4 -> Markdown table audit: clean (240 table(s), 153 file(s)) scope exact pre.012 -> pre.013 -> 2 fichiers ajoutés -> 3 fichiers modifiés -> aucun fichier supprimé -> DIFF_SCOPE=PASS crates/** inchangé -> PASS docs/** inchangé -> PASS config/** inchangé -> PASS migrations/** byte-identiques -> PASS ``` Les cinq fichiers de la lane minimale sont donc les seuls fichiers ajoutés/modifiés. ## 15. Validations non exécutées pendant la génération La toolchain Cargo/Rust opérateur n'est pas supposée disponible dans l'environnement de génération. Aucun `cargo check`, Clippy ou test Cargo post-overlay n'est revendiqué sans exécution réelle. Aucun live PostgreSQL supplémentaire n'est requis par cette tranche : `pre.013` ne modifie ni code, ni tests, ni migrations. ## 16. Gate opérateur demandé ```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.4 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 ``` ## 17. Décisions prises ```text 0.3.4 est techniquement/documentairement fermé avant publication 0.3.5 reste limité à ksp-interface-lib et à ses docs/tests propres les events persistants/replayables restent Store API les DTOs protocol/provider restent Transport aucun event bus n'est ouvert aucune archive kbot3 n'est requise pour 0.3.5 les candidats event-only restent soumis à une matrice de convergence en pre.001 ``` ## 18. Questions ouvertes Aucune pour la publication `0.3.4`. Les questions de sélection exacte des events appartiennent explicitement à `0.3.5-pre.001`. ## 19. Suite Si le gate `pre.013` est propre : ```text 0.3.4-rel.001 ``` La livraison `rel.001` reste mécanique et minimale : version Cargo stable + delta uniquement. Elle ne corrige aucun défaut documentaire ou fonctionnel.