Files
khadhroony-bobobot/CHANGELOG.md
2026-05-31 19:23:46 +02:00

23 KiB
Raw Blame History

0.0.1 - initial skel
0.0.2 - Socle conforme
0.1.0 - Transport WebSocket générique
0.1.1 - Intégration Tauri minimale du WsClient
0.2.0 - Couche JSON-RPC WS Solana
0.3.0 - Registre subscriptions / notifications
0.3.1 - Ajout des helpers subscribe/unsubscribe à WsClient
0.3.2 - Ajout des helpers typed et du parsing typed basé sur solana-rpc-client-api
0.3.3 - Ajout du suffixe _raw aux helpers raw pour distinguer typed et raw
0.3.4 - Ajout de la fenêtre Demo Ws dans kb_demo_app pour tester les souscriptions live
0.3.5 - Stabilisation de Demo Ws, lecture correcte des endpoints activés depuis la config, limitation/throttling de laffichage UI sous fort débit
0.4.0 - Socle HttpClient générique async clonable, JSON-RPC HTTP 2.0, résolution dURL avec api_key_env_var, limiteur local req/sec + burst, helpers initiaux getHealth/getVersion/getSlot
0.4.1 - Ajout des premiers helpers HTTP Solana haut niveau, dans la continuité de lAPI du client WebSocket
0.4.2 - Préparation de la politique HTTP avancée : états de pause avant envoi, quotas par famille de méthodes et futur pool dendpoints
0.4.3 - Pool dendpoints HTTP
0.4.4 - Ajout de la fenêtre Demo Http dans kb_demo_app, exécution manuelle des méthodes HTTP via le pool, snapshot des endpoints et amélioration des presets UI
0.5.0 - Début du socle SQLite : configuration database, ouverture/validation de la base et premières briques de persistance
0.5.1 - Ajout des premières tables métier SQLite pour les endpoints connus HTTP/WS et les événements runtime, avec séparation entities/dtos/queries/types
0.5.2 - Ajout de la table des tokens observés, de leur statut local et des premières requêtes de persistance associées
0.5.3 - Préparation du stockage local des événements techniques et des signaux utiles à lanalyse, avec distinction runtime / on-chain / métier
0.5.4 - Ajout du modèle métier normalisé initial pour les DEX, tokens, pools, paires, composition des pools et listings
0.5.5 - Ajout des événements métier normalisés pour les swaps, liquidités, mints et burns de tokens
0.5.6 - Consolidation de la couche stockage : activation des foreign keys SQLite, lectures ciblées sur le modèle métier normalisé, index supplémentaires et tests unitaires dédiés
0.6.0 - Ajout du pipeline de détection technique : façade de persistance pour observations on-chain, signaux danalyse et candidats tokens depuis les connecteurs RPC
0.6.1 - Ajout du bridge de détection Solana WS : notifications JSON-RPC persistées en observations, avec détection initiale des mints SPL / Token-2022 depuis programNotification
0.6.2 - Branchement de WsClient vers le pipeline de détection via un relais asynchrone de notifications JSON-RPC WebSocket
0.6.3 - Enrichissement des notifications WebSocket utiles : extraction améliorée de pubkey, signature, owner, parsed account type et slot pour account/logs/signature notifications
0.6.4 - Premières règles de détection technique pour candidats pools/listings depuis programNotification en sappuyant sur les DEX connus en base
0.6.5 - Ajout de ws_manager.rs pour lorchestration multi-clients WebSocket, le bus dévénements unifié et le branchement centralisé du relais de détection
0.6.6 - Ajout de la fenêtre Demo Ws Manager dans kb_demo_app pour piloter plusieurs WsClient, visualiser le snapshot consolidé, tester le démarrage/arrêt par rôle et valider le flux unifié de WsEvent
0.7.0 - Ajout du socle de résolution transactionnelle orientée DEX : relais WS vers file de résolution, récupération getTransaction via HttpEndpointPool et persistance des résolutions dans les observations/signaux
0.7.1 - Ajout du modèle transactionnel enrichi : tables slots/transactions/instructions, requêtes daccès et projection structurée des transactions résolues
0.7.2 - Ajout du premier décodeur DEX spécifique Raydium AmmV4 / initialize2, persistance des événements DEX décodés et branchement automatique du décodage après résolution/projection transactionnelle
0.7.3 - Ajout de la détection métier depuis les événements DEX décodés, avec alimentation de kb_pools, kb_pairs, kb_pool_tokens et kb_pool_listings, et signaux de première apparition
0.7.4 - Ajout du premier lot multi-DEX v1 avec décodeurs Pump.fun (create_v2) et PumpSwap (buy/sell), plus détection métier Pump.fun vers token/pool/pair/listing
0.7.5 - Enrichissement de PumpSwap avec extraction des mints et du pool_v2, persistance des événements décodés enrichis et détection métier automatique pool/pair/listing
0.7.6 - Ajout du premier support Meteora DBC avec décodage create_pool/swap, persistance des événements décodés et détection métier automatique pool/pair/listing
0.7.7 - Ajout du premier support Meteora DAMM v2 avec décodage create_pool/swap, persistance des événements décodés et détection métier automatique pool/pair/listing
0.7.8 - Ajout du premier support Meteora DAMM v1 avec décodage create_pool/swap, persistance des événements décodés et détection métier automatique pool/pair/listing
0.7.9 - Ajout dun registre des surfaces de lancement, dune attribution automatique des pools détectés à une origine de lancement, et dun premier support Meteora Fun Launch au-dessus de Meteora DBC / DAMM
0.7.10 - Ajout du premier support Orca Whirlpools avec décodage create_pool/swap, persistance des événements décodés et détection métier automatique pool/pair/listing
0.7.11 - Ajout du premier support FluxBeam avec décodage create_pool/swap, persistance des événements décodés et détection métier automatique pool/pair/listing
0.7.12 - Ajout du premier support DexLab Swap/Pool avec décodage create_pool/swap, persistance des événements décodés et détection métier automatique pool/pair/listing
0.7.13 - Extension de la couche launch origins avec Bags et Moonit, ajout dun enregistrement programmatique des mappings Bags, et détection automatique Moonit via suffixe de token mint
0.7.14 - Ajout dune couche consolidée de traçabilité fondatrice multi-DEX avec enregistrement des pool origins, rattachement au decoded event, au pool/pair/listing et à léventuelle launch attribution
0.7.15 - Ajout dune couche wallets observés et participations observées, avec extraction des rôles depuis les payloads décodés et rattachement transaction / decoded event / pool / pair
0.7.16 - Ajout dune première couche trade events et pair metrics avec normalisation des swaps, agrégation par paire et branchement automatique dans le pipeline de résolution transactionnelle
0.7.17 - Ajout dune première couche WS hybride avec collecte de cibles programSubscribe / accountSubscribe et persistance technique dédupliquée des notifications logs / program / account
0.7.18 - Ajout dun premier backfill historique ciblé par token mint, basé sur getSignaturesForAddress + getTransaction, avec réutilisation du pipeline interne pour reconstruire transactions, pools, swaps, origins, wallets et métriques
0.7.19 - Ajout dune première couche holdings observés avec agrégation par couple wallet/token et branchement automatique dans le pipeline de résolution transactionnelle
0.7.20 - Ajout dune première couche candles / OHLCV avec matérialisation en base des timeframes usuels et régénération à la demande pour un timeframe arbitraire depuis les trade events
0.7.21 - Ajout dune première couche de signaux analytiques enrichis par paire avec persistance dédiée et détection de first trade, trade burst, buy/sell imbalance, price jump et volume spike
0.7.22 - Ajout dune première fenêtre Demo Pipeline dans kb_demo_app pour linspection en lecture seule du pipeline 0.7.x, avec recherche par signature, token mint, pair id ou pool address, affichage structuré des transactions résolues, événements DEX décodés, pools, paires, listings, launch origins, pool origins, wallets et holdings observés, trade events, pair metrics, candles et signaux analytiques déjà persistés, ainsi que conservation dune instance partagée de la base SQLite pour éviter la réouverture et la réinitialisation du schéma à chaque commande UI
0.7.23 - Ajout du pilotage UI du backfill historique ciblé par token mint dans kb_demo_app, avec saisie du rôle HTTP et des limites de signatures, affichage du résumé de backfill, réinspection automatique du token dans Demo Pipeline lorsque des objets persistés sont effectivement reconstruits, et gestion explicite du cas où le backfill réussit sans matérialiser de token exploitable dans la base locale
0.7.24 - Ajout de laffichage graphique des candles / OHLCV dans kb_demo_app via echarts, avec sélection de paire et de timeframe, rendu chandelier + volume, et prise en charge des candles matérialisées ou régénérées à la demande depuis Demo Pipeline
0.7.25 - Enrichissement metadata des tokens, avec résolution locale limitée à SOL / WSOL, résolution des autres mints via comptes on-chain, Token-2022, Metaplex ou payloads DEX, et conservation explicite des cas non résolus
0.7.26 - Diagnostics locaux du pipeline persisté, correction de lagrégation instruction-scoped des swaps Raydium, clarification des compteurs de replay/upsert, et validation quaucun trade candidate issu dune transaction OK nest perdu
0.7.27 - Validation multi-DEX et non-régression du pipeline sur Pump.fun, PumpSwap, Raydium CPMM et Raydium CLMM, avec corpus de tests, diagnostics de référence et garanties sur les événements non pricés
0.7.28 - Refactor DEX commun et verrouillage des invariants de normalisation : séparation des événements décodés, actionnables, trade candidates et candle candidates ; conservation des transactions failed comme traçables mais non actionnables ; ajout de la règle bloquante empêchant tout trade/candle candidate sans payload de montants exploitable, notamment pour le cas partiel meteora_damm_v1.swap sans base/quote amount.
0.7.29 - Ajout dune matrice DEX commune (dex_support_matrix) utilisée par le catalogue DEX, la classification transactionnelle et lenregistrement des protocol candidates ; ajout du profil de validation 0.7.29_multi_dex_matrix_baseline exposant la matrice dans le rapport de validation ; préparation explicite des surfaces planifiées sans inventer de program ids non vérifiés.
0.7.30 - Ajout dune taxonomie DEX plus fine pour les événements décodés : eventLifecycleKind, eventActionability, nonTradeUseful, compteurs diagnostics des événements non-trade utiles, trades non actionnables et classifications inconnues ; ajout du profil 0.7.30_non_trade_event_classification sans modification volontaire de la matérialisation trade/candle.
0.7.31 - Application de la politique Option B : les transactions failed restent traçables dans les événements décodés mais ne peuvent plus alimenter trade_events, metrics ou candles ; le replay local réinitialise les tables de matérialisation marché avant reconstruction pour supprimer les anciennes lignes dérivées non actionnables.
0.7.32 - Clarification de la sémantique des diagnostics locaux : séparation des gaps littéraux de paires et des gaps bloquants/actionnables, ajout des compteurs de matérialisation par paire, résumé pairActionabilitySummaries, profil 0.7.32_validation_report_semantics et garde-fous sur la matrice DEX sans modification de la matérialisation trade/candle.
0.7.33 - Ajout de la classification diagnostique pairTradingReadiness pour les paires, avec quoteAssetClass, tradingRouteRequired, résumé pairTradingReadinessSummaries, profil de validation 0.7.33_pair_trading_readiness et mise à jour de la sélection UI Demo Pipeline 2 sans modifier la matérialisation trade/candle.
0.7.34 - Ajout du profil 0.7.34_non_trade_liquidity_lifecycle, matérialisation des tables non-trade liquidité/lifecycle, warning non bloquant pour DEX attendus absents du corpus local, première tranche DLMM : add_liquidity, remove_liquidity, initialize_position, initialize_bin_array, intégration de la matérialisation non-trade dans les backfills token/pool ciblés, et distinction PositionOpen/PositionClose dans LiquidityEventKind.
0.7.35 - Ajout du profil 0.7.35_non_trade_fee_reward_admin, matérialisation des événements non-trade fees/rewards/admin, raccordement aux diagnostics locaux et maintien strict de linvariant : aucun fee/reward/admin ne peut produire de trade, metric ou candle.
0.7.36 - Consolidation de la famille Meteora : corpus mixte meteora_damm_v1, meteora_damm_v2, meteora_dbc et meteora_dlmm, correction des discriminants DAMM v2 / DBC, validation du profil 0.7.36_meteora_family_consolidation, et reclassement explicite des swaps DAMM v2 / DBC sans payload montant/prix en non_actionable_trade afin déviter tout trade/candle artificiel. 0.7.37 - Première tranche metadata/catalog : ajout du profil 0.7.37_token_metadata_catalog_enrichment, exposition des compteurs metadata dans diagnostics/validation et raccordement UI Demo Pipeline 2 sans rendre les metadata manquantes bloquantes.
0.7.38 - Priorisation des metadata manquantes : ajout du profil 0.7.38_token_metadata_gap_prioritization, samples tokenMetadataGapSamples, priorités tradable/quote/catalog, raccordement UI Demo Pipeline 2 et maintien du caractère non bloquant des metadata incomplètes.
0.7.39 - Réorientation DEX-first : distinction explicite des rôles dex_effective, aggregator_router, launch_surface et to_verify dans la matrice DEX, suppression de lalias ambigu raydium, ajout de metaDAO et Printr comme surfaces à vérifier sans program_id, profil 0.7.39_dex_first_effective_swap_surfaces, validation locale avec invariants DEX-first maintenus et report des launch surfaces après les DEX effectifs.
0.7.40 - Ajout de Demo3 pour la constitution de corpus on-chain par dex_code / program_id via getSignaturesForAddress + getTransaction, extraction des mints, deltas SPL Token, comptes pool/state/vault/program candidats, ajout du backfill par signature dans Demo Pipeline 2, et validation pratique sur Raydium AMM v4 sans promotion automatique des comptes candidats.
0.7.41 - Raydium AMM v4 swap decoder v1 : décodage des inner instructions 675kPX..., extraction pool/state, authority, vaults, mints, routeSource et montants exploitables, matérialisation trades/candles sur transactions OK, matrice AMM v4 passée en supported, et validation locale avec invariants trade/candle propres.
0.7.42 - Consolidation famille Raydium : audit conservatoire des instructions Raydium non décodées, décodage CLMM legacy swap, cleanup des audits remplacés, classification HTTP getTransaction comme requête lourde avec retry/backoff de backfill, mapping des événements non-swap prouvés raydium_clmm (increase_liquidity_v2, decrease_liquidity_v2, open_position_with_token22_nft, close_position) et raydium_cpmm (initialize, withdraw, collect_creator_fee), matérialisation de 25 liquidity events, 1 lifecycle event et 2 fee events sur corpus élargi, conservation des non-swaps AMM v4 legacy en audit.
0.7.43-E5C - Reprise documentaire et normalisation DEX-first : 0.7.43 est conservé comme point de reprise non clos pour le lot Meteora, la suite est redécoupée par DEX/version séparés, le besoin dun ledger de décodage/replay est acté, les statuts known / observed / decoded / materialized / verified_by_corpus deviennent obligatoires, et aucun program_id ne doit être marqué vérifié sans preuve/corpus reproductible.
0.7.44 - Ledger de décodage/replay DEX : ajout de k_sol_dex_decode_replay_ledger, des DTO/entities/queries associés, des re-exports DB/lib, et intégration dans le replay local pour skipper uniquement létape de décodage DEX lorsquun passage certifié existe pour la même version logique de decoder. Les transactions multi-event ou multi-token restent marquées unsafe et sont redécodées sauf option future plus explicite ; le replay continue de reconstruire détection, matérialisation, trades, candles et classifications à partir des events persistés.
0.7.45 - Meteora DLMM normalisation finale : consolidation séparée de meteora_dlmm sur corpus dédié, maintien du wrapper Anchor anchor_self_cpi_log e445a52e51cb9a1d, enrichissement des swaps via Swap / Swap2Evt, cleanup des audits Anchor CPI swap déjà couverts, ajout des events upstream Git/IDL observés et vérifiés par corpus (lb_pair_create_event, add_liquidity_event, remove_liquidity_event, claim_fee_event, position_create_event, position_close_event, close_position_if_empty, remove_liquidity_by_range2, add_liquidity_by_strategy2, add_liquidity_by_weight), conservation des deux audits résiduels e8abf2613a4d232d en instruction_audit faute de mapping upstream Git/IDL confirmé, matérialisation locale validée avec 15 liquidity events et 6 lifecycle events sur le corpus DLMM élargi, et version logique replay dex_decode.v0.7.45.dlmm_add_liquidity_strategies1. Aucun nouveau program_id nest déclaré vérifié sans preuve/corpus reproductible.
0.7.46 - Meteora DAMM v1 events : extension conservatoire du decoder meteora_damm_v1 à partir du mapping upstream Git decoder source meteora-pools-decoder et du corpus local fourni pour les discriminants observés 07a68aabceabecf4, 3095dc823d0b09b2, 856d2cb338ee7221, a9204f8988e84689, 3657a51345e3dae0 et 1513d02bed3eff57 ; ajout des events create_pool, add/remove liquidity, claim_fee, create_lock_escrow et lock_liquidity ; ajout des exports publics associés ; raccordement de la persistance DEX et de la classification non-trade ; passage du replay local à dex_decode.v0.7.46.damm_v1_events1. Le programme Meteora Vault reste seulement référencé comme compte/programme associé quand il apparaît dans les comptes DAMM v1 ; aucun program_id vault nest marqué vérifié sans corpus direct dédié.
0.7.46-demo3 - Correction ciblée de Demo3 pour la découverte/backfill : ajout dun décodage léger des instructions meteora_damm_v1 connues par discriminant upstream Git dans onchain_dex_pair_discovery, classification instruction-scoped prioritaire pour éviter quun Swap soit classé add_liquidity à cause de logs mixtes de transaction, filtrage target_event strict sur les surfaces explicites, conservation des transactions mixtes quand un target explicite est demandé malgré excludeSwaps, et ajout des cibles UI create_lock_escrow / lock_liquidity.
0.7.46-demo3-paged - Amélioration Demo3 discovery : pagination getSignaturesForAddress via before_signature / until_signature, scan de plusieurs adresses source dans une seule requête, déduplication des signatures multi-pool, compteur de pages, curseurs next_before par adresse et ordre de traitement newest_first / oldest_first pour constituer un corpus depuis les premières signatures dun pool sans promouvoir de nouveau program_id.
0.7.46-final - Renommage documentaire et payload des anciens statuts/fonctions liés au dépôt source vers une terminologie générique upstream_git_* : proofStatus utilise désormais upstream_git_local_corpus_observed, upstream_git_mapped_unverified et upstream_git_layout_unverified; les payloads DAMM v1 utilisent upstreamInstructionName; la documentation prépare 0.7.47 comme Upstream Git Registry / DEX discovery preparation au lieu dune tranche DAMM v2 immédiate.

0.7.47 - Upstream Git Registry / DEX discovery preparation : ajout dun registre générique upstream_git pour indexer program_id, discriminants dinstructions/events, noms dentrées et familles de programmes depuis Carbon et sources Git/IDL externes ; extension Demo3 aux targets multi-surfaces, orderbook, burn/mint/transfer/wrap/unwrap/stake ; ajout de groupes de signatures réussies/échouées pour alimenter Demo2 ; maintien strict de linvariant : aucune entrée upstream Git ne produit trade/candle sans decoder spécialisé et corpus local. 0.7.47-openbook-v2-audit - Ajout dun decoder local openbook_v2 audit-only : instructions place_order, cancel_order_by_client_order_id, consume_events, settle_funds, close_open_orders_account; cleanup du fallback upstream_git.instruction_match; extraction audit des Program return et Program data; mapping des logs FillLog, OpenOrdersPositionLog, TotalOrderFillEvent, SettleFundsLog; aucune matérialisation trade/candle. 0.7.47-phoenix-v1-audit - Ajout dun decoder local phoenix_v1 audit-only : order_place, order_cancel, funds_withdraw, log; parsing strict des instructions log 0x0f; décodage audit du header Phoenix log et des events Reduce, Place, TimeInForce; correction du mapping PlaceMultiplePostOnlyOrders tag 0x10; aucune matérialisation trade/candle. 0.7.47-doc-matrix - Révision documentaire : ajout dune matrice DEX dédiée, ajout explicite des sources Git/IDL à consulter, et redécoupage du plan 0.7.48+ en un DEX/version par tranche afin déviter les lots “tous events/tous decoders” trop larges.

0.7.47-doc-event-coverage - Ajout d'une matrice événementielle complémentaire DEX_EVENT_COVERAGE_MATRIX.md pour suivre, par DEX/version, les familles swap, pool_create, liquidity, position, fee, reward, admin/config, mint, burn, transfer, account_create/close, wrap/unwrap, orderbook, vault, lock/unlock, launch et migration; ajout de DB_EVENT_MODEL_REVIEW.md pour clarifier que k_sol_dex_decoded_events suffit à l'audit-only mais que des tables transversales sont nécessaires pour exploiter transfers, orderbook, vault, launch/migration et coverage upstream en requêtes métier. 0.7.48-pre-event-coverage-sync - Raccordement de k_sol_dex_event_coverage_entries au registre upstream Git : ajout de DexEventCoverageService, sync des entrées registry vers SQLite, inférence conservatoire event_family / expected_db_target, mapping local limité aux events Raydium déjà connus, refresh des compteurs observés/matérialisés depuis k_sol_dex_decoded_events et tables non-trade existantes, sans modification des decoders ni de la matérialisation trade/candle. 0.7.48-pre-event-coverage-fix-docs - Correction du refresh SQL k_sol_dex_event_coverage_entries pour éviter les requêtes dynamiques non compatibles avec sqlx::query 0.9 ; mise à jour documentaire README/ROADMAP pour acter 0.7.48-pre comme checkpoint DB/reporting et réaligner la suite sur lordre Raydium avant Meteora (0.7.48 raydium_cpmm, 0.7.49 raydium_clmm, puis Pump/Meteora). 0.7.48-pre-event-coverage-report - Clôture du checkpoint 0.7.48-pre : raccordement des summaries k_sol_dex_event_coverage_entries aux diagnostics locaux, ajout des compteurs agrégés de couverture au LocalPipelineDiagnosticSummaryDto et au LocalPipelineValidationReportDto, ajout du profil 0.7.48-pre_event_coverage_db_checkpoint, exposition du profil dans Demo Pipeline 2, et maintien des invariants : aucun decoder DEX modifié, aucun trade/candle créé, aucun program_id promu sans corpus. 0.7.48-pre-event-coverage-validation-scope - Correction du profil 0.7.48-pre_event_coverage_db_checkpoint : le contrôle bloquant des trade candidates non matérialisés est maintenant borné aux DEX attendus de la tranche Raydium (raydium_cpmm, raydium_clmm, raydium_amm_v4) afin quun DEX partiel hors scope, comme fluxbeam, reste diagnostiqué sans bloquer le checkpoint DB/event coverage.