141 lines
4.8 KiB
Markdown
141 lines
4.8 KiB
Markdown
<!-- file: deltas/0.2.9/pre.014.md -->
|
|
<!-- version: 1 -->
|
|
|
|
# Delta `0.2.9-pre.014` — réconciliation documentaire finale Yellowstone
|
|
|
|
## 1. Base
|
|
|
|
```text
|
|
0.2.9-pre.013-fix.004
|
|
```
|
|
|
|
Cette tranche est exclusivement le couloir de réconciliation documentaire défini par `VER-LIFECYCLE-006`. Elle ne modifie aucun code, test, schema, config exécutable, README global de publication, `CHANGELOG.md`, `ROADMAP.md` ou prompt suivant.
|
|
|
|
## 2. Version technique
|
|
|
|
Comme toute prerelease non-fix, la version Cargo est synchronisée mécaniquement :
|
|
|
|
```text
|
|
workspace.package.version = 0.2.9-pre.14
|
|
```
|
|
|
|
Aucune sémantique runtime ne change.
|
|
|
|
## 3. Preuve technique réconciliée
|
|
|
|
Le couloir `pre.013` est fermé par `pre.013-fix.004` avec :
|
|
|
|
```text
|
|
cargo fmt --all PASS
|
|
Rust workspace audit PASS, 0 export candidate
|
|
Markdown audit PASS, 87 tableaux / 258 fichiers
|
|
cargo check --workspace PASS
|
|
cargo clippy --workspace --all-targets PASS sans warning
|
|
Transport unit 383/383 PASS
|
|
Transport public API 49/49 PASS
|
|
Transport release completeness 43/43 PASS
|
|
Transport doctests 4/4 PASS
|
|
cargo test --workspace PASS
|
|
PublicNode Mainnet Subscribe + Slot PASS
|
|
PublicNode Testnet Subscribe + Slot PASS
|
|
live smoke total 2/2 PASS
|
|
```
|
|
|
|
Les graphes Cargo finaux ont été inspectés dans le couloir technique. `fix.004` n'ayant modifié ni dépendance ni feature, leur verdict reste applicable :
|
|
|
|
```text
|
|
yellowstone-grpc-proto 12.6.0
|
|
tonic / tonic-prost 0.14.6
|
|
prost / prost-types 0.14.4
|
|
yellowstone-grpc-client absent du runtime KSP
|
|
```
|
|
|
|
## 4. PublicNode final
|
|
|
|
Endpoints validés :
|
|
|
|
```text
|
|
Mainnet https://solana-yellowstone-grpc.publicnode.com:443
|
|
Testnet https://solana-testnet-yellowstone-grpc.publicnode.com:443
|
|
```
|
|
|
|
Les essais live ont montré qu'une connexion sans credential peut atteindre le service mais recevoir `PERMISSION_DENIED`. Les profils finaux utilisent donc une metadata gRPC secrète `x-token`.
|
|
|
|
Config conserve :
|
|
|
|
```text
|
|
KSP_SECRET_PUBLICNODE_MAINNET_GRPC_X_TOKEN
|
|
KSP_SECRET_PUBLICNODE_TESTNET_GRPC_X_TOKEN
|
|
```
|
|
|
|
L'opérateur a prouvé qu'un même personal token peut être utilisé pour les deux endpoints. Les variables restent distinctes par flexibilité opérationnelle ; KSP ne transforme pas ce choix en affirmation provider de tokens network-scoped.
|
|
|
|
Le smoke Transport pur reste indépendant de Config : ses deux tokens sont fournis sur stdin au harness et ne sont jamais versionnés, placés dans l'URL ou journalisés.
|
|
|
|
## 5. Smoke final documenté
|
|
|
|
Le smoke PublicNode ne teste plus `GetVersion/GetSlot` comme preuve provider, car ces unary peuvent être restreintes indépendamment du service de streaming. La preuve représentative de `0.2.9` est :
|
|
|
|
```text
|
|
TLS
|
|
-> metadata secret x-token
|
|
-> Subscribe
|
|
-> filtre slots
|
|
-> YellowstoneSubscribeUpdate::Slot
|
|
-> slot > 0
|
|
-> fermeture bornée
|
|
```
|
|
|
|
Mainnet et Testnet sont tous deux passés en live. Un timeout KSP de half-close n'est accepté par le harness qu'après réception prouvée du slot ; le runtime conserve son erreur explicite de timeout.
|
|
|
|
## 6. Documents réconciliés
|
|
|
|
```text
|
|
docs/plans/016-V0_2_9_YELLOWSTONE_GRPC_PLAN.md
|
|
docs/validation/012-V0_2_9_YELLOWSTONE_GRPC.md
|
|
crates/ksp-onchain-transport-lib/README.md
|
|
crates/ksp-onchain-transport-lib/USAGE.md
|
|
docs/000-README.md
|
|
```
|
|
|
|
Les anciennes affirmations devenues fausses sont supprimées : PublicNode sans credential, smoke unary Mainnet, Testnet non confirmé/non versionné et gate `pre.013` encore pending.
|
|
|
|
## 7. Frontière avec `pre.015`
|
|
|
|
Cette tranche ne touche pas :
|
|
|
|
```text
|
|
prompts/015-V0_2_10_START_PROMPT.md
|
|
CHANGELOG.md
|
|
ROADMAP.md
|
|
```
|
|
|
|
Ces trois surfaces appartiennent exclusivement à `pre.015`, hors `Cargo.toml` et son delta mécanique.
|
|
|
|
Si un défaut de code, smoke, Config ou autre document durable est découvert après le gate de `pre.014`, il ne doit pas être glissé dans `pre.015` : une nouvelle prerelease du couloir approprié doit être ouverte conformément aux règles de fermeture.
|
|
|
|
## 8. Fichiers modifiés/ajoutés
|
|
|
|
```text
|
|
Cargo.toml
|
|
docs/000-README.md
|
|
docs/plans/016-V0_2_9_YELLOWSTONE_GRPC_PLAN.md
|
|
docs/validation/012-V0_2_9_YELLOWSTONE_GRPC.md
|
|
crates/ksp-onchain-transport-lib/README.md
|
|
crates/ksp-onchain-transport-lib/USAGE.md
|
|
deltas/0.2.9/pre.014.md
|
|
```
|
|
|
|
## 9. Gate opérateur
|
|
|
|
```bash
|
|
cargo fmt --all
|
|
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/0.2.9
|
|
cargo check --workspace
|
|
cargo clippy --workspace --all-targets
|
|
cargo test --workspace
|
|
```
|
|
|
|
Aucun smoke live ni `cargo tree` n'est à rejouer dans `pre.014` si le delta est appliqué exactement : aucune surface technique ou dépendance n'est modifiée.
|