v0.3.12-pre.011

This commit is contained in:
2026-09-09 23:07:52 +02:00
parent 0c76b74afe
commit 474b894d1c
3 changed files with 221 additions and 3 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/validation/029-V0_3_12_YELLOWSTONE_HYDRATION_CONTINUITY.md -->
<!-- version: 21 -->
<!-- version: 22 -->
# Validation v0.3.12 — Yellowstone + hydration HTTP + continuité de run du Worker RawTransaction
@@ -1923,3 +1923,150 @@ cargo tree --duplicates
Dans l'environnement d'assemblage, `cargo`, `rustc` et `rustfmt` ne sont pas installés ; aucun gate Cargo local n'est revendiqué.
## 80. Gate opérateur `pre.010`
Le gate opérateur communiqué pour `0.3.12-pre.10` est vert sur toutes les commandes effectivement exécutées :
```text
General Rust rule audit : clean
Rust export completeness audit : 0 candidate(s)
KSP workspace Rust rule audit : clean
Markdown table audit : clean (340 tables, 820 fichiers)
cargo check --workspace : PASS
cargo clippy --workspace --all-targets --all-features -- -D warnings : PASS
```
Suites ciblées réellement exécutées :
```text
ksp-onchain-transport-lib
388 unit PASS
51 public_api PASS
43 release_completeness PASS
4 doc-tests PASS
smokes live : 5 tests ignored par défaut
ksp-raw-transaction-lib
17 unit PASS
2 dependency_boundary PASS
5 public_api PASS
2 release_completeness PASS
2 security_hardening PASS
ksp-store-api
22 unit PASS
2 dependency_boundary PASS
1 external_backend PASS
8 public_api PASS
5 release_completeness PASS
5 security_hardening PASS
ksp-store-lib --no-default-features
9 unit PASS
3 dependency_boundary PASS
1 feature_mismatch PASS
6 hardening_completeness PASS
5 public_api PASS
ksp-worker-raw-transaction-ingest-lib
66 unit PASS
4 cross_layer_completeness PASS
9 dependency_boundary PASS
16 hardening PASS
9 public_api PASS
4 release_completeness PASS
```
Les commandes `cargo tree` et le gate `cargo test --workspace --all-targets --all-features` ne figurent pas dans le log opérateur reçu pour `pre.010` ; aucun PASS n'est revendiqué pour ces commandes. Elles appartiennent explicitement au gate `pre.011`.
`pre.010` devient la base autoritaire de `pre.011`.
## 81. Gate technique complet et live opt-in `pre.011`
`pre.011` n'ajoute aucun comportement runtime, aucune API et aucun nouveau test réseau. La tranche ferme le gate technique final prévu par le plan à partir de la candidate déjà qualifiée par `pre.010`.
Gate déterministe requis :
```bash
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 --workspace --all-targets --all-features
cargo test -p ksp-onchain-transport-lib
cargo test -p ksp-raw-transaction-lib
cargo test -p ksp-store-api
cargo test -p ksp-store-lib --no-default-features
cargo test -p ksp-worker-raw-transaction-ingest-lib
cargo tree -p ksp-worker-raw-transaction-ingest-lib --edges normal
cargo tree -p ksp-worker-raw-transaction-ingest-lib -e features
cargo tree --duplicates
```
Les smokes réseau restent hors du gate déterministe. Ils sont exécutés uniquement de manière explicite et leur résultat est enregistré séparément.
### 81.1 Smokes keyless réellement accessibles
Ces deux smokes Transport n'exigent aucun secret opérateur :
```bash
cargo test -p ksp-onchain-transport-lib --test transport_devnet_smoke -- --ignored --nocapture
cargo test -p ksp-onchain-transport-lib --test websocket_devnet_smoke -- --ignored --nocapture
```
Ils prouvent respectivement un accès HTTP Devnet et un cycle WebSocket Devnet. Ils ne prouvent ni Yellowstone, ni hydration Worker, ni persistence Store.
### 81.2 Smokes Yellowstone token-gated
Les smokes Yellowstone existants restent operator-only et lisent leurs tokens sur stdin. Les secrets ne doivent jamais être passés comme arguments CLI ni copiés dans un delta/log.
OrbitFlare Devnet, uniquement si un token valide est réellement disponible :
```bash
read -rsp 'OrbitFlare x-token: ' ORBITFLARE_X_TOKEN; printf '\n'
printf '%s\n' "$ORBITFLARE_X_TOKEN" | cargo test -p ksp-onchain-transport-lib --test yellowstone_orbitflare_smoke -- --ignored --nocapture
unset ORBITFLARE_X_TOKEN
```
PublicNode Mainnet/Testnet, uniquement si les deux tokens personnels sont réellement disponibles :
```bash
read -rsp 'PublicNode Mainnet x-token: ' PUBLICNODE_MAINNET_X_TOKEN; printf '\n'
read -rsp 'PublicNode Testnet x-token: ' PUBLICNODE_TESTNET_X_TOKEN; printf '\n'
printf '%s\n%s\n' "$PUBLICNODE_MAINNET_X_TOKEN" "$PUBLICNODE_TESTNET_X_TOKEN" | cargo test -p ksp-onchain-transport-lib --test yellowstone_publicnode_smoke -- --ignored --nocapture
unset PUBLICNODE_MAINNET_X_TOKEN PUBLICNODE_TESTNET_X_TOKEN
```
L'absence de token valide laisse le smoke correspondant `NON EXÉCUTÉ`; elle n'est ni un PASS ni un défaut produit.
### 81.3 Worker live smoke
Aucun nouveau smoke Worker end-to-end n'est introduit dans `pre.011`. Une telle preuve exigerait simultanément :
```text
secret Yellowstone valide
route HTTP d'hydration cohérente
Store réellement provisionné sur le même network
signal transactionnel live observé
persistence vérifiable
stop borné
```
Ces ressources ne sont pas fournies dans l'environnement d'assemblage. Conformément au plan, `Worker live smoke` reste donc `NON EXÉCUTÉ` tant qu'un gate opérateur ne fournit pas réellement ces préconditions. Les fixtures déterministes et les gates cross-layer restent les preuves de correction obligatoires.
### 81.4 Critère de fermeture
`pre.011` peut être fermé lorsque :
```text
gate déterministe complet = PASS
arbres Cargo demandés = exécutés et examinés
cargo tree --duplicates = exécuté et enregistré
smokes keyless = exécutés ou échec externe explicitement qualifié
smokes token-gated = PASS si les tokens sont disponibles, sinon NON EXÉCUTÉ explicite
aucun secret n'apparaît dans les logs
aucun nouveau scope fonctionnel n'est ajouté pour contourner un provider indisponible
```
Dans l'environnement d'assemblage, `cargo`, `rustc` et `rustfmt` ne sont pas installés ; aucun PASS Cargo ou live local n'est revendiqué.