0.3.15-pre.014-fix.003
This commit is contained in:
@@ -1,12 +1,12 @@
|
||||
# file: Cargo.toml
|
||||
# version: 630
|
||||
# version: 631
|
||||
|
||||
[workspace]
|
||||
resolver = "3"
|
||||
members = ["crates/ksp-app-backfill-desk", "crates/ksp-app-config-desk", "crates/ksp-app-raw-transaction-ingest-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-raw-transaction-lib", "crates/ksp-store-api", "crates/ksp-store-lib", "crates/ksp-store-postgres-lib", "crates/ksp-wallet-lib", "crates/ksp-worker-api", "crates/ksp-worker-raw-transaction-ingest-lib"]
|
||||
|
||||
[workspace.package]
|
||||
version = "0.3.15-pre.14.fix.2"
|
||||
version = "0.3.15-pre.14.fix.3"
|
||||
edition = "2024"
|
||||
license = "MIT"
|
||||
repository = "https://git.sasedev.com/Sasedev/khadhroony-solana-project"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// file: crates/ksp-store-postgres-lib/tests/hardening_completeness.rs
|
||||
// version: 26
|
||||
// version: 27
|
||||
|
||||
#![warn(missing_docs)]
|
||||
#![deny(unreachable_pub)]
|
||||
@@ -659,7 +659,19 @@ fn v0_3_15_pre_014_fix_001_truncated_log_compatibility_is_narrow_and_keeps_canon
|
||||
] {
|
||||
assert!(source.contains(required), "missing narrow truncated-log compatibility guard: {required}");
|
||||
}
|
||||
assert!(!source.contains("UPDATE ksp_raw_transactions SET payload"));
|
||||
assert!(!source.contains("DELETE FROM ksp_raw_transactions"));
|
||||
let start = source.find("fn compare_existing_transaction(");
|
||||
assert!(start.is_some(), "missing fix.001 existing-transaction comparison path");
|
||||
let Some(start) = start else {
|
||||
return;
|
||||
};
|
||||
let end = source[start..].find("fn raw_transaction_incoming_truncated_log_messages_compatible(");
|
||||
assert!(end.is_some(), "missing fix.001 compatibility helper boundary");
|
||||
let Some(end) = end else {
|
||||
return;
|
||||
};
|
||||
let comparison = &source[start..start + end];
|
||||
assert!(comparison.contains("ExistingTransactionMatch::ActiveIncomingTruncatedLogs"));
|
||||
assert!(!comparison.contains("UPDATE ksp_raw_transactions SET payload"));
|
||||
assert!(!comparison.contains("DELETE FROM ksp_raw_transactions"));
|
||||
return;
|
||||
}
|
||||
|
||||
41
deltas/0.3.15/pre.014-fix.003.md
Normal file
41
deltas/0.3.15/pre.014-fix.003.md
Normal file
@@ -0,0 +1,41 @@
|
||||
<!-- file: deltas/0.3.15/pre.014-fix.003.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# Delta v0.3.15-pre.014-fix.003 — resserrement du canari Store `CompatibleLessComplete`
|
||||
|
||||
## Base requise
|
||||
|
||||
```text
|
||||
ksp-general-0.3.15-pre.014-fix.002.zip
|
||||
SHA-256 : 4998f938a2b10835429e345edf9e94bc5d7364da88d1e509b8313d316db69d7c
|
||||
bytes : 31529
|
||||
```
|
||||
|
||||
## Cause
|
||||
|
||||
Le gate opérateur de `pre.014-fix.002` confirme la correction de typage et progresse jusqu'aux tests d'intégration `ksp-store-postgres-lib`. L'unique échec restant est le canari `v0_3_15_pre_014_fix_001_truncated_log_compatibility_is_narrow_and_keeps_canonical_content`.
|
||||
|
||||
Le canari interdisait `UPDATE ksp_raw_transactions SET payload` dans tout `src/raw_transaction.rs`. Cette condition est trop large : le backend contient déjà légitimement cette instruction dans la transition de rétention/archive, indépendamment du chemin de compatibilité des `logMessages` tronqués. Le test produisait donc un faux positif.
|
||||
|
||||
## Correction
|
||||
|
||||
Le canari borne désormais son inspection au corps de `compare_existing_transaction()`, depuis sa déclaration jusqu'à la déclaration de `raw_transaction_incoming_truncated_log_messages_compatible()`. Il exige toujours la branche `ExistingTransactionMatch::ActiveIncomingTruncatedLogs` et vérifie uniquement dans ce chemin de décision qu'aucune réécriture SQL du payload canonique et aucune suppression de transaction n'existent.
|
||||
|
||||
Aucun fichier de production n'est modifié. Aucun changement de schéma, Store runtime, Transport, Worker, API publique ou politique de conflit n'est introduit.
|
||||
|
||||
## Validation opérateur
|
||||
|
||||
```bash
|
||||
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/0.3.15
|
||||
cargo check --workspace
|
||||
cargo clippy --workspace --all-targets --all-features -- -D warnings
|
||||
cargo test -p ksp-store-postgres-lib --all-targets --all-features
|
||||
cargo test -p ksp-worker-raw-transaction-ingest-lib --all-targets --all-features
|
||||
cargo test -p ksp-app-raw-transaction-ingest-desk --all-targets --all-features
|
||||
cargo test --workspace --all-targets --all-features
|
||||
```
|
||||
|
||||
Le live n'est pas requis pour ce fix de canari. Le prochain live prolongé appartient à la prerelease acquisition dédiée au backpressure Yellowstone.
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/validation/032-V0_3_15_RAW_TRANSACTION_INGEST_DESK.md -->
|
||||
<!-- version: 30 -->
|
||||
<!-- version: 31 -->
|
||||
|
||||
# Validation v0.3.15 — Raw Transaction Ingest Desk
|
||||
|
||||
@@ -997,3 +997,11 @@ Ensuite, un `grpc_backpressure_overflow` réapparaît sur Yellowstone Mainnet lo
|
||||
|
||||
Non-claims de `fix.002` : aucun changement de Transport, Worker runtime, Store production, politique de conflit ou capacité de queue. Le seul changement Rust est la correction de typage du test PostgreSQL.
|
||||
|
||||
### `pre.014-fix.003` — resserrement du canari de non-réécriture canonique
|
||||
|
||||
Le gate opérateur de `pre.014-fix.002` confirme la correction de typage : les audits statiques sont propres, `cargo check --workspace` et Clippy strict passent, les `75/75` tests unitaires `ksp-store-postgres-lib` passent, puis l'unique échec apparaît dans `tests/hardening_completeness.rs`. Le canari `v0_3_15_pre_014_fix_001_truncated_log_compatibility_is_narrow_and_keeps_canonical_content` cherchait la chaîne SQL `UPDATE ksp_raw_transactions SET payload` dans l'intégralité de `src/raw_transaction.rs`. Or cette chaîne existe légitimement dans la transition de rétention/archive historique du backend et n'appartient pas au chemin `CompatibleLessComplete`.
|
||||
|
||||
`fix.003` resserre donc uniquement ce canari sur le corps de `compare_existing_transaction()`, jusqu'à la frontière du helper `raw_transaction_incoming_truncated_log_messages_compatible()`. Dans cette portion exacte, le test continue d'exiger le retour `ExistingTransactionMatch::ActiveIncomingTruncatedLogs` et interdit toute occurrence d'`UPDATE ... payload` ou de `DELETE FROM ksp_raw_transactions`. Le comportement production, le schéma SQL, la compatibilité `logMessages`, les outcomes Store et le Worker restent byte-for-byte inchangés par ce fix.
|
||||
|
||||
Non-claim : ce fix ne traite pas le `grpc_backpressure_overflow` Yellowstone prolongé déjà identifié ; ce défaut ouvre toujours la prochaine prerelease acquisition dédiée après fermeture du gate `pre.014`.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user