v0.2.14-rel.001

This commit is contained in:
2026-08-28 16:56:06 +02:00
parent 7dfe892467
commit 3d307be645
2 changed files with 309 additions and 2 deletions

307
deltas/0.2.14/rel.001.md Normal file
View File

@@ -0,0 +1,307 @@
<!-- file: deltas/0.2.14/rel.001.md -->
<!-- version: 1 -->
# Delta `0.2.14-rel.001` — publication stable Program API foundation
## 1. Base requise
Base directe attendue :
```text
0.2.14-pre.008
workspace.package.version = 0.2.14-pre.8
```
Commit attendu pour cette livraison :
```text
v0.2.14-rel.001
```
Tag stable attendu après validation :
```text
v0.2.14
```
## 2. Responsabilité de `rel.001`
Cette livraison effectue uniquement la mécanique de publication stable définie par le cycle KSP et `VER-LIFECYCLE-012`.
Elle :
- passe `workspace.package.version` de `0.2.14-pre.8` à `0.2.14` ;
- 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 opérateur du gate technique final `0.2.14-pre.006`, exécuté le **28 août 2026**, a validé :
```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 — 174 tables / 124 fichiers
cargo check --workspace PASS
cargo clippy --workspace --all-targets PASS
cargo test -p ksp-program-api PASS — 18 tests Rust
cargo test -p ksp-logging-lib --test ownership PASS — 2 tests
cargo test --workspace PASS
cargo tree -p ksp-program-api --edges normal PASS / inspecté
cargo tree --duplicates PASS / inspecté
```
Le graphe normal ciblé est resté strictement :
```text
ksp-program-api
├── ksp-core-lib
│ └── solana-pubkey
└── ksp-interface-lib
└── ksp-core-lib
```
Le gate opérateur de la réconciliation documentaire `0.2.14-pre.007`, exécuté le **28 août 2026**, a ensuite validé :
```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 — 175 tables / 125 fichiers
cargo check --workspace PASS
cargo clippy --workspace --all-targets PASS
cargo test -p ksp-program-api PASS — 18 tests Rust
cargo test -p ksp-logging-lib --test ownership PASS
cargo test --workspace PASS
```
Enfin, le gate opérateur de la préparation minimale de publication `0.2.14-pre.008`, exécuté le **28 août 2026**, a validé :
```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 — 175 tables / 127 fichiers
cargo check --workspace PASS
cargo clippy --workspace --all-targets PASS
cargo test -p ksp-program-api PASS — 18 tests Rust
cargo test -p ksp-logging-lib --test ownership PASS
cargo test --workspace PASS
```
`pre.008` n'a rouvert aucun code, test, README/USAGE, plan, validation ou architecture. Elle a préparé uniquement `Cargo.toml`, `CHANGELOG.md`, `ROADMAP.md`, le prompt suivant et son delta.
Le seul incident technique de la release, le faux positif cross-crate du scanner Logging observé en `pre.005`, a été corrigé dans `pre.005-fix.001` sans changement fonctionnel ; son gate ciblé puis le workspace complet sont passés avant l'ouverture de `pre.006`.
## 4. Version stable publiée
La version Cargo devient :
```text
workspace.package.version = 0.2.14
```
La release stable publiée est :
```text
0.2.14 — Program API foundation
```
La surface stable comprend :
```text
ksp-program-api
ProgramInstructionRecognition
NoMatch
ProgramMatch
ExactMatch
ProgramInstructionDecodeOutcome<Decoded>
Decoded(Decoded)
Unsupported
ProgramInstructionDecoder: Send + Sync
associated type Decoded
program_ids(&self) -> &[Pubkey]
recognize(&self, &ProgramInstruction) -> ProgramInstructionRecognition
decode(&self, &ProgramInstruction) -> Result<ProgramInstructionDecodeOutcome<Self::Decoded>>
10 exports crate-root exacts
3 modules/fichiers Rust de production exacts
Program Pubkey opaque non enregistré supporté
output Decoded possédé par l'implémentation externe
aucun bound implicite Debug / Clone / Send / Sync sur Decoded
```
La dependency direction stable reste :
```text
ksp-program-api
-> ksp-core-lib
-> ksp-interface-lib
-> ksp-core-lib
```
Sont volontairement absents de cette foundation :
```text
ksp-program-lib
registry runtime / dyn registry
ProgramKind / descriptor global
identity / version / coverage
proofs / diagnostics de replay
ProgramAccountDecoder
ProgramEventDecoder
ProgramReturnDataDecoder
ProgramExecutionPreparer
payload canonique D3
serde / serde_json / Any
borsh / wincode / bincode
ksp-logging-lib / tracing runtime
réseau / filesystem / environnement
Store / Materializer / Wallet / Config / Tauri
```
`ProgramInstructionRecognition::ExactMatch` reste une assertion de reconnaissance du decoder et non une preuve indépendante. Les erreurs réelles restent transportées par le `Result` Core ; `Unsupported` représente un état de décodage non supporté et non une erreur artificielle.
## 5. Fichiers ajoutés
```text
deltas/0.2.14/rel.001.md
```
## 6. Fichiers modifiés
```text
Cargo.toml
```
## 7. Fichiers supprimés
```text
aucun
```
## 8. Validations exécutées pour préparer le delta
Contrôles statiques de l'overlay :
```text
Cargo.toml version 0.2.14
Cargo.toml header version 322
payload rel.001 2 fichiers exactement
CHANGELOG.md non rouvert
ROADMAP.md non rouvert
prompt 020 non rouvert
README/USAGE non rouverts
plan / validation 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. Le gate stable final reste à exécuter après application du delta et avant commit/tag.
## 9. Validations non exécutées pendant la préparation
Ne sont volontairement pas rejoués pour construire l'overlay :
```text
cargo check --workspace
cargo clippy --workspace --all-targets
cargo test -p ksp-program-api
cargo test -p ksp-logging-lib --test ownership
cargo test --workspace
cargo tree -p ksp-program-api --edges normal
cargo tree --duplicates
smokes réseau/live
```
Le changement est limité au signal de version Cargo et au présent delta ; ces contrôles doivent uniquement être rejoués dans le gate stable défini ci-dessous lorsque requis.
## 10. Validation stable après application
Exécuter avant publication :
```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.2.14
cargo check --workspace
cargo clippy --workspace --all-targets
cargo test --workspace
```
Aucun smoke réseau/live ni nouveau graphe Cargo n'est requis : `rel.001` ne modifie ni runtime, ni code métier, ni dépendances.
## 11. Décisions de publication
Aucune nouvelle décision fonctionnelle ou architecturale n'est introduite par `rel.001`.
La publication confirme uniquement que :
1. `0.2.14-pre.008` est la candidate directe de la release stable ;
2. les lanes technique, documentaire et préparation de publication sont closes ;
3. `CHANGELOG.md`, `ROADMAP.md` et `prompts/020-V0_3_1_START_PROMPT.md` restent inchangés dans `rel.001` ;
4. `ksp-program-api` reste instruction-only et sans runtime `ksp-program-lib` ;
5. l'output typé reste possédé par l'implémentation et aucun registry hétérogène n'est promis par la foundation ;
6. l'archive historique `khadhroony-bot3_v0.5.3-pre.005-fix010.zip` est obligatoire pour l'audit `0.3.1-pre.001`, mais reste une source historique non normative ;
7. `0.3.1` ouvre `ksp-store-api` + `ksp-store-lib` avec PostgreSQL de référence et persistence RAW-only ;
8. la prochaine release s'ouvre exclusivement depuis le tag stable `v0.2.14`.
## 12. Questions ouvertes
Aucune question ouverte ne bloque la publication de `0.2.14`.
Les choix de registry/runtime Program, payload canonique D3, decoders account/event/return-data et préparation d'exécution restent explicitement reportés. Ils ne constituent pas une dette bloquante de cette foundation et ne doivent pas être réintroduits pendant la publication stable.
Le détail du modèle RAW, de l'API backend-agnostic Store, du schéma PostgreSQL et des migrations appartient à l'audit/sizing de `0.3.1-pre.001`.
## 13. Commit et tag stable
Après succès du gate stable :
```text
commit : v0.2.14-rel.001
tag : v0.2.14
```
Aucun tag intermédiaire `rel.001` n'est requis.
Commandes Git typiques :
```bash
git add Cargo.toml deltas/0.2.14/rel.001.md
git commit -m "v0.2.14-rel.001"
git tag v0.2.14
git push
git push origin v0.2.14
```
## 14. Suite
Après publication du tag stable `v0.2.14`, ouvrir :
```text
0.3.1-pre.001 — Store RAW foundation
```
avec :
```text
prompts/020-V0_3_1_START_PROMPT.md
```
La session suivante doit recevoir :
```text
archive opérateur exacte de v0.2.14
khadhroony-bot3_v0.5.3-pre.005-fix010.zip
```
`0.3.1-pre.001` reste une tranche d'audit/brainstorming/sizing avant toute implémentation lourde ; elle doit auditer l'ancien `ks-store` et PostgreSQL actuel, définir le minimum RAW réellement replayable, choisir le modèle API/backend extensible et préserver les reports `0.3.2`/`0.3.3`/`0.3.4` ainsi que CORE/DECODE/SPECIALIZED.