v0.2.13-pre.002

This commit is contained in:
2026-08-28 04:31:32 +02:00
parent 9148920f42
commit 99477d0d2b
10 changed files with 434 additions and 23 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/plans/020-V0_2_13_INTERFACE_PLAN.md -->
<!-- version: 1 -->
<!-- version: 2 -->
# Plan `0.2.13` — Interface / wire foundation
@@ -377,13 +377,13 @@ Le scope réduit permet de supprimer le second lot wire optionnel du forecast in
### pre.001 — audit + héritage + frontières + sizing
**Statut : EN COURS / sortie du présent delta**
**Statut : réalisé ; gate opérateur `pre.001` intégralement PASS.**
Relire les règles/architectures, auditer Core/Transport, classer kbot3, auditer les candidates externes, retenir la surface instruction passive, fixer bornes/firewall/threat model/tests et créer plan/validation.
### pre.002 — scaffold `ksp-interface-lib` + façade + firewall
**Statut : pvu**
**Statut : réalisé ; gate opérateur à confirmer.**
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`.
@@ -461,19 +461,21 @@ plan + validation créés
implementation Program absente
```
## 16. Gate attendu pour `pre.002`
## 16. Gate attendu pour `pre.003`
`pre.002` peut commencer si le présent delta est appliqué et le gate opérateur est vert. Il doit rester un scaffold strict :
`pre.002` matérialise le scaffold strict décidé par le gate précédent :
```text
nouvelle crate membre ksp-interface-lib
Cargo dépend uniquement de ksp-core-lib
lints workspace hérités
crate root explicite sans pub mod
Pubkey réexporté depuis Core
README/USAGE initiaux
canari public API minimal
canari dependency firewall
aucun ProgramAccountMeta/ProgramInstruction fonctionnel si le scaffold suffit à la tranche
aucun ProgramAccountMeta/ProgramInstruction fonctionnel
aucun ksp-logging-lib / constants.rs / TRACING_TARGET
```
Aucune question ouverte ne bloque `pre.002`.
`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`.

View File

@@ -1,5 +1,5 @@
<!-- file: docs/validation/016-V0_2_13_INTERFACE.md -->
<!-- version: 1 -->
<!-- version: 2 -->
# Validation `0.2.13` — Interface / wire foundation
@@ -85,9 +85,9 @@ aucun comportement Program
| Contrat | Attendu final `0.2.13` | Statut |
|----------------------|--------------------------------------------------------|------------------|
| crate | `ksp-interface-lib` membre workspace | TODO pre.002 |
| façade | exports explicites crate-root; aucun `pub mod` | TODO pre.002+ |
| Pubkey | réexport/usage contrôlé de Core; pas de type parallèle | TODO pre.002/003 |
| crate | `ksp-interface-lib` membre workspace | PASS pre.002 |
| façade | exports explicites crate-root; aucun `pub mod` | PASS pre.002 |
| Pubkey | réexport/usage contrôlé de Core; pas de type parallèle | PASS pre.002 |
| `ProgramAccountMeta` | private fields + writable/readonly + accessors | TODO pre.003 |
| `ProgramInstruction` | private fields + `try_new` + accessors | TODO pre.004 |
| account bound | `<= 255` | TODO pre.003/004 |
@@ -140,15 +140,15 @@ Si une nouvelle dépendance externe apparaît après `pre.001`, la présente mat
## 10. Tests de release
| Famille | Attendu | Statut |
|--------------------------|------------------------------------------------|--------|
| unit tests privés | constructeurs/bornes/order/debug/errors | TODO |
| `tests/public_api.rs` | consommation crate-root uniquement | TODO |
| external consumer canary | surface utilisable hors modules privés | TODO |
| dependency boundary | firewall exact | TODO |
| 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 |
| Famille | Attendu | Statut |
|--------------------------|------------------------------------------------|--------------|
| unit tests privés | constructeurs/bornes/order/debug/errors | TODO |
| `tests/public_api.rs` | consommation crate-root uniquement | PASS pre.002 |
| external consumer canary | surface utilisable hors modules privés | TODO |
| dependency boundary | firewall exact | PASS pre.002 |
| 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 |
## 11. Gate technique final attendu
@@ -189,3 +189,27 @@ Aucun smoke réseau/live n'est exigé par défaut.
| implémentation Program lourde | ABSENTE |
Le passage à `pre.002` est autorisé après application du delta et validation opérateur. Le statut des items d'implémentation reste volontairement `TODO` jusqu'aux tranches correspondantes.
## 13. État préparé `pre.002`
Le scaffold matérialisé conserve volontairement une surface minimale :
```text
workspace member PASS structurel
normal dependency ksp-core-lib uniquement
Pubkey réexport Core au crate-root
public modules aucun
ProgramAccountMeta absent par contrat pre.002
ProgramInstruction absent par contrat pre.002
serde / borsh / bincode / wincode absents
network/runtime dependencies absentes
ksp-logging-lib absent
constants.rs / TRACING_TARGET absents
README / USAGE initiaux
public API canary présent
dependency firewall canary présent
```
Le logging reste volontairement absent : la foundation `0.2.13` est passive et n'émet aucun événement/span runtime. Si une future surface comportementale démontre un besoin réel de logging, `ksp-logging-lib`, `src/constants.rs` et `TRACING_TARGET` devront être introduits ensemble conformément à `DEP-LOG-004` et `DEP-LOG-010`.
Le passage à `pre.003` reste conditionné au gate opérateur complet sur l'overlay `pre.002`.