167 lines
6.4 KiB
Markdown
167 lines
6.4 KiB
Markdown
<!-- file: deltas/0.3.10/pre.006-fix.001.md -->
|
|
<!-- version: 1 -->
|
|
|
|
# Delta `0.3.10-pre.006-fix.001` — corrections Rust du gate `pre.006` + recalibrage du sizing
|
|
|
|
## Base requise
|
|
|
|
```text
|
|
0.3.10-pre.006
|
|
```
|
|
|
|
L'archive opérateur `khadhroony-solana-project- v0.3.10-pre.006.zip` est la base autoritaire de ce correctif.
|
|
|
|
## Objectif
|
|
|
|
Corriger strictement les défauts Rust révélés par le premier gate opérateur de `pre.006` sans modifier le contrat RAW V1, les goldens, la décision Yellowstone ni les dépendances de production, puis corriger le plan devenu surdimensionné avant toute implémentation lourde du Worker.
|
|
|
|
Le gate opérateur a révélé trois familles de défauts dans la responsabilité `pre.006` :
|
|
|
|
```text
|
|
clippy::collapsible_if dans la validation V1 du heap size
|
|
assert_eq! sur Result<&str, &Error> exigeant à tort PartialEq sur Error
|
|
canari Yellowstone utilisant Error::new avec un &str et formatant ErrorCode via Display inexistant
|
|
```
|
|
|
|
## Version
|
|
|
|
Le correctif modifie du Rust et synchronise donc la version technique Cargo conformément à `VER-ID-007` et `VER-ID-010` :
|
|
|
|
```text
|
|
workspace.package.version = 0.3.10-pre.6.fix.1
|
|
```
|
|
|
|
## Corrections Rust
|
|
|
|
`ksp-raw-transaction-lib/src/wire.rs` applique la forme Clippy proposée pour la garde `heap_size` V1 sans modifier les bornes ni le résultat fonctionnel.
|
|
|
|
`unit_tests/wire.rs` conserve exactement les quatre golden Base64 mais compare les succès par pattern matching, sans imposer `PartialEq` au type d'erreur KSP.
|
|
|
|
`yellowstone_raw_parity.rs` construit désormais l'erreur de projection test-only avec un `ErrorCode` structuré et formate les codes d'erreur explicitement via `domain()` + `code()`. Aucun code d'erreur public de production n'est ajouté.
|
|
|
|
## Recalibrage du sizing
|
|
|
|
Le plan initial associait dans `0.3.10` deux moitiés devenues nettement séparables :
|
|
|
|
```text
|
|
common RAW + migration/parités = déjà matérialisées en pre.002 à pre.006
|
|
runtime Worker + sources + repair = pas encore commencé
|
|
```
|
|
|
|
Les anciennes tranches `pre.007` à `pre.011` cumulaient plusieurs responsabilités chacune et ne respectaient plus le budget normatif d'environ 15 à 20 minutes. La clôture de toute la mission initiale dans une seule session devenait également incertaine.
|
|
|
|
Le redécoupage durable retenu est donc :
|
|
|
|
```text
|
|
0.3.10 = common RAW + observed block + qualification HTTP/WS/Helius/Yellowstone
|
|
0.3.11 = Worker foundation/runtime + persistence déterministe
|
|
0.3.12 = Yellowstone + hydration HTTP + continuity
|
|
0.3.13 = WS/Helius/HTTP live + convergence multi-source
|
|
0.3.14 = gap repair/hardening + smokes provider accessibles
|
|
0.3.15 = Desk d'ingestion
|
|
0.3.16 = Backfill multi-source/multi-stratégie
|
|
```
|
|
|
|
La queue de fermeture de `0.3.10` devient :
|
|
|
|
```text
|
|
pre.007 = gate technique final, budget 15-20 min
|
|
pre.008 = réconciliation documentaire, budget 10-15 min
|
|
pre.009 = préparation de publication, budget 5-10 min
|
|
rel.001 = publication stable mécanique
|
|
```
|
|
|
|
Chaque nouvelle release Worker recommencera par sa propre `pre.001` de sizing et devra scinder toute prerelease estimée au-delà du budget.
|
|
|
|
## Vérification de l'archive
|
|
|
|
Exécuté sur l'archive autoritaire avant modification :
|
|
|
|
```text
|
|
unzip -t : PASS
|
|
racine ZIP unique : PASS
|
|
chemins absolus/traversal : 0
|
|
symlinks : 0
|
|
workspace.package.version base : 0.3.10-pre.6
|
|
prompt 029 présent : PASS
|
|
règles obligatoires présentes : PASS
|
|
```
|
|
|
|
## Validations exécutées
|
|
|
|
Après les corrections Rust et le recalibrage documentaire :
|
|
|
|
```bash
|
|
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.3.10
|
|
```
|
|
|
|
Résultats :
|
|
|
|
```text
|
|
General Rust rule audit : clean
|
|
Rust export completeness audit : 0 candidate(s)
|
|
KSP workspace Rust rule audit : clean
|
|
Markdown table audit : clean
|
|
```
|
|
|
|
Les contrôles structurels ont également vérifié que le delta ne contient aucun chemin d'archive dangereux et que les références durables principales du nouveau découpage sont cohérentes.
|
|
|
|
## Validations non exécutées dans l'environnement d'assemblage
|
|
|
|
L'environnement d'assemblage ne fournit ni `cargo`, ni `rustc`, ni `rustfmt`. Les commandes suivantes ne sont donc **pas** déclarées PASS ici :
|
|
|
|
```bash
|
|
cargo fmt --all
|
|
cargo check --workspace
|
|
cargo clippy --workspace --all-targets --all-features -- -D warnings
|
|
cargo test -p ksp-raw-transaction-lib
|
|
cargo test -p ksp-onchain-transport-lib
|
|
cargo test -p ksp-job-backfill-lib
|
|
cargo tree -p ksp-job-backfill-lib --edges normal
|
|
cargo tree -p ksp-job-backfill-lib --edges dev
|
|
cargo tree -p ksp-job-backfill-lib -e features
|
|
```
|
|
|
|
Elles constituent le rejeu opérateur requis pour fermer le fix.
|
|
|
|
## Fichiers ajoutés
|
|
|
|
```text
|
|
deltas/0.3.10/pre.006-fix.001.md
|
|
```
|
|
|
|
## Fichiers modifiés
|
|
|
|
```text
|
|
Cargo.toml
|
|
ROADMAP.md
|
|
crates/ksp-job-backfill-lib/tests/yellowstone_raw_parity.rs
|
|
crates/ksp-raw-transaction-lib/src/wire.rs
|
|
crates/ksp-raw-transaction-lib/unit_tests/wire.rs
|
|
docs/architecture/004-COMPONENT_INVENTORY.md
|
|
docs/architecture/005-DEPENDENCY_GRAPH.md
|
|
docs/architecture/009-ACQUISITION_WORKERS_AND_JOBS.md
|
|
docs/architecture/010-APPS_SERVICES_SCENARIOS_AND_CONTROL.md
|
|
docs/architecture/011-RAW_TRANSACTION_ACQUISITION.md
|
|
docs/plans/031-V0_3_10_RAW_TRANSACTION_INGEST_PLAN.md
|
|
docs/validation/027-V0_3_10_RAW_TRANSACTION_INGEST.md
|
|
```
|
|
|
|
## Fichiers supprimés
|
|
|
|
Aucun.
|
|
|
|
## Décisions prises
|
|
|
|
- Les goldens Legacy/V0/V1 et le contrat RAW V1 de `pre.006` ne changent pas.
|
|
- Le canari Yellowstone reste test-only et n'ajoute aucun nouvel edge productif.
|
|
- `0.3.10` est réduit à la common RAW et aux qualifications cross-source déjà matérialisées avant ouverture du runtime Worker.
|
|
- Le Worker concret est réparti sur `0.3.11` à `0.3.14` afin de respecter une release concrète par session et des prereleases bornées.
|
|
- La Desk et le Backfill multi-source sont décalés respectivement à `0.3.15` et `0.3.16`.
|
|
- Les anciens prompts/plans de releases déjà ouvertes restent des traces historiques et ne sont pas réécrits rétroactivement uniquement pour refléter ce recalibrage.
|
|
|
|
## Questions ouvertes
|
|
|
|
Aucune question fonctionnelle nouvelle pour ce fix. Le prochain gate est le rejeu Rust opérateur du correctif, puis `pre.007` si ce rejeu est vert.
|