v0.2.7-pre.014-fix.001

This commit is contained in:
2026-08-23 11:28:01 +02:00
parent 5aa7b45840
commit 307711f873
2 changed files with 430 additions and 29 deletions

View File

@@ -0,0 +1,279 @@
<!-- file: deltas/0.2.7/pre.014-fix.001.md -->
<!-- version: 1 -->
# Delta `0.2.7-pre.014-fix.001` — complétude du prompt de démarrage `0.2.8`
## 1. Base requise
Base directe attendue :
```text
0.2.7-pre.014
workspace.package.version = 0.2.7-pre.14
```
Ce correctif intervient **avant `0.2.7-rel.001`** et corrige uniquement le prompt de reprise de la release suivante.
La livraison est :
```text
0.2.7-pre.014-fix.001
commit = v0.2.7-pre.014-fix.001
tag = aucun
```
## 2. Nature du fix et signal Cargo
Le fix est **strictement documentaire** :
```text
aucun fichier Rust
aucun Cargo.toml
aucune configuration runtime
aucun schema
aucune dépendance
aucun comportement HTTP/WebSocket
```
Conformément à `VERSION_WORKFLOW.md`, la version Cargo de la base directe est conservée :
```text
workspace.package.version = 0.2.7-pre.14
```
Le prompt modifié incrémente son header :
```text
prompts/013-V0_2_8_START_PROMPT.md
version: 1 -> 2
```
## 3. Diagnostic
Le prompt produit par `pre.014` contenait déjà une section :
```text
## 12. Prévision souple initiale des prereleases
```
avec un forecast nominal `pre.001 -> pre.007`.
Le défaut n'est donc pas l'absence littérale du forecast, mais sa **granularité et son niveau de prescription insuffisants** par rapport :
```text
docs/rules/PROMPT_STRUCTURE.md
aux prompts de démarrage récents
au mode de travail réellement appliqué pendant 0.2.7
```
Le `0.2.7-pre.001` avait notamment recalibré son forecast jusqu'à `pre.014` et rendu explicites :
```text
le sizing avant implémentation
le budget nominal d'environ 1520 minutes par tranche
la possibilité de scinder toute tranche trop large
l'insertion libre de fixes
le fait que le dernier numéro prévu n'est jamais une deadline
```
Le prompt `0.2.8` regroupait encore trop de responsabilités dans `pre.002` à `pre.007`, ce qui pouvait faire perdre cette discipline au démarrage de la nouvelle session.
## 4. Renforcement de la structure du prompt
Le prompt `0.2.8` version 2 renforce la reprise stable :
- interdit explicitement l'ouverture depuis une prerelease `0.2.7-pre.*` ou un ZIP intermédiaire ;
- conserve l'archive stable `v0.2.7` fournie par l'opérateur comme première autorité ;
- exige la vérification du signal Cargo stable et du delta `rel.001`.
L'ordre de lecture est complété avec :
```text
docs/architecture/010-APPS_SERVICES_SCENARIOS_AND_CONTROL.md
docs/validation/005-V0_2_3_KSP_TRANSPORT_007_RETRO_AUDIT.md
docs/IDEAS.md
.env.example
```
Ces ajouts servent respectivement à préserver :
```text
les frontières app/service/smoke
la règle KSP-TRANSPORT-007
les travaux explicitement différés, dont le metering
la discipline d'inventaire Config/env pour les futurs credentials Helius
```
## 5. Baseline `pre.001` rendue explicite
Le gate d'ouverture doit désormais enregistrer avant modification, lorsque l'environnement le permet :
```bash
cargo fmt --all
python3 scripts/audit_rust_workspace_rules.py
cargo check --workspace
cargo clippy --workspace --all-targets
cargo tree -p ksp-onchain-transport-lib
cargo tree -p ksp-onchain-transport-lib --duplicates
```
Une commande indisponible ou non exécutée ne peut jamais être déclarée verte.
Le résultat de cette baseline doit vivre dans le plan/delta `pre.001`, comme cela a été pratiqué pendant `0.2.7`.
## 6. Sizing et forecast corrigés
`pre.001` doit désormais produire pour chaque tranche prévue :
```text
objectif précis
principaux contrats/fichiers attendus
preuves/tests/gates attendus
budget nominal <= environ 1520 minutes
critères de split
```
Le forecast initial passe de sept prereleases très agrégées à onze tranches nominales :
```text
pre.001 audit + matrice + architecture + threat model + dependencies + sizing
pre.002 provider/protocol settings + capability model + secrets/redaction
pre.003 Config V2 provider + mapping Config -> Transport
pre.004 transactionSubscribe/unsubscribe params/filters/options
pre.005 transaction notifications + reconnect/resubscribe/races
pre.006 account/program extensions Helius retenues
pre.007 heartbeat/idle + lifecycle/shutdown
pre.008 capability failures + limits/backpressure/adversarial
pre.009 compliance provider + non-régressions 18/18 et 52/14
pre.010 smoke live sûr + dependency audit + README/USAGE
pre.011 workspace final + docs/matrice/indexes + prompt 0.2.9
rel.001 publication stable
```
Chaque ligne du prompt contient maintenant également la preuve/gate principal attendu.
Ce forecast reste **souple** :
```text
pre.001 doit le recalibrer
une tranche > 1520 min doit normalement être scindée
des tranches peuvent être fusionnées si l'audit réduit réellement la surface
des fixes peuvent être insérés librement
pre.011 n'est pas une deadline
aucun numéro de prerelease ne vaut critère de clôture
```
## 7. Versionnement et archives d'échange
Le prompt précise maintenant les noms usuels :
```text
ksp-general-0.2.8-pre.001.zip
ksp-general-0.2.8-pre.NNN-fix.MMM.zip
ksp-general-0.2.8-rel.001.zip
```
L'overlay reste minimal et conserve les chemins depuis la racine du workspace.
## 8. Critères de clôture renforcés
La clôture `0.2.8` reste pilotée par les gates fonctionnels et de compliance, jamais par le forecast.
Le prompt précise désormais :
```text
si les gates ne sont pas verts à pre.011 -> continuer avec pre.012+ ou fixes
forecast réalisé ou explicitement recalibré sans dette silencieuse
rel.001 seulement après fermeture réelle de la matrice et du workspace
```
## 9. Fichiers
Modifié :
```text
prompts/013-V0_2_8_START_PROMPT.md
```
Ajouté :
```text
deltas/0.2.7/pre.014-fix.001.md
```
Volontairement inchangés :
```text
Cargo.toml
ROADMAP.md
CHANGELOG.md
docs/plans/014-V0_2_7_ONCHAIN_WEBSOCKET_PLAN.md
docs/validation/010-V0_2_7_ONCHAIN_WEBSOCKET.md
prompts/000-README.md
crates/**
config/**
```
Le delta `pre.014.md` publié n'est jamais réécrit.
## 10. Runtime / API
Aucun contrat runtime ne change.
Les acquis restent exactement ceux de `pre.014` :
```text
HTTP 52 current + 14 historical
WebSocket Solana standard 18/18
WsSession/WsSubscription lifecycle inchangé
Config V2 inchangé
dependency graph inchangé
comptages de tests inchangés
```
## 11. Validation opérateur
Le fix n'introduit aucun Rust ni aucune configuration exécutable.
Contrôle documentaire minimal :
```bash
python3 scripts/audit_rust_workspace_rules.py
```
Comme cette livraison devient la base directe de `rel.001`, il est recommandé de rejouer le gate final complet avant clôture :
```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
```
Comptages attendus inchangés par rapport à `pre.014` :
```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
```
Aucun smoke live ni `cargo tree` supplémentaire n'est requis par ce fix documentaire si la base appliquée est exactement `pre.014` et que le graphe n'a pas changé.
## 12. Suite
Si `0.2.7-pre.014-fix.001` est appliqué et le gate final reste vert, la suite est :
```text
0.2.7-rel.001
Cargo = 0.2.7
commit = v0.2.7-rel.001
tag stable = v0.2.7
```
`rel.001` devra publier la synthèse stable, fermer le statut du plan/matrice et conserver `prompts/013-V0_2_8_START_PROMPT.md` version 2 comme prompt autoritaire de la session suivante.