Files
khadhroony-solana-project/deltas/0.3.11/pre.002.md
2026-09-08 09:10:57 +02:00

165 lines
5.2 KiB
Markdown

<!-- file: deltas/0.3.11/pre.002.md -->
<!-- version: 1 -->
# Delta `0.3.11-pre.002` — squelette Worker RAW + dependency firewall
## Base requise
```text
0.3.11-pre.001
workspace.package.version = 0.3.11-pre.1
```
Le gate opérateur communiqué pour `pre.001` est vert sur `cargo fmt --all`, les audits Rust/Markdown, `cargo check --workspace` et Clippy workspace strict `--all-targets --all-features -- -D warnings`. Aucun `cargo test` supplémentaire n'a été communiqué pour ce gate et aucun n'est inventé.
## Objectif
Créer uniquement le squelette de `ksp-worker-raw-transaction-ingest-lib`, l'inscrire au workspace et verrouiller son graphe de dépendances. Aucun settings, identity, `start`, task, channel, Store write, canonicalisation ou snapshot runtime n'est matérialisé dans cette tranche.
## Version
Cette tranche est une prerelease non-fix :
```text
workspace.package.version = 0.3.11-pre.2
```
Le `Cargo.toml` racine passe du header `506` au header `507` et le workspace passe de 20 à 21 membres.
## Graphe de production exact
```text
ksp-worker-raw-transaction-ingest-lib
-> ksp-core-lib
-> ksp-logging-lib
-> ksp-raw-transaction-lib
-> ksp-store-lib default-features=false
-> ksp-worker-api
-> sha2
-> tokio features=macros,rt,sync,time
```
Ces edges matérialisent uniquement la frontière décidée en `pre.001`. Le code runtime qui les consommera reste réservé à ses tranches dédiées.
## Firewall explicite
Absents du manifest de production :
```text
futures-util
ksp-config-lib
ksp-interface-lib
ksp-job-api
ksp-job-backfill-lib
ksp-onchain-transport-lib
ksp-program-api
ksp-store-api direct
ksp-store-postgres-lib
ksp-wallet-lib
reqwest
Solana protocol SDK direct
tokio-tungstenite
tonic
yellowstone-grpc-proto
```
Il n'existe ni `[dev-dependencies]`, ni `[build-dependencies]` dans cette tranche.
## Crate-root volontairement vide de comportement
`src/lib.rs` contient uniquement les lints workspace et la rustdoc de responsabilité. Il n'expose encore :
```text
aucun pub mod
aucun type public
aucune fonction publique
aucun start/spawn
aucun appel Tokio
aucun appel Store/common RAW/Worker API
```
Le test externe `dependency_boundary.rs` verrouille le manifest exact, les edges interdits et l'absence de comportement runtime prématuré au crate-root.
## Documentation volontairement différée
`README.md` et `USAGE.md` ne sont pas créés à ce stade car la crate ne possède encore aucune API consommable. Leur réconciliation version-neutral reste réservée à `pre.012`, après freeze de la fondation runtime.
## Fichiers ajoutés
```text
crates/ksp-worker-raw-transaction-ingest-lib/Cargo.toml
crates/ksp-worker-raw-transaction-ingest-lib/src/lib.rs
crates/ksp-worker-raw-transaction-ingest-lib/tests/dependency_boundary.rs
deltas/0.3.11/pre.002.md
```
## Fichiers modifiés
```text
Cargo.toml
docs/plans/032-V0_3_11_RAW_TRANSACTION_INGEST_WORKER_FOUNDATION_PLAN.md
docs/validation/028-V0_3_11_RAW_TRANSACTION_INGEST_WORKER_FOUNDATION.md
```
## Fichiers supprimés
Aucun.
## Validations exécutées dans l'environnement d'assemblage
```text
python3 scripts/audit_rust_workspace_rules.py
General Rust rule audit: clean
Rust export completeness audit: 0 candidate(s)
KSP workspace Rust rule audit: clean
python3 scripts/audit_markdown_tables.py README.md RULES.md ROADMAP.md CHANGELOG.md docs prompts crates deltas
Markdown table audit: clean (340 table(s), 776 file(s))
contrôle TOML/statique : workspace 0.3.11-pre.2, 21 membres, manifest Worker exact, Store sans default features, Tokio macros/rt/sync/time
comparaison byte-à-byte avec pre.001 : 4 fichiers ajoutés, 3 modifiés, 0 supprimé
```
L'environnement d'assemblage ne fournit ni `cargo`, ni `rustc`, ni `rustfmt`. Aucun gate Cargo n'est déclaré PASS localement.
## Gate opérateur demandé
```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
cargo check --workspace
cargo clippy --workspace --all-targets --all-features -- -D warnings
cargo test -p ksp-worker-raw-transaction-ingest-lib
cargo tree -p ksp-worker-raw-transaction-ingest-lib --edges normal
cargo tree -p ksp-worker-raw-transaction-ingest-lib -e features
```
## Validations non exécutées localement
```text
cargo fmt --all
cargo check --workspace
cargo clippy --workspace --all-targets --all-features -- -D warnings
cargo test -p ksp-worker-raw-transaction-ingest-lib
cargo tree -p ksp-worker-raw-transaction-ingest-lib --edges normal
cargo tree -p ksp-worker-raw-transaction-ingest-lib -e features
```
## Décisions conservées
```text
aucune source live dans 0.3.11
aucun Transport productif avant 0.3.12
Store uniquement via ksp-store-lib default-features=false
aucun backend Store direct
aucun Job/Backfill/Config dans le Worker
futures-util absent tant qu'un usage réel n'est pas démontré
Tokio direct parce que le Worker concret possédera ses tâches runtime
aucune API publique avant la tranche qui en possède le contrat
```
## Suite
Après gate opérateur vert, `pre.003` introduit uniquement l'identité Worker concrète et `RawTransactionIngestSettings` avec defaults, bornes et validation. Aucun spawn n'y est autorisé.