# 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.