v0.3.2-pre.012

This commit is contained in:
2026-08-30 06:08:18 +02:00
parent b375f263dc
commit 8363c8bdc9
5 changed files with 1508 additions and 6 deletions

320
deltas/0.3.2/pre.012.md Normal file
View File

@@ -0,0 +1,320 @@
<!-- file: deltas/0.3.2/pre.012.md -->
<!-- version: 1 -->
# 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 1520 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.