v0.3.13-pre.010

This commit is contained in:
2026-09-10 21:02:29 +02:00
parent 0f8f38ff52
commit f636169783
16 changed files with 476 additions and 32 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/plans/034-V0_3_13_MULTI_SOURCE_LIVE_CONVERGENCE_PLAN.md -->
<!-- version: 10 -->
<!-- version: 11 -->
# Plan v0.3.13 — WS standard / Helius / HTTP live + convergence multi-source RawTransaction
@@ -1406,3 +1406,76 @@ cargo test -p ksp-worker-raw-transaction-ingest-lib
```
Aucun `cargo tree` n'est requis pour ce gate : `pre.009` ne modifie ni dépendance ni feature. Les graphes seront réaudités si le graphe change ou à la fermeture technique de `0.3.13`.
## 74. Gate opérateur pre.009-fix.002 reçu
Le 10 septembre 2026, le gate complet communiqué est vert pour toutes les commandes exécutées : fmt, audits Rust, Markdown `340/847`, workspace check, Clippy strict, Transport `389` unit + `52` public-api + `44` release-completeness + `4` doc-tests avec `5` smokes live opt-in ignorés, puis Worker `99` unit + `4` cross-layer + `16` dependency-boundary + `23` hardening + `17` public-api + `4` release-completeness et `0` doc-test.
Aucun `cargo tree` n'était requis ni exécuté pour ce gate.
## 75. Surface snapshot/health pre.010
La projection publique multi-source reste volontairement minimale et source-neutral :
```text
source_total
source_active
source_reconnecting
source_failed
source_state agrégé
source_failure_total
backpressure_wait_total
```
`source_total` est initialisé dès le démarrage depuis la collection de runtime resources validée. Les autres gauges sont recalculées depuis l'inventaire privé borné `source_key -> latest state`; seules les valeurs numériques agrégées atteignent `RawTransactionIngestSnapshot`.
Aucune clé logique, identité provider, endpoint, filtre, URL, credential ou état Transport spécifique n'entre dans le snapshot public.
## 76. Health et activity conservatives pre.010
Pendant `WorkerState::Running`, la health commune suit l'ordre conservateur suivant :
```text
source_failed > 0 -> Unhealthy
sinon source_reconnecting > 0 -> Degraded
sinon source_total > 0 et active < total -> Degraded
sinon -> Healthy
```
Une composition partiellement démarrée, une source fermée/perdue avant terminal ou un reconnect transitoire ne peut donc pas être présentée comme entièrement saine. `Faulted` reste toujours `Unhealthy`; `Stopping`/`Stopped` conservent la dernière health qualifiée.
L'activity générique reste fondée sur du travail concret : queue admission, persistence in-flight, hydration pending, reconnect ou closing. Une source simplement `Active` sans travail en cours ne transforme pas artificiellement `Idle` en `Active`.
## 77. Preuves déterministes pre.010
Les preuves ajoutées couvrent :
```text
source_total disponible dès le snapshot initial d'un run composé
inventaire 2 sources -> comptes Active/Reconnecting exacts
3 sources dont une Reconnecting -> Degraded
retour des 3 sources à Active -> Healthy
une source Failed -> Unhealthy
getters publics source-neutral disponibles depuis crate root
aucune source_key/provider/endpoint/filter dans snapshot
aucune nouvelle dépendance ou backend direct
release-completeness verrouille les nouveaux canaris
```
## 78. Frontière de tranche pre.010
`pre.010` ne change ni la politique de terminalité source, ni les quotas/fairness, ni la convergence persistence. Elle n'ajoute pas de failover, de coverage inference, de vue publique par source ou de scheduler pondéré. Les races stop/fault pendant connect, hydration, polling et persistence restent la tranche `pre.011`.
## 79. Gate opérateur requis avant pre.011
```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-worker-raw-transaction-ingest-lib
```
Aucun `cargo tree` n'est requis : `pre.010` ne modifie ni dépendance ni feature. Le Transport n'est pas modifié par cette tranche snapshot/health.