330 lines
10 KiB
Markdown
330 lines
10 KiB
Markdown
<!-- file: deltas/0.3.2/rel.001.md -->
|
|
<!-- version: 1 -->
|
|
|
|
# Delta `0.3.2-rel.001` — publication stable Store/PostgreSQL foundation
|
|
|
|
## 1. Base requise
|
|
|
|
Base directe attendue :
|
|
|
|
```text
|
|
0.3.2-pre.012
|
|
workspace.package.version = 0.3.2-pre.12
|
|
```
|
|
|
|
Commit attendu pour cette livraison :
|
|
|
|
```text
|
|
v0.3.2-rel.001
|
|
```
|
|
|
|
Tag stable attendu après validation :
|
|
|
|
```text
|
|
v0.3.2
|
|
```
|
|
|
|
## 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.2-pre.12` à `0.3.2` ;
|
|
- ajoute le présent delta `rel.001` ;
|
|
- ne corrige ni code, ni test, ni manifest de crate, ni Config, ni migration, 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 final `0.3.2-pre.010`, exécuté le **29 août 2026** après `cargo clean`, a reconstruit et validé la workspace depuis zéro.
|
|
|
|
Il a notamment validé :
|
|
|
|
```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
|
|
cargo check --workspace PASS
|
|
cargo clippy --workspace --all-targets PASS
|
|
cargo test --workspace PASS
|
|
cargo tree -p ksp-store-lib --edges normal inspecté
|
|
cargo tree -p ksp-store-lib -e features inspecté
|
|
cargo tree -p ksp-store-postgres-lib --edges normal inspecté
|
|
cargo tree --duplicates inspecté
|
|
cargo tauri build — SOL Prices Desk PASS
|
|
cargo tauri build — Wallet Desk PASS
|
|
cargo tauri build — Config Desk PASS
|
|
```
|
|
|
|
Le même gate a rejoué le test PostgreSQL réel opt-in sur un serveur **PostgreSQL major 17** :
|
|
|
|
```text
|
|
postgres_foundation_live PASS
|
|
bootstrap initial PASS
|
|
réouverture idempotente PASS
|
|
bootstrap concurrent sous advisory lock PASS
|
|
health Ready PASS
|
|
mismatch checksum PASS
|
|
recovery après restauration PASS
|
|
rollback transactionnel injecté PASS
|
|
close borné PASS
|
|
```
|
|
|
|
Le gate `0.3.2-pre.011`, exécuté le **30 août 2026**, a validé la réconciliation documentaire finale et le bon scope Markdown `deltas/0.3.2` :
|
|
|
|
```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 / 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
|
|
cargo check -p ksp-store-lib --no-default-features PASS
|
|
```
|
|
|
|
Enfin, le gate `0.3.2-pre.012`, exécuté le **30 août 2026**, a validé la préparation minimale de publication :
|
|
|
|
```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 / 144 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-postgres-lib PASS
|
|
cargo test -p ksp-config-lib PASS
|
|
cargo check -p ksp-store-lib --no-default-features PASS
|
|
```
|
|
|
|
`pre.011` et `pre.012` n'ont rouvert aucun code runtime, aucune migration ni aucune dépendance Store/PostgreSQL.
|
|
|
|
## 4. Version stable publiée
|
|
|
|
La version Cargo devient :
|
|
|
|
```text
|
|
workspace.package.version = 0.3.2
|
|
```
|
|
|
|
La release stable publiée est :
|
|
|
|
```text
|
|
0.3.2 — Store/PostgreSQL runtime foundation
|
|
```
|
|
|
|
La surface stable comprend notamment :
|
|
|
|
```text
|
|
ksp-store-lib
|
|
ksp-store-postgres-lib
|
|
feature postgres par défaut dans la façade
|
|
mode --no-default-features sans backend PostgreSQL
|
|
Config std.store avec targets nommés devnet/mainnet/testnet
|
|
1 Store = 1 RawNetworkId + 1 backend physique
|
|
tokio-postgres + deadpool-postgres
|
|
TLS Disabled / VerifyFull via Rustls
|
|
pool borné et timeouts connect/wait/create/recycle/shutdown
|
|
Store::open / Store::close
|
|
runtime_snapshot sans I/O
|
|
health/readiness portable et redacted
|
|
moteur privé de migrations KSP
|
|
V000 bootstrap metadata-only
|
|
ksp_store_schema_migrations
|
|
checksum SHA-256
|
|
advisory lock transactionnel borné
|
|
bootstrap idempotent et concurrent-safe
|
|
refus du schema plus récent / historique divergent
|
|
URI et erreurs PostgreSQL non exposées
|
|
PostgreSQL >= 15, validé réellement sur major 17
|
|
```
|
|
|
|
Restent volontairement absents de `0.3.2` :
|
|
|
|
```text
|
|
persistence PostgreSQL RawTransaction
|
|
persistence PostgreSQL RawAccountState
|
|
repositories SQL métier RAW
|
|
queries/cursors PostgreSQL métier
|
|
retention/tombstone/ForceRehydrate PostgreSQL métier
|
|
CORE / DECODE / SPECIALIZED
|
|
worker / job / executor
|
|
Store Desk
|
|
```
|
|
|
|
La frontière stable reste :
|
|
|
|
```text
|
|
ksp-store-api
|
|
= contrats RAW backend-agnostic
|
|
|
|
ksp-store-lib
|
|
= façade/runtime commun + sélection backend par feature
|
|
|
|
ksp-store-postgres-lib
|
|
= driver/pool/TLS/SQL/migrations/health PostgreSQL privés
|
|
|
|
ksp-config-lib
|
|
= résolution std.store + secrets/env + target réseau/backend
|
|
```
|
|
|
|
`ksp-store-postgres-lib` ne dépend jamais de `ksp-store-lib`, et les consommateurs ordinaires dépendent uniquement de la façade.
|
|
|
|
## 5. Trajectoire suivante confirmée
|
|
|
|
La suite reste :
|
|
|
|
```text
|
|
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/022-V0_3_3_START_PROMPT.md
|
|
```
|
|
|
|
`0.3.3-pre.001` doit commencer par audit/brainstorming/sizing avant SQL lourd et exige l'archive historique :
|
|
|
|
```text
|
|
khadhroony-bot3_v0.5.3-pre.005-fix010.zip
|
|
```
|
|
|
|
Cette archive sert uniquement à réauditer l'ancienne vertical slice transaction PostgreSQL ; elle n'a aucune autorité normative sur l'architecture KSP actuelle.
|
|
|
|
## 6. Fichiers ajoutés
|
|
|
|
```text
|
|
deltas/0.3.2/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.2
|
|
payload rel.001 2 fichiers exactement
|
|
CHANGELOG.md non rouvert
|
|
ROADMAP.md non rouvert
|
|
prompt 022 non rouvert
|
|
README/USAGE non rouverts
|
|
plan / validation non rouverts
|
|
architecture / règles non rouvertes
|
|
Config / schemas / migrations non rouverts
|
|
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.2
|
|
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 le smoke PostgreSQL réel : `rel.001` ne modifie ni code/runtime, ni dépendance, ni Config, ni migration, ni surface desktop.
|
|
|
|
## 11. Questions ouvertes
|
|
|
|
Aucune question ouverte ne bloque la publication de `0.3.2`.
|
|
|
|
Les décisions métier/physiques suivantes appartiennent explicitement à `0.3.3-pre.001` :
|
|
|
|
```text
|
|
binding vérifiable database <-> RawNetworkId
|
|
représentation PostgreSQL sans narrowing des valeurs unsigned
|
|
V001 RawTransaction + observations
|
|
clés/contraintes/indexes
|
|
ordre total et version du cursor
|
|
atomicité canonical + observation
|
|
idempotence et conflits concurrents
|
|
rétention/tombstone/ForceRehydrate physiques
|
|
mapping SQL -> erreurs Store redacted
|
|
```
|
|
|
|
`RawAccountState` PostgreSQL reste réservé à `0.3.4`.
|
|
|
|
## 12. Commit et tag stable
|
|
|
|
Après succès du gate stable :
|
|
|
|
```text
|
|
commit : v0.3.2-rel.001
|
|
tag : v0.3.2
|
|
```
|
|
|
|
Aucun tag intermédiaire `rel.001` n'est requis.
|
|
|
|
Commandes Git typiques :
|
|
|
|
```bash
|
|
git add Cargo.toml deltas/0.3.2/rel.001.md
|
|
git commit -m "v0.3.2-rel.001"
|
|
git tag v0.3.2
|
|
git push
|
|
git push origin v0.3.2
|
|
```
|
|
|
|
## 13. Suite
|
|
|
|
Après publication du tag stable `v0.3.2`, ouvrir exclusivement :
|
|
|
|
```text
|
|
0.3.3-pre.001 — PostgreSQL RawTransaction vertical slice
|
|
```
|
|
|
|
avec :
|
|
|
|
```text
|
|
prompts/022-V0_3_3_START_PROMPT.md
|
|
```
|
|
|
|
La session suivante doit recevoir :
|
|
|
|
```text
|
|
archive opérateur exacte de v0.3.2
|
|
khadhroony-bot3_v0.5.3-pre.005-fix010.zip
|
|
```
|
|
|
|
`0.3.3-pre.001` reste une tranche d'audit/brainstorming/sizing et ne doit pas commencer l'implémentation SQL lourde avant fermeture des décisions de schéma, concurrence, cursorisation et rétention.
|