v0.3.13-pre.009-fix.002
This commit is contained in:
@@ -1,12 +1,12 @@
|
|||||||
# file: Cargo.toml
|
# file: Cargo.toml
|
||||||
# version: 557
|
# version: 558
|
||||||
|
|
||||||
[workspace]
|
[workspace]
|
||||||
resolver = "3"
|
resolver = "3"
|
||||||
members = ["crates/ksp-app-backfill-desk", "crates/ksp-app-config-desk", "crates/ksp-app-solprices-desk", "crates/ksp-app-store-desk", "crates/ksp-app-wallet-desk", "crates/ksp-config-lib", "crates/ksp-core-lib", "crates/ksp-interface-lib", "crates/ksp-job-api", "crates/ksp-job-backfill-lib", "crates/ksp-logging-lib", "crates/ksp-offchain-transport-lib", "crates/ksp-onchain-transport-lib", "crates/ksp-program-api", "crates/ksp-raw-transaction-lib", "crates/ksp-store-api", "crates/ksp-store-lib", "crates/ksp-store-postgres-lib", "crates/ksp-wallet-lib", "crates/ksp-worker-api", "crates/ksp-worker-raw-transaction-ingest-lib"]
|
members = ["crates/ksp-app-backfill-desk", "crates/ksp-app-config-desk", "crates/ksp-app-solprices-desk", "crates/ksp-app-store-desk", "crates/ksp-app-wallet-desk", "crates/ksp-config-lib", "crates/ksp-core-lib", "crates/ksp-interface-lib", "crates/ksp-job-api", "crates/ksp-job-backfill-lib", "crates/ksp-logging-lib", "crates/ksp-offchain-transport-lib", "crates/ksp-onchain-transport-lib", "crates/ksp-program-api", "crates/ksp-raw-transaction-lib", "crates/ksp-store-api", "crates/ksp-store-lib", "crates/ksp-store-postgres-lib", "crates/ksp-wallet-lib", "crates/ksp-worker-api", "crates/ksp-worker-raw-transaction-ingest-lib"]
|
||||||
|
|
||||||
[workspace.package]
|
[workspace.package]
|
||||||
version = "0.3.13-pre.9.fix.1"
|
version = "0.3.13-pre.9.fix.2"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
repository = "https://git.sasedev.com/Sasedev/khadhroony-solana-project"
|
repository = "https://git.sasedev.com/Sasedev/khadhroony-solana-project"
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// file: crates/ksp-worker-raw-transaction-ingest-lib/tests/hardening.rs
|
// file: crates/ksp-worker-raw-transaction-ingest-lib/tests/hardening.rs
|
||||||
// version: 20
|
// version: 21
|
||||||
|
|
||||||
//! External public, security, redaction and release-boundary hardening canaries for `pre.010`.
|
//! External public, security, redaction and release-boundary hardening canaries for `pre.010`.
|
||||||
|
|
||||||
@@ -764,7 +764,7 @@ fn v0_3_13_pre_008_cross_source_convergence_is_bounded_conflict_checked_and_priv
|
|||||||
"max_entries: usize",
|
"max_entries: usize",
|
||||||
"entries.len() >= self.max_entries",
|
"entries.len() >= self.max_entries",
|
||||||
"std::sync::Arc::strong_count(entry) == 1",
|
"std::sync::Arc::strong_count(entry) == 1",
|
||||||
"known_hash_value != content_hash",
|
"known_state_value != &canonical_state",
|
||||||
"record_observation(observation)",
|
"record_observation(observation)",
|
||||||
"persistence.additional_observation_not_recorded",
|
"persistence.additional_observation_not_recorded",
|
||||||
] {
|
] {
|
||||||
|
|||||||
148
deltas/0.3.13/pre.009-fix.002.md
Normal file
148
deltas/0.3.13/pre.009-fix.002.md
Normal file
@@ -0,0 +1,148 @@
|
|||||||
|
<!-- file: deltas/0.3.13/pre.009-fix.002.md -->
|
||||||
|
<!-- version: 1 -->
|
||||||
|
|
||||||
|
# Delta 0.3.13-pre.009-fix.002 — alignement du canari de disagreement canonique
|
||||||
|
|
||||||
|
## Base requise
|
||||||
|
|
||||||
|
```text
|
||||||
|
livraison précédente : 0.3.13-pre.009-fix.001
|
||||||
|
Cargo base : 0.3.13-pre.9.fix.1
|
||||||
|
delta base : deltas/0.3.13/pre.009-fix.001.md
|
||||||
|
archive delta base : ksp-general-0.3.13-pre.009-fix.001.zip
|
||||||
|
```
|
||||||
|
|
||||||
|
Le gate opérateur du 10 septembre 2026 confirme :
|
||||||
|
|
||||||
|
```text
|
||||||
|
cargo fmt + --check : PASS
|
||||||
|
audits Rust : clean / export completeness 0
|
||||||
|
Markdown : clean, 340 tables / 846 files
|
||||||
|
cargo check --workspace : PASS
|
||||||
|
Clippy strict workspace/all-targets/all-features : PASS
|
||||||
|
Transport unit : 389/389 PASS
|
||||||
|
Transport public API : 52/52 PASS
|
||||||
|
Transport release completeness : 44/44 PASS
|
||||||
|
Transport doc-tests : 4/4 PASS
|
||||||
|
Transport smokes live opt-in : 5 ignored comme prévu
|
||||||
|
Worker unit : 99/99 PASS
|
||||||
|
Worker cross-layer : 4/4 PASS
|
||||||
|
Worker dependency-boundary : 16/16 PASS
|
||||||
|
Worker hardening : 22 PASS / 1 FAIL
|
||||||
|
```
|
||||||
|
|
||||||
|
La suite Worker s'arrête sur le canari :
|
||||||
|
|
||||||
|
```text
|
||||||
|
v0_3_13_pre_008_cross_source_convergence_is_bounded_conflict_checked_and_private
|
||||||
|
```
|
||||||
|
|
||||||
|
Il exige encore l'ancienne chaîne d'implémentation :
|
||||||
|
|
||||||
|
```text
|
||||||
|
known_hash_value != content_hash
|
||||||
|
```
|
||||||
|
|
||||||
|
Cette assertion est obsolète depuis `pre.009`, où l'état canonique de convergence compare désormais ensemble `slot`, `block_time`, `format_id`, `format_version` et `content_hash` via `RawTransactionIngestCanonicalState`.
|
||||||
|
|
||||||
|
`public_api`, `release_completeness` et les doc-tests Worker ne sont donc pas déclarés PASS pour ce gate, car l'exécution s'arrête sur `hardening`.
|
||||||
|
|
||||||
|
## Objectif du fix
|
||||||
|
|
||||||
|
Corriger uniquement le canari historique `pre.008` afin qu'il vérifie le conflit canonique actuel sans revenir à une comparaison hash-only :
|
||||||
|
|
||||||
|
```text
|
||||||
|
ancienne preuve : known_hash_value != content_hash
|
||||||
|
nouvelle preuve : known_state_value != &canonical_state
|
||||||
|
```
|
||||||
|
|
||||||
|
Le canari continue à exiger la borne du cache, l'éviction uniquement des entrées non partagées, le passage par `record_observation` et le fail-closed d'une observation additionnelle impossible.
|
||||||
|
|
||||||
|
Aucune source production n'est modifiée.
|
||||||
|
|
||||||
|
## Immutabilité des deltas
|
||||||
|
|
||||||
|
Les deltas déjà livrés sont immuables. Ce fix n'altère aucun fichier `deltas/` existant, y compris :
|
||||||
|
|
||||||
|
```text
|
||||||
|
deltas/0.3.13/pre.009.md
|
||||||
|
deltas/0.3.13/pre.009-fix.001.md
|
||||||
|
```
|
||||||
|
|
||||||
|
La correction est tracée uniquement par le nouveau fichier `deltas/0.3.13/pre.009-fix.002.md`.
|
||||||
|
|
||||||
|
La modification de `pre.009.md` qui avait été incluse dans `pre.009-fix.001` reste une exception historique déjà acceptée par l'opérateur ; elle n'est ni répétée ni réécrite dans ce fix.
|
||||||
|
|
||||||
|
## Version
|
||||||
|
|
||||||
|
```text
|
||||||
|
livraison : 0.3.13-pre.009-fix.002
|
||||||
|
workspace.package.version : 0.3.13-pre.9.fix.2
|
||||||
|
archive : ksp-general-0.3.13-pre.009-fix.002.zip
|
||||||
|
```
|
||||||
|
|
||||||
|
`Cargo.toml` passe de la version de fichier `557` à `558`.
|
||||||
|
|
||||||
|
## Fichiers modifiés
|
||||||
|
|
||||||
|
```text
|
||||||
|
Cargo.toml
|
||||||
|
crates/ksp-worker-raw-transaction-ingest-lib/tests/hardening.rs
|
||||||
|
```
|
||||||
|
|
||||||
|
`hardening.rs` passe de la version de fichier `20` à `21`.
|
||||||
|
|
||||||
|
## Fichiers ajoutés
|
||||||
|
|
||||||
|
```text
|
||||||
|
deltas/0.3.13/pre.009-fix.002.md
|
||||||
|
```
|
||||||
|
|
||||||
|
## Fichiers supprimés
|
||||||
|
|
||||||
|
```text
|
||||||
|
aucun
|
||||||
|
```
|
||||||
|
|
||||||
|
## Validations exécutées dans l'environnement d'assemblage
|
||||||
|
|
||||||
|
Le toolchain Rust/Cargo/Rustfmt n'est pas disponible dans l'environnement d'assemblage. Les commandes Cargo post-fix restent donc `NON EXÉCUTÉ LOCAL`.
|
||||||
|
|
||||||
|
Sont exécutés avant packaging :
|
||||||
|
|
||||||
|
```text
|
||||||
|
scripts/audit_rust_workspace_rules.py
|
||||||
|
audit Markdown complet
|
||||||
|
scan des définitions normatives
|
||||||
|
diff exact contre la base pre.009-fix.001
|
||||||
|
contrôle d'immutabilité byte-for-byte de tous les deltas existants
|
||||||
|
contrôle du manifest et du contenu extrait de l'archive
|
||||||
|
```
|
||||||
|
|
||||||
|
## Décisions
|
||||||
|
|
||||||
|
- le runtime `pre.009` reste inchangé ;
|
||||||
|
- le disagreement canonique reste fondé sur l'état canonique complet, pas sur le seul hash ;
|
||||||
|
- aucun delta historique n'est modifié ;
|
||||||
|
- aucune dépendance ni feature ne change ;
|
||||||
|
- aucun `cargo tree` n'est requis pour ce fix.
|
||||||
|
|
||||||
|
## Questions ouvertes
|
||||||
|
|
||||||
|
```text
|
||||||
|
aucune
|
||||||
|
```
|
||||||
|
|
||||||
|
## Gate opérateur requis avant pre.010
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cargo fmt --all
|
||||||
|
cargo fmt --all -- --check
|
||||||
|
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
|
||||||
|
cargo check --workspace
|
||||||
|
cargo clippy --workspace --all-targets --all-features -- -D warnings
|
||||||
|
cargo test -p ksp-worker-raw-transaction-ingest-lib
|
||||||
|
```
|
||||||
|
|
||||||
|
Le test Transport n'a pas besoin d'être répété pour ce fix, qui ne modifie ni Transport, ni source production, ni dépendance, ni feature.
|
||||||
Reference in New Issue
Block a user