# Delta `0.3.1-pre.008` — gate technique final Store API ## 1. Base requise Cette tranche s'applique exclusivement après : ```text 0.3.1-pre.007-fix.001 workspace.package.version = 0.3.1-pre.7-fix.1 ``` Le gate opérateur fourni le **29 août 2026** est intégralement vert : ```text cargo fmt --all PASS audits Rust / exports / workspace PASS / clean audit Markdown PASS — 186 tables / 132 fichiers cargo check --workspace PASS cargo clippy --workspace --all-targets PASS cargo test -p ksp-store-api PASS ``` Le gate Store API comprend : ```text 15 unit tests 2 dependency-boundary tests 1 external-backend test 7 public-api tests 5 release-completeness tests 4 security-hardening tests doc-tests propres ``` ## 2. Objectif `pre.008` est exclusivement le gate technique final de `0.3.1`. Aucun nouveau modèle, capability, outcome, query, règle de rétention, event-only type, backend, codec, dépendance ou comportement runtime n'est ajouté. Les canaris déjà présents couvrent la surface fonctionnelle de la release. La tranche doit seulement : ```text bump la prerelease Cargo vers pre.8 mettre le plan et la validation en état de gate final tracer le présent delta faire rejouer le gate workspace complet + graphes Cargo par l'opérateur ``` ## 3. Version La prerelease non-fix synchronise l'identité Cargo : ```text 0.3.1-pre.7-fix.1 -> 0.3.1-pre.8 ``` Le bump garantit une identité de build distincte après la série `pre.007/fix.001` et évite toute ambiguïté avec les artefacts Cargo précédents. ## 4. Surface déjà couverte Les canaris existants verrouillent notamment : ```text RawTransaction + RawTransactionObservation RawAccountState + RawAccountObservation provenance / références / payload / hashes bornés queries cursorisées sans plafond métier Store arbitraire outcomes idempotence/conflict atomic acquisition contracts RawRetentionState + tombstone + force-rehydrate ExpectedStateMismatch pour les races de rétention 10 capabilities fines object-safe backend externe implémentable sans ksp-store-lib 60 exports crate-root exacts frontière ksp-interface-lib / ksp-store-api aucun backend SQL/runtime aucune surface N2 STRUCTURAL / N3 DECODED / N4 DOMAIN ``` Aucun nouveau test n'est ajouté uniquement pour matérialiser `pre.008`. ## 5. Fichiers ajoutés ```text deltas/0.3.1/pre.008.md ``` ## 6. Fichiers modifiés ```text Cargo.toml docs/plans/022-V0_3_1_STORE_RAW_PLAN.md docs/validation/018-V0_3_1_STORE_RAW.md ``` ## 7. Surface explicitement inchangée Cette tranche ne touche pas : ```text crates/ksp-store-api/src/** crates/ksp-store-api/tests/** crates/ksp-store-api/unit_tests/** crates/ksp-store-api/Cargo.toml README.md ROADMAP.md CHANGELOG.md prompts/** config/** docs/architecture/** docs/rules/** ``` ## 8. Gate opérateur final Exécuter : ```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 -p ksp-store-api cargo test -p ksp-logging-lib --test ownership cargo test --workspace cargo tree -p ksp-store-api --edges normal cargo tree --duplicates ``` Résultat architectural attendu pour le graphe ciblé : ```text ksp-store-api └── ksp-core-lib └── dépendances low-level Core existantes ``` Aucune dépendance Store -> Interface/Transport/Program/Config/Logging/backend DB ne doit apparaître. `cargo tree --duplicates` est un gate d'inspection : les doublons transitifs déjà présents dans le workspace doivent être observés, mais `pre.008` n'introduit aucune dépendance nouvelle susceptible d'en créer. ## 9. Suite Si ce gate complet est vert : ```text 0.3.1-pre.009 ``` ouvre uniquement la réconciliation documentaire finale (`ksp-store-api/README.md`, `USAGE.md`, plan, validation et indexes/références durables réellement concernés), sans rouvrir `CHANGELOG.md`, `ROADMAP.md` ni le prompt `0.3.2`.