Files
khadhroony-solana-project/deltas/0.3.2/pre.012.md
2026-08-30 06:08:18 +02:00

321 lines
8.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!-- 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.