Files
khadhroony-solana-project/deltas/0.2.14/pre.007.md
2026-08-28 16:16:15 +02:00

195 lines
6.4 KiB
Markdown

<!-- file: deltas/0.2.14/pre.007.md -->
<!-- version: 1 -->
# Delta `0.2.14-pre.007` — réconciliation documentaire finale Program API
## 1. Base
```text
0.2.14-pre.006
```
Le gate opérateur de `pre.006`, exécuté le **28 août 2026**, est intégralement vert :
```text
cargo fmt --all PASS
audits Rust / export completeness / workspace PASS
audit Markdown 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/2
cargo test --workspace PASS
cargo tree -p ksp-program-api --edges normal PASS — Core + Interface uniquement
cargo tree --duplicates inspecté
```
La lane technique est donc fermée avant cette tranche.
## 2. Objectif
`pre.007` est exclusivement le couloir de réconciliation documentaire finale de `0.2.14` défini par `VER-LIFECYCLE-006`.
Aucun fichier Rust, test, manifest de crate, dépendance, codec, runtime ou comportement n'est modifié. La tranche transforme les README/USAGE initiaux de Program API en références durables et aligne plan, validation, séquence fonctionnelle et index documentaires sur la surface réellement validée.
## 3. Version technique
```text
0.2.14-pre.6
->
0.2.14-pre.7
```
Le bump est mécanique pour une prerelease non-fix. Aucun autre manifest/version applicative n'est synchronisé artificiellement.
Commit/tag prerelease attendu :
```text
v0.2.14-pre.007
```
## 4. Surface finale candidate documentée
```text
ProgramInstructionRecognition
NoMatch / ProgramMatch / ExactMatch
ProgramInstructionDecodeOutcome<Decoded>
Decoded(Decoded) / Unsupported
ProgramInstructionDecoder: Send + Sync
type Decoded
program_ids(&self) -> &[Pubkey]
recognize(&self, &ProgramInstruction) -> ProgramInstructionRecognition
decode(&self, &ProgramInstruction) -> Result<ProgramInstructionDecodeOutcome<Self::Decoded>>
```
La façade crate-root conserve exactement 10 exports et trois modules/fichiers Rust de production. Le type `Decoded` reste possédé par l'implémentation et sans bound implicite `Debug/Clone/Send/Sync`.
## 5. Open-world et hardening final
Les références durables enregistrent les preuves acquises :
```text
Program Pubkey non enregistré accepté
external implementation canary PASS
input Interface maximal 255 accounts + 10_240 bytes
payload hostile aucun echo automatique ajouté par Program API
Debug outcome valeur Decoded non rendue
closed-world Program enum absent
registry / descriptor / priority absents
ProgramExecutionPreparer absent
serde / JSON / Any / codecs absents
logging / runtime / filesystem / environment / I/O absents
```
Une implémentation tierce reste responsable du contenu des erreurs qu'elle produit explicitement ; Program API n'ajoute aucun canal parallèle ni copie automatique du payload hostile.
## 6. Dependency firewall final
Le graphe normal confirmé par l'opérateur reste :
```text
ksp-program-api
├── ksp-core-lib
│ └── solana-pubkey
└── ksp-interface-lib
└── ksp-core-lib
```
Aucun `ksp-program-lib`, runtime, codec, serde, logging, Transport, Store, Wallet, Materializer, Config ou Tauri n'est introduit.
## 7. Références durables réconciliées
```text
crates/ksp-program-api/README.md
crates/ksp-program-api/USAGE.md
docs/000-README.md
docs/plans/000-README.md
docs/plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md
docs/plans/021-V0_2_14_PROGRAM_API_PLAN.md
docs/validation/000-README.md
docs/validation/017-V0_2_14_PROGRAM_API.md
```
Le README fixe l'ownership, l'inventaire public exact, les semantics Recognition/Outcome, le trait externe, le hardening et les frontières. `USAGE.md` documente uniquement la façade crate-root, l'implémentation externe, la sélection explicite, le decode outcome, les erreurs et le Debug sûr.
La séquence fonctionnelle enregistre le contenu effectivement livré par `0.2.14` et maintient les reports de `ksp-program-lib`, du payload D3, du registry runtime, des autres familles de decoder et du preparer jusqu'aux vertical slices réels.
## 8. Fichiers ajoutés/modifiés
Ajouté :
```text
deltas/0.2.14/pre.007.md
```
Modifiés :
```text
Cargo.toml
crates/ksp-program-api/README.md
crates/ksp-program-api/USAGE.md
docs/000-README.md
docs/plans/000-README.md
docs/plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md
docs/plans/021-V0_2_14_PROGRAM_API_PLAN.md
docs/validation/000-README.md
docs/validation/017-V0_2_14_PROGRAM_API.md
```
Aucun fichier supprimé.
## 9. Surfaces volontairement inchangées
Cette tranche ne touche pas :
```text
crates/ksp-program-api/src/**
crates/ksp-program-api/tests/**
crates/ksp-program-api/Cargo.toml
docs/architecture/**
CHANGELOG.md
ROADMAP.md
prompts/**
```
L'architecture durable `006-WIRE_AND_PROGRAM.md` reste compatible avec la foundation réellement livrée : ses registry/preparer/autres familles sont des surfaces futures explicitement non matérialisées par `0.2.14`.
## 10. Gate opérateur
La tranche étant documentaire hors bump workspace, le gate demandé reste déterministe :
```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 -p ksp-program-api
cargo test -p ksp-logging-lib --test ownership
cargo test --workspace
```
Aucun smoke réseau/live ni nouveau `cargo tree` n'est requis si l'overlay est appliqué exactement : ces preuves appartiennent à la lane technique fermée par `pre.006`.
## 11. Suite
Si le gate est vert :
```text
0.2.14-pre.008 — préparation minimale de publication
```
`pre.008` reste limitée à :
```text
Cargo.toml
CHANGELOG.md
ROADMAP.md
prompt de démarrage 0.3.1
deltas/0.2.14/pre.008.md
```
Aucun code, test, README/USAGE, plan, validation ou architecture ne doit être rouvert dans cette lane de publication minimale sauf défaut réel découvert au gate.