v0.2.14-pre.007
This commit is contained in:
194
deltas/0.2.14/pre.007.md
Normal file
194
deltas/0.2.14/pre.007.md
Normal file
@@ -0,0 +1,194 @@
|
||||
<!-- 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.
|
||||
Reference in New Issue
Block a user