# Delta `0.3.1-rel.001` — publication stable Store API RAW foundation ## 1. Base requise Base directe attendue : ```text 0.3.1-pre.011 workspace.package.version = 0.3.1-pre.11 ``` Commit attendu pour cette livraison : ```text v0.3.1-rel.001 ``` Tag stable attendu après validation : ```text v0.3.1 ``` ## 2. Responsabilité de `rel.001` Cette livraison effectue uniquement la mécanique de publication stable définie par `VER-LIFECYCLE-012`. Elle : - passe `workspace.package.version` de `0.3.1-pre.11` à `0.3.1` ; - ajoute le présent delta `rel.001` ; - ne corrige ni code, ni test, ni manifest de crate, ni README/USAGE, ni plan/validation, ni architecture/règle, ni prompt, ni `CHANGELOG.md`, ni `ROADMAP.md`. Tout défaut appartenant à un couloir antérieur doit renvoyer vers une prerelease appropriée ; `rel.001` n'est jamais une tranche de rattrapage. ## 3. Preuves acquises avant publication Le gate technique complet de `0.3.1-pre.008`, exécuté le **29 août 2026** après `cargo clean`, a reconstruit et validé la workspace depuis zéro : ```text cargo clean PASS cargo fmt --all PASS python3 scripts/audit_rust_workspace_rules.py PASS General Rust rule audit clean Rust export completeness audit 0 candidate(s) KSP workspace Rust rule audit clean python3 scripts/audit_markdown_tables.py PASS cargo check --workspace PASS cargo clippy --workspace --all-targets PASS cargo test --workspace PASS cargo tauri build — SOL Prices Desk PASS cargo tauri build — Wallet Desk PASS cargo tauri build — Config Desk PASS cargo tree -p ksp-store-api --edges normal inspecté cargo tree --duplicates inspecté ``` Le test ciblé `ksp-program-api`, initialement invoqué sous un nom de package erroné dans la séquence opérateur, a ensuite été rejoué explicitement avec le bon package et est passé intégralement. Le gate ciblé de la préparation minimale de publication `0.3.1-pre.011`, exécuté le **29 août 2026**, est également vert : ```text cargo fmt --all PASS python3 scripts/audit_rust_workspace_rules.py PASS General Rust rule audit clean Rust export completeness audit 0 candidate(s) KSP workspace Rust rule audit clean python3 scripts/audit_markdown_tables.py PASS — 186 tables / 137 fichiers cargo check --workspace PASS cargo clippy --workspace --all-targets PASS cargo test -p ksp-store-api PASS unit 15 passed dependency_boundary 2 passed external_backend 1 passed public_api 7 passed release_completeness 5 passed security_hardening 4 passed doc-tests 0 failed ``` Les tranches `pre.009`, `pre.010` et `pre.011` n'ont rouvert aucun code Rust de `ksp-store-api` ni aucune dépendance runtime ; elles ont porté la réconciliation documentaire, le redécoupage de la trajectoire Store/PostgreSQL puis la préparation de publication. ## 4. Version stable publiée La version Cargo devient : ```text workspace.package.version = 0.3.1 ``` La release stable publiée est : ```text 0.3.1 — Store API RAW foundation ``` La surface stable comprend notamment : ```text ksp-store-api RawTransaction + RawTransactionObservation RawAccountState + RawAccountObservation primitives RAW bornées et redaction-safe 10 capabilities backend-agnostic fines et object-safe queries/cursors sans plafond métier arbitraire imposé par Store outcomes d'idempotence et de conflit lifecycle RawTransaction Full -> Compacted -> Archived -> Purged RawTransactionTombstone minimal ForceRehydrate explicite ExpectedStateMismatch pour compare-and-transition concurrent 60 exports crate-root exacts runtime dependency normale : ksp-core-lib uniquement ``` Restent volontairement absents de `0.3.1` : ```text ksp-store-lib runtime ksp-store-postgres-lib PostgreSQL / SQL / migrations runtime Config std.store worker / job / executor policy N2 STRUCTURAL N3 DECODED N4 DOMAIN RawLog persistant TransactionStatusObservation commun backend-specific rows / SQL ids ``` La frontière de responsabilité stable reste : ```text ksp-store-api = modèles persistants/replayables + capabilities backend-agnostic ksp-interface-lib = contrats passifs/event-only inter-composants lorsqu'ils existent worker / job / executor = batch-size, priorité, stratégie de sélection, policy de traitement ``` La pagination Store reste une primitive de navigation/cursorisation. Une limite physique future d'un backend peut être exposée ou gérée par continuation, mais Store n'invente pas de plafond métier global inférieur. ## 5. Trajectoire suivante confirmée Le redécoupage final conserve `ksp-store-lib` et `ksp-store-postgres-lib` développés ensemble à chaque release, en trois slices verticales : ```text 0.3.2 fondation runtime/backend PostgreSQL 0.3.3 vertical slice PostgreSQL RawTransaction complète 0.3.4 vertical slice PostgreSQL RawAccountState + complétude Store RAW 0.3.5 Interface events partagés réellement nécessaires 0.3.6 Job API + premier backfill RAW 0.3.7 application backfill/inspection RAW ``` Le prompt actif de la prochaine release est : ```text prompts/021-V0_3_2_START_PROMPT.md ``` Il exige l'archive historique `khadhroony-bot3_v0.5.3-pre.005-fix010.zip` pour l'audit ciblé des anciennes surfaces Store/PostgreSQL, sans lui donner d'autorité normative sur KSP. ## 6. Fichiers ajoutés ```text deltas/0.3.1/rel.001.md ``` ## 7. Fichiers modifiés ```text Cargo.toml ``` ## 8. Fichiers supprimés ```text aucun ``` ## 9. Validations exécutées pour préparer le delta Contrôles statiques de l'overlay : ```text Cargo.toml version 0.3.1 payload rel.001 2 fichiers exactement CHANGELOG.md non rouvert ROADMAP.md non rouvert prompt 021 non rouvert README/USAGE non rouverts plan / validation non rouverts architecture / règles non rouvertes code / tests non rouverts aucun fichier de rattrapage présent ``` La préparation de l'archive ne rejoue aucun test Cargo dans l'environnement de génération. Les preuves techniques acquises sont celles des gates opérateur ci-dessus ; le gate stable final reste à exécuter après application. ## 10. Validation stable après application Exécuter avant commit/tag : ```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.1 cargo check --workspace cargo clippy --workspace --all-targets cargo test --workspace ``` Il n'est pas nécessaire de rejouer les trois builds Tauri, les graphes Cargo ni les smokes live : `rel.001` ne modifie ni code/runtime, ni dépendance, ni Config, ni surface desktop. ## 11. Questions ouvertes Aucune question ouverte ne bloque la publication de `0.3.1`. Les choix de pool, TLS, mécanisme de migrations/checksums/verrouillage, forme exacte de `StoreSettings/std.store` et health/readiness appartiennent à l'audit/sizing de `0.3.2-pre.001`. Les capabilities PostgreSQL métier `RawTransaction` et `RawAccountState` restent volontairement reportées à `0.3.3` et `0.3.4` respectivement. ## 12. Commit et tag stable Après succès du gate stable : ```text commit : v0.3.1-rel.001 tag : v0.3.1 ``` Aucun tag intermédiaire `rel.001` n'est requis. Commandes Git typiques : ```bash git add Cargo.toml deltas/0.3.1/rel.001.md git commit -m "v0.3.1-rel.001" git tag v0.3.1 git push git push origin v0.3.1 ``` ## 13. Suite Après publication du tag stable `v0.3.1`, ouvrir exclusivement : ```text 0.3.2-pre.001 — Store runtime / PostgreSQL foundation ``` avec : ```text prompts/021-V0_3_2_START_PROMPT.md ``` La session suivante doit recevoir : ```text archive opérateur exacte de v0.3.1 khadhroony-bot3_v0.5.3-pre.005-fix010.zip ``` `0.3.2-pre.001` reste une tranche d'audit/brainstorming/sizing avant implémentation lourde et doit préserver strictement le découpage `0.3.2` / `0.3.3` / `0.3.4` défini en fin de `0.3.1`.