v0.2.13-pre.004

This commit is contained in:
2026-08-28 05:11:44 +02:00
parent 900444bff5
commit 0ee28eeb95
9 changed files with 582 additions and 15 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/validation/016-V0_2_13_INTERFACE.md -->
<!-- version: 3 -->
<!-- version: 4 -->
# Validation `0.2.13` — Interface / wire foundation
@@ -142,10 +142,10 @@ Si une nouvelle dépendance externe apparaît après `pre.001`, la présente mat
| Famille | Attendu | Statut |
|--------------------------|-------------------------------------------------|--------------|
| unit tests privés | account meta/borne puis instruction/adversarial | PARTIEL |
| `tests/public_api.rs` | consommation crate-root uniquement | PASS pre.003 |
| unit tests privés | account meta/borne puis instruction/adversarial | PASS pre.004 |
| `tests/public_api.rs` | consommation crate-root uniquement | PASS pre.004 |
| external consumer canary | surface utilisable hors modules privés | TODO |
| dependency boundary | firewall exact | PASS pre.002 |
| dependency boundary | firewall exact | PASS pre.004 |
| release completeness | inventaire exact, aucun domaine supplémentaire | TODO |
| round-trip codec | aucun tant qu'aucun codec | N/A |
| network smoke | aucun pour crate wire pure | N/A |
@@ -234,3 +234,28 @@ Le passage à `pre.003` reste conditionné au gate opérateur complet sur l'over
| dépendance normale | `ksp-core-lib` uniquement |
Le statut `PASS/PENDING` de la borne accounts signifie que la valeur publique est désormais figée à `255`, tandis que le rejet concret de `256` comptes sera testé lorsque la collection existera dans `ProgramInstruction`. Aucun faux wrapper de collection n'est créé dans `pre.003`.
## 15. État préparé `pre.004`
| Critère | Statut |
|------------------------------------------------------|----------------------------------------------|
| `ProgramInstruction` crate-root | PASS structurel |
| champs privés | PASS |
| constructeur `try_new` | PASS |
| accessors `program_id/accounts/data` | PASS |
| `MAX_PROGRAM_INSTRUCTION_DATA_LEN == 10_240` | PASS unit + public API |
| accounts `255` accepté / `256` refusé | PASS unit |
| data `10_240` accepté / `10_241` refusé | PASS unit |
| accounts/data vides | PASS unit |
| ordre + doublons accounts | PASS unit |
| Program Pubkey opaque/non registry | PASS unit |
| erreur borne Core commune | PASS |
| contexte erreur limité aux longueurs/plafonds sûrs | PASS unit |
| Debug résumé sans accounts/payload | PASS unit |
| serde/codecs | ABSENTS |
| `solana-instruction` | ABSENT |
| logging/runtime | ABSENTS |
| dépendance normale | `ksp-core-lib` uniquement |
| `cargo test --workspace` sur preuve entrée `pre.003` | NON FOURNI — à rejouer au gate opérateur 004 |
La tranche ferme ainsi le premier lot générique `{ program_id, accounts, data }` sans ajouter de codec ni de comportement Program. Le hardening `pre.005` doit porter sur l'usage externe, les cas adversariaux et le firewall, pas sur une nouvelle famille wire.