v0.2.13-pre.007

This commit is contained in:
2026-08-28 07:05:02 +02:00
parent 8c4e835fdd
commit 5bfe6f0820
10 changed files with 527 additions and 90 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/plans/020-V0_2_13_INTERFACE_PLAN.md -->
<!-- version: 7 -->
<!-- version: 8 -->
# Plan `0.2.13` — Interface / wire foundation
@@ -407,15 +407,15 @@ Fermer les cas limites, surface crate-root, consumer externe, firewall source/ma
### pre.006 — gate technique final
**Statut : pparé ; gate opérateur à confirmer.**
**Statut : réalisé ; gate opérateur intégralement PASS.**
Exécuter workspace complet, canaris de complétude/public API/dependencies, `cargo tree` et audit final du scope exact. Aucun README/USAGE final ni préparation de publication.
Workspace complet, canaris de complétude/public API/dependencies, ownership Logging, `cargo tree` et audit final du scope exact sont validés. Aucun README/USAGE final ni préparation de publication n'a été mélangé à cette tranche.
### pre.007 — réconciliation documentaire finale
**Statut : prévu**
**Statut : réalisé ; gate opérateur documentaire à confirmer.**
Finaliser README/USAGE de la crate, plan, validation et références durables réellement affectées. Ne pas modifier `CHANGELOG.md`, `ROADMAP.md` ni le prompt suivant.
README/USAGE Interface, plan, validation, séquence fonctionnelle et index documentaires réellement affectés sont réconciliés. `CHANGELOG.md`, `ROADMAP.md` et le prompt suivant restent réservés à `pre.008`.
### pre.008 — préparation de publication minimale
@@ -571,7 +571,7 @@ Pubkey
Il verrouille également l'absence de `pub mod` et l'inventaire exact des quatre fichiers Rust de production. Ajouter une seconde famille wire dans `0.2.13` ferait ainsi échouer explicitement le canari de complétude au lieu d'élargir silencieusement la release.
Le hardening unitaire vérifie enfin que les allocations des `Vec` admis sont transférées telles quelles dans `ProgramInstruction` et que les erreurs de dépassement n'échoient ni marqueur hostile de payload ni représentation arbitraire d'account meta. Ces tests renforcent le contrat de construction sans changer l'API publique.
Le hardening unitaire vérifie enfin que les allocations des `Vec` admis sont transférées telles quelles dans `ProgramInstruction` et que les erreurs de dépassement ne recopient ni marqueur hostile de payload ni représentation arbitraire d'account meta. Ces tests renforcent le contrat de construction sans changer l'API publique.
Après validation opérateur de `pre.005`, `pre.006` doit rester un gate technique pur sans nouveau développement fonctionnel.
@@ -605,11 +605,24 @@ Aucun fichier `src/` de production, aucune dépendance, aucune API publique, auc
Le gate opérateur du fix est désormais intégralement vert : fmt, audits Rust/Markdown, `cargo check --workspace`, Clippy, tests Interface, canari Logging ciblé, `cargo test --workspace` et graphes Cargo sont tous validés/inspectés. Le faux positif est donc fermé sans élargissement du scope.
## 21. Gate technique final préparé `pre.006`
## 21. Gate technique final validé `pre.006`
`pre.006` n'ajoute aucun code, aucun test et aucune dépendance. Les canaris existants couvrent déjà la surface publique, le consumer externe, les bornes, le Debug borné, les erreurs sûres, l'inventaire exact et le firewall de dépendances.
`pre.006` n'a ajouté aucun code, aucun test et aucune dépendance. Le gate opérateur du **28 août 2026** ferme la lane technique avec les preuves suivantes :
La tranche se limite à figer l'état technique suivant avant réconciliation documentaire :
```text
cargo fmt --all PASS
audits Rust / export completeness / workspace PASS
audit Markdown PASS — 162 tables / 119 fichiers
cargo check --workspace PASS
cargo clippy --workspace --all-targets PASS
cargo test -p ksp-interface-lib PASS
cargo test -p ksp-logging-lib --test ownership PASS
cargo test --workspace PASS
cargo tree -p ksp-interface-lib --edges normal Core-only confirmé
cargo tree --duplicates inspecté
```
La surface technique finale avant documentation reste donc :
```text
workspace.package.version 0.2.13-pre.6
@@ -623,20 +636,37 @@ ksp-logging-lib / tracing runtime Interface absents
network/live smoke N/A pour foundation wire pure
```
Le gate opérateur final à rejouer est :
Le gate `pre.006` autorise la réconciliation documentaire finale sans réouverture technique.
```bash
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.13
cargo check --workspace
cargo clippy --workspace --all-targets
cargo test -p ksp-interface-lib
cargo test -p ksp-logging-lib --test ownership
cargo test --workspace
cargo tree -p ksp-interface-lib --edges normal
cargo tree --duplicates
## 22. Réconciliation documentaire finale `pre.007`
`pre.007` ne modifie aucun fichier Rust, test, manifest de crate, dépendance ou comportement. La version workspace avance mécaniquement à `0.2.13-pre.7` conformément au workflow de prerelease non-fix.
Les références durables sont réconciliées autour du contrat réellement livré :
```text
crates/ksp-interface-lib/README.md
crates/ksp-interface-lib/USAGE.md
docs/000-README.md
docs/plans/000-README.md
docs/plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md
docs/plans/020-V0_2_13_INTERFACE_PLAN.md
docs/validation/000-README.md
docs/validation/016-V0_2_13_INTERFACE.md
```
Après gate vert, `pre.007` est autorisé et devient exclusivement la réconciliation documentaire finale.
Le README Interface fixe l'ownership, la surface crate-root exacte, les deux bornes d'admission, le modèle d'erreur sûr, le Debug borné, le graphe `Interface -> Core`, l'absence de codecs/logging/runtime et les frontières avec Program API/Transport/Store. `USAGE.md` documente les constructeurs `readonly`/`writable`, `ProgramInstruction::try_new`, les accessors, les bornes et l'observation des erreurs sans dépendre des modules privés.
La séquence fonctionnelle précise désormais le contenu réellement livré par `0.2.13` et maintient les reports : Program API en `0.2.14`, wires génériques acquisition/CORE en `0.3.2+`. Les index plan/validation passent du statut actif au statut candidat réconcilié sans annoncer prématurément la release stable.
La tranche ne touche explicitement pas :
```text
CHANGELOG.md
ROADMAP.md
prompts/019-V0_2_14_START_PROMPT.md
architecture
code/tests/manifests de crate
```
Ces surfaces appartiennent à `pre.008` pour la préparation minimale de publication, sauf découverte d'un défaut réel imposant une nouvelle tranche corrective.