v0.3.2-pre.005-fix.001

This commit is contained in:
2026-08-29 19:35:35 +02:00
parent d93184d41d
commit c1dbaad88d
3 changed files with 59 additions and 5 deletions

View File

@@ -1,12 +1,12 @@
# file: Cargo.toml # file: Cargo.toml
# version: 337 # version: 339
[workspace] [workspace]
resolver = "3" resolver = "3"
members = ["crates/ksp-app-config-desk", "crates/ksp-app-solprices-desk", "crates/ksp-app-wallet-desk", "crates/ksp-config-lib", "crates/ksp-core-lib", "crates/ksp-interface-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"] members = ["crates/ksp-app-config-desk", "crates/ksp-app-solprices-desk", "crates/ksp-app-wallet-desk", "crates/ksp-config-lib", "crates/ksp-core-lib", "crates/ksp-interface-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] [workspace.package]
version = "0.3.2-pre.5" version = "0.3.2-pre.5.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"

View File

@@ -1,5 +1,5 @@
// file: crates/ksp-store-postgres-lib/unit_tests/runtime.rs // file: crates/ksp-store-postgres-lib/unit_tests/runtime.rs
// version: 1 // version: 2
fn network() -> ksp_store_api::RawNetworkId { fn network() -> ksp_store_api::RawNetworkId {
return match ksp_store_api::RawNetworkId::new("devnet") { return match ksp_store_api::RawNetworkId::new("devnet") {
@@ -58,7 +58,7 @@ fn typed_disabled_policy_overrides_uri_tls_and_connection_controls() {
assert_eq!(config.get_ssl_mode(), tokio_postgres::config::SslMode::Disable); assert_eq!(config.get_ssl_mode(), tokio_postgres::config::SslMode::Disable);
assert_eq!(config.get_ssl_negotiation(), tokio_postgres::config::SslNegotiation::Postgres); assert_eq!(config.get_ssl_negotiation(), tokio_postgres::config::SslNegotiation::Postgres);
assert_eq!(config.get_application_name(), std::option::Option::Some(super::APPLICATION_NAME)); assert_eq!(config.get_application_name(), std::option::Option::Some(super::APPLICATION_NAME));
assert_eq!(config.get_connect_timeout(), std::option::Option::Some(std::time::Duration::from_secs(10))); assert_eq!(config.get_connect_timeout(), std::option::Option::Some(&std::time::Duration::from_secs(10)));
return; return;
} }
@@ -75,7 +75,7 @@ fn typed_verify_full_policy_forces_tls_and_rejects_hostaddr_only_identity() {
assert_eq!(config.get_ssl_mode(), tokio_postgres::config::SslMode::Require); assert_eq!(config.get_ssl_mode(), tokio_postgres::config::SslMode::Require);
assert_eq!(config.get_ssl_negotiation(), tokio_postgres::config::SslNegotiation::Postgres); assert_eq!(config.get_ssl_negotiation(), tokio_postgres::config::SslNegotiation::Postgres);
assert_eq!(config.get_application_name(), std::option::Option::Some(super::APPLICATION_NAME)); assert_eq!(config.get_application_name(), std::option::Option::Some(super::APPLICATION_NAME));
assert_eq!(config.get_connect_timeout(), std::option::Option::Some(std::time::Duration::from_secs(10))); assert_eq!(config.get_connect_timeout(), std::option::Option::Some(&std::time::Duration::from_secs(10)));
let hostaddr_only = settings("hostaddr=127.0.0.1 user=operator dbname=ksp", crate::PostgresBackendTlsMode::VerifyFull); let hostaddr_only = settings("hostaddr=127.0.0.1 user=operator dbname=ksp", crate::PostgresBackendTlsMode::VerifyFull);
let rejected = super::normalized_config(&hostaddr_only); let rejected = super::normalized_config(&hostaddr_only);
assert_eq!(rejected.err().map(|value| return value.kind()), std::option::Option::Some(crate::PostgresBackendErrorKind::ConfigInvalid)); assert_eq!(rejected.err().map(|value| return value.kind()), std::option::Option::Some(crate::PostgresBackendErrorKind::ConfigInvalid));

View File

@@ -0,0 +1,54 @@
<!-- file: deltas/0.3.2/pre.005-fix.001.md -->
<!-- version: 1 -->
# Delta `0.3.2-pre.005-fix.001` — correction des assertions `connect_timeout`
## 1. Base
Base exacte : `0.3.2-pre.005` telle qu'appliquée et formatée par l'opérateur.
Le gate du 29 août 2026 confirme :
```text
audits Rust/Markdown propres
cargo check --workspace propre
production ksp-store-postgres-lib compilable
graphes Store/PostgreSQL conformes
tests ksp-store-lib avec et sans feature PostgreSQL propres
```
La seule erreur bloquante est dans deux assertions unitaires de `ksp-store-postgres-lib` : `tokio_postgres::Config::get_connect_timeout()` retourne `Option<&Duration>`, tandis que le test comparait à `Option<Duration>`.
## 2. Correctif
Les deux assertions de `unit_tests/runtime.rs` comparent désormais la référence retournée par l'API :
```rust
std::option::Option::Some(&std::time::Duration::from_secs(10))
```
Aucun comportement production, réglage, dépendance, policy TLS, pool ou lifecycle n'est modifié.
## 3. Version
```text
workspace.package.version = 0.3.2-pre.5.fix.1
```
## 4. Gate opérateur
```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/0.3.2
cargo check --workspace
cargo clippy --workspace --all-targets
cargo test -p ksp-store-postgres-lib
cargo test -p ksp-store-lib
cargo test -p ksp-store-lib --no-default-features
cargo check -p ksp-store-lib --no-default-features
```
## 5. Suite
Après gate propre, `pre.006` peut introduire le moteur de migrations PostgreSQL KSP sans rouvrir la fondation connexion/pool/TLS.