v0.3.9-pre.007-fix.001
This commit is contained in:
@@ -1,12 +1,12 @@
|
||||
# file: Cargo.toml
|
||||
# version: 485
|
||||
# version: 486
|
||||
|
||||
[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-store-api", "crates/ksp-store-lib", "crates/ksp-store-postgres-lib", "crates/ksp-wallet-lib", "crates/ksp-worker-api"]
|
||||
|
||||
[workspace.package]
|
||||
version = "0.3.9-pre.7"
|
||||
version = "0.3.9-pre.7.fix.1"
|
||||
edition = "2024"
|
||||
license = "MIT"
|
||||
repository = "https://git.sasedev.com/Sasedev/khadhroony-solana-project"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// file: crates/ksp-onchain-transport-lib/tests/release_completeness.rs
|
||||
// version: 41
|
||||
// version: 42
|
||||
|
||||
//! Release-level completeness canaries for staged HTTP and WebSocket Transport coverage.
|
||||
|
||||
@@ -1000,14 +1000,10 @@ fn release_v0_2_8_pre_010_live_smoke_policy_preserves_secret_and_dependency_owne
|
||||
#[test]
|
||||
fn release_v0_2_9_pre_002_materializes_minimal_yellowstone_engine_without_provider_or_ws_coupling() {
|
||||
let manifest_directory = std::path::Path::new(env!("CARGO_MANIFEST_DIR"));
|
||||
let workspace = manifest_directory.parent().and_then(std::path::Path::parent).expect("Transport test must resolve workspace root");
|
||||
let root_manifest = std::fs::read_to_string(workspace.join("Cargo.toml")).expect("workspace manifest must be readable");
|
||||
let transport_manifest = std::fs::read_to_string(manifest_directory.join("Cargo.toml")).expect("Transport manifest must be readable");
|
||||
let settings_source = include_str!("../src/grpc_settings.rs");
|
||||
let channel_source = include_str!("../src/grpc_channel.rs");
|
||||
let crate_root = include_str!("../src/lib.rs");
|
||||
assert!(root_manifest.contains("tonic = { version = \"^0.14\", default-features = false }"));
|
||||
assert!(root_manifest.contains("yellowstone-grpc-proto = { version = \"^12.6\", default-features = false }"));
|
||||
assert!(transport_manifest.contains("tonic = { workspace = true, features = [\"channel\""));
|
||||
assert!(transport_manifest.contains("yellowstone-grpc-proto.workspace = true"));
|
||||
assert!(!transport_manifest.contains("yellowstone-grpc-client"));
|
||||
@@ -1028,15 +1024,11 @@ fn release_v0_2_9_pre_002_materializes_minimal_yellowstone_engine_without_provid
|
||||
#[test]
|
||||
fn release_v0_2_9_pre_003_adds_tls_metadata_and_exactly_seven_standard_unary_methods_without_subscribe() {
|
||||
let manifest_directory = std::path::Path::new(env!("CARGO_MANIFEST_DIR"));
|
||||
let workspace = manifest_directory.parent().and_then(std::path::Path::parent).expect("Transport test must resolve workspace root");
|
||||
let root_manifest = std::fs::read_to_string(workspace.join("Cargo.toml")).expect("workspace manifest must be readable");
|
||||
let transport_manifest = std::fs::read_to_string(manifest_directory.join("Cargo.toml")).expect("Transport manifest must be readable");
|
||||
let settings_source = include_str!("../src/grpc_settings.rs");
|
||||
let channel_source = include_str!("../src/grpc_channel.rs");
|
||||
let unary_source = include_str!("../src/grpc_unary.rs");
|
||||
let crate_root = include_str!("../src/lib.rs");
|
||||
assert!(root_manifest.contains("http = { version = \"^1.5\", default-features = false }"));
|
||||
assert!(root_manifest.contains("tonic-prost = { version = \"^0.14\", default-features = false }"));
|
||||
assert!(transport_manifest.contains("tonic = { workspace = true, features = [\"channel\", \"tls-aws-lc\", \"tls-webpki-roots\"] }"));
|
||||
assert!(transport_manifest.contains("tonic = { workspace = true, features = [\"codegen\", \"server\"] }"));
|
||||
assert!(transport_manifest.contains("tonic-prost.workspace = true"));
|
||||
|
||||
78
deltas/0.3.9/pre.007-fix.001.md
Normal file
78
deltas/0.3.9/pre.007-fix.001.md
Normal file
@@ -0,0 +1,78 @@
|
||||
<!-- file: deltas/0.3.9/pre.007-fix.001.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# Delta `0.3.9-pre.007-fix.001`
|
||||
|
||||
## 1. Objet
|
||||
|
||||
Corriger l'unique échec du premier gate technique `pre.007` : une canary historique Yellowstone de `ksp-onchain-transport-lib` inspectait textuellement des contraintes de versions appartenant au `Cargo.toml` racine. Le correctif remet la responsabilité au bon niveau sans changer le runtime, les APIs Transport ou la contrainte de dépendance Yellowstone.
|
||||
|
||||
## 2. Baseline
|
||||
|
||||
Entrée : `0.3.9-pre.7`.
|
||||
|
||||
Le gate opérateur du 5 septembre 2026 a établi :
|
||||
|
||||
```text
|
||||
cargo fmt --all -- --check PASS
|
||||
Rust audits PASS
|
||||
Markdown audit PASS (332 tables / 744 files)
|
||||
cargo check --workspace PASS
|
||||
clippy all-targets/all-features -D warnings PASS
|
||||
cargo test workspace all targets/features FAIL: 1 historical Transport canary
|
||||
ksp-worker-api PASS (28 tests + doc-tests)
|
||||
Worker dependency trees PASS / Core-only
|
||||
cargo tree --duplicates executed
|
||||
```
|
||||
|
||||
L'échec exact était `release_v0_2_9_pre_002_materializes_minimal_yellowstone_engine_without_provider_or_ws_coupling`, sur une assertion littérale du manifeste racine pour `yellowstone-grpc-proto = ^12.6`. Le même gate a ensuite observé une résolution Cargo compatible `yellowstone-grpc-proto 12.7.0`.
|
||||
|
||||
## 3. Correction
|
||||
|
||||
`crates/ksp-onchain-transport-lib/tests/release_completeness.rs` cesse, dans les deux canaries historiques Yellowstone concernées, de lire le `Cargo.toml` racine et de vérifier textuellement les contraintes `tonic`, `yellowstone-grpc-proto`, `http` et `tonic-prost`.
|
||||
|
||||
Cette inspection globale n'appartient pas au Transport : `DEP-CARGO-007` réserve les canaries de politique workspace à la surface de gouvernance/fondation. Les tests Transport conservent les preuves propres à leur domaine :
|
||||
|
||||
- dépendances consommées via `.workspace = true` ;
|
||||
- features runtime/dev attendues ;
|
||||
- absence de `yellowstone-grpc-client` ;
|
||||
- absence de dépendance `ksp-config-lib` ;
|
||||
- présence des surfaces Yellowstone KSP attendues ;
|
||||
- absence de réexport public de `tonic` ou `yellowstone_grpc_proto`.
|
||||
|
||||
La contrainte racine reste :
|
||||
|
||||
```text
|
||||
yellowstone-grpc-proto = { version = "^12.6", default-features = false }
|
||||
```
|
||||
|
||||
Elle accepte déjà les versions `12.x` compatibles selon la sémantique caret Cargo ; aucun pin exact vers `12.6.0` et aucun bump artificiel vers `^12.7` n'est requis par ce défaut.
|
||||
|
||||
## 4. Version
|
||||
|
||||
Le correctif modifie un test Rust consommé par le build/gate. Conformément à `VER-ID-007` et `VER-ID-010` :
|
||||
|
||||
```text
|
||||
workspace.package.version = 0.3.9-pre.7.fix.1
|
||||
```
|
||||
|
||||
## 5. Fichiers
|
||||
|
||||
Modifiés :
|
||||
|
||||
```text
|
||||
Cargo.toml
|
||||
crates/ksp-onchain-transport-lib/tests/release_completeness.rs
|
||||
docs/plans/030-V0_3_9_WORKER_API_RAW_TRANSACTION_AUDIT_PLAN.md
|
||||
docs/validation/026-V0_3_9_WORKER_API_RAW_TRANSACTION_AUDIT.md
|
||||
```
|
||||
|
||||
Ajouté :
|
||||
|
||||
```text
|
||||
deltas/0.3.9/pre.007-fix.001.md
|
||||
```
|
||||
|
||||
## 6. Validations d'assemblage
|
||||
|
||||
À exécuter avant livraison : audits Rust/Markdown, contrôle du diff et intégrité de l'archive. Cargo/rustfmt ne sont pas disponibles dans l'environnement d'assemblage ; le gate opérateur doit être rejoué sur `0.3.9-pre.7.fix.1`.
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/plans/030-V0_3_9_WORKER_API_RAW_TRANSACTION_AUDIT_PLAN.md -->
|
||||
<!-- version: 14 -->
|
||||
<!-- version: 15 -->
|
||||
|
||||
# Plan v0.3.9 — Worker API générique + audit RAW Transaction
|
||||
|
||||
@@ -620,10 +620,16 @@ La décision de `pre.006-fix.002` est matérialisée immédiatement pendant N1 R
|
||||
|
||||
### `pre.007` — gate technique final
|
||||
|
||||
**Statut : livré ; gate opérateur final en attente.**
|
||||
**Statut : livré ; premier gate opérateur interrompu par une canary historique Transport trop couplée au manifeste workspace.**
|
||||
|
||||
Budget cible : **10-15 min**. Fermer les gates workspace/Worker API, les arbres de dépendances et l’audit des doublons sans ajouter de nouvelle fonctionnalité. La tranche synchronise uniquement `workspace.package.version = 0.3.9-pre.7` puis exige le gate sur cet état exact. Le clean gate complet de `pre.006-fix.003` est une précondition PASS, pas un substitut à la preuve `pre.007`.
|
||||
|
||||
#### `pre.007-fix.001` — ownership des canaries de dépendances Yellowstone
|
||||
|
||||
**Statut : livré ; correctif de test, revalidation opérateur requise.**
|
||||
|
||||
Le premier gate `pre.007` a échoué sur une canary historique de `ksp-onchain-transport-lib` qui inspectait littéralement des contraintes de versions externes dans le `Cargo.toml` racine, notamment `yellowstone-grpc-proto = ^12.6`. Cette responsabilité est globale au workspace et contrevient à `DEP-CARGO-007`, qui la réserve à la surface de gouvernance/fondation. Le correctif retire des deux canaries Yellowstone historiques les lectures/assertions de versions du manifeste racine et conserve leurs preuves propres au Transport : dépendances workspace locales, features nécessaires, absence de `yellowstone-grpc-client`, firewall Config et non-exposition des crates externes. La contrainte racine `^12.6` reste inchangée ; elle autorise déjà la résolution compatible `12.7.0` observée pendant le gate, sans pin arbitraire. La version Cargo devient `0.3.9-pre.7.fix.1`.
|
||||
|
||||
### `pre.008` — réconciliation documentaire finale
|
||||
|
||||
**Statut : prévu.**
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/validation/026-V0_3_9_WORKER_API_RAW_TRANSACTION_AUDIT.md -->
|
||||
<!-- version: 13 -->
|
||||
<!-- version: 14 -->
|
||||
|
||||
# Validation v0.3.9 — Worker API + audit RAW Transaction
|
||||
|
||||
@@ -265,17 +265,28 @@ Cette preuve ferme la précondition fonctionnelle/configuration de `pre.007`. El
|
||||
|
||||
### `pre.007` — gate technique final
|
||||
|
||||
État livré : `workspace.package.version = 0.3.9-pre.7`. Aucun fichier de production, Config, Store, Transport, Worker ou Job n'est modifié par la tranche hors propagation mécanique de la version workspace.
|
||||
Premier gate opérateur exécuté le 5 septembre 2026 sur `workspace.package.version = 0.3.9-pre.7` :
|
||||
|
||||
- [ ] `cargo fmt --all -- --check`.
|
||||
- [ ] audits Rust/Markdown complets.
|
||||
- [ ] `cargo check --workspace`.
|
||||
- [ ] `cargo clippy --workspace --all-targets --all-features -- -D warnings`.
|
||||
- [ ] `cargo test --workspace --all-targets --all-features`.
|
||||
- [ ] `cargo test -p ksp-worker-api`.
|
||||
- [ ] `cargo tree -p ksp-worker-api --edges normal`.
|
||||
- [ ] `cargo tree -p ksp-worker-api -e features`.
|
||||
- [ ] `cargo tree --duplicates`.
|
||||
- [X] `cargo fmt --all -- --check`.
|
||||
- [X] audits Rust/Markdown complets : Rust clean, export completeness 0, Markdown clean (332 tables / 744 fichiers).
|
||||
- [X] `cargo check --workspace`.
|
||||
- [X] `cargo clippy --workspace --all-targets --all-features -- -D warnings`.
|
||||
- [ ] `cargo test --workspace --all-targets --all-features` : **FAIL unique observé** dans `ksp-onchain-transport-lib/tests/release_completeness.rs`, canary historique `release_v0_2_9_pre_002_materializes_minimal_yellowstone_engine_without_provider_or_ws_coupling` couplée textuellement à la contrainte workspace `yellowstone-grpc-proto = ^12.6` ; 42 autres tests de ce fichier PASS.
|
||||
- [X] `cargo test -p ksp-worker-api` : 28 tests PASS, doc-tests PASS.
|
||||
- [X] `cargo tree -p ksp-worker-api --edges normal` : `ksp-worker-api -> ksp-core-lib` uniquement.
|
||||
- [X] `cargo tree -p ksp-worker-api -e features` : feature `default` de Core uniquement.
|
||||
- [X] `cargo tree --duplicates` exécuté après le test ; la résolution compatible observée a notamment avancé `yellowstone-grpc-proto` de `12.6.0` à `12.7.0`.
|
||||
|
||||
Le gate n'est donc pas fermé : l'unique défaut est traité par `pre.007-fix.001`.
|
||||
|
||||
#### `pre.007-fix.001` — correction de la canary Yellowstone
|
||||
|
||||
- [X] Les deux canaries Yellowstone historiques de `ksp-onchain-transport-lib` ne lisent plus le `Cargo.toml` racine pour imposer des versions de dépendances workspace.
|
||||
- [X] Les assertions Transport propres à la crate sont conservées : consommation `.workspace = true`, features runtime/dev, absence de `yellowstone-grpc-client`, absence de dépendance Config et non-exposition de `tonic`/`yellowstone_grpc_proto`.
|
||||
- [X] Le correctif respecte `DEP-CARGO-007` : les politiques générales du workspace restent propriété de la surface fondation/Core.
|
||||
- [X] La contrainte racine `yellowstone-grpc-proto = { version = "^12.6", default-features = false }` reste inchangée ; aucun pin `12.6.0` n'est introduit.
|
||||
- [X] `workspace.package.version = 0.3.9-pre.7.fix.1`.
|
||||
- [ ] Rejouer le gate `pre.007` sur `0.3.9-pre.7.fix.1`.
|
||||
|
||||
### `pre.008` — réconciliation documentaire
|
||||
|
||||
@@ -310,4 +321,4 @@ Après la synthèse multi-source `pre.006`, l'état courant est :
|
||||
workspace.package.version = 0.3.9-pre.6
|
||||
```
|
||||
|
||||
`pre.002` reste la tranche non-fix `0.3.9-pre.2`. Les correctifs de conformité/compilation portent successivement `0.3.9-pre.2.fix.1` puis `0.3.9-pre.2.fix.2` conformément à `VER-ID-007` et `VER-ID-010`. `pre.003` reprend ensuite la séquence prerelease normale avec `0.3.9-pre.3`; son gate opérateur est PASS et freeze Worker API. `pre.004` poursuit avec `0.3.9-pre.4` sans changement runtime, uniquement l'audit standard Solana/KSP et la création de l'owner durable d'acquisition. `pre.005` passe à `0.3.9-pre.5` et enrichit cet owner avec l'audit Helius/Yellowstone/providers/kbot3 sans modifier le runtime. `pre.006` passe à `0.3.9-pre.6` et ferme la synthèse exhaustive possibilités/support/preuve ainsi que les handoffs `0.3.10`/`0.3.12`. `pre.006-fix.001` réécrit ensuite l'owner d'architecture comme synthèse Store-centrique et corrige la séparation Worker live / Job historique sans modifier Cargo ; `pre.006-fix.002` fixe `mainnet` comme identité canonique sans runtime. `pre.006-fix.003` matérialise finalement cette normalisation dans Config/Store/Transport/tests et porte la version Cargo `0.3.9-pre.6.fix.3`. L'état précédent `0.3.9-pre.1.fix.2` reste documenté dans `pre.001-fix.002`.
|
||||
`pre.002` reste la tranche non-fix `0.3.9-pre.2`. Les correctifs de conformité/compilation portent successivement `0.3.9-pre.2.fix.1` puis `0.3.9-pre.2.fix.2` conformément à `VER-ID-007` et `VER-ID-010`. `pre.003` reprend ensuite la séquence prerelease normale avec `0.3.9-pre.3`; son gate opérateur est PASS et freeze Worker API. `pre.004` poursuit avec `0.3.9-pre.4` sans changement runtime, uniquement l'audit standard Solana/KSP et la création de l'owner durable d'acquisition. `pre.005` passe à `0.3.9-pre.5` et enrichit cet owner avec l'audit Helius/Yellowstone/providers/kbot3 sans modifier le runtime. `pre.006` passe à `0.3.9-pre.6` et ferme la synthèse exhaustive possibilités/support/preuve ainsi que les handoffs `0.3.10`/`0.3.12`. `pre.006-fix.001` réécrit ensuite l'owner d'architecture comme synthèse Store-centrique et corrige la séparation Worker live / Job historique sans modifier Cargo ; `pre.006-fix.002` fixe `mainnet` comme identité canonique sans runtime. `pre.006-fix.003` matérialise finalement cette normalisation dans Config/Store/Transport/tests et porte la version Cargo `0.3.9-pre.6.fix.3`. `pre.007` ouvre ensuite le gate technique en `0.3.9-pre.7`; son premier passage révèle une canary Transport historique trop couplée au manifeste racine. `pre.007-fix.001` corrige cet ownership sans modifier la contrainte Yellowstone et porte Cargo en `0.3.9-pre.7.fix.1`. L'état précédent `0.3.9-pre.1.fix.2` reste documenté dans `pre.001-fix.002`.
|
||||
|
||||
Reference in New Issue
Block a user