v0.1.0-pre.061
This commit is contained in:
@@ -1,394 +1,389 @@
|
||||
<!-- file: KHADHROONY_BOT3_MIGRATION_CLOSURE_TODO.md -->
|
||||
<!-- version: 9 -->
|
||||
<!-- version: 19 -->
|
||||
|
||||
# Checklist détaillée de clôture de la migration `khadhroony-bot3`
|
||||
# Clôture de la migration `khadhroony-bot3`
|
||||
|
||||
## Base et principe de validation
|
||||
Ce fichier est temporaire. Il doit disparaître lorsque la migration est close, que la documentation active décrit uniquement `khadhroony-bot3`, et que la version du workspace est alignée sur `0.4.7`.
|
||||
|
||||
- Base de travail : `khadhroony-bot3_v0.1.0-pre.055-full.zip`.
|
||||
- Références fonctionnelles : Bot2 `v0.4.6` puis Bot2 `v0.4.7-pre.035-tofix07`.
|
||||
- Prompt actif : `prompts/KHADHROONY_BOT3_MIGRATION_CONTINUATION_PROMPT_REORDERED.md`.
|
||||
- Une case n’est cochée qu’après preuve explicite : audit, compilation, test, requête SQL, contrôle runtime ou comparaison documentée.
|
||||
- L’ordre est obligatoire : règles, contrôles rapides, retour au niveau `0.4.6`, Metaplex `0.4.7`, Clippy/Tauri, documentation, versionnement.
|
||||
## Principes de clôture
|
||||
|
||||
## 0. Revalidation des règles et des archives
|
||||
- Une case n’est cochée qu’après preuve par recherche, compilation, test, audit, requête SQL ou validation runtime.
|
||||
- Les noms, modules et documents actifs doivent décrire Bot3 comme le produit courant, sans récit permanent de migration depuis Bot2.
|
||||
- Les protocoles applicatifs Pump.fun, Raydium, Meteora, Jupiter, autres AMM et launchpads restent hors périmètre tant que Solana Core, SPL, Metaplex Token Metadata et Anchor ne sont pas clôturés.
|
||||
- Les rappels d’amélioration non bloquants doivent être déplacés vers `docs/IDEA_REMINDERS.md`, pas conservés dans cette checklist.
|
||||
- La documentation finale décrit l’état courant. Elle ne doit pas accumuler un journal de changements par version dans les README.
|
||||
|
||||
- [x] Inventorier l’archive Bot3 `pre.055`.
|
||||
- [x] Inventorier l’archive Bot2 `0.4.6` issue de Git.
|
||||
- [x] Inventorier l’archive Bot2 `0.4.7-pre.035-tofix07`.
|
||||
- [x] Vérifier la présence de l’IDL Metaplex local dans Bot3.
|
||||
- [x] Constater que Bot3 utilisait encore `RULES.md` et `RUST_RULES.md`.
|
||||
- [x] Créer `RULES_GENERAL.md`.
|
||||
- [x] Créer `RULES_RUST.md`.
|
||||
- [x] Créer `RULES_SPECIFIC_KHADHROONY.md`.
|
||||
- [x] Transformer `RULES.md` en index normatif.
|
||||
- [x] Corriger `docs/DELTA_WORKFLOW.md` pour Bot3, `-delta`, `delta-fix-XXX`, exclusion de `Cargo.lock` et absence de SHA256.
|
||||
- [x] Adapter le script d’audit aux nouveaux fichiers de règles.
|
||||
- [x] Relire intégralement les quatre fichiers de règles après application du delta.
|
||||
- [ ] Comparer ligne par ligne les règles Bot2 encore applicables avec les règles Bot3.
|
||||
- [ ] Documenter chaque règle Bot2 écartée et sa justification.
|
||||
- [ ] Vérifier l’absence de contradiction sur les imports, réexports, façades, Tauri, TS-RS, logging, versionnement et archives.
|
||||
- [x] Exécuter `cargo fmt --all`.
|
||||
- [x] Exécuter `python3 scripts/audit_rust_workspace_rules.py`.
|
||||
## État validé de `0.1.0-pre.061`
|
||||
|
||||
## 0.1 Classification des matrices de contrat
|
||||
- [x] Suite ciblée complète : toutes les crates principales réussissent leurs tests.
|
||||
- [x] `kb-app-demo-desktop` : 116 tests réussis.
|
||||
- [x] `kb-config` : 45 tests réussis.
|
||||
- [x] `kb-core` : 2 tests réussis.
|
||||
- [x] `kb-lib` : 625 tests réussis.
|
||||
- [x] `kb-onchain-transport` : 113 tests réussis.
|
||||
- [x] `kb-pipeline` : 89 tests réussis.
|
||||
- [x] `kb-pipeline-demo-scenarios` : 35 tests réussis.
|
||||
- [x] `kb-store` : 84 tests réussis.
|
||||
- [x] `cargo check --workspace` réussi.
|
||||
- [x] Audit général Rust propre.
|
||||
- [x] Audit des exports Rust propre.
|
||||
- [x] Audit spécifique Khadhroony propre.
|
||||
- [x] `cargo clippy --all-targets` propre.
|
||||
- [x] Démarrage Tauri, splash, PostgreSQL et fenêtres principales validés.
|
||||
- [x] Extraction Core complète de 4 574 transactions raw : 4 574 extraites, 0 échec.
|
||||
- [x] Replay complet de 11 880 instructions exécuté.
|
||||
- [x] Les 6 faux échecs Metaplex ont été corrigés et rejoués avec succès.
|
||||
- [x] Les 76 tentatives Loader malformées de transactions échouées sont désormais décodées comme observations non engagées.
|
||||
- [x] Les 4 tags Loader v4 inconnus restent correctement classés `Unsupported`.
|
||||
- [x] Aucune erreur de matérialisation observée pendant la campagne propre.
|
||||
- [x] Les trois erreurs supplémentaires du replay ont été identifiées comme timeouts transitoires du pool PostgreSQL, distincts des échecs fonctionnels de décodage.
|
||||
- [x] Revalider les suites après les correctifs `pre.061-delta-fix-004` et `pre.061-delta-fix-005` : 116 tests desktop, 625 tests `kb-lib`, suites consolidées et replay propre.
|
||||
|
||||
- [x] Inventorier les fichiers JSON machine auparavant placés sous `docs/`.
|
||||
- [x] Créer `test-fixtures/contract-matrices/` pour les matrices de contrat partagées.
|
||||
- [x] Déplacer les dix matrices JSON hors de `docs/`.
|
||||
- [x] Mettre à jour les dix-sept fichiers Rust contenant les `include_str!` concernés.
|
||||
- [x] Conserver le déplacement et les mises à jour de chemins dans une même livraison atomique.
|
||||
- [x] Lister chaque ancien fichier avec une commande `rm --` dans `delta.md`.
|
||||
- [x] Exécuter les tests des crates consommatrices dans le workspace réel (`kb-lib`, `kb-onchain-transport`, `kb-pipeline-demo-scenarios`).
|
||||
- [x] Vérifier qu’aucune référence résiduelle ne pointe vers les anciens chemins `docs/*.json`.
|
||||
# 1. Nettoyage structurel et nomenclature
|
||||
|
||||
## 1. Contrôles rapides avant code fonctionnel
|
||||
## 1.1 Règles
|
||||
|
||||
### 1.1 TS-RS
|
||||
- [x] Reprendre dans les règles Bot3 toutes les règles Bot2 encore applicables.
|
||||
- [x] Remplacer les anciens fichiers de règles par `RULES_GENERAL.md`, `RULES_RUST.md`, `RULES_SPECIFIC_KHADHROONY.md` et un index `RULES.md`.
|
||||
- [x] Adapter le workflow des deltas à Bot3.
|
||||
- [ ] Effectuer une dernière lecture croisée des règles portant sur imports, réexports, façades, Tauri, TS-RS, logging, versionnement et archives.
|
||||
- [ ] Supprimer de cette checklist toute demande de justification historique sans valeur normative.
|
||||
|
||||
- [x] Rechercher `export_to` uniquement dans les fichiers `.rs` de `kb-config`, `kb-lib` et `kb-app-demo-desktop`.
|
||||
- [x] Vérifier les sorties `kb_config`.
|
||||
- [x] Vérifier les sorties `kb_lib` dans `kb-lib/frontend/ts/bindings/kb_lib`.
|
||||
- [x] Vérifier les sorties `kb_app_demo_desktop`.
|
||||
- [ ] Supprimer les chemins historiques `kb_executor_*`.
|
||||
- [ ] Supprimer les chemins historiques `kb_decoder_*`.
|
||||
- [ ] Supprimer les chemins historiques `kb_materializer_*`.
|
||||
- [ ] Supprimer les chemins historiques `kb_model`.
|
||||
- [ ] Supprimer les chemins historiques `kb_store_pg` et `kb_store_core`.
|
||||
- [x] Régénérer les bindings via les tests TS-RS exécutés pendant les tests complets des crates.
|
||||
- [x] Vérifier que les fichiers générés correspondent aux chemins déclarés pour `kb_config`, `kb_lib` et `kb_app_demo_desktop`.
|
||||
## 1.2 Anciennes crates, imports et chemins
|
||||
|
||||
### 1.2 Anciens chemins et nomenclature
|
||||
- [x] Confirmer l’absence d’import, réexport ou dépendance active vers les anciennes crates `kb_executor_*`.
|
||||
- [x] Confirmer l’absence d’import, réexport ou dépendance active vers les anciennes crates `kb_decoder_*`.
|
||||
- [x] Confirmer l’absence d’import, réexport ou dépendance active vers les anciennes crates `kb_materializer_*`.
|
||||
- [x] Confirmer l’absence d’import, réexport ou dépendance active vers l’ancienne crate `kb_model`.
|
||||
- [x] Confirmer l’absence de dépendance ou de crate `kb_store_pg`.
|
||||
- [x] Confirmer l’absence de dépendance ou de crate `kb_store_core`.
|
||||
- [x] Confirmer qu’aucune ancienne crate supprimée n’a été recréée sous un autre chemin.
|
||||
- [x] Auditer `kb-app-demo-desktop/**/*.rs` pour les anciens chemins structurels actifs.
|
||||
- [x] Vérifier les bindings TS-RS générés : aucun ancien chemin de crate actif n’est exporté.
|
||||
- [x] Classer les anciennes chaînes runtime et les remplacer par les identités consolidées `kb-lib.decoder.*`, `kb-lib.executor.*` et `kb-lib.materializer.*`.
|
||||
- [ ] Réécrire lors de la refonte documentaire finale les commentaires et documents qui racontent encore la consolidation depuis les anciennes crates.
|
||||
|
||||
- [ ] Auditer `kb-app-demo-desktop/**/*.rs` pour les anciens noms Bot2.
|
||||
- [ ] Auditer tout le workspace pour `token_2022` interne.
|
||||
- [ ] Justifier séparément chaque contrat externe `TOKEN_2022_*` conservé.
|
||||
- [ ] Vérifier que `kb-lib` et `kb-store` sont les seules façades consolidées concernées.
|
||||
- [ ] Vérifier qu’aucune ancienne crate n’a été recréée.
|
||||
Contrôles exécutés : aucune correspondance structurelle `ancienne_crate::`, aucune dépendance Cargo correspondante et aucun répertoire de crate supprimée.
|
||||
|
||||
### 1.3 Frontend et menu
|
||||
## 1.3 Convention Token-2022
|
||||
|
||||
- [x] Auditer les occurrences `Copier` et `Effacer` dans tous les HTML et TypeScript.
|
||||
- [ ] Garantir une seule paire de contrôles par sortie.
|
||||
- [x] Vérifier et corriger l’ordre du menu : Configuration, Transport et collecte, Pipeline, SQL, Exécution.
|
||||
- [ ] Vérifier les séparateurs.
|
||||
- [ ] Supprimer les entrées mortes.
|
||||
- [x] Identifier les modules SPL backend comme composants de la fenêtre consolidée `demo_execution_spl`, et non comme fenêtres autonomes oubliées.
|
||||
Convention arrêtée :
|
||||
|
||||
## 2. Corrections UI rapides
|
||||
- symboles, modules, fichiers, fonctions et variables internes : `token_2022` / `TOKEN_2022` ;
|
||||
- types et variantes Rust en PascalCase : `Token2022` ;
|
||||
- valeurs JSON/TS explicitement concernées : `token_2022` avec attributs Serde et TS-RS ;
|
||||
- codes persistés : `spl_token_2022` ;
|
||||
- noms officiels externes : conserver leur orthographe publiée ;
|
||||
- exceptions contractuelles Metaplex conservées : `token2022EmbeddedMetadata` et `token2022_embedded_metadata`.
|
||||
|
||||
### 2.1 HTTP JSON-RPC
|
||||
- [x] Inventorier les occurrences actives `token2022`, `TOKEN2022`, `token_2022`, `TOKEN_2022`.
|
||||
- [x] Classer les occurrences entre symboles internes, contrats externes, valeurs persistées, API, tests, IDL et documentation historique.
|
||||
- [x] Renommer les symboles et modules internes vers `token_2022` / `TOKEN_2022`.
|
||||
- [x] Conserver `Token2022` pour les types et variantes Rust.
|
||||
- [x] Aligner Serde et TS-RS sur `token_2022` lorsque cette valeur appartient au contrat applicatif.
|
||||
- [x] Renommer les identités persistées et runtime vers `spl_token_2022` et `kb-lib.*.token_2022`.
|
||||
- [x] Purger les données dérivées puis reconstruire Core, Decode et Materialize depuis les 4 574 raws.
|
||||
- [x] Valider 55 instructions Token-2022 décodées, 0 échec fonctionnel.
|
||||
- [x] Vérifier les matrices actives ; corriger la dernière commande historique dans `SPL_TOKEN_2022_MATRIX.json`.
|
||||
- [x] Découpler les assertions structurelles des matrices des compteurs globaux et volatils de `cargo test`.
|
||||
- [ ] Réauditer progressivement chaque matrice active lors de la reprise de sa surface ; les preuves opérateur restent informatives et les invariants doivent être dérivés des lignes de matrice et des registres compilés.
|
||||
- [ ] Refaire l’audit Python de nomenclature lors de la stabilisation finale des helpers de migration.
|
||||
|
||||
- [x] Remplacer le viewer JSON du résultat par un `textarea readonly`.
|
||||
- [x] Fixer la hauteur.
|
||||
- [x] Activer le scroll interne.
|
||||
- [x] Garantir exactement un bouton Copier pour la sortie principale.
|
||||
- [x] Garantir exactement un bouton Effacer pour la sortie principale.
|
||||
- [x] Vider le buffer TypeScript lors de l’effacement.
|
||||
- [ ] Tester JSON, scalaire, texte, erreur et résultat vide.
|
||||
- [x] Restaurer le gabarit desktop à deux colonnes : requête à gauche, endpoints et résultat à droite.
|
||||
# 2. Frontend et application desktop
|
||||
|
||||
### 2.2 WebSocket
|
||||
## 2.1 Menu, contrôles et HTML
|
||||
|
||||
- [x] Afficher les messages dans un composant texte/log.
|
||||
- [x] Fixer la hauteur et le scroll interne.
|
||||
- [x] Garantir une seule paire Copier/Effacer pour la sortie Messages.
|
||||
- [x] Borner le débit et la taille des notifications envoyées à l’UI pour éviter les freezes.
|
||||
- [x] Conserver le payload complet sous forme JSON compacte dans les logs de debug avant formatage et troncage UI.
|
||||
- [x] Conserver les messages pendant la session active.
|
||||
- [x] Restaurer l’affichage après fermeture/réouverture de la fenêtre.
|
||||
- [x] Restaurer le gabarit desktop à deux colonnes : souscription à gauche, statut/endpoints/messages à droite.
|
||||
- [x] Appliquer `base64` par défaut aux souscriptions `accountSubscribe` et `programSubscribe` lorsque l’encodage est absent, sans écraser un encodage explicite.
|
||||
- [ ] Décider après test runtime si Statut et Endpoints WebSocket restent textuels ou deviennent des viewers JSON structurés ; supprimer alors tout bouton Copier redondant fourni par le viewer.
|
||||
- [x] Ordre principal du menu corrigé : Configuration, Transport et collecte, Pipeline, SQL, Exécution.
|
||||
- [ ] Vérifier une dernière fois les séparateurs du menu.
|
||||
- [ ] Supprimer les entrées de menu, boutons, onglets et liens sans backend accessible.
|
||||
- [ ] Vérifier qu’une sortie ne possède qu’une seule paire de contrôles Copier/Effacer.
|
||||
- [x] Vérifier toutes les balises HTML après les derniers remaniements ; les quatre conteneurs finaux manquants ont été refermés et le parseur HTML local ne signale plus de déséquilibre.
|
||||
- [ ] Vérifier que chaque option HTML correspond à une commande Tauri et à un scénario backend réellement accessible.
|
||||
|
||||
### 2.3 Backfill et autocomplétion
|
||||
## 2.2 Viewers et journaux
|
||||
|
||||
- [x] Garder Program ID librement éditable.
|
||||
- [x] Ajouter un autocomplétion non bloquant depuis le registre public `kb-program-ids`.
|
||||
- [ ] Ajouter le même autocomplétion Program ID au filtre « programme déjà indexé » d’Extraction core.
|
||||
- [ ] Ajouter ultérieurement les autocomplétions Token et Pool lorsque leurs tables de référence existeront.
|
||||
- [x] HTTP utilise un composant texte borné pour le résultat brut.
|
||||
- [x] WebSocket utilise un composant texte/log borné et persistant pendant la session.
|
||||
- [x] Extraction Core place paramètres, journaux et résultats dans une structure cohérente.
|
||||
- [x] Réserver les viewers JSON au JSON structuré nécessitant exploration ou formatage ; HTTP endpoints/résultat et WebSocket statut/endpoints utilisent désormais `@andypf/json-viewer`.
|
||||
- [x] Utiliser des textareas pour texte brut, logs et diagnostics concaténés ; les messages WebSocket restent textuels avec Copier/Effacer.
|
||||
- [ ] Vérifier ce contrat dans Decode replay, Exécution Solana Core et Exécution SPL.
|
||||
- [x] Convertir Statut et Endpoints WebSocket en viewers JSON structurés après contrôle runtime.
|
||||
|
||||
### 2.4 Journaux généraux et viewers
|
||||
## 2.3 Fenêtres SQL
|
||||
|
||||
- [x] Vérifier Backfill HTTP en runtime.
|
||||
- [x] Vérifier Extraction core en runtime après correction du gabarit pleine largeur.
|
||||
- [ ] Vérifier Exécution Solana Core.
|
||||
- [ ] Vérifier Exécution SPL.
|
||||
- [x] Vérifier Decode replay en runtime et conserver les échecs Loader/Metaplex comme anomalies fonctionnelles à corriger.
|
||||
- [x] Vérifier HTTP en runtime.
|
||||
- [x] Vérifier WebSocket en runtime.
|
||||
- [x] Placer les paramètres d’Extraction core dans les accordéons.
|
||||
- [x] Placer les journaux et résultats globaux d’Extraction core sous les accordéons.
|
||||
- [ ] Réserver le viewer JSON au JSON structuré.
|
||||
- [ ] Utiliser des textareas pour texte brut, logs et diagnostics concaténés.
|
||||
- [x] Fixer la hauteur du viewer JSON d’Extraction core.
|
||||
- [ ] Étendre la vérification des journaux/viewers aux fenêtres Exécution Solana Core, Exécution SPL et Decode replay.
|
||||
|
||||
### 2.5 Fenêtres SQL
|
||||
|
||||
- [x] Relever temporairement le plafond de résultats de 5 000 à 100 000 pour les campagnes de migration.
|
||||
- [ ] Ajouter ultérieurement une pagination SQL/IPC serveur avant les volumes massifs.
|
||||
- [x] Écrire les CSV dans `<workspace>/data/exports_csv`, indépendamment du répertoire courant Tauri.
|
||||
- [ ] Corriger la valeur de repli TypeScript `maximumReplayCandidateLimit = 5_000` vers `100_000`.
|
||||
- [x] Valider qu’un export produit `data/exports_csv/replay_transactions.csv`.
|
||||
|
||||
- [ ] Mettre toutes les fenêtres SQL, sauf Replay Candidates, sur une seule colonne pleine largeur.
|
||||
- [ ] Mettre les tables sur toute la largeur.
|
||||
- [x] Replay Candidates accepte temporairement jusqu’à 100 000 résultats.
|
||||
- [x] Les CSV sont écrits dans `<workspace>/data/exports_csv`.
|
||||
- [x] Export `replay_transactions.csv` validé.
|
||||
- [ ] Mettre les autres fenêtres SQL sur une seule colonne pleine largeur lorsque ce n’est pas déjà le cas.
|
||||
- [x] Rendre le journal des annotations responsive avec DataTables, pagination, recherche et scroll horizontal borné au wrapper.
|
||||
- [ ] Limiter le scroll horizontal au wrapper de table.
|
||||
- [ ] Vérifier toutes les balises HTML.
|
||||
- [ ] Vérifier boutons, onglets et liens.
|
||||
|
||||
## 3. Configuration et environnement
|
||||
## 2.4 Rappels non bloquants
|
||||
|
||||
- [x] Déplacer les autocomplétions futures, la pagination SQL/IPC et la résolution configurable du chemin `kb-store` vers `docs/IDEA_REMINDERS.md`.
|
||||
|
||||
# 3. Configuration, environnement et secrets
|
||||
|
||||
Préparation engagée avant la campagne Devnet `0.1.0-pre.062`; la validation runtime complète reste à effectuer pendant cette campagne.
|
||||
|
||||
- [x] Conserver `HELIUS_API_KEY` comme variable Helius canonique déjà utilisée par la configuration.
|
||||
- [x] Séparer les bases runtime avec `KB_POSTGRES_MAINNET_URL` et `KB_POSTGRES_DEVNET_URL`.
|
||||
- [x] Conserver `KB_POSTGRES_TEST_URL` comme contrat existant des tests d’intégration PostgreSQL.
|
||||
- [x] Faire de `.env.example` l’unique modèle dotenv versionné et ignorer tous les `.env*` réels.
|
||||
- [x] Faire pointer `local_devnet` vers la variable Devnet et les deux profils Mainnet vers la variable Mainnet.
|
||||
|
||||
- [ ] Confirmer que seul `kb-config` charge `.env`.
|
||||
- [ ] Confirmer la priorité environnement du processus.
|
||||
- [ ] Confirmer `KB_ENV_FILE`.
|
||||
- [ ] Confirmer le `.env` racine par défaut.
|
||||
- [ ] Confirmer `${VAR}`.
|
||||
- [ ] Confirmer `${VAR:-fallback}`.
|
||||
- [ ] Confirmer l’absence non fatale pour les services optionnels.
|
||||
- [ ] Vérifier que les diagnostics ne révèlent aucun secret.
|
||||
- [ ] Vérifier que `kb-pipeline-demo-scenarios` ne dépend pas directement de `dotenvy`.
|
||||
- [ ] Valider réellement `HELIUS_API_KEY` depuis `.env`.
|
||||
- [ ] Garder la résolution de chemin de base `kb-store` dans le backlog documenté.
|
||||
- [ ] Confirmer l’ordre de priorité des variables du processus, de `KB_ENV_FILE`, du `.env` racine et des valeurs de configuration.
|
||||
- [ ] Confirmer le comportement de `${VAR}`.
|
||||
- [ ] Confirmer le comportement de `${VAR:-fallback}`.
|
||||
- [ ] Confirmer que l’absence de secrets pour les services optionnels reste non fatale.
|
||||
- [ ] Vérifier que les diagnostics et logs ne révèlent aucun secret.
|
||||
- [ ] Confirmer que `kb-pipeline-demo-scenarios` ne dépend pas directement de `dotenvy`.
|
||||
- [ ] Valider réellement la résolution de `HELIUS_API_KEY` depuis `.env`.
|
||||
|
||||
## 4. Logging
|
||||
# 4. Logging
|
||||
|
||||
- [ ] Maintenir la console active pour `local_devnet`.
|
||||
- [ ] Maintenir la console active pour `mainnet_research`.
|
||||
- [ ] Maintenir la console active pour `mainnet`.
|
||||
- [ ] Supprimer les routes Bot2 obsolètes.
|
||||
- [ ] Vérifier les cibles `kb-lib.decoder.*`.
|
||||
- [ ] Vérifier les cibles `kb-lib.executor.*`.
|
||||
- [ ] Vérifier les cibles `kb-lib.materializer.*`.
|
||||
- [ ] Vérifier `kb-store`, `kb-config`, `kb-logging`, `kb-onchain-transport`, `kb-pipeline`, `kb-wallet` et `kb-app-demo-desktop`.
|
||||
- [ ] Vérifier qu’aucun ancien répertoire de logs de crate supprimée n’est recréé.
|
||||
- [x] Console runtime observée sur le profil `mainnet_research`.
|
||||
- [ ] Confirmer la console active pour `local_devnet`.
|
||||
- [ ] Confirmer la console active pour `mainnet`.
|
||||
- [ ] Vérifier l’absence de routes Bot2 réellement obsolètes.
|
||||
- [ ] Vérifier les targets `kb-lib.decoder.*`.
|
||||
- [ ] Vérifier les targets `kb-lib.executor.*`.
|
||||
- [ ] Vérifier les targets `kb-lib.materializer.*`.
|
||||
- [ ] Vérifier qu’aucun ancien répertoire de logs correspondant à une crate supprimée n’est recréé.
|
||||
|
||||
## 5. Options SPL et Token-2022
|
||||
# 5. Tauri et séparation des responsabilités
|
||||
|
||||
- [ ] Comparer chaque option de `demo_execution_spl.html` aux scénarios réellement supportés.
|
||||
- [ ] Comparer les options aux branches de `tauri.rs`.
|
||||
- [x] Les principales commandes Tauri ont été déplacées vers leurs modules fonctionnels.
|
||||
- [ ] Auditer `tauri.rs` et vérifier qu’il ne conserve que l’enregistrement et des wrappers minces.
|
||||
- [ ] Déplacer toute logique Decode replay, Backfill, SQL replay ou Exécution encore substantielle hors de `tauri.rs`.
|
||||
- [ ] Vérifier les wrappers restants après ce dernier déplacement.
|
||||
- [ ] Garantir que les tests unitaires résident dans les modules fonctionnels, pas dans les wrappers Tauri.
|
||||
- [x] Fermeture explicite et Clippy propres sur l’état `pre.061`.
|
||||
- [ ] Revalider timeout HTTP et arrêt global de l’application lors de la campagne finale runtime.
|
||||
|
||||
# 6. PostgreSQL et reconstruction
|
||||
|
||||
- [x] Tables raw et dérivées classées.
|
||||
- [x] Script `reset_derived_store_keep_raw.sql` corrigé avec `TRUNCATE ... RESTART IDENTITY`.
|
||||
- [x] `kb_sol_raw_transactions` conservée.
|
||||
- [x] `kb_sol_obs_transaction_observations` classée comme acquisition à conserver lors des futurs resets.
|
||||
- [x] La perte des anciennes observations de la base de démonstration actuelle est acceptée ; aucune restauration n’est requise.
|
||||
- [x] Extraction Core complète des 4 574 raws validée.
|
||||
- [x] Replay complet des décodeurs enregistrés validé.
|
||||
- [x] Matérialisation sans erreur de ledger validée.
|
||||
- [x] Compteurs et anomalies du replay analysés.
|
||||
- [ ] Créer `kb-store/maintenance/README.md`.
|
||||
- [ ] Documenter précisément les tables conservées, les tables dérivées et l’ordre de reconstruction.
|
||||
- [ ] Documenter le contrôle des index et contraintes après recréation du schéma.
|
||||
- [ ] Documenter la future transition vers une nouvelle base alimentée en temps réel par worker, complétée par backfills ciblés ou automatisés.
|
||||
|
||||
# 7. Parité fonctionnelle avant Metaplex Executor
|
||||
|
||||
L’objectif n’est pas de produire un rapport historique Bot2 permanent. Il faut confirmer que le périmètre requis est présent et utilisable dans Bot3.
|
||||
|
||||
## 7.1 Décodage et matérialisation
|
||||
|
||||
- [x] Solana Core : replay réel validé sur la base de démonstration.
|
||||
- [x] SPL Memo : replay réel validé.
|
||||
- [x] SPL Token classique : replay réel validé.
|
||||
- [x] SPL ATA : replay réel validé.
|
||||
- [x] SPL Token-2022 : replay réel validé.
|
||||
- [ ] ElGamal Registry : obtenir une fixture ou campagne réelle de décodage d’instruction et d’état.
|
||||
- [x] Extraction Core : campagne complète validée.
|
||||
- [x] Replay : campagne complète validée.
|
||||
- [x] Matérialisation : aucune erreur de matérialiseur observée.
|
||||
- [x] PostgreSQL : reconstruction et persistance validées.
|
||||
- [x] Identifier les 3 erreurs de campagne résiduelles comme timeouts transitoires du pool PostgreSQL, sans échec final de décodeur persisté.
|
||||
- [x] Séparer dans le résumé `failedInputs` des erreurs d’orchestration ou de stockage via `processingErrorInputs`.
|
||||
- [ ] Dimensionner le pool et ajouter un retry borné pour les timeouts transitoires avant la campagne finale.
|
||||
|
||||
## 7.2 Transport et infrastructure
|
||||
|
||||
- [x] Backfill HTTP validé en runtime.
|
||||
- [x] HTTP JSON-RPC validé en runtime.
|
||||
- [x] WebSocket validé en runtime.
|
||||
- [x] Logging validé sur `mainnet_research`.
|
||||
- [x] Configuration principale chargée et utilisée en runtime.
|
||||
- [ ] Valider les profils `local_devnet` et `mainnet` lors de la campagne finale.
|
||||
|
||||
### 7.2.1 Stabilisation frontend avant `0.1.0-pre.062`
|
||||
|
||||
- [x] Corriger les quatre conteneurs HTML finaux signalés par RustRover.
|
||||
- [x] Remplacer les favicons absentes par `imgs/logo.png`.
|
||||
- [x] Valider visuellement les fenêtres Config, HTTP, WebSocket, Backfill, Core extraction, Decode replay et SQL.
|
||||
- [x] Séparer les JSON viewers des sorties textuelles et conserver Copier/Effacer sur les sorties sans viewer selon leur volatilité.
|
||||
- [x] Rendre le journal des annotations responsive et paginé avec DataTables.
|
||||
- [x] Étendre DataTables aux tableaux de diagnostic SQL.
|
||||
- [x] Corriger les avertissements frontend connus : API Rollup `names`, exception locale, initialiseur redondant et sélecteur de custom element.
|
||||
- [ ] Revalider le frontend en runtime après application du dernier correctif.
|
||||
|
||||
# 7.3 Exécution
|
||||
|
||||
- [ ] Vérifier Exécution Solana Core via la fenêtre desktop et les scénarios Devnet.
|
||||
- [ ] Vérifier Exécution SPL via la fenêtre desktop et les scénarios Devnet.
|
||||
- [ ] Comparer les options de `demo_execution_spl.html` aux scénarios réellement supportés.
|
||||
- [ ] Supprimer les options mortes.
|
||||
- [ ] Remplacer les valeurs internes `token_2022` par `token2022`.
|
||||
- [ ] Inventorier chaque variable `TOKEN_2022_*`.
|
||||
- [ ] Marquer les variables conservées pour compatibilité externe.
|
||||
- [ ] Marquer les variables limitées aux scénarios de démonstration.
|
||||
- [ ] Documenter les futurs remplacements par configuration ou structure typée.
|
||||
- [ ] Raccorder ou documenter `execute_devnet_spl_token_lifecycle` s’il reste non exposé par l’application.
|
||||
- [ ] Vérifier simulation, envoi, progression, résumé et diagnostics.
|
||||
- [ ] Vérifier replay post-exécution et matérialisation pour chaque famille supportée.
|
||||
|
||||
## 5.1 Wrappers Tauri
|
||||
# 8. Guide Devnet des exécuteurs
|
||||
|
||||
- [x] Déplacer la logique complète de `splash_frontend_ready` dans `splash.rs` et conserver un wrapper privé mince dans `tauri.rs`.
|
||||
- [x] Inventorier toutes les fonctions `#[tauri::command]` de `tauri.rs` et mesurer les blocs de 20 lignes ou plus.
|
||||
- [x] Déplacer options, exécution et annulation d’Extraction core dans `demo_core_extraction.rs`.
|
||||
- [x] Mutualiser les ouvertures de fenêtres via un helper privé strictement Tauri dans `tauri.rs`.
|
||||
- [ ] Déplacer progressivement la logique Decode replay, Backfill, SQL replay et Exécution hors de `tauri.rs`.
|
||||
- [x] Vérifier les wrappers Extraction core et Splash.
|
||||
- [ ] Vérifier les autres wrappers Tauri après leur migration progressive.
|
||||
- [ ] Ajouter ou conserver les tests unitaires dans les modules fonctionnels, pas dans les wrappers.
|
||||
Créer une documentation dédiée, distincte des README généraux :
|
||||
|
||||
## 5.2 Câblage des scénarios Devnet
|
||||
- [x] Créer la première version de `docs/DEVNET_EXECUTION_GUIDE.md` avant les tests ; la compléter et la corriger pendant les campagnes Devnet.
|
||||
- [ ] Documenter la création en ligne de commande d’un wallet de démonstration.
|
||||
- [ ] Documenter la récupération de la pubkey.
|
||||
- [x] Imposer l’utilisation d’un faucet Web pour financer le wallet Devnet ; ne pas dépendre de `solana airdrop`, non fonctionnel dans l’environnement de validation.
|
||||
- [ ] Documenter les champs à saisir dans l’interface desktop.
|
||||
- [ ] Documenter chaque scénario Solana Core étape par étape.
|
||||
- [ ] Documenter chaque scénario SPL étape par étape.
|
||||
- [ ] Documenter les préconditions, comptes, signers, frais estimés et résultats attendus.
|
||||
- [ ] Documenter le replay et les projections à vérifier après chaque exécution.
|
||||
- [ ] Ajouter ensuite les scénarios Metaplex Token Metadata.
|
||||
|
||||
- [x] Confirmer que `kb-app-demo-desktop` appelle `kb-pipeline-demo-scenarios` pour System transfer.
|
||||
- [x] Confirmer le câblage Memo.
|
||||
- [x] Confirmer le câblage SPL Token classique.
|
||||
- [x] Confirmer le câblage SPL ATA.
|
||||
- [x] Confirmer le câblage SPL Token-2022.
|
||||
- [x] Confirmer que ces workflows ne sont pas dupliqués dans `kb-pipeline`.
|
||||
- [ ] Vérifier que chaque option HTML correspond à un scénario backend accessible.
|
||||
- [ ] Vérifier simulation, envoi, progression, résumé et diagnostics en runtime Devnet.
|
||||
- [ ] Vérifier le replay post-exécution et la matérialisation pour chaque famille.
|
||||
- [ ] Raccorder ou documenter le workflow `execute_devnet_spl_token_lifecycle`, présent dans la crate mais non exposé par l’application desktop.
|
||||
# 8.1 Convention et admission des IDL
|
||||
|
||||
## 6. Cycle de vie WebSocket
|
||||
- [x] Documenter la convention `<PROGRAM_ID>.<protocol_type>.<protocol_code>[.<version>].json` dans `idls/001.README.md`.
|
||||
- [x] Renommer l’IDL active Metaplex Token Metadata avec le segment `metadata`.
|
||||
- [x] Conserver le contenu JSON des IDL strictement inchangé.
|
||||
- [x] Décider que la classification et le renommage des autres IDL seront effectués au moment où leur décodeur ou exécuteur devient actif.
|
||||
- [ ] Maintenir progressivement un inventaire des sources, versions ou commits des IDL actives.
|
||||
|
||||
- [x] Vérifier qu’aucun pool WebSocket n’est créé au démarrage.
|
||||
- [x] Vérifier la création paresseuse au premier accès.
|
||||
- [x] Vérifier le stockage du pool dans `AppState`.
|
||||
- [x] Vérifier la survie de la session après fermeture de `demo_ws`.
|
||||
- [x] Vérifier la récupération de l’état à la réouverture.
|
||||
- [ ] Vérifier la fermeture explicite.
|
||||
- [ ] Vérifier le timeout.
|
||||
- [ ] Vérifier l’arrêt global de l’application.
|
||||
- [x] Vérifier que la fermeture de la fenêtre n’appelle jamais la déconnexion globale.
|
||||
# 8.1 Ordre metadata après validation des exécuteurs existants
|
||||
|
||||
## 7. Initialisation PostgreSQL et splash
|
||||
- [ ] Créer le pipeline metadata général et la fenêtre desktop spécialisée `demo_execution_metadata`.
|
||||
- [ ] Traiter d’abord SPL Token Metadata incorporé à Token-2022.
|
||||
- [ ] Traiter ensuite le programme Metaplex Token Metadata et son exécuteur.
|
||||
- [ ] Décider ensuite de la création de `kb-offchain-transport` comme transport off-chain général : metadata HTTP(S)/IPFS/Arweave, prix et taux, APIs Jupiter et autres fournisseurs ; évaluer séparément les opérations off-chain mutables.
|
||||
|
||||
- [x] Charger l’environnement.
|
||||
- [x] Charger et valider la configuration.
|
||||
- [x] Initialiser le logging.
|
||||
- [x] Initialiser le pool HTTP.
|
||||
- [x] Se connecter à PostgreSQL et confirmer la disponibilité du profil `mainnet_research`.
|
||||
- [x] Appeler `initialize_postgres_schema_for_startup` après disponibilité du frontend splash.
|
||||
- [x] Appeler `emit_sql_startup_table_report`.
|
||||
- [x] Relier `emit_sql_startup_error`.
|
||||
- [x] Relier `emit_sql_startup_splash`.
|
||||
- [x] Ouvrir `main` seulement après le rapport PostgreSQL et le fade-out.
|
||||
- [x] Fermer le splash après le statut final.
|
||||
- [x] Ne pas initialiser WebSocket dans cette séquence.
|
||||
- [x] Rendre les zones du splash scrollables sans afficher leurs barres de défilement.
|
||||
- [x] Garder automatiquement le dernier log et le dernier message visibles.
|
||||
- [x] Afficher connexion, schéma, nombre de tables, tables manquantes et statut final.
|
||||
- [ ] Supprimer l’écrasement artificiel de `auto_initialize_schema` à `false` dans le chemin du splash et respecter la valeur du profil actif.
|
||||
- [x] Valider visuellement les messages intermédiaires, l’ouverture de `main`, l’absence de scrollbar visible et l’auto-scroll ; conserver le fade CSS Tauri/Linux comme limitation visuelle non bloquante.
|
||||
# 9. Metaplex Token Metadata — décodeur
|
||||
|
||||
## 8. Purge contrôlée des données dérivées
|
||||
- [x] IDL JSON local présent et renommé selon `<PROGRAM_ID>.<protocol_type>.<protocol_code>.json`.
|
||||
- [x] Six erreurs réelles isolées : 5 `create_metadata_account_v3`, 1 `transfer`.
|
||||
- [x] Cause des faux échecs identifiée : comparaison stricte incorrecte des privilèges globaux avec les metas CPI.
|
||||
- [x] Validation corrigée pour exiger les privilèges nécessaires sans refuser les privilèges supplémentaires.
|
||||
- [x] Replay ciblé : 6 décodées, 0 échec.
|
||||
- [x] Loader : transactions échouées, payloads tronqués et variantes inconnues distingués.
|
||||
- [ ] Comparer systématiquement runtime, IDL local, builders et interface officielle pour les variantes couvertes.
|
||||
- [ ] Vérifier les comptes optionnels et variantes legacy.
|
||||
- [ ] Ajouter des fixtures issues des six transactions réelles sans dépendre de la base runtime.
|
||||
- [ ] Étendre le replay Metaplex à un corpus plus large que les six signatures de correction.
|
||||
- [ ] Vérifier les comptes Metaplex et leurs rôles sur instructions externes et CPI.
|
||||
- [ ] Fermer explicitement la matrice du décodeur Metaplex avant de commencer son exécuteur.
|
||||
|
||||
- [x] Inventorier les tables via les migrations `kb-store` 0001 à 0004.
|
||||
- [x] Classer `kb_sol_raw_transactions` et `kb_sol_obs_transaction_observations` comme acquisition raw ; classer core, ledger, decode, coverage et matérialisation comme dérivés reconstructibles.
|
||||
- [x] Confirmer qu’aucune table actuellement définie par `kb-store` ne reste ambiguë pour cette reconstruction.
|
||||
- [x] Confirmer que le schéma courant est initialisé par les listes SQL idempotentes de `kb-store` et non par une table `_sqlx_migrations` active.
|
||||
- [ ] Corriger `kb-store/maintenance/reset_derived_store_keep_raw.sql` pour conserver explicitement les deux tables d’acquisition et utiliser une stratégie `TRUNCATE ... RESTART IDENTITY` pour les tables dérivées.
|
||||
- [x] Conserver `kb_sol_raw_transactions` avec 4 574 transactions et remettre tous les `processing_state` à `received`.
|
||||
- [ ] Restaurer ou accepter explicitement la perte des anciennes lignes de `kb_sol_obs_transaction_observations` supprimées pendant la reconstruction manuelle.
|
||||
- [x] Recréer manuellement toutes les tables manquantes depuis les scripts SQL de `kb-store`.
|
||||
- [x] Vérifier avant reprise que toutes les tables Core contiennent zéro ligne.
|
||||
- [x] Vérifier avant reprise que `kb_sol_ops_processing_ledger` est vide.
|
||||
- [x] Vérifier avant reprise que les 4 574 raws sont sélectionnables avec l’état `received`.
|
||||
- [x] Purger les tables core, ledger, decode, coverage et matérialisation dérivées.
|
||||
- [x] Encadrer la reconstruction manuelle par une démarche contrôlée sans toucher aux transactions raw.
|
||||
- [x] Ajouter des vérifications avant reprise : compteurs raw, Core et ledger.
|
||||
- [ ] Documenter précisément les tables conservées et la politique de reconstruction dans `kb-store/maintenance/README.md`.
|
||||
- [ ] Relancer l’extraction core sur les 4 574 raws.
|
||||
- [ ] Relancer tous les décodeurs.
|
||||
- [ ] Relancer la matérialisation.
|
||||
- [ ] Valider les compteurs et erreurs.
|
||||
- [ ] Contrôler la reconstruction de chaque projection attendue.
|
||||
# 10. Metaplex Token Metadata — exécuteur et Devnet
|
||||
|
||||
### 8.1 Anomalies observées avant reconstruction
|
||||
|
||||
- [ ] Auditer les instructions Loader immuables/v4 d’un octet qui échouent actuellement comme `*_tag_truncated`, notamment lorsque la transaction porte `UnsupportedProgramId`.
|
||||
- [ ] Décider, signature réelle à l’appui, si ces formes doivent être `Unsupported`/`Ignored` plutôt que `Failed`.
|
||||
- [ ] Auditer les flags signer/writable Metaplex réels avant d’assouplir les contrats de comptes.
|
||||
- [ ] Comparer les signatures Metaplex en échec avec Bot2 `0.4.7-pre.035` et le contrat officiel.
|
||||
|
||||
## 9. Jalon fonctionnel Bot2 `0.4.6`
|
||||
|
||||
- [ ] Solana Core équivalent et validé.
|
||||
- [ ] SPL Memo équivalent et validé.
|
||||
- [ ] SPL Token classique équivalent et validé.
|
||||
- [ ] SPL ATA équivalent et validé.
|
||||
- [ ] SPL Token-2022 équivalent et validé.
|
||||
- [ ] ElGamal Registry équivalent et validé.
|
||||
- [ ] Backfill équivalent et validé.
|
||||
- [ ] Extraction core équivalente et validée.
|
||||
- [ ] Replay équivalent et validé.
|
||||
- [ ] Matérialisation équivalente et validée.
|
||||
- [ ] Exécution supportée équivalente et validée.
|
||||
- [ ] Scénarios devnet historiques validés.
|
||||
- [ ] HTTP et WebSocket validés.
|
||||
- [ ] PostgreSQL validé.
|
||||
- [ ] Logging validé.
|
||||
- [ ] Configuration validée.
|
||||
- [ ] Produire un rapport explicite de parité `0.4.6` avant toute clôture Metaplex.
|
||||
|
||||
## 10. Inventaire IDL
|
||||
|
||||
- [ ] Créer `docs/IDL_SOURCES.md`.
|
||||
- [ ] Inventorier chaque IDL local.
|
||||
- [ ] Indiquer protocole et program ID.
|
||||
- [ ] Indiquer source officielle.
|
||||
- [ ] Indiquer version ou commit lorsqu’ils sont connus.
|
||||
- [ ] Indiquer chemin local, statut et usage.
|
||||
- [ ] Documenter les notes de compatibilité.
|
||||
- [ ] Ne pas inventer d’IDL absent.
|
||||
- [ ] Référencer l’IDL Metaplex existant sans le retélécharger.
|
||||
|
||||
## 11. Metaplex Token Metadata — décodeur
|
||||
|
||||
- [ ] Extraire toutes les erreurs Metaplex réelles.
|
||||
- [ ] Regrouper par instruction et type d’échec.
|
||||
- [ ] Isoler `create_metadata_account_v3`.
|
||||
- [ ] Isoler `transfer`.
|
||||
- [ ] Comparer runtime, IDL local, builders et interface officielle.
|
||||
- [ ] Corriger signer et writable flags.
|
||||
- [ ] Gérer comptes optionnels et variantes legacy.
|
||||
- [ ] Distinguer transactions échouées, payloads tronqués et variantes inconnues.
|
||||
- [ ] Ajouter des fixtures issues de transactions réelles.
|
||||
- [ ] Relancer le replay complet Metaplex.
|
||||
- [ ] Obtenir zéro faux échec de metas.
|
||||
|
||||
## 12. Metaplex Token Metadata — exécuteur et devnet
|
||||
Étape fonctionnelle suivante.
|
||||
|
||||
- [ ] Définir les opérations exécutables et celles restant decode-only.
|
||||
- [ ] Compléter les intents typés.
|
||||
- [ ] Compléter les builders.
|
||||
- [ ] Valider l’ordre des comptes.
|
||||
- [ ] Valider signers et writable flags.
|
||||
- [ ] Borner explicitement les variantes supportées.
|
||||
- [ ] Comparer chaque builder aux builders officiels.
|
||||
- [ ] Valider l’ordre exact des comptes.
|
||||
- [ ] Valider signer et writable flags.
|
||||
- [ ] Gérer les comptes optionnels et variantes supportées.
|
||||
- [ ] Ajouter les politiques de sécurité.
|
||||
- [ ] Imposer simulation-first.
|
||||
- [ ] Ajouter l’estimation des coûts.
|
||||
- [ ] Ajouter la validation post-exécution.
|
||||
- [ ] Ajouter les tests unitaires.
|
||||
- [ ] Comparer aux builders officiels.
|
||||
- [ ] Compléter la matrice de couverture.
|
||||
- [ ] Ajouter des scénarios devnet explicites.
|
||||
- [ ] Interdire l’exécution par défaut sur mainnet.
|
||||
- [ ] Afficher plan, signers, simulation et résultat.
|
||||
- [ ] Effectuer un replay post-exécution.
|
||||
- [ ] Interdire l’envoi mainnet par défaut.
|
||||
- [ ] Ajouter limites de coût, estimation des frais et plafond de dépense.
|
||||
- [ ] Ajouter validation post-exécution.
|
||||
- [ ] Ajouter tests unitaires et matrice de couverture.
|
||||
- [ ] Ajouter scénarios Devnet explicites dans `kb-pipeline-demo-scenarios`.
|
||||
- [ ] Exposer les scénarios supportés dans l’application desktop.
|
||||
- [ ] Afficher plan, signers, simulation, envoi et résultat.
|
||||
- [ ] Effectuer le replay post-exécution.
|
||||
- [ ] Vérifier décodage et matérialisation.
|
||||
- [ ] Afficher les diagnostics.
|
||||
- [ ] Afficher des diagnostics bornés.
|
||||
|
||||
## 13. Clippy et Tauri
|
||||
# 11. Anchor
|
||||
|
||||
- [ ] Traiter Clippy seulement après le fonctionnel Metaplex.
|
||||
- [ ] Identifier précisément les expansions de macros Tauri concernées par `question_mark_used`.
|
||||
- [ ] Éviter un `allow` global.
|
||||
- [ ] Documenter toute exception locale et sa portée.
|
||||
- [ ] Obtenir un Clippy propre ou un écart borné et reproductible.
|
||||
À traiter après clôture complète de Metaplex Token Metadata et avant les protocoles applicatifs.
|
||||
|
||||
## 14. Documentation finale et versionnement
|
||||
- [ ] Définir la stratégie d’exploitation des IDL Anchor locaux.
|
||||
- [ ] Définir les contrats génériques de discriminants, comptes et événements.
|
||||
- [ ] Définir les limites entre décodage générique Anchor et décodeurs spécialisés par protocole.
|
||||
- [ ] Ajouter tests et documentation avant intégration de Pump.fun, Raydium, Meteora, Jupiter ou autres protocoles Anchor.
|
||||
|
||||
- [ ] Rendre les README génériques et indépendants de la migration.
|
||||
- [ ] Retirer les numéros de version des README.
|
||||
- [ ] Retirer le récit Bot2 vers Bot3 des README actifs.
|
||||
- [ ] Créer `USAGES.md` pour chaque crate publique.
|
||||
- [ ] Documenter API, types, traits, fonctions, builders, exemples, invariants, erreurs, limites et intégrations.
|
||||
- [ ] Ajouter des roadmaps par crate uniquement lorsqu’elles apportent une valeur réelle.
|
||||
- [ ] Conserver au plus une courte note historique.
|
||||
- [ ] Ne passer à `0.4.7` qu’après parité `0.4.6`, Metaplex complet, replay validé et documentation terminée.
|
||||
- [ ] Mettre à jour `CHANGELOG.md` uniquement lors de cette validation explicite.
|
||||
# 12. Documentation finale
|
||||
|
||||
## 15. Validation finale
|
||||
Cette section ne commence qu’après validation des exécuteurs actuels et clôture fonctionnelle Metaplex.
|
||||
|
||||
## 12.1 README
|
||||
|
||||
- [ ] Réécrire le README racine pour décrire uniquement Bot3 et son architecture actuelle.
|
||||
- [ ] Réécrire le README de chaque crate pour expliquer son rôle, ses responsabilités et ses limites.
|
||||
- [ ] Ajouter des liens vers les documents spécialisés pertinents.
|
||||
- [ ] Retirer le récit de migration Bot2 → Bot3 des documents actifs.
|
||||
- [ ] Retirer les listes d’évolution par version des README.
|
||||
- [ ] Lorsqu’une fonctionnalité évolue, modifier le paragraphe fonctionnel correspondant au lieu d’ajouter une entrée chronologique.
|
||||
|
||||
## 12.2 Usage des APIs et binaires
|
||||
|
||||
- [ ] Créer un `USAGE.md` dans chaque crate publique ou binaire pertinent.
|
||||
- [ ] Lister les APIs publiques réellement destinées aux consommateurs.
|
||||
- [ ] Fournir des exemples Rust compilables ou quasi compilables.
|
||||
- [ ] Documenter les types, traits, fonctions, builders, erreurs, invariants et limites.
|
||||
- [ ] Documenter les commandes et options des binaires.
|
||||
- [ ] Documenter les workflows d’intégration entre crates.
|
||||
- [ ] Éviter de recopier mécaniquement toute l’API interne.
|
||||
|
||||
## 12.3 Documentation issue de Bot2
|
||||
|
||||
- [ ] Inventorier les documents Bot2 encore fonctionnellement pertinents.
|
||||
- [ ] Réécrire leur contenu pour l’architecture, les noms et les règles Bot3.
|
||||
- [ ] Ne conserver aucune formulation laissant penser que Bot3 dépend conceptuellement de Bot2.
|
||||
- [ ] Supprimer les documents de migration devenus inutiles, dont cette checklist.
|
||||
|
||||
## 12.4 IDL
|
||||
|
||||
L’ancien bloc `docs/IDL_SOURCES.md` n’est pas un prérequis autonome puisque les IDL sont déjà stockés localement.
|
||||
|
||||
- [ ] Ajouter dans la documentation technique existante un inventaire léger des IDL réellement présents sous `idls/`.
|
||||
- [ ] Pour chaque IDL utilisé, indiquer protocole, Program ID, source, version/commit connu, chemin local et usage.
|
||||
- [ ] Ne pas inventer de source ou de version absente.
|
||||
|
||||
# 13. Versionnement final
|
||||
|
||||
- [ ] Clôturer toutes les tâches fonctionnelles de cette checklist.
|
||||
- [ ] Terminer la documentation finale.
|
||||
- [ ] Vérifier qu’aucun document actif ne présente Bot2 comme dépendance historique nécessaire.
|
||||
- [ ] Aligner les versions du workspace Bot3 sur `0.4.7`.
|
||||
- [ ] Mettre à jour `CHANGELOG.md` avec l’état fonctionnel final, sans dupliquer les README.
|
||||
- [ ] Produire l’archive finale selon `docs/DELTA_WORKFLOW.md`.
|
||||
- [ ] Supprimer `KHADHROONY_BOT3_MIGRATION_CLOSURE_TODO.md` après validation explicite de la clôture.
|
||||
|
||||
# 14. Validation finale
|
||||
|
||||
- [ ] `cargo fmt --all`.
|
||||
- [ ] `cargo check -p kb-config`.
|
||||
- [ ] `cargo test -p kb-config` (44/45 passaient ; contrat de route groupée `kb-pipeline` corrigé dans la prochaine prerelease).
|
||||
- [ ] `cargo check -p kb-pipeline-demo-scenarios`.
|
||||
- [ ] `cargo test -p kb-pipeline-demo-scenarios`.
|
||||
- [ ] `cargo check -p kb-store`.
|
||||
- [ ] `cargo test -p kb-store`.
|
||||
- [ ] `cargo check -p kb-lib`.
|
||||
- [ ] `cargo test -p kb-lib`.
|
||||
- [x] `cargo check -p kb-app-demo-desktop`.
|
||||
- [x] `cargo test -p kb-app-demo-desktop` : 115 tests réussis.
|
||||
- [x] `cargo check --workspace`.
|
||||
- [ ] `cargo test --workspace`.
|
||||
- [x] `python3 scripts/audit_rust_workspace_rules.py` après `pre.058-fix-002`.
|
||||
- [x] `cargo tauri dev -c kb-app-demo-desktop/tauri.conf.json` : démarrage, splash, PostgreSQL, fenêtres et export CSV validés.
|
||||
- [ ] `cargo clippy --all-targets` en dernier.
|
||||
- [ ] `cargo check --workspace`.
|
||||
- [ ] `cargo clippy --all-targets`.
|
||||
- [ ] `python3 scripts/audit_rust_workspace_rules.py`.
|
||||
- [ ] Vérifier les bindings TS-RS régénérés.
|
||||
- [ ] Vérifier l’absence de secrets dans l’archive.
|
||||
- [ ] Vérifier l’absence de `target`, `node_modules`, `dist`, logs, bases, `.env`, `Cargo.lock`, `package-lock.json` et bindings générés exclus par les règles de livraison.
|
||||
- [ ] Valider toutes les fenêtres desktop.
|
||||
- [ ] Valider HTTP, WebSocket, Backfill, Core extraction, Decode replay et SQL.
|
||||
- [ ] Valider Exécution Solana Core et Exécution SPL sur Devnet.
|
||||
- [ ] Valider Metaplex Executor et replay post-exécution sur Devnet.
|
||||
- [ ] Valider configuration, logging et PostgreSQL sur les profils requis.
|
||||
- [ ] Vérifier que les protocoles applicatifs différés sont documentés hors de cette checklist.
|
||||
|
||||
## 16. Critères de clôture
|
||||
# 15. Critères de clôture
|
||||
|
||||
- [ ] Toutes les crates compilent.
|
||||
- [ ] Tous les tests workspace passent.
|
||||
- [ ] Audit Rust propre.
|
||||
- [ ] Audit TS-RS propre.
|
||||
- [ ] Aucun chemin Bot2 supprimé encore actif.
|
||||
- [ ] Toutes les fenêtres fonctionnent.
|
||||
- [ ] WebSocket persistant validé.
|
||||
- [ ] `.env` et Helius validés.
|
||||
- [ ] PostgreSQL et splash validés.
|
||||
- [ ] Données dérivées purgées et reconstruites.
|
||||
- [ ] Niveau `0.4.6` restauré.
|
||||
- [ ] UI JSON/texte cohérente.
|
||||
- [ ] Aucun contrôle Copier/Effacer dupliqué.
|
||||
- [ ] Journaux hors accordéon.
|
||||
- [ ] Fenêtres SQL dimensionnées.
|
||||
- [ ] Routes de logs obsolètes supprimées.
|
||||
- [ ] Console active.
|
||||
- [ ] Inventaire IDL terminé.
|
||||
- [ ] Zéro faux échec Metaplex de metas.
|
||||
- [ ] Exécuteur et démos Metaplex validés.
|
||||
- [ ] Clippy/Tauri finalisés.
|
||||
- [ ] Documentation et `USAGES.md` terminés.
|
||||
- [ ] Passage à `0.4.7` justifié.
|
||||
- [ ] Aucun import ou chemin d’ancienne crate ne subsiste.
|
||||
- [ ] Convention Token-2022 définitivement appliquée et, si nécessaire, données dérivées migrées ou rejouées.
|
||||
- [ ] Tauri ne contient plus de logique métier substantielle.
|
||||
- [ ] UI sans contrôle mort ou dupliqué.
|
||||
- [ ] Configuration et secrets validés.
|
||||
- [ ] Logging propre sur tous les profils requis.
|
||||
- [ ] Reconstruction PostgreSQL documentée et reproductible.
|
||||
- [ ] Solana Core, SPL, Metaplex Token Metadata et Anchor au niveau requis avant protocoles applicatifs.
|
||||
- [ ] Exécuteurs supportés validés sur Devnet.
|
||||
- [ ] Documentation active entièrement réécrite pour Bot3.
|
||||
- [ ] `USAGE.md` disponibles pour les surfaces publiques et binaires.
|
||||
- [ ] Workspace aligné sur `0.4.7`.
|
||||
- [ ] Cette checklist est supprimée.
|
||||
|
||||
Reference in New Issue
Block a user