0.3.16-pre.007-fix.003

This commit is contained in:
2026-09-22 06:39:02 +02:00
parent 4914f6df70
commit de81084560
3 changed files with 100 additions and 4 deletions

View File

@@ -1,12 +1,12 @@
# file: Cargo.toml # file: Cargo.toml
# version: 647 # version: 648
[workspace] [workspace]
resolver = "3" resolver = "3"
members = ["crates/ksp-app-backfill-desk", "crates/ksp-app-config-desk", "crates/ksp-app-raw-transaction-ingest-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-raw-transaction-ingest-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.16-pre.7.fix.2" version = "0.3.16-pre.7.fix.3"
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"

View File

@@ -1,5 +1,5 @@
// file: crates/ksp-worker-raw-transaction-ingest-lib/tests/dependency_boundary.rs // file: crates/ksp-worker-raw-transaction-ingest-lib/tests/dependency_boundary.rs
// version: 32 // version: 33
//! Dependency firewall canaries for the RAW transaction ingest Worker foundation. //! Dependency firewall canaries for the RAW transaction ingest Worker foundation.
@@ -628,7 +628,7 @@ fn v0_3_13_pre_009_global_bounds_and_fairness_stay_inside_worker_facades() {
"tokio::sync::Semaphore", "tokio::sync::Semaphore",
"acquire_owned", "acquire_owned",
"RawTransactionIngestHydrationLeaderGuard", "RawTransactionIngestHydrationLeaderGuard",
"RawTransactionIngestCanonicalState", "RawTransactionIngestPersistenceConvergence",
"content_conflict_error()", "content_conflict_error()",
] { ] {
assert!( assert!(

View File

@@ -0,0 +1,96 @@
<!-- file: deltas/0.3.16/pre.007-fix.003.md -->
<!-- version: 1 -->
# Delta `0.3.16-pre.007-fix.003` — réalignement du canari de bornes globales Worker
## Base requise
```text
0.3.16-pre.007-fix.002 appliqué
workspace.package.version = 0.3.16-pre.7.fix.2
```
Le gate opérateur de `pre.007-fix.002` confirme que les audits, `cargo check --workspace`, Clippy, Store API, Store façade, PostgreSQL, Backfill, les 162 tests unitaires Worker et les 12 tests `cross_layer_completeness` passent. Le seul échec restant est `v0_3_13_pre_009_global_bounds_and_fairness_stay_inside_worker_facades` dans `dependency_boundary`.
Le canari historique exigeait encore le symbole `RawTransactionIngestCanonicalState`. Ce type appartenait à l'ancien cache run-local qui conservait une représentation canonique et pouvait participer à l'arbitrage avant Store. `pre.007` a volontairement supprimé cette responsabilité : le cache courant `RawTransactionIngestPersistenceConvergence` est borné et ne fait que sérialiser les acquisitions partageant `(network, signature)` ; chaque acquisition atteint ensuite le Store, qui reste l'unique autorité durable.
## Version
```text
workspace.package.version = 0.3.16-pre.7.fix.3
```
## Correction
Le canari de bornes/fairness conserve son objectif historique et vérifie désormais le contrat courant :
- les budgets d'hydratation restent bornés par les settings Worker ;
- les permits restent portés par `tokio::sync::Semaphore` ;
- le leader d'hydratation reste privé au Worker ;
- la convergence de persistence est représentée par `RawTransactionIngestPersistenceConvergence` ;
- `content_conflict_error()` reste le chemin de compatibilité pour un backend legacy ;
- aucune dépendance backend/transport physique interdite n'est introduite.
Aucune logique runtime n'est modifiée.
## Fichiers modifiés
```text
Cargo.toml
crates/ksp-worker-raw-transaction-ingest-lib/tests/dependency_boundary.rs
```
## Fichier ajouté
```text
deltas/0.3.16/pre.007-fix.003.md
```
## Fichiers supprimés
```text
aucun
```
## Validations exécutées lors de la génération
```bash
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
```
Le toolchain Rust n'est pas installé dans l'environnement de génération. `cargo fmt`, `cargo check`, Clippy et les tests Cargo ne sont donc pas déclarés exécutés ici.
## Validations opérateur demandées
```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-store-api --all-targets --all-features
cargo test -p ksp-store-lib --all-targets --all-features
cargo test -p ksp-store-postgres-lib --all-targets --all-features
cargo test -p ksp-job-backfill-lib --all-targets --all-features
cargo test -p ksp-worker-raw-transaction-ingest-lib --all-targets --all-features
```
## Décisions prises
- aucun type canonique run-local n'est réintroduit pour satisfaire un canari historique ;
- le test continue de prouver la boundedness/fairness via le cache de sérialisation réellement utilisé depuis `pre.007` ;
- le nom du test historique reste stable afin de ne pas casser les canaris de release completeness ;
- aucun code runtime ni fichier de migration n'est modifié.
## Questions ouvertes
Aucune question bloquante.
## Suite
Après gate propre : `0.3.16-pre.008`.