4.4 KiB
Delta 0.3.13-pre.009-fix.002 — alignement du canari de disagreement canonique
Base requise
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 :
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 :
v0_3_13_pre_008_cross_source_convergence_is_bounded_conflict_checked_and_private
Il exige encore l'ancienne chaîne d'implémentation :
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 :
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 :
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
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
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
deltas/0.3.13/pre.009-fix.002.md
Fichiers supprimés
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 :
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.009reste 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 treen'est requis pour ce fix.
Questions ouvertes
aucune
Gate opérateur requis avant pre.010
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.