Files
khadhroony-solana-project/deltas/0.3.16/pre.008-fix.001.md

4.3 KiB

Delta 0.3.16-pre.008-fix.001 — fermeture Clippy du live proof PostgreSQL

Base requise

0.3.16-pre.008 appliqué
workspace.package.version = 0.3.16-pre.8

Le gate opérateur de pre.008 confirme que les audits Rust/Markdown, cargo check --workspace, les suites Store API, Store façade, PostgreSQL, Job Backfill et Worker sont propres. Le live proof postgres_raw_transaction_live passe également sur PostgreSQL 17 avec un URI dédié fourni sur stdin.

Le seul blocage restant est Clippy workspace/all-targets/all-features sous -D warnings, qui détecte trois éléments morts dans le test live :

LIVE_OBSERVATION_EXISTS_SQL
LivePersistResult::BackendError(PostgresBackendErrorKind)
observation_exists(...)

Ces éléments ne participent à aucun scénario pre.008 et leur suppression ne modifie ni le runtime, ni les migrations, ni les invariants du live proof.

Version

workspace.package.version = 0.3.16-pre.8.fix.1

Correction

Le test live PostgreSQL est nettoyé comme suit :

  • suppression de LIVE_OBSERVATION_EXISTS_SQL, inutilisé ;
  • suppression du helper privé observation_exists(...), inutilisé ;
  • LivePersistResult::BackendError(PostgresBackendErrorKind) devient LivePersistResult::BackendError, car aucun scénario ne lit le PostgresBackendErrorKind capturé ;
  • persist_once(...) conserve la distinction succès/erreur mais projette toute erreur backend vers le variant unitaire BackendError.

Les scénarios live ajoutés par pre.008 restent inchangés, notamment :

concurrence divergente -> InsertedCanonical + QuarantinedConflict
rollback tardif         -> aucune variante/conflict case orphelin
selector                 -> cohérent avec la projection V001

Fichiers modifiés

Cargo.toml
crates/ksp-store-postgres-lib/tests/postgres_raw_transaction_live.rs

Fichier ajouté

deltas/0.3.16/pre.008-fix.001.md

Fichiers supprimés

aucun

Validation opérateur déjà observée avant ce fix

Le live proof suivant a été exécuté avec succès sur PostgreSQL 17 :

read -rsp 'PostgreSQL URI: ' KSP_TEST_POSTGRES_URI
printf '\n'
printf '%s\n' "$KSP_TEST_POSTGRES_URI" \
  | cargo test -p ksp-store-postgres-lib \
      --test postgres_raw_transaction_live \
      -- --ignored --nocapture
unset KSP_TEST_POSTGRES_URI

Résultat observé :

KSP Store RawTransaction live proof: server major 17
test pre_009_real_postgres_raw_transaction_vertical_slice_is_atomic_concurrent_and_recoverable ... ok
1 passed; 0 failed

Validations exécutées lors de la génération

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

Le toolchain Rust n'est pas installé dans l'environnement de génération. cargo fmt, cargo check, Clippy et les tests Cargo ne sont donc pas déclarés exécutés ici.

Gate opérateur demandé

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-store-api --all-targets --all-features
cargo test -p ksp-store-lib --all-targets --all-features
cargo test -p ksp-store-postgres-lib --all-targets --all-features
cargo test -p ksp-job-backfill-lib --all-targets --all-features
cargo test -p ksp-worker-raw-transaction-ingest-lib --all-targets --all-features

Le live proof PostgreSQL n'a pas besoin d'être rejoué pour corriger ces warnings, mais peut l'être sur une base dédiée vide si une seconde preuve opérateur est souhaitée.

Décisions prises

  • aucun #[allow(dead_code)] ni #[expect(dead_code)] n'est ajouté pour masquer les warnings ;
  • le code mort est retiré plutôt que toléré ;
  • aucune logique runtime ni migration n'est modifiée ;
  • le live proof déjà passé sur PostgreSQL 17 conserve ses scénarios et ses invariants.

Questions ouvertes

Aucune question bloquante.

Suite

Après gate propre : fermeture de 0.3.16-pre.008, puis 0.3.16-pre.009 pour la réconciliation documentaire finale.