v0.5.3-pre.004

This commit is contained in:
2026-08-12 14:31:48 +02:00
parent 400ced4832
commit b6583bd9fb
47 changed files with 2978 additions and 291 deletions

View File

@@ -1,8 +1,46 @@
<!-- file: ks-store/CHANGELOG.md -->
<!-- version: 29 -->
<!-- version: 33 -->
# CHANGELOG — ks-store
## `0.5.3-pre.004`
### Fix `pre.004-delta-fix-003`
- corrige deux canaris de source auto-référentiels : leurs assertions négatives analysaient aussi le bloc `#[cfg(test)]` qui contenait lui-même la chaîne interdite ;
- limite désormais les vérifications de source à la partie production précédant `#[cfg(test)]` dans `account_state_queries.rs` et `invalidation_queries.rs` ;
- ne modifie aucune requête PostgreSQL ni aucun comportement runtime.
### Fix `pre.004-delta-fix-002`
- ajoute les annotations explicites `std::string::String` sur `origin_text` et `status_text` dans le mapper PostgreSQL des observations de compte ;
- corrige les deux erreurs `E0282` d'inférence générique `read_row<T>()` apparues après la suppression de l'opérateur `?`, sans modifier le contrat ni le comportement du mapper.
### Fix `pre.004-delta-fix-001`
- remplace les 53 utilisations accidentelles de l'opérateur `?` introduites dans les nouveaux mappers PostgreSQL account-state/Core replay par une propagation explicite `match` conforme aux règles du workspace ;
- ne modifie ni les contrats publics, ni le SQL, ni les règles de replay/pagination/invalidation de `pre.004`.
### Repositories et replay
- rend le replay N2 -> N3 symétrique pour les instructions top-level et CPI via une union logique `CoreInstructionScope::{TopLevel, Inner}` sans fusionner les deux tables physiques ;
- remplace la pagination `OFFSET` du contrat Core par un curseur stable `(slot, signature, scope_rank, instruction_path)` et borne les lectures interactives à 500 lignes ;
- borne séparément les batches Core extraction, decode et account-state à 1 000 entrées afin quaucune API publique ne conserve les anciennes limites massives ;
- rend opérationnel le flux générique N1 `account observation` -> N2 `account state` avec sélection version-aware, idempotence par processing ledger, force replay et conservation du domaine `u64` pour lamports/rent epoch.
### Invalidation et lifecycle
- invalide les descendants N3 decode/coverage/materialization dune signature dans la même transaction lorsquun graphe Core est remplacé ;
- invalide les sorties de matérialisation dun decode remplacé pour lidentité exacte decoder name/version/input et utilise des préfixes de ledger littéraux au lieu de `LIKE` ;
- recalcule le lifecycle top-level/CPI depuis les descendants réellement courants et empêche une matérialisation dune ancienne version de decoder de rendre la nouvelle version artificiellement `materialized`.
### Index, bornes et observabilité
- ajoute quatre index non uniques dédiés à lordre de replay CPI et aux recherches de descendants coverage/materialization ; le corpus passe à 240 ressources SQL, 63 index explicites et 79 index attendus avec les PK ;
- ajoute les canaris de conversion `u64`/`BIGINT` et les limites de batch ;
- instrumente les opérations PostgreSQL réécrites sous `target: crate::TRACING_TARGET`, `backend="postgres"`, `domain="ks-store.pg"` avec `action`, durée, lignes et résultat, sans SQL brut ni valeur bindée.
## `0.5.3-pre.003`
### Fix `pre.003-delta-fix-005`