v0.3.13-pre.009-fix.001
This commit is contained in:
@@ -1,12 +1,12 @@
|
|||||||
# file: Cargo.toml
|
# file: Cargo.toml
|
||||||
# version: 556
|
# version: 557
|
||||||
|
|
||||||
[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"
|
version = "0.3.13-pre.9.fix.1"
|
||||||
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/dependency_boundary.rs
|
// file: crates/ksp-worker-raw-transaction-ingest-lib/tests/dependency_boundary.rs
|
||||||
// version: 25
|
// version: 26
|
||||||
|
|
||||||
//! Dependency firewall canaries for the RAW transaction ingest Worker foundation.
|
//! Dependency firewall canaries for the RAW transaction ingest Worker foundation.
|
||||||
|
|
||||||
@@ -167,7 +167,9 @@ fn v0_3_12_pre_006_productive_source_uses_transport_session_bounded_coalescence_
|
|||||||
"RawTransactionIngestHydrationCoordinator",
|
"RawTransactionIngestHydrationCoordinator",
|
||||||
"std::collections::BTreeMap",
|
"std::collections::BTreeMap",
|
||||||
"tokio::task::JoinSet",
|
"tokio::task::JoinSet",
|
||||||
"max_pending_signals: settings.admission_queue_capacity()",
|
"RawTransactionIngestHydrationCoordinator::with_global_registry(",
|
||||||
|
"hydration_pending_limit,",
|
||||||
|
"hydration_in_flight_limit,",
|
||||||
"get_transaction_observed",
|
"get_transaction_observed",
|
||||||
"admission_sender.send(ingress)",
|
"admission_sender.send(ingress)",
|
||||||
"tasks.abort_all()",
|
"tasks.abort_all()",
|
||||||
@@ -251,7 +253,9 @@ fn v0_3_13_pre_003_standard_logs_source_reuses_transport_facades_and_common_hydr
|
|||||||
"logs_get_transaction",
|
"logs_get_transaction",
|
||||||
"solana_ws_http",
|
"solana_ws_http",
|
||||||
"get_transaction_observed",
|
"get_transaction_observed",
|
||||||
"max_pending_signals: settings.admission_queue_capacity()",
|
"RawTransactionIngestHydrationCoordinator::with_global_registry(",
|
||||||
|
"hydration_pending_limit,",
|
||||||
|
"hydration_in_flight_limit,",
|
||||||
"std::option::Option::Some(1)",
|
"std::option::Option::Some(1)",
|
||||||
] {
|
] {
|
||||||
assert!(resources.contains(required), "required pre.003 standard logs contract missing: {required}");
|
assert!(resources.contains(required), "required pre.003 standard logs contract missing: {required}");
|
||||||
@@ -331,7 +335,9 @@ fn v0_3_13_pre_005_helius_transaction_source_reuses_transport_facade_and_common_
|
|||||||
"project_helius_transaction_signal",
|
"project_helius_transaction_signal",
|
||||||
"helius_ws_http",
|
"helius_ws_http",
|
||||||
"get_transaction_observed",
|
"get_transaction_observed",
|
||||||
"max_pending_signals: settings.admission_queue_capacity()",
|
"RawTransactionIngestHydrationCoordinator::with_global_registry(",
|
||||||
|
"hydration_pending_limit,",
|
||||||
|
"hydration_in_flight_limit,",
|
||||||
] {
|
] {
|
||||||
assert!(resources.contains(required), "required pre.005 Helius transaction contract missing: {required}");
|
assert!(resources.contains(required), "required pre.005 Helius transaction contract missing: {required}");
|
||||||
}
|
}
|
||||||
@@ -612,6 +618,8 @@ fn v0_3_13_pre_009_global_bounds_and_fairness_stay_inside_worker_facades() {
|
|||||||
let resources = include_str!("../src/runtime_resources.rs");
|
let resources = include_str!("../src/runtime_resources.rs");
|
||||||
for required in [
|
for required in [
|
||||||
"validate_hydration_fairness_capacity",
|
"validate_hydration_fairness_capacity",
|
||||||
|
"let hydration_pending_budget = settings.admission_queue_capacity();",
|
||||||
|
"let hydration_in_flight_budget = settings.persistence_concurrency();",
|
||||||
"hydration_pending_limit",
|
"hydration_pending_limit",
|
||||||
"hydration_in_flight_limit",
|
"hydration_in_flight_limit",
|
||||||
"tokio::sync::Semaphore",
|
"tokio::sync::Semaphore",
|
||||||
|
|||||||
@@ -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: 19
|
// version: 20
|
||||||
|
|
||||||
//! External public, security, redaction and release-boundary hardening canaries for `pre.010`.
|
//! External public, security, redaction and release-boundary hardening canaries for `pre.010`.
|
||||||
|
|
||||||
@@ -408,8 +408,11 @@ fn v0_3_12_pre_006_runtime_resource_contract_opens_one_supervised_transport_sour
|
|||||||
fn v0_3_12_pre_006_source_coalescence_is_bounded_stop_preemptible_and_redacted() {
|
fn v0_3_12_pre_006_source_coalescence_is_bounded_stop_preemptible_and_redacted() {
|
||||||
let resources = include_str!("../src/runtime_resources.rs");
|
let resources = include_str!("../src/runtime_resources.rs");
|
||||||
for required in [
|
for required in [
|
||||||
"max_in_flight: settings.persistence_concurrency()",
|
"max_in_flight: usize",
|
||||||
"max_pending_signals: settings.admission_queue_capacity()",
|
"max_pending_signals: usize",
|
||||||
|
"RawTransactionIngestHydrationCoordinator::with_global_registry(",
|
||||||
|
"hydration_pending_limit,",
|
||||||
|
"hydration_in_flight_limit,",
|
||||||
"pending_signal_count",
|
"pending_signal_count",
|
||||||
"stop_receiver.changed()",
|
"stop_receiver.changed()",
|
||||||
"tasks.abort_all()",
|
"tasks.abort_all()",
|
||||||
|
|||||||
137
deltas/0.3.13/pre.009-fix.001.md
Normal file
137
deltas/0.3.13/pre.009-fix.001.md
Normal file
@@ -0,0 +1,137 @@
|
|||||||
|
<!-- file: deltas/0.3.13/pre.009-fix.001.md -->
|
||||||
|
<!-- version: 1 -->
|
||||||
|
|
||||||
|
# Delta 0.3.13-pre.009-fix.001 — alignement des canaris de quotas et correction du gate cargo tree
|
||||||
|
|
||||||
|
## Base requise
|
||||||
|
|
||||||
|
```text
|
||||||
|
livraison précédente : 0.3.13-pre.009
|
||||||
|
Cargo base : 0.3.13-pre.9
|
||||||
|
delta base : deltas/0.3.13/pre.009.md
|
||||||
|
archive delta base : ksp-general-0.3.13-pre.009.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 / 845 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 : 13 PASS / 3 FAIL
|
||||||
|
```
|
||||||
|
|
||||||
|
La suite Worker s'arrête sur ces trois canaris `dependency_boundary`; `hardening`, `public_api`, `release_completeness` et les doc-tests Worker ne sont donc pas déclarés PASS pour ce gate.
|
||||||
|
|
||||||
|
Les trois échecs exigent encore la chaîne historique :
|
||||||
|
|
||||||
|
```text
|
||||||
|
max_pending_signals: settings.admission_queue_capacity()
|
||||||
|
```
|
||||||
|
|
||||||
|
Cette assertion n'est plus correcte depuis `pre.009`. Les sources reference-bearing reçoivent désormais des quotas `hydration_pending_limit` et `hydration_in_flight_limit` calculés à partir des budgets globaux, tandis que les preuves `pre.009` verrouillent la partition exacte des capacités configurées.
|
||||||
|
|
||||||
|
Une revue préventive trouve également le même canari obsolète dans `tests/hardening.rs`, avec l'ancienne hypothèse `max_in_flight: settings.persistence_concurrency()`. Il est corrigé dans le même fix avant qu'il ne devienne le prochain échec.
|
||||||
|
|
||||||
|
## Objectif du fix
|
||||||
|
|
||||||
|
Mettre à jour les preuves sans modifier la logique runtime :
|
||||||
|
|
||||||
|
```text
|
||||||
|
anciens canaris source-specific : vérifient with_global_registry + quotas source locaux
|
||||||
|
canari pre.009 dependency : vérifie aussi le lien budgets globaux -> settings
|
||||||
|
hardening historique : vérifie les champs bornés + quotas, sans ancienne égalité locale
|
||||||
|
runtime : inchangé
|
||||||
|
```
|
||||||
|
|
||||||
|
Les anciens canaris ne sont pas affaiblis : la relation directe entre capacités Worker et budgets globaux est désormais vérifiée par le canari `pre.009`, et les canaris historiques continuent à vérifier que chaque source utilise le coordinator borné commun.
|
||||||
|
|
||||||
|
## Correction du workflow cargo tree
|
||||||
|
|
||||||
|
Le gate opérateur avant `pre.010` ne doit pas imposer `cargo tree` : `pre.009` ne modifie aucune dépendance ni feature et `pre.010` n'est pas la fermeture technique de `0.3.13`.
|
||||||
|
|
||||||
|
La règle courante est explicitée dans le prompt `0.3.13` :
|
||||||
|
|
||||||
|
```text
|
||||||
|
cargo tree requis si le graphe dépendances/features change
|
||||||
|
ou à la fermeture technique de 0.3.13
|
||||||
|
pas à chaque prerelease sans changement de graphe
|
||||||
|
```
|
||||||
|
|
||||||
|
Le plan, la validation et le delta `pre.009` sont alignés sur cette règle pour le gate avant `pre.010`.
|
||||||
|
|
||||||
|
## Version
|
||||||
|
|
||||||
|
```text
|
||||||
|
livraison : 0.3.13-pre.009-fix.001
|
||||||
|
workspace.package.version : 0.3.13-pre.9.fix.1
|
||||||
|
archive : ksp-general-0.3.13-pre.009-fix.001.zip
|
||||||
|
```
|
||||||
|
|
||||||
|
`Cargo.toml` passe de la version de fichier `556` à `557`.
|
||||||
|
|
||||||
|
## Fichiers modifiés
|
||||||
|
|
||||||
|
```text
|
||||||
|
Cargo.toml
|
||||||
|
crates/ksp-worker-raw-transaction-ingest-lib/tests/dependency_boundary.rs
|
||||||
|
crates/ksp-worker-raw-transaction-ingest-lib/tests/hardening.rs
|
||||||
|
prompts/032-V0_3_13_START_PROMPT.md
|
||||||
|
docs/plans/034-V0_3_13_MULTI_SOURCE_LIVE_CONVERGENCE_PLAN.md
|
||||||
|
docs/validation/030-V0_3_13_MULTI_SOURCE_LIVE_CONVERGENCE.md
|
||||||
|
deltas/0.3.13/pre.009.md
|
||||||
|
```
|
||||||
|
|
||||||
|
Versions de fichiers :
|
||||||
|
|
||||||
|
```text
|
||||||
|
dependency_boundary.rs : 25 -> 26
|
||||||
|
hardening.rs : 19 -> 20
|
||||||
|
032 start prompt : 1 -> 2
|
||||||
|
plan 034 : 9 -> 10
|
||||||
|
validation 030 : 9 -> 10
|
||||||
|
pre.009.md : 1 -> 2
|
||||||
|
```
|
||||||
|
|
||||||
|
## Fichiers ajoutés
|
||||||
|
|
||||||
|
```text
|
||||||
|
deltas/0.3.13/pre.009-fix.001.md
|
||||||
|
```
|
||||||
|
|
||||||
|
## Fichiers supprimés
|
||||||
|
|
||||||
|
```text
|
||||||
|
aucun
|
||||||
|
```
|
||||||
|
|
||||||
|
## Non-claims
|
||||||
|
|
||||||
|
Ce fix ne modifie aucune source production, aucun quota calculé, aucune borne globale, aucun sémaphore, aucune registry, aucune logique de disagreement, aucune dépendance, aucune feature et aucune API publique.
|
||||||
|
|
||||||
|
## Validation 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`. Les audits statiques KSP et le contrôle exhaustif du delta sont exécutés avant packaging.
|
||||||
|
|
||||||
|
## 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
|
||||||
|
```
|
||||||
|
|
||||||
|
Aucun `cargo tree` n'est requis pour ce gate. Le test Transport n'a pas besoin d'être répété par ce fix, qui ne modifie ni Transport, ni dépendance, ni feature.
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
<!-- file: deltas/0.3.13/pre.009.md -->
|
<!-- file: deltas/0.3.13/pre.009.md -->
|
||||||
<!-- version: 1 -->
|
<!-- version: 2 -->
|
||||||
|
|
||||||
# Delta 0.3.13-pre.009 — disagreements, duplicate storms, bornes globales et fairness
|
# Delta 0.3.13-pre.009 — disagreements, duplicate storms, bornes globales et fairness
|
||||||
|
|
||||||
@@ -216,7 +216,6 @@ cargo check --workspace
|
|||||||
cargo clippy --workspace --all-targets --all-features -- -D warnings
|
cargo clippy --workspace --all-targets --all-features -- -D warnings
|
||||||
cargo test -p ksp-onchain-transport-lib
|
cargo test -p ksp-onchain-transport-lib
|
||||||
cargo test -p ksp-worker-raw-transaction-ingest-lib
|
cargo test -p ksp-worker-raw-transaction-ingest-lib
|
||||||
cargo tree -p ksp-worker-raw-transaction-ingest-lib --edges normal
|
|
||||||
cargo tree -p ksp-worker-raw-transaction-ingest-lib -e features
|
|
||||||
cargo tree --duplicates
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Aucun `cargo tree` n'est requis pour ce gate : `pre.009` ne modifie ni dépendance ni feature. Les graphes seront réaudités si le graphe change ou à la fermeture technique de `0.3.13`.
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<!-- file: docs/plans/034-V0_3_13_MULTI_SOURCE_LIVE_CONVERGENCE_PLAN.md -->
|
<!-- file: docs/plans/034-V0_3_13_MULTI_SOURCE_LIVE_CONVERGENCE_PLAN.md -->
|
||||||
<!-- version: 9 -->
|
<!-- version: 10 -->
|
||||||
|
|
||||||
# Plan v0.3.13 — WS standard / Helius / HTTP live + convergence multi-source RawTransaction
|
# Plan v0.3.13 — WS standard / Helius / HTTP live + convergence multi-source RawTransaction
|
||||||
|
|
||||||
@@ -1403,7 +1403,6 @@ cargo check --workspace
|
|||||||
cargo clippy --workspace --all-targets --all-features -- -D warnings
|
cargo clippy --workspace --all-targets --all-features -- -D warnings
|
||||||
cargo test -p ksp-onchain-transport-lib
|
cargo test -p ksp-onchain-transport-lib
|
||||||
cargo test -p ksp-worker-raw-transaction-ingest-lib
|
cargo test -p ksp-worker-raw-transaction-ingest-lib
|
||||||
cargo tree -p ksp-worker-raw-transaction-ingest-lib --edges normal
|
|
||||||
cargo tree -p ksp-worker-raw-transaction-ingest-lib -e features
|
|
||||||
cargo tree --duplicates
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Aucun `cargo tree` n'est requis pour ce gate : `pre.009` ne modifie ni dépendance ni feature. Les graphes seront réaudités si le graphe change ou à la fermeture technique de `0.3.13`.
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<!-- file: docs/validation/030-V0_3_13_MULTI_SOURCE_LIVE_CONVERGENCE.md -->
|
<!-- file: docs/validation/030-V0_3_13_MULTI_SOURCE_LIVE_CONVERGENCE.md -->
|
||||||
<!-- version: 9 -->
|
<!-- version: 10 -->
|
||||||
|
|
||||||
# Validation v0.3.13 — WS standard / Helius / HTTP live + convergence multi-source
|
# Validation v0.3.13 — WS standard / Helius / HTTP live + convergence multi-source
|
||||||
|
|
||||||
@@ -1408,7 +1408,6 @@ cargo check --workspace
|
|||||||
cargo clippy --workspace --all-targets --all-features -- -D warnings
|
cargo clippy --workspace --all-targets --all-features -- -D warnings
|
||||||
cargo test -p ksp-onchain-transport-lib
|
cargo test -p ksp-onchain-transport-lib
|
||||||
cargo test -p ksp-worker-raw-transaction-ingest-lib
|
cargo test -p ksp-worker-raw-transaction-ingest-lib
|
||||||
cargo tree -p ksp-worker-raw-transaction-ingest-lib --edges normal
|
|
||||||
cargo tree -p ksp-worker-raw-transaction-ingest-lib -e features
|
|
||||||
cargo tree --duplicates
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Aucun `cargo tree` n'est requis pour ce gate : `pre.009` ne modifie ni dépendance ni feature. Les graphes seront réaudités si le graphe change ou à la fermeture technique de `0.3.13`.
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<!-- file: prompts/032-V0_3_13_START_PROMPT.md -->
|
<!-- file: prompts/032-V0_3_13_START_PROMPT.md -->
|
||||||
<!-- version: 1 -->
|
<!-- version: 2 -->
|
||||||
|
|
||||||
# Prompt de démarrage `0.3.13` — WS standard / Helius / HTTP live + convergence multi-source du Worker `RawTransaction`
|
# Prompt de démarrage `0.3.13` — WS standard / Helius / HTTP live + convergence multi-source du Worker `RawTransaction`
|
||||||
|
|
||||||
@@ -555,7 +555,7 @@ Si Config/profils Helius sont modifiés :
|
|||||||
cargo test -p ksp-config-lib
|
cargo test -p ksp-config-lib
|
||||||
```
|
```
|
||||||
|
|
||||||
Graphes à maintenir/auditer :
|
Graphes à auditer uniquement si le graphe de dépendances/features change, ou à la fermeture technique :
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cargo tree -p ksp-worker-raw-transaction-ingest-lib --edges normal
|
cargo tree -p ksp-worker-raw-transaction-ingest-lib --edges normal
|
||||||
|
|||||||
Reference in New Issue
Block a user