v0.3.5-pre.007

This commit is contained in:
2026-08-31 13:07:56 +02:00
parent e8d2382ac3
commit 80be36bfdd
13 changed files with 479 additions and 75 deletions

View File

@@ -1,11 +1,11 @@
<!-- file: docs/validation/022-V0_3_5_INTERFACE_ACQUISITION_EVENTS.md -->
<!-- version: 8 -->
<!-- version: 9 -->
# Validation `0.3.5` — Interface passive acquisition events
## 1. Portée
Ce document est ouvert par `0.3.5-pre.001`, corrigé par `0.3.5-pre.001-fix.001`, enrichi par `0.3.5-pre.002`, `pre.003`, `pre.004` puis `pre.005`. `pre.002` matérialise `SlotLifecycleEvent`; `pre.003` ferme le gate `TransactionExecutionEvent` et admet la seconde famille passive minimale ; `pre.004` verrouille les canaris externes et la complétude de cette surface sans ajouter de contrat de production ; `pre.005` ajoute le hardening adversarial et les canaris anti-duplication finaux, toujours sans nouvelle surface de production.
Ce document suit toute la fermeture de `0.3.5`. `pre.002` matérialise `SlotLifecycleEvent`; `pre.003` admet `TransactionExecutionEvent`; `pre.004` verrouille les canaris externes et la complétude ; `pre.005` ajoute le hardening adversarial ; son fix corrige uniquement un faux négatif du canari de manifeste ; `pre.006` ferme le gate technique final ; `pre.007` réconcilie la documentation durable sans modifier la surface Rust.
Base :
@@ -17,7 +17,7 @@ workspace.package.version = 0.3.4
Version de travail :
```text
0.3.5-pre.5.fix.1
0.3.5-pre.7
```
## 2. Gate d'entrée `v0.3.4`
@@ -827,7 +827,7 @@ cargo tree -p ksp-interface-lib -e features
cargo tree --duplicates
```
Aucun smoke réseau n'est requis : `0.3.5` ne modifie aucun moteur Transport et les contrats Interface sont passifs. Les résultats `cargo tree` restent à capturer côté opérateur avant de considérer `pre.006` clôturée.
Aucun smoke réseau n'est requis : `0.3.5` ne modifie aucun moteur Transport et les contrats Interface sont passifs. Les résultats `cargo tree` sont capturés dans le résultat opérateur de clôture ci-dessous.
## 36. Fichiers de `pre.006`
@@ -857,4 +857,80 @@ README.md
ROADMAP.md
CHANGELOG.md
```
## 37. Résultat du gate technique final `pre.006`
Le gate opérateur du `2026-08-31` est propre après correction locale des numéros d'en-tête réellement modifiés dans `Cargo.toml` et ce document de validation :
```text
General Rust rule audit: clean
Rust export completeness audit: 0 candidate(s)
KSP workspace Rust rule audit: clean
Markdown table audit: clean (240 table(s), 145 file(s))
cargo check --workspace: PASS
cargo clippy --workspace --all-targets: PASS
cargo test -p ksp-interface-lib: PASS
cargo test --workspace: PASS
```
Les tests live/réseau et probes diagnostiques restent explicitement `ignored` conformément à leur contrat ; aucun test non ignoré n'échoue.
Les trois preuves Cargo finales confirment :
```text
cargo tree -p ksp-interface-lib --edges normal
ksp-interface-lib -> ksp-core-lib -> solana-pubkey -> solana-address
cargo tree -p ksp-interface-lib -e features
aucune feature propre Interface ; seule la feature default de ksp-core-lib est activée
cargo tree --duplicates
doublons du workspace global présents, aucun nouveau doublon imputable à ksp-interface-lib/0.3.5
```
Le manifeste Interface reste sans `[features]`, `[dev-dependencies]` ni `[build-dependencies]`. La surface fonctionnelle finale demeure exactement :
```text
ProgramAccountMeta / ProgramInstruction
SlotLifecycleEvent / SlotLifecycleStage
TransactionSignature / TransactionExecutionEvent / TransactionExecutionOutcome
```
Aucun serde, codec, logging, runtime, Transport ou Store n'est entré dans le graphe Interface.
## 38. Réconciliation documentaire finale — `pre.007`
`pre.007` ne modifie aucun code Rust ni manifeste de crate. La version workspace devient :
```text
0.3.5-pre.7
```
La réconciliation ferme les incohérences documentaires restantes :
- `crates/ksp-interface-lib/README.md` décrit désormais les contrats Program et les deux familles d'événements passifs sans présenter Interface comme un runtime ;
- `crates/ksp-interface-lib/USAGE.md` devient version-neutral et documente la construction/consommation des événements via le crate-root ;
- les documents d'architecture concernés distinguent explicitement contrat passif Interface, DTO riche Transport et modèle replayable Store ;
- le futur RAW worker peut dépendre d'Interface pour un fait passif partagé, mais son backlog/recovery reste Store-owned ;
- `TransactionLogEvent` reste hors scope et est transféré vers `docs/IDEAS.md` avec un nouveau gate consumer/bornes obligatoire ;
- `CHANGELOG.md`, `ROADMAP.md` et le prompt `0.3.6` restent réservés à la tranche de publication suivante.
Fichiers modifiés par la tranche :
```text
Cargo.toml
crates/ksp-interface-lib/README.md
crates/ksp-interface-lib/USAGE.md
docs/IDEAS.md
docs/architecture/002-LAYERS_AND_DEPENDENCIES.md
docs/architecture/003-COMPONENT_CONTRACTS.md
docs/architecture/004-COMPONENT_INVENTORY.md
docs/architecture/005-DEPENDENCY_GRAPH.md
docs/architecture/006-WIRE_AND_PROGRAM.md
docs/architecture/009-ACQUISITION_WORKERS_AND_JOBS.md
docs/plans/026-V0_3_5_INTERFACE_ACQUISITION_EVENTS_PLAN.md
docs/validation/022-V0_3_5_INTERFACE_ACQUISITION_EVENTS.md
deltas/0.3.5/pre.007.md
```
Aucun autre fichier ne doit être modifié.