Files
2026-08-28 16:16:15 +02:00

6.4 KiB

Delta 0.2.14-pre.007 — réconciliation documentaire finale Program API

1. Base

0.2.14-pre.006

Le gate opérateur de pre.006, exécuté le 28 août 2026, est intégralement vert :

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

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 :

v0.2.14-pre.007

4. Surface finale candidate documentée

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 :

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 :

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

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é :

deltas/0.2.14/pre.007.md

Modifiés :

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 :

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 :

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 :

0.2.14-pre.008 — préparation minimale de publication

pre.008 reste limitée à :

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.