v0.3.3-pre.004

This commit is contained in:
2026-08-30 11:00:07 +02:00
parent 56fadb364a
commit 917e602a87
14 changed files with 1368 additions and 45 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/plans/024-V0_3_3_STORE_POSTGRES_RAW_TRANSACTION_PLAN.md -->
<!-- version: 4 -->
<!-- version: 5 -->
# Plan `0.3.3` — Store/PostgreSQL RawTransaction vertical slice
@@ -1074,12 +1074,19 @@ Une base PostgreSQL sur laquelle le commit `pre.003` aurait déjà enregistré l
### `0.3.3-pre.004` — mapping et lectures
- codecs SQL privés ;
- conversions exactes `u64/u32/timestamps/bytes/codes` ;
- `get_raw_transaction` ;
- `get_raw_transaction_observation` ;
- lectures rétention/tombstone ;
- corruption DB -> erreurs sûres.
Tranche matérialisée :
- module SQL/mapping `raw_transaction` privé au backend ;
- aucune dépendance physique nouvelle ;
- `slot NUMERIC(20,0)` lu en décimal texte puis converti falliblement vers `u64`, couvrant `u64::MAX` sans narrowing ;
- `format_version BIGINT -> u32`, timestamps/source-size `BIGINT -> u64`, bytes fixes et codes tous décodés falliblement ;
- `get_raw_transaction` : `Full` depuis payload chaud, `Archived` via `LEFT JOIN` archive, `Purged -> None`, incohérence hot/archive -> `DataInvalid` ;
- `get_raw_transaction_observation` : reconstruction exacte de la provenance complète/optionnelle et réseau issu du backend mono-réseau ;
- `get_raw_transaction_retention_state` et `get_raw_transaction_tombstone`, avec validation de l'absence de `block_time` sur un tombstone `Purged` ;
- références réseau-scopées rejetées via garde `WrongNetwork` avant acquisition d'un client du pool ;
- nouveaux kinds backend sûrs `ReadFailed`, `DataInvalid`, `WrongNetwork`, sans texte serveur/SQL/bind ;
- tests déterministes des bornes, rows hostiles, `Full/Archived/Purged`, tombstone et provenance ;
- aucune écriture, aucun cursor/list et aucune implémentation complète de trait avant les tranches dédiées.
### `0.3.3-pre.005` — écriture atomique et observations