This commit is contained in:
2026-07-23 16:37:12 +02:00
parent 99c345f2f2
commit 0da75c1311
2159 changed files with 230833 additions and 0 deletions

View File

@@ -0,0 +1,78 @@
<!-- file: docs/FOUNDATION_CLOSURE.md -->
<!-- version: 2 -->
# Clôture de la fondation `0.3.x`
## Décision de version
Le jalon `0.3.5` nest plus conservé comme version autonome. Ses outils dinté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 dunicité après le début de la persistance. Il vérifie :
- absence de transaction core partielle ;
- absence daccount 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 labandon coopératif dune 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 lindépendance de lextracteur 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 dun backfill `before` depuis `resume_before_signature` reste recommandé lors dune prochaine campagne longue. La logique de frontière contiguë, les compteurs darrêt et une campagne réelle interrompue sont déjà validés.