132 lines
6.4 KiB
Markdown
132 lines
6.4 KiB
Markdown
<!-- file: deltas/0.2.7/pre.014.md -->
|
||
<!-- version: 1 -->
|
||
|
||
# Delta `0.2.7-pre.014` — clôture candidate, audit documentaire et prompt `0.2.8`
|
||
|
||
## Base
|
||
|
||
Base autoritaire fournie par l’opérateur : copie complète `0.2.7-pre.013`, déjà validée par `fmt`, audit structurel KSP, `check`, `clippy`, tests Transport/workspace, audit `cargo tree` et smoke WebSocket Devnet opt-in.
|
||
|
||
La livraison non-fix synchronise `workspace.package.version` vers `0.2.7-pre.14` conformément à `VER-ID-009`.
|
||
|
||
## Preuve opérateur héritée de `pre.013`
|
||
|
||
```text
|
||
cargo fmt --all OK
|
||
python3 scripts/audit_rust_workspace_rules.py OK
|
||
cargo check --workspace OK
|
||
cargo clippy --workspace --all-targets OK
|
||
cargo test -p ksp-onchain-transport-lib OK — 309 unit / 36 public API / 24 release completeness
|
||
cargo test --workspace OK
|
||
Config unit tests OK — 109
|
||
Core workspace dependency tests OK — 3
|
||
WebSocket Devnet smoke opt-in OK
|
||
```
|
||
|
||
Le smoke live valide `slotSubscribe -> slotNotification -> unsubscribe -> close` contre `wss://api.devnet.solana.com`.
|
||
|
||
Le graphe Transport résout notamment `reqwest 0.13.4`, `tokio 1.53.1`, `tokio-tungstenite 0.30.0` et `futures-util 0.3.34`. Les doublons locaux `syn` 2/3 et `webpki-roots` 0.26/1.0 sont transitifs/upstream et sont conservés ; aucune unification artificielle n’est introduite.
|
||
|
||
## Audit documentaire
|
||
|
||
Audit effectué sur la copie complète du workspace, pas sur un overlay partiel.
|
||
|
||
Constats structurels :
|
||
|
||
- 83 documents Markdown durables contrôlés après correction ;
|
||
- aucun lien relatif Markdown réellement cassé dans la documentation durable auditée ;
|
||
- headers `file`/`version` cohérents sur les documents durables contrôlés ;
|
||
- séquence `0.2.7 -> 0.2.8 -> 0.2.9` cohérente entre ROADMAP, plan fonctionnel et architecture ;
|
||
- `CHANGELOG.md` reste réservé à la publication stable et n’est pas modifié ici ;
|
||
- le statut stable de `0.2.7` reste réservé à `rel.001`.
|
||
|
||
Corrections/synchronisations :
|
||
|
||
- `ROADMAP.md` passe `0.2.7` en candidate/en cours `[/]`, sans le déclarer stable ;
|
||
- plan et matrice `0.2.7` enregistrent les preuves opérateur `pre.013`, le smoke live et l’analyse des doublons Cargo ;
|
||
- les index `docs/`, `plans/`, `validation/` et `prompts/` sont synchronisés ;
|
||
- la séquence fonctionnelle `0.2.7 -> 0.2.8 -> 0.2.9` est réalignée sur le statut candidate et la preuve de clôture ;
|
||
- `ksp-core-lib`, bibliothèque déjà complétée mais dépourvue de documentation locale, reçoit les `README.md` et `USAGE.md` durables exigés par `FILE_CONTRACTS.md`, fondés sur son API publique réelle ;
|
||
- `ksp-onchain-transport-lib/README.md` décrit la surface HTTP + WebSocket réellement acquise sans organiser le contrat WebSocket par numéros de prerelease ;
|
||
- `ksp-onchain-transport-lib/USAGE.md` devient un guide durable sans notes de version, conformément à `FILE_CONTRACTS.md` ;
|
||
- les narrations de prerelease/version présentes dans les README/USAGE historiques de Config Desk, Wallet Desk, Config, Logging et Wallet sont réécrites en contrats présents sans déplacer l’historique hors des plans/deltas ;
|
||
- le scan final des `crates/*/README.md` et `crates/*/USAGE.md` ne contient plus de `pre.NNN`, `rel.NNN` ni de version KSP littérale utilisée comme note de release ;
|
||
- aucun refactoring documentaire historique non nécessaire n’est entrepris hors de ces écarts.
|
||
|
||
## Prompt `0.2.8`
|
||
|
||
Ajout de `prompts/013-V0_2_8_START_PROMPT.md`, rédigé selon `docs/rules/PROMPT_STRUCTURE.md`.
|
||
|
||
Le prompt :
|
||
|
||
- exige la base stable exacte `v0.2.7` ;
|
||
- impose l’ordre de lecture des sources internes ;
|
||
- impose un réaudit Helius officiel actuel avant implémentation et référence les points d’entrée documentaires actuels `/docs/rpc/websocket`, `/docs/api-reference/rpc/websocket*`, `/docs/faqs/websockets` et `docs/llms.txt` ;
|
||
- conserve les frontières HTTP/WebSocket/session/reconnect/backpressure/secrets acquises ;
|
||
- interdit de dupliquer le client WebSocket standard ;
|
||
- distingue LaserStream WebSocket de LaserStream gRPC et Yellowstone gRPC ;
|
||
- laisse ouvertes les décisions `transactionSubscribe/unsubscribe`, `notifyOn`, `tokenAccounts`, capability mapping, heartbeat/idle et shape Config jusqu’au gate ;
|
||
- rend `0.2.8-pre.001` strictement audit/brainstorming/sizing ;
|
||
- fournit une prévision souple visible et des critères de clôture ;
|
||
- prépare `0.2.9 — Yellowstone gRPC standard/provider-neutral` sans l’anticiper.
|
||
|
||
## Runtime / API
|
||
|
||
Aucun fichier `src/` n’est modifié. Aucun contrat HTTP/WebSocket, DTO, lifecycle, reconnect, backpressure, Config runtime ou dépendance directe Transport n’est changé.
|
||
|
||
## Fichiers
|
||
|
||
```text
|
||
Cargo.toml
|
||
ROADMAP.md
|
||
docs/000-README.md
|
||
docs/plans/000-README.md
|
||
docs/plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md
|
||
docs/plans/014-V0_2_7_ONCHAIN_WEBSOCKET_PLAN.md
|
||
docs/validation/000-README.md
|
||
docs/validation/010-V0_2_7_ONCHAIN_WEBSOCKET.md
|
||
prompts/000-README.md
|
||
prompts/013-V0_2_8_START_PROMPT.md
|
||
crates/ksp-app-config-desk/README.md
|
||
crates/ksp-app-config-desk/USAGE.md
|
||
crates/ksp-app-wallet-desk/README.md
|
||
crates/ksp-config-lib/README.md
|
||
crates/ksp-config-lib/USAGE.md
|
||
crates/ksp-core-lib/README.md
|
||
crates/ksp-core-lib/USAGE.md
|
||
crates/ksp-onchain-transport-lib/README.md
|
||
crates/ksp-onchain-transport-lib/USAGE.md
|
||
crates/ksp-logging-lib/USAGE.md
|
||
crates/ksp-wallet-lib/README.md
|
||
crates/ksp-wallet-lib/USAGE.md
|
||
deltas/0.2.7/pre.014.md
|
||
```
|
||
|
||
## Validation opérateur requise
|
||
|
||
```bash
|
||
cargo fmt --all
|
||
python3 scripts/audit_rust_workspace_rules.py
|
||
cargo check --workspace
|
||
cargo clippy --workspace --all-targets
|
||
cargo test -p ksp-onchain-transport-lib
|
||
cargo test --workspace
|
||
```
|
||
|
||
Les graphes Cargo et le smoke live n’ont pas besoin d’être rejoués sur cette tranche documentaire si la base appliquée est exactement `pre.013`; ils redeviennent obligatoires si le graphe ou le chemin WebSocket est modifié.
|
||
|
||
Comptages attendus inchangés :
|
||
|
||
```text
|
||
Transport unit tests = 309
|
||
Transport public API tests = 36
|
||
Transport release completeness = 24
|
||
Transport WebSocket live smoke = 1 ignored par défaut
|
||
Config unit tests = 109
|
||
Core workspace dependency tests = 3
|
||
```
|
||
|
||
## Suite
|
||
|
||
Si `pre.014` est vert, la suite est `0.2.7-rel.001` : publication stable, Cargo `0.2.7`, `ROADMAP.md` `[X]`, synthèse `CHANGELOG.md`, statut final plan/matrice, delta `rel.001`, commit `v0.2.7-rel.001` et tag stable `v0.2.7`.
|