3.8 KiB
Delta 0.3.5-pre.005 — hardening et complétude Interface
Base requise
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 :
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 :
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
Debuget dans celui deTransactionExecutionEvent; - conservation de
u64::MAXsans 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
ProgramInstructionhistoriques.
Graphe et dépendances
tests/dependency_boundary.rs ajoute un canari final imposant :
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 :
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 :
Cargo.toml
crates/ksp-interface-lib/tests/dependency_boundary.rs
docs/validation/022-V0_3_5_INTERFACE_ACQUISITION_EVENTS.md
Ajoutés :
crates/ksp-interface-lib/tests/security_hardening.rs
deltas/0.3.5/pre.005.md
Explicitement inchangés :
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
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 :
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.