v0.3.13-pre.003-fix.002
This commit is contained in:
@@ -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"
|
||||
|
||||
@@ -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()",
|
||||
|
||||
194
deltas/0.3.13/pre.003-fix.002.md
Normal file
194
deltas/0.3.13/pre.003-fix.002.md
Normal 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
|
||||
```
|
||||
Reference in New Issue
Block a user