v0.3.10-pre.006-fix.002

This commit is contained in:
2026-09-08 00:17:25 +02:00
parent 919b4ed46d
commit 1a352aa8d0
10 changed files with 288 additions and 66 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/architecture/004-COMPONENT_INVENTORY.md -->
<!-- version: 35 -->
<!-- version: 36 -->
# Inventaire initial des composants KSP
@@ -18,45 +18,46 @@ Ce document maintient l'inventaire synthétique des composants retenus ou presse
## Inventaire synthétique
| Domaine | Composant | Type | Statut | Première cible actuelle | Mission |
|-------------------------|-----------------------------------------|---------------|--------------|---------------------------------|---------------------------------------------------------------------------------------------|
| Core | `ksp-core-lib` | lib | Stable | `0.1.1` | Error/Result, Program IDs et primitives fondamentales |
| Logging | `ksp-logging-lib` | lib | Stable | `0.1.2` | façade unique tracing KSP |
| Config | `ksp-config-lib` | lib | Stable | `0.1.3` | documents, profils, env et persistence Config |
| Config Desk | `ksp-app-config-desk` | app | Stable | `0.1.4` | validation/management Config |
| On-chain HTTP | `ksp-onchain-transport-lib` | lib | Stable | `0.2.1``0.2.4` | HTTP standard complet : 52/52 current + 14/14 historical |
| Wallet | `ksp-wallet-lib` | lib | Stable | `0.2.5` | `.kspwallet`, VIEW/OWNER, secrets, signature, import/export |
| Wallet Desk | `ksp-app-wallet-desk` | app | Stable | `0.2.6` | Wallet + Config + balance HTTP + projection SOL/USD auxiliaire |
| Wallet V2 | `ksp-wallet-lib` | lib | Stable | `0.2.6` | wire/runtime V2 + API default/versionnée + migration explicite |
| Standard WS | `ksp-onchain-transport-lib` | lib | Stable | `0.2.7` | WebSocket Solana 18/18, sessions/subscriptions bornées |
| Helius WS | `ksp-onchain-transport-lib` | lib | Stable | `0.2.8` | LaserStream WS : 7 standard + transaction, actor partagé |
| Yellowstone | `ksp-onchain-transport-lib` | lib | Stable | `0.2.9` | client gRPC standard/provider-neutral |
| Off-chain price | `ksp-offchain-transport-lib` | lib | Stable | `0.2.11` | prix SOL/USD multi-provider, limits et availability |
| SOL Prices Desk | `ksp-app-solprices-desk` | app | Stable | `0.2.12` | HID provider-agnostic pour visualisation/refresh prix |
| Interface passive | `ksp-interface-lib` | lib | Stable | `0.2.13` | façade wire + contrats passifs partagés, dont événements acquisition provider-neutral |
| Program API | `ksp-program-api` | API | Stable | `0.2.14` | contrats extensibles Program |
| Program impl. | `ksp-program-lib` | lib | Retenu | vertical slices ultérieurs | implementations Program officielles |
| Program extension | `ksp-program-<name>-lib` | lib externe | À la demande | dès besoin | implementation externe de `ksp-program-api` |
| Store API | `ksp-store-api` | API | Stable | `0.3.1` | RAW transaction/account, observations, queries, outcomes, rétention et capabilities backend |
| Store runtime | `ksp-store-lib` | lib | Stable | `0.3.2``0.3.4` | façade backend-neutral et conformance RAW 10/10 |
| Store PostgreSQL | `ksp-store-postgres-lib` | lib | Stable | `0.3.2``0.3.4` | backend référence : fondation, RawTransaction et RawAccountState |
| Job lifecycle | `ksp-job-api` | API | Implémenté | `0.3.6` | identité/lifecycle/annulation/notifications latest-value runtime-neutral |
| Backfill | `ksp-job-backfill-lib` | lib | Implémenté | `0.3.6`, extension `0.3.16` | première verticale HTTP puis extension multi-source/historique sans changer lidentité RAW |
| Backfill Desk | `ksp-app-backfill-desk` | app | Implémenté | `0.3.7`, extension `0.3.16` | contrôle du backfill RAW ; sélection des stratégies/sources ajoutée après le worker live |
| Store Desk | `ksp-app-store-desk` | app | Implémenté | `0.3.8` | inspection RAW read-only Transaction/Account/Observation via façade Store |
| Worker lifecycle | `ksp-worker-api` | API | Retenu | `0.3.9` | lifecycle/health/progression génériques des services continus |
| RAW transaction worker | `ksp-worker-raw-transaction-ingest-lib` | worker/lib | Retenu | `0.3.11``0.3.14` | ingestion continue `RawTransaction` multi-source, déduplication/provenance/recovery |
| RAW ingest Desk | `ksp-app-raw-transaction-ingest-desk` | app | Retenu | `0.3.15` | choix/supervision dune ou plusieurs sources/méthodes sans réimplémenter le worker |
| CORE processor | nom à fixer | processor/lib | Retenu | couche CORE | normalisation Solana générique RAW -> CORE |
| CORE worker | nom à fixer | worker | Retenu | fin couche CORE | backlog RAW -> CORE continu |
| Materializer API | `ksp-materializer-api` | API | Retenu | premier groupe DECODE | contrats extensibles matérialisation |
| Materializer impl. | `ksp-materializer-lib` | lib | Retenu | premier groupe DECODE | implementations officielles communes |
| Execution policy | `ksp-execution-policy-api` | API | Retenu | premier vrai besoin execution | décision/safety multi-contexte |
| Execution orchestration | `ksp-execution-lib` | lib | Retenu | premier vrai cycle execution | Program + policy + Wallet + transport |
| Scenarios | `ksp-scenario-<domain>-lib` | lib | Retenu | vertical slices | validation métier/devnet par groupe |
| Scenario API | `ksp-scenario-api` | API | Non retenu | — | norme souple avant trait commun |
| Market Desk | `ksp-app-market-desk` | app | Pressenti | après Meteora/Raydium/Pump/Orca | tokens, pools, trades, liquidity, price, OHLC |
| Trading Intelligence | noms à définir | libs/jobs | Pressenti | après données stables | features/signaux/anomalies/ML |
| Domaine | Composant | Type | Statut | Première cible actuelle | Mission |
|-------------------------|-----------------------------------------|-------------|--------------|---------------------------------|---------------------------------------------------------------------------------------------|
| Core | `ksp-core-lib` | lib | Stable | `0.1.1` | Error/Result, Program IDs et primitives fondamentales |
| Logging | `ksp-logging-lib` | lib | Stable | `0.1.2` | façade unique tracing KSP |
| Config | `ksp-config-lib` | lib | Stable | `0.1.3` | documents, profils, env et persistence Config |
| Config Desk | `ksp-app-config-desk` | app | Stable | `0.1.4` | validation/management Config |
| On-chain HTTP | `ksp-onchain-transport-lib` | lib | Stable | `0.2.1``0.2.4` | HTTP standard complet : 52/52 current + 14/14 historical |
| Wallet | `ksp-wallet-lib` | lib | Stable | `0.2.5` | `.kspwallet`, VIEW/OWNER, secrets, signature, import/export |
| Wallet Desk | `ksp-app-wallet-desk` | app | Stable | `0.2.6` | Wallet + Config + balance HTTP + projection SOL/USD auxiliaire |
| Wallet V2 | `ksp-wallet-lib` | lib | Stable | `0.2.6` | wire/runtime V2 + API default/versionnée + migration explicite |
| Standard WS | `ksp-onchain-transport-lib` | lib | Stable | `0.2.7` | WebSocket Solana 18/18, sessions/subscriptions bornées |
| Helius WS | `ksp-onchain-transport-lib` | lib | Stable | `0.2.8` | LaserStream WS : 7 standard + transaction, actor partagé |
| Yellowstone | `ksp-onchain-transport-lib` | lib | Stable | `0.2.9` | client gRPC standard/provider-neutral |
| Off-chain price | `ksp-offchain-transport-lib` | lib | Stable | `0.2.11` | prix SOL/USD multi-provider, limits et availability |
| SOL Prices Desk | `ksp-app-solprices-desk` | app | Stable | `0.2.12` | HID provider-agnostic pour visualisation/refresh prix |
| Interface passive | `ksp-interface-lib` | lib | Stable | `0.2.13` | façade wire + contrats passifs partagés, dont événements acquisition provider-neutral |
| Program API | `ksp-program-api` | API | Stable | `0.2.14` | contrats extensibles Program |
| Program impl. | `ksp-program-lib` | lib | Retenu | vertical slices ultérieurs | implementations Program officielles |
| Program extension | `ksp-program-<name>-lib` | lib externe | À la demande | dès besoin | implementation externe de `ksp-program-api` |
| Store API | `ksp-store-api` | API | Stable | `0.3.1` | RAW transaction/account, observations, queries, outcomes, rétention et capabilities backend |
| Store runtime | `ksp-store-lib` | lib | Stable | `0.3.2``0.3.4` | façade backend-neutral et conformance RAW 10/10 |
| Store PostgreSQL | `ksp-store-postgres-lib` | lib | Stable | `0.3.2``0.3.4` | backend référence : fondation, RawTransaction et RawAccountState |
| Job lifecycle | `ksp-job-api` | API | Implémenté | `0.3.6` | identité/lifecycle/annulation/notifications latest-value runtime-neutral |
| Backfill | `ksp-job-backfill-lib` | lib | Implémenté | `0.3.6`, extension `0.3.16` | première verticale HTTP puis extension multi-source/historique sans changer lidentité RAW |
| Backfill Desk | `ksp-app-backfill-desk` | app | Implémenté | `0.3.7`, extension `0.3.16` | contrôle du backfill RAW ; sélection des stratégies/sources ajoutée après le worker live |
| Store Desk | `ksp-app-store-desk` | app | Implémenté | `0.3.8` | inspection RAW read-only Transaction/Account/Observation via façade Store |
| RAW transaction common | `ksp-raw-transaction-lib` | lib | Implémenté | `0.3.10` | canonicalisation/wire RAW Transaction v1 source-neutral partagé entre producteurs |
| Worker lifecycle | `ksp-worker-api` | API | Retenu | `0.3.9` | lifecycle/health/progression génériques des services continus |
| RAW transaction worker | `ksp-worker-raw-transaction-ingest-lib` | worker/lib | Retenu | `0.3.11``0.3.14` | ingestion continue `RawTransaction` multi-source, déduplication/provenance/recovery |
| RAW ingest Desk | `ksp-app-raw-transaction-ingest-desk` | app | Retenu | `0.3.15` | choix/supervision dune ou plusieurs sources/méthodes sans réimplémenter le worker |
| STRUCTURAL job | nom à fixer | job/lib | Retenu | couche CORE | normalisation Solana générique RAW -> CORE bornée/rejouable |
| STRUCTURAL worker | nom à fixer | worker/lib | Retenu | fin couche CORE | backlog RAW -> CORE continu |
| Materializer API | `ksp-materializer-api` | API | Retenu | premier groupe DECODE | contrats extensibles matérialisation |
| Materializer impl. | `ksp-materializer-lib` | lib | Retenu | premier groupe DECODE | implementations officielles communes |
| Execution policy | `ksp-execution-policy-api` | API | Retenu | premier vrai besoin execution | décision/safety multi-contexte |
| Execution orchestration | `ksp-execution-lib` | lib | Retenu | premier vrai cycle execution | Program + policy + Wallet + transport |
| Scenarios | `ksp-scenario-<domain>-lib` | lib | Retenu | vertical slices | validation métier/devnet par groupe |
| Scenario API | `ksp-scenario-api` | API | Non retenu | — | norme souple avant trait commun |
| Market Desk | `ksp-app-market-desk` | app | Pressenti | après Meteora/Raydium/Pump/Orca | tokens, pools, trades, liquidity, price, OHLC |
| Trading Intelligence | noms à définir | libs/jobs | Pressenti | après données stables | features/signaux/anomalies/ML |
## Contrats séparés retenus
@@ -114,7 +115,7 @@ RAW -> CORE -> DECODE -> SPECIALIZED
- DECODE : interpretation Program + matérialisation générique/journal ;
- SPECIALIZED : projections queryables de domaine.
## Progression des processors
## Progression structurelle
RAW et CORE sont complétés couche par couche avec jobs/workers/apps utiles.
@@ -154,5 +155,5 @@ Market Desk est progressive : V1 après les DEX prioritaires, puis enrichissemen
- nécessité future d'un pool automatique WS ;
- types exacts `ksp-materializer-api` lors de l'ouverture DECODE ;
- nom/packaging précis du premier RAW worker et du CORE normalizer ;
- nom/packaging précis des futurs STRUCTURAL job et STRUCTURAL worker ;
- granularité des workers DECODE/SPECIALIZED par groupe.

View File

@@ -1,5 +1,5 @@
<!-- file: docs/architecture/005-DEPENDENCY_GRAPH.md -->
<!-- version: 24 -->
<!-- version: 25 -->
# Graphe de dépendances KSP
@@ -251,19 +251,47 @@ D1 RAW
### RAW
La canonicalisation `RawTransaction` source-neutral est une lower layer explicite, séparée du Transport et de la persistence runtime :
```text
transport model
ksp-raw-transaction-lib
-> ksp-store-api
-> ksp-core-lib
-> base64 / serde_json / sha2
```
Interdictions :
```text
ksp-raw-transaction-lib -X-> ksp-onchain-transport-lib
ksp-raw-transaction-lib -X-> ksp-store-lib
ksp-raw-transaction-lib -X-> ksp-job-api / ksp-job-backfill-lib
ksp-raw-transaction-lib -X-> ksp-worker-api / concrete workers
ksp-raw-transaction-lib -X-> Config / runtime async / backend Store
```
Le flux de composition devient :
```text
transport model / fixture source-neutral
|
v
composition/RAW ingestion
producer adapter
|
v
ksp-store-api
ksp-raw-transaction-lib
|
+--> RawTransaction + RawTransactionObservation (types ksp-store-api)
|
v
producer concret
|
v
ksp-store-lib
```
Le Job Backfill et le Worker RAW peuvent donc partager exactement la canonicalisation et le wire sans que la common crate possède le runtime, le Transport ou le backend.
### CORE
```text
@@ -375,9 +403,10 @@ ksp-job-backfill-lib
-> ksp-core-lib
-> ksp-logging-lib
-> ksp-onchain-transport-lib
-> ksp-raw-transaction-lib # canonicalisation/wire RAW v1 partagés
-> ksp-store-lib # default-features = false ; aucun backend imposé
-> futures-util / tokio # runtime privé du job, jamais dans ksp-job-api
-> serde_json / sha2 # canonicalisation RAW v1 et digest
-> serde_json / sha2 # usages résiduels propres au job tant qu'ils existent
```
Il remplit RAW et ne décode aucun programme. Il ne dépend pas de Config : la composition supérieure construit explicitement Transport, Store et `BackfillRequest`. Le réseau appartient au scope/à l'identité durable `(network, signature)` ; rôle, provider, endpoint et protocole restent des choix ou provenances d'acquisition et ne deviennent jamais une clé de transaction.
@@ -393,6 +422,7 @@ ksp-worker-api
ksp-worker-raw-transaction-ingest-lib
-> ksp-worker-api
-> ksp-onchain-transport-lib
-> ksp-raw-transaction-lib
-> ksp-store-lib
-> ksp-logging-lib
# Config reste possédé par la composition supérieure ; aucune dépendance backend/provider physique
@@ -406,7 +436,7 @@ ksp-worker-control-lib
Le worker RAW Transaction n'est pas défini comme « un worker WebSocket » ou « un worker gRPC ». Il reçoit une ou plusieurs stratégies d'acquisition construites au-dessus des façades KSP réellement disponibles ; celles-ci peuvent être alternatives, complémentaires (discovery + hydration), redondantes entre providers ou spécialisées live/catch-up/gap-repair. La transaction canonique reste identifiée indépendamment de la source et chaque acquisition utile conserve sa propre observation/provenance Store.
RAW worker et CORE worker sont introduits à la fin de leur couche respective, lorsque persistence/backlog sont disponibles. Les workers DECODE/SPECIALIZED sont introduits avec les groupes Program concernés plutôt que tous anticipés en bloc.
RAW worker puis STRUCTURAL worker sont introduits à la fin de leur couche respective, lorsque persistence/backlog sont disponibles. Le traitement RAW -> CORE borné est porté par un STRUCTURAL job distinct du service continu. Les workers DECODE/SPECIALIZED sont introduits avec les groupes Program concernés plutôt que tous anticipés en bloc.
## Apps

View File

@@ -1,5 +1,5 @@
<!-- file: docs/architecture/009-ACQUISITION_WORKERS_AND_JOBS.md -->
<!-- version: 15 -->
<!-- version: 16 -->
# Acquisition, workers, jobs et pipelines spécialisés
@@ -263,7 +263,7 @@ CORE normalizer -X-> ksp-materializer-api
`ksp-interface-lib` peut fournir les wires Solana génériques nécessaires à la structure blockchain.
### Job replay CORE
### STRUCTURAL job
Un job borné peut rejouer :
@@ -279,9 +279,9 @@ D2 CORE
sans redemander les données au réseau.
### Worker CORE
### STRUCTURAL worker
Un worker CORE continu peut consommer le backlog RAW nouvellement persisté et produire CORE.
Le STRUCTURAL worker continu peut consommer le backlog RAW nouvellement persisté et produire CORE.
Le Store reste source de vérité du backlog ; les notifications ne sont qu'un wake-up.
@@ -499,10 +499,10 @@ Le Worker conserve seul son runtime continu, ses sources actives, sa continuité
Les événements Interface peuvent servir de signal provider-neutral à la composition live, mais ne constituent jamais le backlog durable. Après crash ou perte d'un événement, la reprise s'appuie sur Store et sur les primitives de replay/hydratation appropriées.
### CORE replay/worker
### STRUCTURAL job/worker
```text
CORE processor
STRUCTURAL job / STRUCTURAL worker
-> ksp-interface-lib si wires génériques nécessaires
-> ksp-store-api
-> ksp-core-lib

View File

@@ -1,5 +1,5 @@
<!-- file: docs/architecture/010-APPS_SERVICES_SCENARIOS_AND_CONTROL.md -->
<!-- version: 12 -->
<!-- version: 13 -->
# Applications, services, scenarios et control plane
@@ -197,13 +197,13 @@ Exemples conceptuels :
```text
ksp-worker-raw-transaction-ingest-lib # premier runtime worker réutilisable retenu
future autonomous raw-ingest binary # seulement si un besoin de service séparé le justifie
future CORE worker
future STRUCTURAL worker
future group-specific DECODE/SPECIALIZED workers when justified
```
Le premier worker RAW est volontairement prévu comme bibliothèque réutilisable afin qu'une Desk ou un futur host puisse le construire sans dupliquer sa logique. Un binaire autonome n'est pas créé par convention seule ; s'il apparaît, il reste un host mince au-dessus de la même bibliothèque et de `ksp-worker-api`.
RAW et CORE reçoivent leurs workers à la fin de leur couche respective. Les workers DECODE/SPECIALIZED ne sont plus tous anticipés comme une chaîne globale fixe : leur granularité doit émerger des premiers vertical slices Program.
RAW reçoit son worker dingestion à la fin de sa couche ; CORE reçoit ensuite son STRUCTURAL worker lorsque sa persistence/backlog sont disponibles. Les workers DECODE/SPECIALIZED ne sont plus tous anticipés comme une chaîne globale fixe : leur granularité doit émerger des premiers vertical slices Program.
Le binaire, lorsqu'il existe, doit rester mince.

View File

@@ -1,5 +1,5 @@
<!-- file: docs/plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md -->
<!-- version: 95 -->
<!-- version: 96 -->
# Séquence des releases fonctionnelles KSP
@@ -591,7 +591,7 @@ RAW persisted
-> Solana generic normalization
-> CORE persistence
-> RAW->CORE replay/backfill
-> CORE worker/service
-> STRUCTURAL worker/service
-> CORE inspection/control app
```

View File

@@ -1,5 +1,5 @@
<!-- file: docs/plans/031-V0_3_10_RAW_TRANSACTION_INGEST_PLAN.md -->
<!-- version: 11 -->
<!-- version: 12 -->
# Plan v0.3.10 — RAW Transaction commune + qualification cross-source
@@ -298,6 +298,7 @@ Cible retenue :
ksp-raw-transaction-lib
-> ksp-core-lib
-> ksp-store-api
-> base64
-> serde_json
-> sha2
```
@@ -832,7 +833,7 @@ gRPC protocol + metadata publique/secrète + session settings
Cela suffit comme handoff pour matérialiser et tester la bibliothèque Worker programmatiquement à partir de `0.3.11`. Aucune release Worker najoute par défaut un `std.raw_transaction_ingest` qui forcerait `ksp-config-lib` à dépendre du Worker concret.
Le choix utilisateur/composition de « quelles sources activer » appartient naturellement au futur `ksp-app-raw-transaction-ingest-desk` `0.3.11`. Si `0.3.10` découvre un manque **Transport** indispensable (par exemple un profil Helius de preuve ou un rôle HTTP live), ladaptation Config reste limitée au standard Transport et ne crée pas de dépendance inversée.
Le choix utilisateur/composition de « quelles sources activer » appartient naturellement au futur `ksp-app-raw-transaction-ingest-desk` `0.3.15`. Si `0.3.10` découvre un manque **Transport** indispensable (par exemple un profil Helius de preuve ou un rôle HTTP live), ladaptation Config reste limitée au standard Transport et ne crée pas de dépendance inversée.
### 13.3 Secrets
@@ -1081,6 +1082,44 @@ Ancienne cible `0.3.11`, décalée après finalisation complète du Worker.
Ancienne cible `0.3.12`, décalée sans changer la frontière Job historique paramétré / Worker live.
### Note durable de génération des prompts `0.3.12` à `0.3.15`
Ne pas pré-générer maintenant quatre prompts complets qui figeraient des hypothèses avant leurs releases. Le prompt `0.3.11` reste produit dans la dernière prerelease de `0.3.10`; ensuite, chaque release produit **uniquement le prompt de la release suivante** depuis sa base stable réellement obtenue et conformément à `docs/rules/PROMPT_STRUCTURE.md`.
Chaîne de handoff obligatoire :
```text
fermeture 0.3.11 -> prompt 0.3.12 Yellowstone + hydration + continuity
fermeture 0.3.12 -> prompt 0.3.13 WS/Helius/HTTP live + convergence multi-source
fermeture 0.3.13 -> prompt 0.3.14 gap repair/hardening + smokes
fermeture 0.3.14 -> prompt 0.3.15 RAW ingest Desk
```
Chaque prompt doit reprendre comme **input**, pas comme vérité figée, les handoffs des sections 8 à 17 de ce plan et les références architecture/validation réellement réconciliées par la release précédente. Il doit obligatoirement :
```text
partir du dernier tag stable réel de la release précédente ;
relire RULES.md, PROMPT_STRUCTURE.md, architecture 004/005/009/010/011 et les plans/validations courants ;
réauditer les versions/capabilities provider et dépendances externes qui peuvent avoir changé ;
faire de pre.001 un audit + brainstorming + sizing, sans développement lourd ;
recalculer toutes les tranches sous le budget 1520 min et rescinder la release si nécessaire ;
réserver les couloirs gate technique/live -> réconciliation documentaire -> préparation de publication ;
préserver ksp-raw-transaction-lib comme common lower layer sans runtime/Transport/Worker/Job ;
préserver la distinction Job borné / Worker continu et la persistence via ksp-store-lib ;
ne jamais transformer les objectifs ci-dessous en obligation si l'audit de la base réelle les invalide.
```
Contenu minimal à transférer :
| Prompt à produire | Mission de départ à réauditer | Frontière à préserver |
|:------------------|:------------------------------------------------------------------------|:----------------------------------------------------------------------------------|
| `0.3.12` | Yellowstone transaction/block/status + hydration HTTP + replay/frontier | aucun élargissement WS/Helius/HTTP multi-source non nécessaire au gate |
| `0.3.13` | WS standard, Helius et HTTP live + convergence multi-source | réutiliser l'actor Transport ; aucune duplication protocolaire dans le Worker |
| `0.3.14` | gap repair/hardening + smokes accessibles | aucune prétention lossless sans preuve ; unresolved gaps visibles |
| `0.3.15` | Desk Tauri de sélection/supervision | UI sans réimplémenter acquisition, canonicalisation, dedup, repair ou persistence |
Cette note sert de **pré-handoff de génération**. Elle ne remplace ni les futurs plans `pre.001`, ni les prompts autonomes effectivement produits à la fermeture de chaque release.
## 18. Gates Cargo futurs obligatoires
Dès création des nouvelles crates et à la fermeture technique :

View File

@@ -1,5 +1,5 @@
<!-- file: docs/validation/027-V0_3_10_RAW_TRANSACTION_INGEST.md -->
<!-- version: 11 -->
<!-- version: 12 -->
# Validation v0.3.10 — RAW Transaction commune + qualification cross-source
@@ -978,7 +978,7 @@ Décision de qualification :
Yellowstone transaction wire = QUALIFIÉ
Yellowstone Transaction RAW = HYDRATION HTTP (block_time absent)
Yellowstone Block RAW complet = HYDRATION HTTP (meta JSON byte-identical non prouvée)
TR-C2 adapter productif = différé au Worker pre.007
TR-C2 adapter productif = différé au Worker 0.3.11
```
Le manifest Backfill ajoute uniquement en dev :
@@ -991,3 +991,35 @@ yellowstone-grpc-proto = { workspace = true, features = ["tonic"] }
`tests/dependency_boundary.rs` vérifie qu'elles ne figurent pas avant `[dev-dependencies]`, et le canari hardening attend exactement `{tokio, tokio-tungstenite, tonic, yellowstone-grpc-proto}` en dev tout en gardant l'inventaire normal inchangé.
L'environnement d'assemblage ne fournit ni `cargo`, ni `rustc`, ni `rustfmt`. Le gate Cargo/Clippy/tests reste donc opérateur. Les audits Python KSP et Markdown sont exécutés après fermeture du delta et leurs résultats sont enregistrés dans `deltas/0.3.10/pre.006.md`.
### 13.11 Rejeu opérateur de `pre.006-fix.001` et `pre.006-fix.002`
Le rejeu opérateur communiqué le 7 septembre 2026 confirme la correction des trois familles d'erreurs initiales de `pre.006-fix.001` :
```text
cargo check --workspace PASS
ksp-raw-transaction-lib 16 unit + 10 integration/public/security PASS
ksp-onchain-transport-lib 387 unit + 51 public + 43 release + doctests PASS
ksp-job-backfill-lib 51 unit + suites integration PASS hors lint strict
```
Le seul échec de `cargo clippy --workspace --all-targets --all-features -- -D warnings` restant est :
```text
crates/ksp-job-backfill-lib/tests/yellowstone_raw_parity.rs
missing documentation for the crate
```
Le fichier d'intégration Yellowstone était le seul test de la crate sans rustdoc de crate `//! ...`. `pre.006-fix.002` ajoute uniquement cette documentation crate-level et incrémente la version technique à `0.3.10-pre.6.fix.2`; aucune logique de fixture, aucun golden, aucune dépendance et aucun comportement de production ne changent.
Le même correctif réconcilie aussi l'architecture durable avec l'extraction common déjà effective :
```text
ksp-raw-transaction-lib est inventoriée explicitement ;
son graphe lower-layer est documenté ;
CORE processor / CORE worker deviennent STRUCTURAL job / STRUCTURAL worker ;
le plan conserve une note de génération séquentielle des prompts 0.3.12 -> 0.3.15.
```
Le gate opérateur à rejouer après application de `pre.006-fix.002` est le même que `pre.006-fix.001`, en priorité le Clippy strict puis `cargo test -p ksp-job-backfill-lib`.