v0.3.5-pre.005
This commit is contained in:
138
deltas/0.3.5/pre.005.md
Normal file
138
deltas/0.3.5/pre.005.md
Normal file
@@ -0,0 +1,138 @@
|
||||
<!-- file: deltas/0.3.5/pre.005.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# Delta `0.3.5-pre.005` — hardening et complétude Interface
|
||||
|
||||
## Base requise
|
||||
|
||||
```text
|
||||
0.3.5-pre.4
|
||||
```
|
||||
|
||||
Le gate opérateur de `pre.004` est entièrement propre : audits Rust/Markdown, `cargo check --workspace`, Clippy, tests `ksp-interface-lib` et `ksp-program-api` passent.
|
||||
|
||||
## Version
|
||||
|
||||
La tranche ajoute/modifie des sources Rust de test/canari. La version workspace devient :
|
||||
|
||||
```text
|
||||
0.3.5-pre.5
|
||||
```
|
||||
|
||||
## Mission
|
||||
|
||||
Fermer le hardening fonctionnel de `0.3.5` sans ajouter de troisième famille Interface ni modifier les contrats de production admis :
|
||||
|
||||
```text
|
||||
SlotLifecycleEvent / SlotLifecycleStage
|
||||
TransactionExecutionEvent / TransactionExecutionOutcome / TransactionSignature
|
||||
```
|
||||
|
||||
## Hardening adversarial
|
||||
|
||||
Le nouveau `tests/security_hardening.rs` vérifie :
|
||||
|
||||
- conservation byte-exact d'une signature hostile de 64 octets ;
|
||||
- redaction de la signature dans son `Debug` et dans celui de `TransactionExecutionEvent` ;
|
||||
- conservation de `u64::MAX` sans narrowing ;
|
||||
- structure minimale exacte des deux events ;
|
||||
- absence de collection/payload/timestamp/provider/endpoint/filter/network dans les contrats acquisition ;
|
||||
- absence de second RAW ou de famille reportée exportée silencieusement ;
|
||||
- non-régression des bornes `ProgramInstruction` historiques.
|
||||
|
||||
## Graphe et dépendances
|
||||
|
||||
`tests/dependency_boundary.rs` ajoute un canari final imposant :
|
||||
|
||||
```text
|
||||
une seule section [dependencies]
|
||||
exactement une référence ksp-core-lib
|
||||
aucune [features]
|
||||
aucune [dev-dependencies]
|
||||
aucune [build-dependencies]
|
||||
```
|
||||
|
||||
Le manifeste `ksp-interface-lib` reste inchangé et Core-only.
|
||||
|
||||
## Candidats reportés
|
||||
|
||||
Aucun candidat reporté n'est promu par hardening :
|
||||
|
||||
```text
|
||||
TransactionLogEvent -> idée différée
|
||||
TransactionCommitmentEvent -> reporté
|
||||
VoteEvent -> reporté
|
||||
LedgerEntryEvent -> reporté
|
||||
Account/Program RAW event -> rejet Interface
|
||||
Transaction complète -> rejet Interface
|
||||
Block event -> rejet Interface
|
||||
Persisted-data available -> Store API owner
|
||||
```
|
||||
|
||||
`TransactionLogEvent` devra être transféré vers TODO/IDEAS durable pendant `pre.007` s'il reste hors scope.
|
||||
|
||||
## Fichiers
|
||||
|
||||
Modifiés :
|
||||
|
||||
```text
|
||||
Cargo.toml
|
||||
crates/ksp-interface-lib/tests/dependency_boundary.rs
|
||||
docs/validation/022-V0_3_5_INTERFACE_ACQUISITION_EVENTS.md
|
||||
```
|
||||
|
||||
Ajoutés :
|
||||
|
||||
```text
|
||||
crates/ksp-interface-lib/tests/security_hardening.rs
|
||||
deltas/0.3.5/pre.005.md
|
||||
```
|
||||
|
||||
Explicitement inchangés :
|
||||
|
||||
```text
|
||||
crates/ksp-interface-lib/Cargo.toml
|
||||
crates/ksp-interface-lib/src/**
|
||||
crates/ksp-interface-lib/unit_tests/**
|
||||
crates/ksp-onchain-transport-lib/**
|
||||
crates/ksp-store-api/**
|
||||
crates/ksp-store-lib/**
|
||||
crates/ksp-store-postgres-lib/**
|
||||
crates/ksp-program-api/**
|
||||
README.md
|
||||
ROADMAP.md
|
||||
CHANGELOG.md
|
||||
```
|
||||
|
||||
## Validations exécutées dans l'environnement d'assemblage
|
||||
|
||||
```text
|
||||
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.3.5
|
||||
```
|
||||
|
||||
## Validations non exécutées dans l'environnement d'assemblage
|
||||
|
||||
`cargo` n'est pas installé dans le sandbox d'assemblage. Restent donc à exécuter côté opérateur :
|
||||
|
||||
```text
|
||||
cargo fmt --all
|
||||
cargo check --workspace
|
||||
cargo clippy --workspace --all-targets
|
||||
cargo test -p ksp-interface-lib
|
||||
cargo test -p ksp-program-api
|
||||
```
|
||||
|
||||
## Décisions
|
||||
|
||||
- deux familles acquisition exactement restent admises ;
|
||||
- aucun contrat production n'est modifié ;
|
||||
- aucun nouveau bound métier n'est inventé ;
|
||||
- la signature reste une primitive passive fixe de 64 octets sans codec ;
|
||||
- aucune metadata source/provider n'entre dans Interface ;
|
||||
- aucun second RAW n'est créé ;
|
||||
- Program instruction foundation reste inchangée.
|
||||
|
||||
## Questions ouvertes
|
||||
|
||||
Aucune question fonctionnelle bloquante pour `pre.006`. La seule idée différée explicitement à conserver durablement est `TransactionLogEvent`.
|
||||
Reference in New Issue
Block a user