v0.2.13-pre.003

This commit is contained in:
2026-08-28 05:04:10 +02:00
parent 99477d0d2b
commit 900444bff5
10 changed files with 480 additions and 41 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/plans/020-V0_2_13_INTERFACE_PLAN.md -->
<!-- version: 2 -->
<!-- version: 3 -->
# Plan `0.2.13` — Interface / wire foundation
@@ -383,15 +383,15 @@ Relire les règles/architectures, auditer Core/Transport, classer kbot3, auditer
### pre.002 — scaffold `ksp-interface-lib` + façade + firewall
**Statut : réalisé ; gate opérateur à confirmer.**
**Statut : réalisé ; gate opérateur intégralement PASS.**
Créer la crate, l'ajouter au workspace, poser `lib.rs` avec exports explicites, lints, README/USAGE initiaux et canaris manifest/firewall. Dépendance normale unique : `ksp-core-lib`.
### pre.003 — `ProgramAccountMeta` + bornes communes
**Statut : pvu**
**Statut : réalisé ; gate opérateur à confirmer.**
Matérialiser la primitive de compte ordonné, les constantes de borne, le modèle d'erreur Interface minimal et les unit/public canaries associés. Ne pas avancer `ProgramInstruction` si la tranche dépasse le budget.
Matérialiser la primitive de compte ordonné, la borne accounts, le modèle d'erreur Interface minimal et les unit/public canaries associés. `ProgramInstruction` et la borne data restent réservés à `pre.004`.
### pre.004 — `ProgramInstruction` passif borné
@@ -479,3 +479,27 @@ aucun ksp-logging-lib / constants.rs / TRACING_TARGET
```
`pre.003` peut commencer après application du delta et gate opérateur vert. Sa responsabilité reste limitée à `ProgramAccountMeta`, aux bornes communes et au modèle d'erreur Interface minimal ; `ProgramInstruction` reste réservé à `pre.004`.
## 17. État préparé `pre.003`
`pre.003` matérialise uniquement la primitive de compte et les contrats nécessaires à la future admission de `ProgramInstruction` :
```text
ProgramAccountMeta présent
fields privés
constructeurs readonly / writable
accessors pubkey / is_signer / is_writable
Pubkey Core réutilisé
MAX_PROGRAM_INSTRUCTION_ACCOUNTS 255
ERROR_CODE_PROGRAM_INSTRUCTION_LIMIT_EXCEEDED interface.program_instruction_limit_exceeded
ProgramInstruction absent par contrat
MAX_PROGRAM_INSTRUCTION_DATA_LEN absent jusqu'à pre.004
serde / borsh / bincode / wincode absents
ksp-logging-lib / constants.rs / TRACING_TARGET absents
```
La constante `255` ferme le contrat public de borne accounts mais son enforcement `255/256` appartient au constructeur de `ProgramInstruction` de `pre.004`; `ProgramAccountMeta` représente un seul compte et n'invente donc pas une collection artificielle uniquement pour tester cette limite.
Une seule catégorie d'erreur Interface est introduite. `invalid_program_instruction` reste absent : aucun invariant de forme distinct des limites n'est encore matérialisé et le créer par symétrie serait prématuré. Les futures erreurs de borne doivent utiliser `ksp_core_lib::Error/Result` et ne projeter que des longueurs/plafonds sûrs.
Le passage à `pre.004` reste conditionné au gate opérateur complet sur l'overlay `pre.003`.