v0.3.1-rel.001
This commit is contained in:
@@ -6,7 +6,7 @@ resolver = "3"
|
||||
members = ["crates/ksp-app-config-desk", "crates/ksp-app-solprices-desk", "crates/ksp-app-wallet-desk", "crates/ksp-config-lib", "crates/ksp-core-lib", "crates/ksp-interface-lib", "crates/ksp-logging-lib", "crates/ksp-offchain-transport-lib", "crates/ksp-onchain-transport-lib", "crates/ksp-program-api", "crates/ksp-store-api", "crates/ksp-wallet-lib"]
|
||||
|
||||
[workspace.package]
|
||||
version = "0.3.1-pre.11"
|
||||
version = "0.3.1"
|
||||
edition = "2024"
|
||||
license = "MIT"
|
||||
repository = "https://git.sasedev.com/Sasedev/khadhroony-solana-project"
|
||||
|
||||
272
deltas/0.3.1/rel.001.md
Normal file
272
deltas/0.3.1/rel.001.md
Normal file
@@ -0,0 +1,272 @@
|
||||
<!-- file: deltas/0.3.1/rel.001.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# 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`.
|
||||
Reference in New Issue
Block a user