# 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) / Unsupported ProgramInstructionDecoder: Send + Sync type Decoded program_ids(&self) -> &[Pubkey] recognize(&self, &ProgramInstruction) -> ProgramInstructionRecognition decode(&self, &ProgramInstruction) -> Result> ``` 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.