Files
khadhroony-bot3/ks-store/CHANGELOG.md
2026-08-11 20:04:41 +02:00

99 lines
6.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!-- file: ks-store/CHANGELOG.md -->
<!-- version: 19 -->
# CHANGELOG — ks-store
## `0.5.3-pre.001`
### Audit / plan
- inventorie les 13 tables actives de `0.5.2`, leurs migrations, DTO, repositories, requêtes et consommateurs ;
- conserve les 13 tables existantes comme baseline avec instructions top-level et CPI physiquement séparées, mais rendues symétriques pour lifecycle/replay et accessibles via une lecture logique commune ; le nombre final N1/N2/N3 peut augmenter si le canari future-decoder révèle un manque Solana générique avant gel ;
- classe `block_time` comme correction pré-gel de `raw_transactions` et `core_transactions`, sans duplication dans chaque projection fille ;
- conserve impérativement le journal générique N3 de matérialisation sous la cible `k_sol_mat_outputs` et réserve les projections spécialisées au niveau N4 ;
- formalise le gel fort N1 raw/N2 Core/N3 materialization après `0.5.3`, la souplesse contrôlée des projections N4 et les replays N1 -> N2, N2 -> N3 et N3 -> N4 ;
- retient pour les metadata deux projections N4 futures : asset/token metadata commune Metaplex + Token-2022 et program metadata distincte pour SPM ;
- normalise le vocabulaire d'instruction vers `top-level`, conserve les CPI séparées et exige `stack_height`/parent CPI immédiat lorsque reconstructible ;
- ajoute un canari de gel future-decoder/Anchor-readiness : N1/N2/N3 doivent conserver les données Solana génériques nécessaires aux instructions/CPI, événements/logs, `returnData`, états/observations de comptes et provenance de schéma, sans ajouter de contrat `anchor_*` ; les 13 tables existantes restent une baseline et non un quota final si un manque générique est découvert avant gel ;
- formalise la reconstruction `kb_sol_* -> k_sol_*`, l'arborescence `migrations/postgres/`, une instruction SQL par fichier exécutée via `include_str!`, l'audit des index/paginations/BIGINT et les règles de replay/invalidation ;
- définit la façade de stockage backend-agnostique, l'encapsulation de PostgreSQL, la stratégie de configuration backend opaque jusqu'à `ks-store`, le résumé runtime/init sans secrets, la future réutilisation d'un `Store` persistant dans `AppState`, la refonte backend-agnostique de `demo_sql`/`demo_config`/splash et les targets `ks-store.pg.*` ;
- ajoute [`docs/plans/V0_5_3_KS_STORE_NORMALIZATION_PLAN.md`](../docs/plans/V0_5_3_KS_STORE_NORMALIZATION_PLAN.md) ;
- ne crée aucune table DEX/trading ni projection metadata N4 dans `0.5.3` ;
- considère `pre.007` comme premier candidat de clôture et autorise explicitement son décalage si des manques apparaissent ;
- ne modifie aucune table, migration SQL, requête ou API Rust de production dans cette prerelease de plan.
## `0.5.1-pre.004`
- migre la variable des tests PostgreSQL optionnels vers `KS_SECRET_POSTGRES_TEST_URL` ;
- renomme le helper SQL de rollback réservé aux tests de `kb_test_reject_decode_ledger` vers `ks_test_reject_decode_ledger` ;
- ne modifie aucune migration, table, requête SQL ou identité persistée.
## `0.5.1-pre.003`
- aligne le contrat de test de persistance/replay sur l'identité de décodeur `ks-lib-decoder.*` ;
- documente qu'une base contenant encore des identités `kb-lib.*` doit être reconstruite ou migrée explicitement avant reprise durable du replay ;
- ne modifie ni les migrations SQL `0001` à `0004`, ni les tables `kb_sol_*`, dont le renommage reste réservé à `0.5.3`.
## `0.5.1-pre.002`
- renomme `kb-store` en `ks-store` et `kb_store` en `ks_store` ;
- aligne le target racine et les consommateurs, tout en conservant volontairement les tables `kb_sol_*` et les migrations SQL inchangées jusqu'à `0.5.3`.
## `0.5.0-pre.003`
### Documentation
- documente laudit préparatoire `0.5.3` sans modifier le schéma ni les migrations `0001` à `0004` ;
- formalise dans le TODO la caractérisation du schéma `0.4.8`, la séparation de `block_time` on-chain des temps dacquisition/persistance, lenveloppe de faits/provenance et la décision future sur les projections normalisées parallèles au journal générique de matérialisation.
## 0.4.6
- alignement de la crate sur la version fonctionnelle bot3 `0.4.6` ;
- clôture des tâches de migration applicables et report explicite des évolutions ultérieures dans le TODO.
## 0.1.0-pre.074
- clôture de la tâche documentaire préalable à `0.4.6` après publication du guide PostgreSQL et stockage ;
## 0.1.0-pre.073
- ajout du guide transversal [`docs/guides/POSTGRES_STORAGE.md`](../docs/guides/POSTGRES_STORAGE.md) ;
## 0.1.0-pre.072
- reclassement du TODO selon les blocants avant `0.4.6`, les travaux `0.4.7`, les versions ultérieures et les dépendances conditionnelles.
## 0.1.0-pre.070
- enrichissement de `USAGE.md` avec plusieurs exemples couvrant les familles dAPI publiques significatives.
## 0.1.0-pre.069
### Documentation
- création de `TODO.md`, `USAGE.md` et du changelog détaillé ;
- réécriture du README autour des contrats consolidés et de `PostgresStore` ;
- suppression de la section `Non publié`, incompatible avec le rôle chronologique du changelog ;
- retrait des constats sans action du TODO et des travaux futurs du changelog ;
- réécriture de `TODO.md` sous forme de tâches uniquement ;
- correction des exemples de `USAGE.md` afin de ne pas utiliser lopérateur `?`.
## 0.1.0
### Migré
- consolidation de `ks_store_core`, `ks_store_pg` et des contrats associés dans `ks-store` ;
- migration des tables raw, observations, Core, ledger, événements décodés, couverture et matérialisations ;
- migration des migrations SQL, diagnostics et requêtes de replay.
### Modifié
- adoption de Rust 2024 et des règles Khadhroony ;
- maintien des modules internes privés derrière une façade publique contrôlée ;
- erreurs structurées via `ks_core::Error` et transactions async via `sqlx`.
### Validation
- tests des DTO, pagination, filtres, schéma, migrations, diagnostics et atomicité ;
- tests PostgreSQL réels optionnels pilotés par environnement.