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

3.8 KiB

Delta 0.3.16-pre.006-fix.001 — réalignement du canari de promotion

Base requise

0.3.16-pre.006 appliqué
workspace.package.version = 0.3.16-pre.6

Le gate opérateur de pre.006 est propre jusqu'aux tests ksp-store-postgres-lib. La suite unitaire exécute 87 tests et échoue sur un seul canari hérité de pre.005 :

v0_3_16_pre_005_shared_comparator_rejects_unproved_shapes_and_defers_more_complete_promotion

Les 86 autres tests PostgreSQL exécutés avant l'arrêt sont verts. Les audits Rust/export/KSP/Markdown, cargo check --workspace, Clippy -D warnings et toute la suite ksp-store-api sont également verts dans le gate fourni.

Version

Le correctif modifie un test Rust et synchronise donc la version Cargo :

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

Objectif

Réaligner le canari PostgreSQL hérité de pre.005 sur le contrat désormais implémenté par pre.006 sans modifier le runtime.

pre.005 avait volontairement reconnu :

CompatibleMoreComplete

mais différé sa promotion et attendait encore un conflit côté backend PostgreSQL.

pre.006 a précisément fermé ce différé : compare_existing_transaction(...) projette maintenant cette relation vers :

ExistingTransactionMatch::ActiveCompatibleMoreComplete

Le test ancien continuait pourtant d'exiger :

raw_acquisition_content_conflict

Le défaut est donc exclusivement un canari obsolète, pas une régression de la promotion canonique.

Correction

Le test concerné conserve toutes ses assertions fail-closed sur les formes non prouvées : mauvais préfixe, matériel après marqueur, différence d'un autre champ metadata et faux marqueur de troncature ne doivent toujours produire ni CompatibleLessComplete ni CompatibleMoreComplete.

Pour le seul cas bidirectionnel réellement prouvé — canonique tronqué et entrant strictement plus complet — le test exige désormais :

std::result::Result::Ok(
    ExistingTransactionMatch::ActiveCompatibleMoreComplete
)

Le nom du test est avancé vers pre.006 afin de ne plus documenter le comportement différé de pre.005.

Fichiers modifiés

Cargo.toml
crates/ksp-store-postgres-lib/unit_tests/raw_transaction.rs

Fichier ajouté

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

Fichiers supprimés

aucun

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.

Validations opérateur demandées

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-postgres-lib --all-targets --all-features

Décisions prises

  • aucune logique runtime de pre.006 n'est modifiée ;
  • les cas non prouvés restent fail-closed ;
  • CompatibleMoreComplete doit être accepté par la comparaison backend afin que le chemin atomique de promotion de pre.006 puisse s'exécuter ;
  • le correctif reste strictement borné au canari obsolète qui bloquait le gate.

Questions ouvertes

Aucune question bloquante.

Suite

Après gate propre : 0.3.16-pre.007 — conflit durable minimal + intégration Worker non terminale.