diff --git a/Cargo.toml b/Cargo.toml index d0a8465..d9ae083 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,12 +1,12 @@ # file: Cargo.toml -# version: 452 +# version: 453 [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"] [workspace.package] -version = "0.3.8-pre.5" +version = "0.3.8-pre.5.fix.1" edition = "2024" license = "MIT" repository = "https://git.sasedev.com/Sasedev/khadhroony-solana-project" diff --git a/crates/ksp-store-postgres-lib/src/lib.rs b/crates/ksp-store-postgres-lib/src/lib.rs index 4fa3d92..e677e91 100644 --- a/crates/ksp-store-postgres-lib/src/lib.rs +++ b/crates/ksp-store-postgres-lib/src/lib.rs @@ -85,10 +85,10 @@ pub(crate) use self::raw_account::cursor::raw_account_physical_page_limit; pub(crate) use self::raw_account::get_raw_account_observation; /// Private RAW account state reader consumed by the physical backend runtime. pub(crate) use self::raw_account::get_raw_account_state; -/// Private RAW account-state list reader consumed by the physical backend runtime. -pub(crate) use self::raw_account::list_raw_account_states; /// Private data-free RAW account-state inspection reader consumed by the physical backend runtime. pub(crate) use self::raw_account::inspect_raw_account_states; +/// Private RAW account-state list reader consumed by the physical backend runtime. +pub(crate) use self::raw_account::list_raw_account_states; /// Private atomic RAW account acquisition writer consumed by the physical backend runtime. pub(crate) use self::raw_account::persist_raw_account_acquisition; /// Private additional RAW account observation writer consumed by the physical backend runtime. @@ -107,10 +107,10 @@ pub(crate) use self::raw_transaction::get_raw_transaction_observation; pub(crate) use self::raw_transaction::get_raw_transaction_retention_state; /// Private RAW transaction tombstone reader consumed by the physical backend runtime. pub(crate) use self::raw_transaction::get_raw_transaction_tombstone; -/// Private RAW transaction list reader consumed by the physical backend runtime. -pub(crate) use self::raw_transaction::list_raw_transactions; /// Private payload-free RAW transaction inspection reader consumed by the physical backend runtime. pub(crate) use self::raw_transaction::inspect_raw_transactions; +/// Private RAW transaction list reader consumed by the physical backend runtime. +pub(crate) use self::raw_transaction::list_raw_transactions; /// Private atomic RAW transaction acquisition writer consumed by the physical backend runtime. pub(crate) use self::raw_transaction::persist_raw_transaction_acquisition; /// Private additional RAW transaction observation writer consumed by the physical backend runtime. diff --git a/crates/ksp-store-postgres-lib/src/raw_account.rs b/crates/ksp-store-postgres-lib/src/raw_account.rs index acb9796..44cbcf6 100644 --- a/crates/ksp-store-postgres-lib/src/raw_account.rs +++ b/crates/ksp-store-postgres-lib/src/raw_account.rs @@ -226,10 +226,7 @@ pub(crate) async fn inspect_raw_account_states( query: &ksp_store_api::RawAccountStateInspectionQuery, ) -> std::result::Result, crate::PostgresBackendError> { if query.network() != network { - return std::result::Result::Err(crate::PostgresBackendError::new( - crate::PostgresBackendErrorKind::WrongNetwork, - "raw_account_inspection_network", - )); + return std::result::Result::Err(crate::PostgresBackendError::new(crate::PostgresBackendErrorKind::WrongNetwork, "raw_account_inspection_network")); } let sql = match query.direction() { ksp_store_api::RawSortDirection::Ascending => INSPECT_ACCOUNT_STATES_ASC_SQL, @@ -1042,9 +1039,7 @@ fn raw_account_inspection_empty_page_is_clean(row: &RawAccountInspectionDbRow) - && row.state_hash.is_none(); } -fn raw_account_inspection_sql_window( - page: ksp_store_api::RawInspectionPageRequest, -) -> std::result::Result<(i64, i64), crate::PostgresBackendError> { +fn raw_account_inspection_sql_window(page: ksp_store_api::RawInspectionPageRequest) -> std::result::Result<(i64, i64), crate::PostgresBackendError> { let sql_limit = match i64::try_from(page.limit().get()) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { @@ -1057,10 +1052,7 @@ fn raw_account_inspection_sql_window( let sql_offset = match i64::try_from(page.offset()) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(crate::PostgresBackendError::new( - crate::PostgresBackendErrorKind::QueryInvalid, - "raw_account_inspection_offset", - )); + return std::result::Result::Err(crate::PostgresBackendError::new(crate::PostgresBackendErrorKind::QueryInvalid, "raw_account_inspection_offset")); }, }; return std::result::Result::Ok((sql_limit, sql_offset)); diff --git a/crates/ksp-store-postgres-lib/unit_tests/raw_account.rs b/crates/ksp-store-postgres-lib/unit_tests/raw_account.rs index f0d9e3e..6095d21 100644 --- a/crates/ksp-store-postgres-lib/unit_tests/raw_account.rs +++ b/crates/ksp-store-postgres-lib/unit_tests/raw_account.rs @@ -1,5 +1,5 @@ // file: crates/ksp-store-postgres-lib/unit_tests/raw_account.rs -// version: 6 +// version: 7 fn network() -> ksp_store_api::RawNetworkId { return match ksp_store_api::RawNetworkId::new("devnet") { @@ -67,7 +67,7 @@ fn observation_row() -> super::RawAccountObservationDbRow { }; } - +fn inspection_row(data_length_bytes: i64) -> super::RawAccountInspectionDbRow { return super::RawAccountInspectionDbRow { data_length_bytes: std::option::Option::Some(data_length_bytes), executable: std::option::Option::Some(true), diff --git a/deltas/0.3.8/pre.005-fix.001.md b/deltas/0.3.8/pre.005-fix.001.md new file mode 100644 index 0000000..44f2af4 --- /dev/null +++ b/deltas/0.3.8/pre.005-fix.001.md @@ -0,0 +1,36 @@ + + + +# Delta `0.3.8-pre.005-fix.001` — restauration de la fixture Account inspection + +## Base requise + +Base directe attendue : `0.3.8-pre.005`. + +## Objet + +Corriger exclusivement l'erreur de syntaxe introduite dans le test unitaire PostgreSQL Account inspection : la fonction fixture `inspection_row(data_length_bytes)` avait perdu sa signature lors de l'assemblage de `pre.005`. + +## Modifications + +- `Cargo.toml` : version workspace `0.3.8-pre.5.fix.1` ; +- `crates/ksp-store-postgres-lib/unit_tests/raw_account.rs` : restauration de `fn inspection_row(data_length_bytes: i64) -> super::RawAccountInspectionDbRow` ; +- `docs/validation/025-V0_3_8_STORE_DESK.md` : consignation du gate opérateur et du live proof Account PostgreSQL 17. + +## Hors scope + +Aucun changement de SQL, runtime, migration, Store API, façade, capability, UI Desk ou protocole DataTables. + +## Validation attendue + +```bash +cargo fmt --all +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 +cargo test -p ksp-store-postgres-lib +cargo test -p ksp-store-lib +cargo check -p ksp-store-lib --no-default-features +cargo test -p ksp-store-api +``` diff --git a/docs/validation/025-V0_3_8_STORE_DESK.md b/docs/validation/025-V0_3_8_STORE_DESK.md index 9a89c99..8e709c6 100644 --- a/docs/validation/025-V0_3_8_STORE_DESK.md +++ b/docs/validation/025-V0_3_8_STORE_DESK.md @@ -1,5 +1,5 @@ - + # Validation v0.3.8 — Store Desk V1 RAW @@ -404,3 +404,16 @@ test pre_009_real_postgres_raw_transaction_vertical_slice_is_atomic_concurrent_a - [X] le live proof Account opt-in couvre filtre pubkey, counts, ordre asc/desc, offset, data length et page vide profonde ; - [X] aucune migration, table, index, capability destructive Account, UI Desk ou protocole DataTables n'est ajouté. +## 22. Gate opérateur `pre.005` et ouverture de `pre.005-fix.001` + +Le gate opérateur de `pre.005` confirme que les audits Rust/Markdown, `ksp-store-lib`, `ksp-store-api` et le live proof PostgreSQL Account sont verts, mais la tranche ne peut pas être fermée : `cargo fmt --all`, `cargo clippy --workspace --all-targets` et `cargo test -p ksp-store-postgres-lib` échouent tous sur une erreur de syntaxe dans le fichier de tests unitaires `unit_tests/raw_account.rs`. + +La fixture `inspection_row(data_length_bytes)` a perdu sa signature de fonction lors de l'assemblage du delta ; seul son `return super::RawAccountInspectionDbRow { ... };` est resté, ce qui laisse une accolade fermante orpheline. Le live proof d'intégration peut néanmoins compiler et passer car ce fichier n'est inclus que sous `cfg(test)` dans les tests unitaires de la bibliothèque. + +`pre.005-fix.001` restaure uniquement la signature de cette fixture. Aucun SQL, runtime PostgreSQL, contrat Store, capability ou comportement d'inspection de production n'est modifié. Le live proof Account exécuté sur PostgreSQL 17 reste une preuve valide du chemin runtime : + +```text +KSP Store RawAccountState live proof: server major 17 +test pre_009_real_postgres_raw_account_vertical_slice_is_atomic_concurrent_and_recoverable ... ok +``` +