v0.3.13-pre.003-fix.002

This commit is contained in:
2026-09-10 13:20:09 +02:00
parent 13c3dac554
commit 34fddc3bf5
3 changed files with 200 additions and 6 deletions

View File

@@ -1,12 +1,12 @@
# file: Cargo.toml
# version: 543
# version: 544
[workspace]
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"]
[workspace.package]
version = "0.3.13-pre.3.fix.1"
version = "0.3.13-pre.3.fix.2"
edition = "2024"
license = "MIT"
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
// version: 17
// version: 18
//! Dependency firewall canaries for the RAW transaction ingest Worker foundation.
@@ -125,8 +125,8 @@ fn v0_3_12_pre_004_hydration_contract_uses_only_transport_facade_common_raw_and_
] {
assert!(resources.contains(required), "required pre.004 hydration contract missing: {required}");
}
assert!(resources.contains("fn finalize_yellowstone_hydration"));
assert!(resources.contains("fn fetch_yellowstone_hydration"));
assert!(resources.contains("fn finalize_hydration"));
assert!(resources.contains("fn fetch_hydration"));
for forbidden in [
"get_block_observed",
"ksp_config_lib::",
@@ -188,7 +188,7 @@ fn v0_3_12_pre_006_productive_source_uses_transport_session_bounded_coalescence_
"RawTransactionIngestHydrationCoordinator",
"std::collections::BTreeMap",
"tokio::task::JoinSet",
"MAX_RAW_TRANSACTION_INGEST_ADMISSION_QUEUE_CAPACITY",
"max_pending_signals: settings.admission_queue_capacity()",
"get_transaction_observed",
"admission_sender.send(ingress)",
"tasks.abort_all()",

View File

@@ -0,0 +1,194 @@
<!-- file: deltas/0.3.13/pre.003-fix.002.md -->
<!-- version: 1 -->
# Delta 0.3.13-pre.003-fix.002 — correction des canaris de dépendance après généralisation source-neutral
## Base requise
```text
delivery précédente : 0.3.13-pre.003-fix.001
Cargo base : 0.3.13-pre.3.fix.1
delta base : deltas/0.3.13/pre.003-fix.001.md
archive delta base : ksp-general-0.3.13-pre.003-fix.001.zip
```
Le gate opérateur de `pre.003-fix.001` confirme que le formatage, les audits, `cargo check --workspace`, Clippy strict et les tests unitaires Worker passent. Deux canaris historiques de `tests/dependency_boundary.rs` échouent cependant parce qu'ils vérifient encore des noms et une borne d'implémentation antérieurs à la généralisation source-neutral de `pre.003`.
## Objectif
Corriger uniquement ces deux canaris afin qu'ils vérifient le contrat production actuel, sans modifier le code runtime :
```text
aucun code production modifié
aucune API publique ajoutée ou supprimée
aucune dépendance modifiée
aucune logique réseau/hydration/admission modifiée
aucun avancement vers blockSubscribe pre.004
```
## Version
```text
livraison : 0.3.13-pre.003-fix.002
workspace.package.version : 0.3.13-pre.3.fix.2
archive : ksp-general-0.3.13-pre.003-fix.002.zip
```
Le fix modifie un fichier Rust de tests ; le `workspace.package.version` est donc incrémenté conformément aux règles KSP.
## Diagnostic opérateur
### Canary hydration historique
Le test :
```text
v0_3_12_pre_004_hydration_contract_uses_only_transport_facade_common_raw_and_existing_ingress
```
attendait encore les helpers mono-Yellowstone :
```text
fn finalize_yellowstone_hydration
fn fetch_yellowstone_hydration
```
`pre.003` a volontairement rendu l'hydration commune à plusieurs familles de sources et les helpers production actuels sont :
```text
fn finalize_hydration
async fn fetch_hydration
```
Le canary est mis à jour pour vérifier ces helpers source-neutral sans réintroduire les anciens noms.
### Canary de borne de coalescence historique
Le test :
```text
v0_3_12_pre_006_productive_source_uses_transport_session_bounded_coalescence_and_existing_admission
```
attendait encore la présence textuelle de :
```text
MAX_RAW_TRANSACTION_INGEST_ADMISSION_QUEUE_CAPACITY
```
`pre.003` a resserré le budget du coordinator commun sur la borne configurée du Worker :
```text
max_pending_signals: settings.admission_queue_capacity()
```
Le canary vérifie désormais cette borne runtime effective. Le plafond absolu n'est pas réintroduit dans l'implémentation.
## Fichiers modifiés
```text
Cargo.toml
crates/ksp-worker-raw-transaction-ingest-lib/tests/dependency_boundary.rs
```
## Fichiers ajoutés
```text
deltas/0.3.13/pre.003-fix.002.md
```
## Fichiers supprimés
```text
aucun
```
## Versions de fichiers incrémentées
```text
Cargo.toml : 543 -> 544
worker tests/dependency_boundary.rs : 17 -> 18
```
## Validation opérateur de la base pre.003-fix.001
Le log fourni confirme avant ce fix :
```text
cargo fmt --all : exécuté
cargo fmt --all -- --check : PASS / silencieux
General Rust rule audit : clean
Rust export completeness audit : 0 candidate(s)
KSP workspace Rust rule audit : clean
Markdown table audit : clean (340 tables, 832 files)
cargo check --workspace : PASS
cargo clippy --workspace --all-targets --all-features -- -D warnings : FAIL lors des tests dependency_boundary
cargo test -p ksp-worker-raw-transaction-ingest-lib : 75 unit tests PASS, puis 2/10 dependency_boundary FAIL
```
Échecs observés :
```text
v0_3_12_pre_004_hydration_contract_uses_only_transport_facade_common_raw_and_existing_ingress
v0_3_12_pre_006_productive_source_uses_transport_session_bounded_coalescence_and_existing_admission
```
Les deux échecs sont des assertions `include_str!` sur l'implémentation et non des erreurs du code production.
## Validations dans l'environnement d'assemblage
Le toolchain Rust n'est pas disponible dans l'environnement d'assemblage. Les audits statiques KSP et le contrôle exhaustif du delta sont exécutés avant packaging. Les commandes Cargo suivantes ne sont donc pas déclarées PASS localement :
```bash
cargo fmt --all -- --check
cargo check --workspace
cargo clippy --workspace --all-targets --all-features -- -D warnings
cargo test -p ksp-worker-raw-transaction-ingest-lib
```
## Résultats statiques finaux de l'assemblage
```text
General Rust rule audit: clean
Rust export completeness audit: 0 candidate(s)
KSP workspace Rust rule audit: clean
Markdown table audit: clean (340 tables, 833 files)
Normative rule definitions: 489
Unique normative IDs: 489
Duplicates: 0
```
Les trois chaînes attendues par les canaris corrigés ont également été vérifiées directement dans `runtime_resources.rs` :
```text
fn finalize_hydration : présent
fn fetch_hydration : présent
max_pending_signals: settings.admission_queue_capacity() : présent
```
## Gate opérateur avant pre.004
```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
```
`pre.004` ne doit démarrer qu'après retour vert de ce gate.
## Décisions
- Le fix conserve les helpers d'hydration source-neutral de `pre.003`; les anciens noms Yellowstone ne sont pas restaurés.
- Le fix conserve `settings.admission_queue_capacity()` comme borne effective du coordinator d'hydration ; le plafond absolu n'est pas réinjecté.
- Aucun code production n'est modifié.
- Aucun changement fonctionnel de `pre.003` n'est introduit.
## Questions ouvertes
```text
aucune
```