v0.3.8-pre.004-fix.001
This commit is contained in:
97
deltas/0.3.8/pre.004-fix.001.md
Normal file
97
deltas/0.3.8/pre.004-fix.001.md
Normal file
@@ -0,0 +1,97 @@
|
||||
<!-- file: deltas/0.3.8/pre.004-fix.001.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# Delta `0.3.8-pre.004-fix.001` — réconciliation des canaris PostgreSQL `pre.004`
|
||||
|
||||
## Base requise
|
||||
|
||||
```text
|
||||
0.3.8-pre.004
|
||||
workspace.package.version = 0.3.8-pre.4
|
||||
```
|
||||
|
||||
La livraison devient :
|
||||
|
||||
```text
|
||||
0.3.8-pre.004-fix.001
|
||||
workspace.package.version = 0.3.8-pre.4.fix.1
|
||||
commit = v0.3.8-pre.004-fix.001
|
||||
tag = aucun
|
||||
```
|
||||
|
||||
## Cause du fix
|
||||
|
||||
Le gate opérateur révèle deux défauts de tests :
|
||||
|
||||
1. quatre closures ajoutées dans `hardening_completeness.rs` enfreignent `clippy::implicit-return` ;
|
||||
2. le canari historique `pre_006_raw_pagination_is_keyset_cursor_bound_and_policy_free` interdit encore `OFFSET` sur l'intégralité de `raw_transaction.rs`, alors que `pre.004` autorise explicitement `OFFSET` uniquement dans les statements d'inspection random-access.
|
||||
|
||||
Les tests fonctionnels PostgreSQL `pre.004` eux-mêmes sont verts : 66 tests unitaires passent, y compris les trois nouveaux tests d'inspection.
|
||||
|
||||
## Correction
|
||||
|
||||
Les quatre closures utilisent désormais un `return` explicite.
|
||||
|
||||
Le canari `pre.006` conserve son invariant historique mais le mesure au bon niveau :
|
||||
|
||||
```text
|
||||
LIST_TRANSACTIONS_ASC_SQL -> OFFSET interdit
|
||||
LIST_TRANSACTIONS_DESC_SQL -> OFFSET interdit
|
||||
raw_transaction/cursor.rs -> OFFSET interdit
|
||||
inspection SQL -> OFFSET autorisé uniquement par pre.004
|
||||
```
|
||||
|
||||
Les autres interdictions de policy (`limit.min`, `clamp`, plafonds arbitraires) restent globales dans le chemin transaction/cursor.
|
||||
|
||||
## Live proof
|
||||
|
||||
Le run opérateur interrompu après plus de 60 secondes n'a jamais imprimé `server major ...`; il ne constitue donc pas une preuve que le scénario PostgreSQL a commencé. Le message du test précise désormais qu'il attend une ligne URI sur stdin et ne démarre qu'après Enter.
|
||||
|
||||
Commande recommandée avec saisie masquée :
|
||||
|
||||
```bash
|
||||
read -rsp 'Dedicated PostgreSQL URI: ' KSP_LIVE_PG_URI
|
||||
printf '\n'
|
||||
printf '%s\n' "$KSP_LIVE_PG_URI" | cargo test -p ksp-store-postgres-lib --test postgres_raw_transaction_live -- --ignored --nocapture
|
||||
unset KSP_LIVE_PG_URI
|
||||
```
|
||||
|
||||
## Scope
|
||||
|
||||
Aucun SQL de production, runtime PostgreSQL, contrat Store, façade, migration, capability Account ou UI n'est modifié.
|
||||
|
||||
## Fichiers ajoutés
|
||||
|
||||
```text
|
||||
deltas/0.3.8/pre.004-fix.001.md
|
||||
```
|
||||
|
||||
## Fichiers modifiés
|
||||
|
||||
```text
|
||||
Cargo.toml
|
||||
crates/ksp-store-postgres-lib/tests/dependency_boundary.rs
|
||||
crates/ksp-store-postgres-lib/tests/hardening_completeness.rs
|
||||
crates/ksp-store-postgres-lib/tests/postgres_raw_transaction_live.rs
|
||||
docs/validation/025-V0_3_8_STORE_DESK.md
|
||||
```
|
||||
|
||||
## Fichiers supprimés
|
||||
|
||||
```text
|
||||
aucun
|
||||
```
|
||||
|
||||
## Gate requis
|
||||
|
||||
```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
|
||||
```
|
||||
Reference in New Issue
Block a user