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.