79 lines
3.5 KiB
Markdown
79 lines
3.5 KiB
Markdown
<!-- file: docs/FOUNDATION_CLOSURE.md -->
|
||
<!-- version: 2 -->
|
||
|
||
# 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.
|