195 lines
6.4 KiB
Markdown
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.
|