# Clôture de la fondation `0.3.x` ## Décision de version Le jalon `0.3.5` n’est plus conservé comme version autonome. Ses outils d’intégrité, de sélection de corpus et de replay ont été réalisés pendant `0.3.4`. La séquence retenue est : ```text 0.3.4 -> clôture raw/canonical/core/replay 0.4.0 -> infrastructure de décodage et matérialisation ``` ## Validations réelles acquises | Contrôle | Résultat | |-------------------------|--------------------------------------------------| | Extraction pending | 70 extraites, 0 échec | | Intégrité SQL | 7 contrôles sans ligne anormale | | Ledger initial | 70 succès, 70 tentatives | | Skip sur échantillon | 14 skips, 0 extraction | | Force replay | 14 extractions, 0 skip | | Skip après replay | 14 skips, 0 extraction | | Cardinalité finale | 70 transactions core | | Ledger final | 70 succès, 84 tentatives | | CSV natif | écrit dans `data/exports_csv/` sous Tauri/Linux | | Tests application | `kb_app_demo` 60 tests, `kb_program_ids` 2 tests | | Tests pipeline finaux | `kb_pipeline` 24 tests | | Tests PostgreSQL finaux | `kb_store_pg` 39 tests, rollback inclus | | Clippy final | `cargo clippy --all-targets` sans avertissement | Ces résultats confirment que le force-replay remplace le graphe ciblé sans créer de transaction supplémentaire et que le ledger comptabilise la tentative additionnelle. ## Contrôles automatisés finaux validés ### Rollback PostgreSQL Le test `optional_postgres_core_extraction_rolls_back_partial_graph_from_env` injecte une violation d’unicité après le début de la persistance. Il vérifie : - absence de transaction core partielle ; - absence d’account key partielle ; - raw toujours `received` ; - aucune entrée ledger réussie ; - replay corrigé possible ; - nettoyage des fixtures. ### Annulation backfill Les appels réseau et attentes suivantes sont maintenant annulables : - `getSignaturesForAddress` en vol ; - `getTransaction` en vol ; - attente du pacer ; - pause de retry standard ; - pause configurée après 429. Les tests offline couvrent une attente déjà annulée et l’abandon coopératif d’une future longue. ## Clôture acquise Les commandes finales ont été exécutées avec succès le 7 juillet 2026 : ```text kb_pipeline: 24 passed, 0 failed kb_store_pg avec PostgreSQL réel: 39 passed, 0 failed cargo clippy --all-targets: aucun avertissement ``` `0.3.4` est inscrite dans `CHANGELOG.md`, le jalon `0.3.x` est clôturé et `0.4.0` devient le jalon actif. La session suivante doit démarrer avec `prompts/019_v0_4_0_decoder_infrastructure.md`. ## Éléments reportés sans blocage Les corpus exhaustifs de protocoles ne sont pas nécessaires pour prouver l’indépendance de l’extracteur core. Ils sont constitués dans leurs versions respectives : Pump `0.5.x`, Meteora `0.6.x`, Raydium `0.7.x` et Orca `0.8.x`. Le rejeu manuel d’un backfill `before` depuis `resume_before_signature` reste recommandé lors d’une prochaine campagne longue. La logique de frontière contiguë, les compteurs d’arrêt et une campagne réelle interrompue sont déjà validés.