0.3.16-pre.009
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/000-README.md -->
|
||||
<!-- version: 74 -->
|
||||
<!-- version: 75 -->
|
||||
|
||||
# Documentation KSP
|
||||
|
||||
@@ -133,7 +133,7 @@ Le plan historique de la phase fondatrice clôturée est conservé dans [`plans/
|
||||
|
||||
La candidate `0.3.9 — Worker API générique + audit RAW Transaction` est réconciliée dans [`plans/030-V0_3_9_WORKER_API_RAW_TRANSACTION_AUDIT_PLAN.md`](plans/030-V0_3_9_WORKER_API_RAW_TRANSACTION_AUDIT_PLAN.md) avec [`validation/026-V0_3_9_WORKER_API_RAW_TRANSACTION_AUDIT.md`](validation/026-V0_3_9_WORKER_API_RAW_TRANSACTION_AUDIT.md). `ksp-worker-api` reste Core-only et runtime-neutral pour les services continus ; l'architecture RAW place Store/`RawTransaction` au centre et sépare strictement le Job Backfill historique paramétré du futur Worker Ingest continu start/stop. [`../crates/ksp-worker-api/README.md`](../crates/ksp-worker-api/README.md), [`../crates/ksp-worker-api/USAGE.md`](../crates/ksp-worker-api/USAGE.md), [`architecture/009-ACQUISITION_WORKERS_AND_JOBS.md`](architecture/009-ACQUISITION_WORKERS_AND_JOBS.md) et [`architecture/011-RAW_TRANSACTION_ACQUISITION.md`](architecture/011-RAW_TRANSACTION_ACQUISITION.md) constituent les références durables avant la lane de publication.
|
||||
|
||||
Les candidates `0.3.10` à `0.3.15` prolongent cette trajectoire RAW dans [`plans/031-V0_3_10_RAW_TRANSACTION_INGEST_PLAN.md`](plans/031-V0_3_10_RAW_TRANSACTION_INGEST_PLAN.md), [`plans/032-V0_3_11_RAW_TRANSACTION_INGEST_WORKER_FOUNDATION_PLAN.md`](plans/032-V0_3_11_RAW_TRANSACTION_INGEST_WORKER_FOUNDATION_PLAN.md), [`plans/033-V0_3_12_YELLOWSTONE_HYDRATION_CONTINUITY_PLAN.md`](plans/033-V0_3_12_YELLOWSTONE_HYDRATION_CONTINUITY_PLAN.md), [`plans/034-V0_3_13_MULTI_SOURCE_LIVE_CONVERGENCE_PLAN.md`](plans/034-V0_3_13_MULTI_SOURCE_LIVE_CONVERGENCE_PLAN.md), [`plans/035-V0_3_14_MULTI_SOURCE_GAP_REPAIR_HARDENING_PLAN.md`](plans/035-V0_3_14_MULTI_SOURCE_GAP_REPAIR_HARDENING_PLAN.md) et [`plans/036-V0_3_15_RAW_TRANSACTION_INGEST_DESK_PLAN.md`](plans/036-V0_3_15_RAW_TRANSACTION_INGEST_DESK_PLAN.md), avec leurs matrices [`validation/027-V0_3_10_RAW_TRANSACTION_INGEST.md`](validation/027-V0_3_10_RAW_TRANSACTION_INGEST.md) à [`validation/032-V0_3_15_RAW_TRANSACTION_INGEST_DESK.md`](validation/032-V0_3_15_RAW_TRANSACTION_INGEST_DESK.md). Cette séquence matérialise le Common RAW partagé, la fondation Worker, Yellowstone live, cinq familles multi-source, la continuité/gap repair puis le Desk multi-route ; `0.3.15` ferme en plus les anomalies Mainnet observées de convergence `logMessages`, backpressure Yellowstone soutenue et shutdown post-half-close. Le handoff [`plans/037-V0_3_16_RAW_RESILIENCE_CONFLICT_HANDOFF.md`](plans/037-V0_3_16_RAW_RESILIENCE_CONFLICT_HANDOFF.md) réserve explicitement à `0.3.16` les variantes RAW durables, la résolution des conflits, les retries Store/Transport et les vues correspondantes de Store Desk ; `0.3.17` et `0.3.18` portent ensuite le Backfill multi-route et son Desk adapté.
|
||||
Les candidates `0.3.10` à `0.3.15` prolongent cette trajectoire RAW dans [`plans/031-V0_3_10_RAW_TRANSACTION_INGEST_PLAN.md`](plans/031-V0_3_10_RAW_TRANSACTION_INGEST_PLAN.md), [`plans/032-V0_3_11_RAW_TRANSACTION_INGEST_WORKER_FOUNDATION_PLAN.md`](plans/032-V0_3_11_RAW_TRANSACTION_INGEST_WORKER_FOUNDATION_PLAN.md), [`plans/033-V0_3_12_YELLOWSTONE_HYDRATION_CONTINUITY_PLAN.md`](plans/033-V0_3_12_YELLOWSTONE_HYDRATION_CONTINUITY_PLAN.md), [`plans/034-V0_3_13_MULTI_SOURCE_LIVE_CONVERGENCE_PLAN.md`](plans/034-V0_3_13_MULTI_SOURCE_LIVE_CONVERGENCE_PLAN.md), [`plans/035-V0_3_14_MULTI_SOURCE_GAP_REPAIR_HARDENING_PLAN.md`](plans/035-V0_3_14_MULTI_SOURCE_GAP_REPAIR_HARDENING_PLAN.md) et [`plans/036-V0_3_15_RAW_TRANSACTION_INGEST_DESK_PLAN.md`](plans/036-V0_3_15_RAW_TRANSACTION_INGEST_DESK_PLAN.md), avec leurs matrices [`validation/027-V0_3_10_RAW_TRANSACTION_INGEST.md`](validation/027-V0_3_10_RAW_TRANSACTION_INGEST.md) à [`validation/032-V0_3_15_RAW_TRANSACTION_INGEST_DESK.md`](validation/032-V0_3_15_RAW_TRANSACTION_INGEST_DESK.md). Cette séquence matérialise le Common RAW partagé, la fondation Worker, Yellowstone live, cinq familles multi-source, la continuité/gap repair puis le Desk multi-route ; `0.3.15` ferme en plus les anomalies Mainnet observées de convergence `logMessages`, backpressure Yellowstone soutenue et shutdown post-half-close. Le handoff historique [`plans/037-V0_3_16_RAW_RESILIENCE_CONFLICT_HANDOFF.md`](plans/037-V0_3_16_RAW_RESILIENCE_CONFLICT_HANDOFF.md) est supersédé pour le sizing par [`plans/038-V0_3_16_RAW_RESILIENCE_CONFLICT_PLAN.md`](plans/038-V0_3_16_RAW_RESILIENCE_CONFLICT_PLAN.md) et [`validation/033-V0_3_16_RAW_RESILIENCE_CONFLICT.md`](validation/033-V0_3_16_RAW_RESILIENCE_CONFLICT.md) : `0.3.16` ferme les fondations RAW multi-variantes, le sélecteur/promotion canonique, le conflit durable minimal et l'ingestion Worker non terminale ; `0.3.17` porte la résilience opérationnelle et le cycle de vie complet des variantes, `0.3.18` l'inspection/résolution Store Desk, puis les extensions Backfill multi-route et Backfill Desk sont reportées par défaut à `0.3.19` et `0.3.20`.
|
||||
|
||||
## Spécifications de formats
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/architecture/004-COMPONENT_INVENTORY.md -->
|
||||
<!-- version: 43 -->
|
||||
<!-- version: 44 -->
|
||||
|
||||
# Inventaire initial des composants KSP
|
||||
|
||||
@@ -18,46 +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`, extension `0.3.16` | RAW transaction/account, observations ; variantes/conflits/résolutions ajoutés sans backend leak |
|
||||
| Store runtime | `ksp-store-lib` | lib | Stable | `0.3.2`–`0.3.4`, `0.3.16` | façade backend-neutral ; convergence, retry et résolution RAW partagés entre producteurs |
|
||||
| Store PostgreSQL | `ksp-store-postgres-lib` | lib | Stable | `0.3.2`–`0.3.4`, `0.3.16` | backend référence ; variantes conflictuelles et historique de résolution atomiques en `0.3.16` |
|
||||
| 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.17` | première verticale HTTP puis extension multi-route/historique sur convergence Store partagée |
|
||||
| Backfill Desk | `ksp-app-backfill-desk` | app | Implémenté | `0.3.7`, extension `0.3.18` | contrôle du backfill RAW ; sélection/supervision multi-route adaptée au Job `0.3.17` |
|
||||
| Store Desk | `ksp-app-store-desk` | app | Implémenté | `0.3.8`, extension `0.3.16` | inspection RAW + vues conflits/variantes/historique et résolution manuelle réversible |
|
||||
| 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 | Implémenté | `0.3.9` | lifecycle/health/progression génériques des services continus |
|
||||
| RAW transaction worker | `ksp-worker-raw-transaction-ingest-lib` | worker/lib | Implémenté | `0.3.11`–`0.3.15`, ext. `0.3.16` | live cinq familles, continuité/repair et backpressure bornée ; conflits durables étendus en `0.3.16` |
|
||||
| RAW ingest Desk | `ksp-app-raw-transaction-ingest-desk` | app | Implémenté | `0.3.15` | composition réseau-centrique et supervision simultanée de plusieurs routes live |
|
||||
| STRUCTURAL job | nom à fixer | job/lib | Retenu | couche STRUCTURAL | normalisation Solana générique RAW -> STRUCTURAL bornée/rejouable |
|
||||
| STRUCTURAL worker | nom à fixer | worker/lib | Retenu | fin couche STRUCTURAL | backlog RAW -> STRUCTURAL continu |
|
||||
| Materializer API | `ksp-materializer-api` | API | Retenu | premier groupe DECODED | contrats extensibles matérialisation |
|
||||
| Materializer impl. | `ksp-materializer-lib` | lib | Retenu | premier groupe DECODED | 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`, ext. `0.3.16`/`0.3.17` | RAW transaction/account, observations ; variantes/comparateur en `0.3.16`, résolution en `0.3.17` |
|
||||
| Store runtime | `ksp-store-lib` | lib | Stable | `0.3.2`–`0.3.4`, ext. `0.3.16` | façade backend-neutral ; outcomes variantes partagés, inspection/résolution étendues en `0.3.17` |
|
||||
| Store PostgreSQL | `ksp-store-postgres-lib` | lib | Stable | `0.3.2`–`0.3.4`, ext. `0.3.16` | backend référence ; V003 variantes/selector/conflit minimal atomiques, lifecycle complet en `0.3.17` |
|
||||
| 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`, cible ext. `0.3.19` | première verticale HTTP ; compatibilité variantes `0.3.16`, extension multi-route/historique reportée |
|
||||
| Backfill Desk | `ksp-app-backfill-desk` | app | Implémenté | `0.3.7`, cible ext. `0.3.20` | contrôle du backfill RAW ; adaptation multi-route reportée après le programme résilience/Store Desk |
|
||||
| Store Desk | `ksp-app-store-desk` | app | Implémenté | `0.3.8`, extension `0.3.18` | inspection RAW actuelle ; variantes/conflits/résolutions opérateur ajoutés après contrats `0.3.17` |
|
||||
| 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 | Implémenté | `0.3.9` | lifecycle/health/progression génériques des services continus |
|
||||
| RAW transaction worker | `ksp-worker-raw-transaction-ingest-lib` | worker/lib | Implémenté | `0.3.11`–`0.3.16` | live multi-source borné ; Store arbitre les variantes, conflit durable non terminal en `0.3.16` |
|
||||
| RAW ingest Desk | `ksp-app-raw-transaction-ingest-desk` | app | Implémenté | `0.3.15` | composition réseau-centrique et supervision simultanée de plusieurs routes live |
|
||||
| STRUCTURAL job | nom à fixer | job/lib | Retenu | couche STRUCTURAL | normalisation Solana générique RAW -> STRUCTURAL bornée/rejouable |
|
||||
| STRUCTURAL worker | nom à fixer | worker/lib | Retenu | fin couche STRUCTURAL | backlog RAW -> STRUCTURAL continu |
|
||||
| Materializer API | `ksp-materializer-api` | API | Retenu | premier groupe DECODED | contrats extensibles matérialisation |
|
||||
| Materializer impl. | `ksp-materializer-lib` | lib | Retenu | premier groupe DECODED | 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
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/architecture/009-ACQUISITION_WORKERS_AND_JOBS.md -->
|
||||
<!-- version: 22 -->
|
||||
<!-- version: 23 -->
|
||||
|
||||
# Acquisition, workers, jobs et pipelines spécialisés
|
||||
|
||||
@@ -90,7 +90,7 @@ Le job :
|
||||
|
||||
Le caller desktop spécialisé actuel est `ksp-app-backfill-desk`. Il compose Config, le pool HTTP et Store, puis remet ces ressources au runtime Backfill. Il peut retenir le checkpoint terminal uniquement en mémoire Rust pour un Resume in-session ; cette rétention applicative ne transforme pas le checkpoint en garantie de reprise durable après redémarrage.
|
||||
|
||||
Cette verticale `0.3.6`/`0.3.7` est **la première stratégie de backfill**, pas la définition générale du backfill KSP. Son discovery `getSignaturesForAddress` + hydration `getTransaction` est HTTP parce que cette méthode a été choisie pour le premier vertical slice. Après stabilisation du worker live et de sa Desk, `0.3.16` ferme d'abord la résilience RAW partagée : divergences compatibles, variantes conflictuelles durables, résolution/restauration canonique, retry Store et reconnexion Transport. `0.3.17` réaudite ensuite `ksp-job-backfill-lib` pour intégrer les autres stratégies historiques/catch-up pertinentes identifiées par l'audit RAW Transaction de `0.3.9`, puis `0.3.18` adapte `ksp-app-backfill-desk` au Job multi-route.
|
||||
Cette verticale `0.3.6`/`0.3.7` est **la première stratégie de backfill**, pas la définition générale du backfill KSP. Son discovery `getSignaturesForAddress` + hydration `getTransaction` est HTTP parce que cette méthode a été choisie pour le premier vertical slice. Après stabilisation du worker live et de sa Desk, `0.3.16` ferme les fondations RAW multi-variantes et le conflit durable non terminal ; `0.3.17` complète le cycle de vie/résolution des variantes ainsi que la résilience Store/Transport, puis `0.3.18` expose ces contrats dans Store Desk. L'extension multi-route/multi-stratégie de `ksp-job-backfill-lib` est reportée par défaut à `0.3.19`, et l'adaptation correspondante de `ksp-app-backfill-desk` à `0.3.20`.
|
||||
|
||||
### Worker RAW Transaction live
|
||||
|
||||
@@ -465,7 +465,7 @@ ksp-job-backfill-lib
|
||||
-> serde_json/sha2 # discovery/checkpoint/observation propres au Job
|
||||
```
|
||||
|
||||
Le Job conserve seul ses scopes, campagnes, checkpoints et lifecycle. La canonicalisation transactionnelle partagée appartient désormais à `ksp-raw-transaction-lib`; `0.3.17` étendra les stratégies historiques sans déplacer ce rôle.
|
||||
Le Job conserve seul ses scopes, campagnes, checkpoints et lifecycle. La canonicalisation transactionnelle partagée appartient désormais à `ksp-raw-transaction-lib`; l'extension multi-route/historique planifiée à partir de `0.3.19` ne déplacera pas ce rôle.
|
||||
|
||||
### RAW worker
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/architecture/011-RAW_TRANSACTION_ACQUISITION.md -->
|
||||
<!-- version: 18 -->
|
||||
<!-- version: 19 -->
|
||||
|
||||
# Acquisition et alimentation `RawTransaction`
|
||||
|
||||
@@ -840,16 +840,18 @@ Stop Yellowstone post-half-close : status distant tardif classé Closed, status
|
||||
compatibilité étroite : canonique complet + incoming logMessages avec marqueur exact Log truncated
|
||||
```
|
||||
|
||||
Reste hors de cette verticale et nécessite une tranche dédiée :
|
||||
Après fermeture technique de `0.3.16`, restent hors de cette verticale et nécessitent des versions dédiées :
|
||||
|
||||
```text
|
||||
sources EARLY / pre-execution
|
||||
campagne historique multi-source ou caller-paramétrable
|
||||
variantes RAW durables et résolution générale des conflits
|
||||
promotion canonique d'une représentation moins complète vers une plus complète
|
||||
retry Store et reconnexion Transport configurables au niveau prévu par 0.3.16
|
||||
cycle de vie complet des conflits : résolution/reopen/historique/rétention des variantes
|
||||
retry Store et reconnexion Transport configurables
|
||||
Store Desk conflits/variantes/résolutions opérateur
|
||||
```
|
||||
|
||||
Les variantes RAW durables, la promotion canonique strictement prouvée et le conflit durable minimal non terminal sont, eux, acquis par `0.3.16`.
|
||||
|
||||
### 14.3 Gaps Transport Worker
|
||||
|
||||
| ID | Adaptation | Motif |
|
||||
@@ -882,9 +884,9 @@ La règle générale reste fail-closed : une divergence canonique non reconnue p
|
||||
|
||||
Le sens inverse reste volontairement non résolu en `0.3.15` : un canonique tronqué suivi d'une représentation complète n'est pas promu automatiquement. Deux contenus complets divergents, un préfixe incompatible, une différence hors `logMessages` ou toute relation de troncature non prouvée restent des conflits. Cette asymétrie est précisément le point d'entrée du modèle de variantes/promotion/résolution de `0.3.16`.
|
||||
|
||||
## 14.5 Handoff `0.3.16` : résilience RAW et conflits durables
|
||||
## 14.5 Résultat `0.3.16` : fondations multi-variantes et conflits durables
|
||||
|
||||
`0.3.16` doit déplacer la résolution des divergences RAW dans le contrat Store partagé, afin que Worker live et futurs Jobs historiques convergent avec la même politique. Une divergence de contenu n'est plus assimilée automatiquement à une panne d'acquisition.
|
||||
`0.3.16` déplace l'arbitrage durable des divergences RAW dans le contrat Store partagé, afin que Worker live et Jobs historiques utilisent la même politique de convergence. Une divergence conservable n'est plus assimilée automatiquement à une panne d'acquisition.
|
||||
|
||||
Modèle cible :
|
||||
|
||||
@@ -897,17 +899,17 @@ RawTransaction identity (network, signature)
|
||||
-> historique immutable des promotions/résolutions
|
||||
```
|
||||
|
||||
Classification minimale : `Exact`, `CompatibleLessComplete`, `CompatibleMoreComplete`, `Conflict`. Une représentation prouvée moins complète ne remplace jamais le canonique ; une représentation prouvée plus complète peut le promouvoir atomiquement ; un vrai conflit conserve toutes les variantes sans arrêter l'acquisition. La provenance d'un provider n'établit jamais à elle seule une priorité canonique.
|
||||
Classification livrée : `Exact`, `CompatibleLessComplete`, `CompatibleMoreComplete`, `Conflict`, `Incomparable`. Une représentation prouvée moins complète ne remplace jamais le canonique ; une représentation prouvée plus complète le promeut atomiquement ; `Conflict` et `Incomparable` conservent la variante entrante et ouvrent/mettent à jour un conflict case minimal sans arrêter l'acquisition. La provenance d'un provider n'établit jamais à elle seule une priorité canonique.
|
||||
|
||||
Le Worker doit distinguer les problèmes locaux durablement gérables des pannes externes. Un conflit RAW quarantiné laisse la route active et rend la santé au plus `Degraded`. Une indisponibilité Store impose backpressure/pause et retry sans perte silencieuse. Une indisponibilité Transport déclenche une politique de reconnexion bornée/configurable (`initial_delay`, `max_delay`, backoff, `max_attempts`, reset après stabilité). Un terminal `Faulted` reste réservé aux erreurs irréconciliables ou à l'épuisement explicite d'une politique de retry/reconnect.
|
||||
Le Worker distingue désormais le conflit durable d'une panne externe : `QuarantinedConflict` laisse la route `Running` et projette `Degraded`, tandis qu'un ancien backend qui renvoie encore `ERROR_CODE_RAW_CONFLICT` reste traité comme erreur terminale de compatibilité. Les politiques complètes de retry Store/backpressure `Blocked` et de reconnexion Transport configurable sont reportées à `0.3.17` ; elles ne sont pas implicitement revendiquées par `0.3.16`.
|
||||
|
||||
`ksp-app-store-desk` doit ajouter des vues de conflits/variantes et d'historique. Une résolution manuelle peut promouvoir une variante, conserver le canonique, ou produire une variante de fusion assistée. Toute ancienne valeur canonique reste une variante durable et peut être restaurée ultérieurement ; aucun `UPDATE` destructif ne doit rendre une décision manuelle irréversible.
|
||||
`ksp-app-store-desk` reste inchangé en `0.3.16`. Les contrats d'inspection/résolution complets sont préparés en `0.3.17`, puis les vues/actions opérateur de variantes, conflits et historique sont prévues pour `0.3.18`. Toute future décision manuelle doit rester réversible et ne jamais détruire les variantes nécessaires au rollback.
|
||||
|
||||
Le détail de handoff est fixé dans `docs/plans/037-V0_3_16_RAW_RESILIENCE_CONFLICT_HANDOFF.md`.
|
||||
Le handoff historique est conservé dans `docs/plans/037-V0_3_16_RAW_RESILIENCE_CONFLICT_HANDOFF.md`; le sizing et la répartition actuels sont fixés par `docs/plans/038-V0_3_16_RAW_RESILIENCE_CONFLICT_PLAN.md`.
|
||||
|
||||
## 15. Handoff `0.3.17` : Job Backfill multi-stratégie
|
||||
## 15. Handoff `0.3.17` -> `0.3.20`
|
||||
|
||||
Le Job doit conserver son vertical slice existant puis ajouter des stratégies historiques choisies selon requête + capabilities + configuration.
|
||||
`0.3.17` ferme le cycle de vie complet des variantes/conflits et la résilience opérationnelle Store/Transport. `0.3.18` expose ensuite inspection et résolution dans Store Desk. Le Job Backfill multi-stratégie est reporté par défaut à `0.3.19` : il doit conserver son vertical slice existant puis ajouter des stratégies historiques choisies selon requête + capabilities + configuration. L'adaptation Backfill Desk correspondante est ciblée par défaut sur `0.3.20`.
|
||||
|
||||
| Stratégie | Entrée de campagne typique | Acquisition | Admission |
|
||||
|----------------------------------------|-----------------------------------|----------------------------|------------------|
|
||||
@@ -939,11 +941,12 @@ Ordre conseillé :
|
||||
0.3.14 P0 : gaps run-local, coverage prouvée, repair borné, source-loss et shutdown/fairness cross-layer
|
||||
0.3.15 P0 : Raw Transaction Ingest Desk multi-route + stabilité Mainnet Yellowstone/getBlock/polling
|
||||
0.3.15 P1 : diagnostic/convergence logMessages tronqués + backpressure gRPC soutenue + Stop post-half-close
|
||||
0.3.16 P0 : variantes/conflits RAW durables, promotions/résolutions, retries et Store Desk conflicts
|
||||
0.3.17 P0 : block scan historique
|
||||
0.3.17 P0 : replay Yellowstone borné
|
||||
0.3.17 P1 : provider history/archive
|
||||
0.3.17 P1 : Old Faithful
|
||||
0.3.16 P0 : variantes RAW durables, promotion prouvée, conflit minimal durable, Worker non terminal
|
||||
0.3.17 P0 : résolution/rétention des variantes + retry Store + reconnect Transport configurable
|
||||
0.3.18 P0 : Store Desk conflits/variantes/résolutions opérateur
|
||||
0.3.19 P0 : block scan historique + replay Yellowstone borné
|
||||
0.3.19 P1 : provider history/archive + Old Faithful
|
||||
0.3.20 P0 : Backfill Desk multi-route
|
||||
plus tard : substrats directs et sources vendor-specific sans accès actuel
|
||||
```
|
||||
|
||||
@@ -1065,9 +1068,11 @@ TR-C2 = adapter productif Transport DTO -> common réserv
|
||||
0.3.11 = fondation Worker source-neutral, persistence et observabilité
|
||||
0.3.12 = première verticale Yellowstone + hydration/replay continuity
|
||||
0.3.13 = cinq familles live + convergence/fairness/health/shutdown/completeness
|
||||
0.3.16 = résilience RAW, variantes/conflits/résolutions, retry/reconnect et Store Desk
|
||||
0.3.17 = Job Backfill multi-route/multi-stratégie historique
|
||||
0.3.18 = Backfill Desk multi-route
|
||||
0.3.16 = fondations RAW multi-variantes + conflit durable minimal + Worker non terminal
|
||||
0.3.17 = lifecycle/résolution/rétention variantes + retry Store + reconnect Transport
|
||||
0.3.18 = Store Desk variantes/conflits/résolutions
|
||||
0.3.19 cible = Job Backfill multi-route/multi-stratégie historique
|
||||
0.3.20 cible = Backfill Desk multi-route
|
||||
```
|
||||
|
||||
`0.3.9` n'implémente aucune nouvelle stratégie d'acquisition. Il ferme l'architecture et l'inventaire nécessaires aux releases suivantes.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/plans/038-V0_3_16_RAW_RESILIENCE_CONFLICT_PLAN.md -->
|
||||
<!-- version: 5 -->
|
||||
<!-- version: 6 -->
|
||||
|
||||
# Plan `0.3.16` -> `0.3.18` — résilience RAW, variantes, conflits et récupération
|
||||
|
||||
@@ -978,19 +978,19 @@ Backend PostgreSQL : bootstrap V003, variant ledger, rattachement exact des nouv
|
||||
|
||||
#### `0.3.16-pre.005`
|
||||
|
||||
Comparateur partagé : `Exact`, `CompatibleLessComplete`, `CompatibleMoreComplete`, `Conflict`, `Incomparable` ; canaris `logMessages` bidirectionnels et politique fail-closed sur les autres champs. Implémentation livrée par cette tranche ; gate opérateur requis avant `pre.006`.
|
||||
Comparateur partagé : `Exact`, `CompatibleLessComplete`, `CompatibleMoreComplete`, `Conflict`, `Incomparable` ; canaris `logMessages` bidirectionnels et politique fail-closed sur les autres champs. Implémentation livrée et gate opérateur confirmé propre après `pre.005-fix.001`.
|
||||
|
||||
#### `0.3.16-pre.006`
|
||||
|
||||
Sélecteur canonique et promotion atomique : revision, projection V001 cohérente, conservation de l'ancien canonique et journal minimal des transitions.
|
||||
Sélecteur canonique et promotion atomique : revision, projection V001 cohérente et conservation de l'ancien canonique. Implémentation livrée et gate opérateur confirmé propre après `pre.006-fix.001`.
|
||||
|
||||
#### `0.3.16-pre.007`
|
||||
|
||||
Conflit durable minimal + intégration Worker : variante conservée, case ouverte, outcome non terminal, suppression/restriction de l'arbitrage run-local plus fort que le Store et health `Degraded` lorsque requis.
|
||||
Conflit durable minimal + intégration Worker : variante conservée, case ouverte, outcome non terminal, suppression de l'arbitrage run-local plus fort que le Store et health `Degraded`. Implémentation livrée et gate opérateur confirmé entièrement propre après `pre.007-fix.003`.
|
||||
|
||||
#### `0.3.16-pre.008`
|
||||
|
||||
Hardening technique ciblé de la vertical slice : concurrence, rollback transactionnel, régressions Store/Job Backfill/Worker, preuves PostgreSQL live opt-in actualisées et gate workspace. Cette tranche ne mélange ni réconciliation documentaire durable ni préparation de publication.
|
||||
Hardening technique ciblé de la vertical slice : concurrence, rollback transactionnel, régressions Store/Job Backfill/Worker, preuve PostgreSQL live opt-in et gate workspace. Le live RawTransaction a été exécuté avec succès sur PostgreSQL 17 ; le gate opérateur est entièrement propre après `pre.008-fix.001`.
|
||||
|
||||
#### `0.3.16-pre.009`
|
||||
|
||||
@@ -1004,6 +1004,19 @@ Préparation de publication minimale : `CHANGELOG.md`, `ROADMAP.md`, prompt de d
|
||||
|
||||
Publication stable mécanique après gates propres. Aucun Store Desk ni retry Store complet n'est requis pour fermer cette release.
|
||||
|
||||
État réconcilié avant le gate de `pre.009` :
|
||||
|
||||
```text
|
||||
pre.001 -> pre.008-fix.001 livrés
|
||||
pre.007-fix.003 gate entièrement vert
|
||||
pre.008-fix.001 gate entièrement vert
|
||||
PostgreSQL RawTransaction live PostgreSQL 17 PASS
|
||||
pre.009 réconciliation documentaire en cours
|
||||
pre.010 préparation de publication restant à faire
|
||||
```
|
||||
|
||||
La fermeture `0.3.16` revendique uniquement les fondations multi-variantes, la promotion automatique strictement prouvée, le conflit durable minimal et la continuité Worker après quarantaine. Résolution opérateur complète, rétention/pins de variantes, retry Store, reconnect configurable et Store Desk restent explicitement dans `0.3.17`/`0.3.18`.
|
||||
|
||||
### 20.2 `0.3.17` — résilience opérationnelle et cycle de vie des variantes
|
||||
|
||||
Objectif de fermeture : rendre l'acquisition résiliente aux indisponibilités Store/Transport et fournir les contrats backend-neutral d'inspection/résolution nécessaires aux opérateurs et à la future UI.
|
||||
@@ -1038,7 +1051,11 @@ Hardening cross-layer et preuves live ciblées : conflits concurrents, outage/re
|
||||
|
||||
#### `0.3.17-pre.008`
|
||||
|
||||
Gate technique final, réconciliation documentaire et préparation de `0.3.17-rel.001` ainsi que du prompt `0.3.18`.
|
||||
Réconciliation documentaire finale : plan, validation, README/USAGE et références durables concernées.
|
||||
|
||||
#### `0.3.17-pre.009`
|
||||
|
||||
Préparation de publication minimale : `CHANGELOG.md`, `ROADMAP.md`, prompt `0.3.18`, version et delta obligatoires uniquement.
|
||||
|
||||
#### `0.3.17-rel.001`
|
||||
|
||||
@@ -1074,7 +1091,11 @@ Preuves end-to-end et gate technique/live final : PostgreSQL/Store/Worker/Desk,
|
||||
|
||||
#### `0.3.18-pre.007`
|
||||
|
||||
Réconciliation documentaire, `CHANGELOG.md`, `ROADMAP.md`, prompt de reprise suivant et préparation de `0.3.18-rel.001`.
|
||||
Réconciliation documentaire finale : plan, validation, README/USAGE et références durables concernées.
|
||||
|
||||
#### `0.3.18-pre.008`
|
||||
|
||||
Préparation de publication minimale : `CHANGELOG.md`, `ROADMAP.md`, prompt de reprise suivant, version et delta obligatoires uniquement.
|
||||
|
||||
#### `0.3.18-rel.001`
|
||||
|
||||
@@ -1115,7 +1136,6 @@ Le Job Backfill actuel doit seulement rester compatible avec les contrats Store
|
||||
|
||||
Les décisions suivantes ne changent pas l'architecture du gate et peuvent être finalisées au moment où des mesures/tests réels existent :
|
||||
|
||||
- noms SQL définitifs des ressources V003 ;
|
||||
- valeurs numériques par défaut de Store retry ;
|
||||
- valeur par défaut du jitter et de `reset_after_stable_duration` Transport ;
|
||||
- colonnes exactes des DataTables Store Desk ;
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<!-- file: docs/validation/033-V0_3_16_RAW_RESILIENCE_CONFLICT.md -->
|
||||
<!-- version: 2 -->
|
||||
<!-- version: 3 -->
|
||||
|
||||
# Validation `0.3.16` -> `0.3.18` — résilience RAW et gestion des conflits
|
||||
|
||||
## 1. Objet
|
||||
|
||||
Ce document suit le programme de résilience RAW depuis le gate `0.3.16-pre.001` jusqu'à la fermeture prévue de `0.3.18`.
|
||||
Ce document suit le programme de résilience RAW depuis le gate `0.3.16-pre.001` jusqu'à la fermeture prévue de `0.3.18`. La présente révision réconcilie spécifiquement l'état réellement validé de `0.3.16` avant sa lane de préparation de publication.
|
||||
|
||||
La première tranche ne prétend pas valider une implémentation qui n'existe pas encore. Elle valide le point de départ, les contrats acquis, les décisions d'architecture et la liste des preuves à construire. Le fix documentaire `0.3.16-pre.001-fix.001` répartit ensuite cette matrice sur trois releases stables afin de respecter la contrainte opérationnelle d'une version par session au maximum.
|
||||
|
||||
@@ -412,3 +412,171 @@ Le fix `0.3.16-pre.001-fix.001` ne supprime aucune preuve de la matrice ; il cha
|
||||
Chaque stable possède son propre gate de fermeture. Une preuve non nécessaire au périmètre de la stable courante n'est pas déclarée manquante : elle reste explicitement attendue par la version suivante du programme.
|
||||
|
||||
Les scopes Backfill initialement réservés à `0.3.17` et `0.3.18` sont déplacés après ce programme afin d'éviter une collision de roadmap ; les cibles de planning par défaut deviennent respectivement `0.3.19` et `0.3.20`.
|
||||
|
||||
## 12. Réconciliation finale `0.3.16-pre.009`
|
||||
|
||||
### 12.1 Périmètre réellement acquis par `0.3.16`
|
||||
|
||||
La vertical slice `0.3.16` ferme les éléments suivants :
|
||||
|
||||
```text
|
||||
Store API
|
||||
RawTransactionVariantId / relation / reason code
|
||||
comparateur partagé fail-closed
|
||||
RawTransactionVariantWriteOutcome
|
||||
RawAcquisitionWriteOutcome::transaction_variant()
|
||||
|
||||
PostgreSQL V003
|
||||
ksp_raw_transaction_variants
|
||||
ksp_raw_transaction_canonical_selectors
|
||||
ksp_raw_transaction_observation_variants
|
||||
ksp_raw_transaction_conflicts
|
||||
|
||||
Convergence
|
||||
Exact -> observation/réutilisation de variante
|
||||
CompatibleLessComplete -> variante observée, canonique inchangé
|
||||
CompatibleMoreComplete -> promotion atomique
|
||||
Conflict / Incomparable -> variante durable + conflict case Open, canonique inchangé
|
||||
|
||||
Worker
|
||||
toute acquisition atteint le Store après sérialisation run-local par identité
|
||||
QuarantinedConflict -> succès durable, Running + Degraded
|
||||
identité suivante -> continue à être traitée
|
||||
ERROR_CODE_RAW_CONFLICT legacy -> terminal de compatibilité
|
||||
|
||||
Job Backfill
|
||||
QuarantinedConflict -> BackfillEntityPersistence::Conflict
|
||||
outcome observation -> conservé, y compris AlreadyPresent
|
||||
```
|
||||
|
||||
`content_hash` reste un préfiltre/intégrité et ne remplace jamais la comparaison des bytes lorsque ceux-ci sont disponibles. La seule dominance automatique admise en `0.3.16` reste la troncature `meta.logMessages` strictement prouvée ; les autres différences restent fail-closed.
|
||||
|
||||
### 12.2 Atomicité et rollback validés
|
||||
|
||||
Le hardening `pre.008` verrouille les invariants suivants :
|
||||
|
||||
- la branche de conflit ne modifie ni le sélecteur canonique ni la projection V001 ;
|
||||
- les helpers de promotion et de conflict case restent dans la transaction d'acquisition externe ;
|
||||
- un échec tardif après création de la variante divergente et du conflict case mais avant `COMMIT` annule ces écritures ;
|
||||
- après rollback, selector et projection V001 restent cohérents avec le canonique antérieur ;
|
||||
- deux écritures divergentes concurrentes produisent un canonique et une quarantaine durable, pas une erreur terminale de contenu.
|
||||
|
||||
### 12.3 Gate opérateur `0.3.16-pre.008-fix.001`
|
||||
|
||||
Le 22 septembre 2026, l'opérateur a exécuté :
|
||||
|
||||
```bash
|
||||
cargo fmt --all
|
||||
cargo fmt --all -- --check
|
||||
|
||||
python3 scripts/audit_rust_workspace_rules.py
|
||||
python3 scripts/audit_markdown_tables.py README.md RULES.md ROADMAP.md CHANGELOG.md docs prompts crates deltas
|
||||
|
||||
cargo check --workspace
|
||||
cargo clippy --workspace --all-targets --all-features -- -D warnings
|
||||
|
||||
cargo test -p ksp-store-api --all-targets --all-features
|
||||
cargo test -p ksp-store-lib --all-targets --all-features
|
||||
cargo test -p ksp-store-postgres-lib --all-targets --all-features
|
||||
cargo test -p ksp-job-backfill-lib --all-targets --all-features
|
||||
cargo test -p ksp-worker-raw-transaction-ingest-lib --all-targets --all-features
|
||||
```
|
||||
|
||||
Résultats observés :
|
||||
|
||||
```text
|
||||
cargo fmt --all -- --check PASS
|
||||
General Rust rule audit clean
|
||||
Rust export completeness audit 0 candidate(s)
|
||||
KSP workspace Rust rule audit clean
|
||||
Markdown table audit clean (352 table(s), 958 file(s))
|
||||
cargo check --workspace PASS
|
||||
cargo clippy --workspace --all-targets --all-features -D warnings PASS
|
||||
|
||||
ksp-store-api
|
||||
29 unit + 2 dependency + 1 external backend + 9 public API
|
||||
+ 5 release completeness + 5 security hardening PASS
|
||||
|
||||
ksp-store-lib
|
||||
10 unit + 3 dependency + 1 feature mismatch
|
||||
+ 6 hardening completeness + 5 public API PASS
|
||||
|
||||
ksp-store-postgres-lib
|
||||
88 unit + 13 dependency + 16 hardening completeness
|
||||
+ 13 public API + 3 V003 migration + 8 V003 variant PASS
|
||||
foundation/raw-account/raw-transaction live tests ignored in normal gate as designed
|
||||
|
||||
ksp-job-backfill-lib
|
||||
53 unit + 4 dependency + 9 hardening + 1 HTTP block material
|
||||
+ 6 public API + 3 release + 2 WS parity + 1 Yellowstone PASS
|
||||
|
||||
ksp-worker-raw-transaction-ingest-lib
|
||||
163 unit + 12 cross-layer + 21 dependency + 41 hardening
|
||||
+ 22 public API + 18 release completeness PASS
|
||||
```
|
||||
|
||||
Aucun warning Clippy n'est toléré par ce gate.
|
||||
|
||||
### 12.4 Preuve PostgreSQL réelle
|
||||
|
||||
Le live RawTransaction a été exécuté séparément avec une URI dédiée fournie silencieusement sur stdin :
|
||||
|
||||
```bash
|
||||
read -rsp 'PostgreSQL URI: ' KSP_TEST_POSTGRES_URI
|
||||
printf '\n'
|
||||
printf '%s\n' "$KSP_TEST_POSTGRES_URI" \
|
||||
| cargo test -p ksp-store-postgres-lib \
|
||||
--test postgres_raw_transaction_live \
|
||||
-- --ignored --nocapture
|
||||
unset KSP_TEST_POSTGRES_URI
|
||||
```
|
||||
|
||||
Résultat observé :
|
||||
|
||||
```text
|
||||
KSP Store RawTransaction live proof: server major 17
|
||||
test pre_009_real_postgres_raw_transaction_vertical_slice_is_atomic_concurrent_and_recoverable ... ok
|
||||
1 passed; 0 failed
|
||||
```
|
||||
|
||||
Cette preuve couvre notamment la concurrence divergente, la quarantaine durable, la cohérence selector/projection et le rollback tardif ajoutés au hardening `pre.008`.
|
||||
|
||||
### 12.5 Périmètre explicitement reporté
|
||||
|
||||
Ne sont **pas** revendiqués comme acquis par `0.3.16` :
|
||||
|
||||
```text
|
||||
résolution/reopen/historique complet des conflict cases
|
||||
rétention/pins/purge guards propres aux variantes
|
||||
classification Store Transient/Terminal complète
|
||||
retry Store / Blocked / backoff Worker
|
||||
reconnexion WebSocket/Yellowstone configurable étendue
|
||||
inspection/résolution de variantes via ksp-store-lib
|
||||
Store Desk conflits/variantes/résolutions
|
||||
Backfill multi-route/multi-stratégie
|
||||
Backfill Desk multi-route
|
||||
```
|
||||
|
||||
Les six premiers groupes appartiennent à `0.3.17`, Store Desk à `0.3.18`, puis les extensions Backfill sont ciblées par défaut sur `0.3.19`/`0.3.20`.
|
||||
|
||||
### 12.6 État de fermeture avant publication
|
||||
|
||||
```text
|
||||
architecture/sizing CLOSED
|
||||
Store API variantes/comparateur CLOSED
|
||||
migration V003 CLOSED
|
||||
variant ledger + observation mapping CLOSED
|
||||
promotion canonique atomique CLOSED
|
||||
conflit durable minimal CLOSED
|
||||
Worker non terminal sur quarantaine CLOSED
|
||||
régression Backfill CLOSED
|
||||
hardening concurrence/rollback CLOSED
|
||||
PostgreSQL RawTransaction live PASS sur PostgreSQL 17
|
||||
gate technique pre.008-fix.001 PASS
|
||||
réconciliation documentaire pre.009 CURRENT LANE
|
||||
préparation publication pre.010 PENDING
|
||||
rel.001 PENDING
|
||||
```
|
||||
|
||||
La lane `pre.009` ne doit modifier ni `CHANGELOG.md`, ni `ROADMAP.md`, ni le prompt de démarrage `0.3.17`. Ces trois responsabilités appartiennent exclusivement à `pre.010`.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user