v0.3.11-pre.003
This commit is contained in:
185
deltas/0.3.11/pre.003.md
Normal file
185
deltas/0.3.11/pre.003.md
Normal file
@@ -0,0 +1,185 @@
|
||||
<!-- file: deltas/0.3.11/pre.003.md -->
|
||||
<!-- version: 3 -->
|
||||
|
||||
# Delta `0.3.11-pre.003` — identité Worker + settings bornés
|
||||
|
||||
## Base requise
|
||||
|
||||
```text
|
||||
0.3.11-pre.002
|
||||
workspace.package.version = 0.3.11-pre.2
|
||||
```
|
||||
|
||||
Le gate opérateur communiqué pour `pre.002` est entièrement vert : `cargo fmt`, audits Rust/Markdown, `cargo check --workspace`, Clippy strict, tests de la crate et arbres Cargo normal/features. Les 3 tests `pre.002` passent et le firewall de dépendances reste conforme.
|
||||
|
||||
## Objectif
|
||||
|
||||
Matérialiser uniquement l'identité de la verticale Worker RAW transaction ingest et ses settings runtime techniques bornés. Aucun lifecycle, `start`, spawn, task, channel, supervisor, persistence Store, canonicalisation ou source live n'est introduit.
|
||||
|
||||
## Version
|
||||
|
||||
Cette tranche est une prerelease non-fix :
|
||||
|
||||
```text
|
||||
workspace.package.version = 0.3.11-pre.3
|
||||
```
|
||||
|
||||
## Identité Worker
|
||||
|
||||
La verticale possède le code stable :
|
||||
|
||||
```text
|
||||
RAW_TRANSACTION_INGEST_WORKER_KIND_CODE = "raw_transaction_ingest"
|
||||
```
|
||||
|
||||
La transformation de ce texte en `WorkerKindCode` reste sous validation de `ksp-worker-api`; aucun second validateur d'identité n'est créé dans la crate concrète.
|
||||
|
||||
## `RawTransactionIngestSettings`
|
||||
|
||||
Surface exacte :
|
||||
|
||||
```text
|
||||
network: ksp_store_lib::RawNetworkId
|
||||
worker_id: ksp_worker_api::WorkerId
|
||||
admission_queue_capacity: usize
|
||||
persistence_concurrency: usize
|
||||
shutdown_drain_timeout: Duration
|
||||
```
|
||||
|
||||
Les champs sont privés et exposés par getters. Deux constructions existent : paramètres explicites bornés et defaults V1 sur des identités déjà validées.
|
||||
|
||||
Bornes exactes :
|
||||
|
||||
```text
|
||||
admission queue : 1..=65_536, default 256
|
||||
persistence concurrency : 1..=64, default 8
|
||||
shutdown drain : 100 ms..=30 s, default 5 s
|
||||
```
|
||||
|
||||
Les bornes sont inclusives. Aucun champ historique, provider-specific, retry, replay, gap repair, source capability ou frontier n'est ajouté.
|
||||
|
||||
## Erreur settings
|
||||
|
||||
La crate ouvre un seul code propre à cette tranche :
|
||||
|
||||
```text
|
||||
worker_raw_transaction_ingest.settings_invalid
|
||||
```
|
||||
|
||||
Il couvre uniquement les limites techniques possédées par le Worker concret. Le contexte d'erreur contient seulement le nom statique du champ invalide :
|
||||
|
||||
```text
|
||||
admission_queue_capacity
|
||||
persistence_concurrency
|
||||
shutdown_drain_timeout
|
||||
```
|
||||
|
||||
Aucune valeur caller-supplied n'est copiée dans le diagnostic.
|
||||
|
||||
Les erreurs de `RawNetworkId`, `WorkerId` et `WorkerKindCode` restent celles de leurs crates propriétaires.
|
||||
|
||||
## Redaction
|
||||
|
||||
`Debug` du settings rend le network logique mais conserve le `WorkerId(..)` redacted fourni par `ksp-worker-api`; le texte réel du Worker ID n'est pas rendu.
|
||||
|
||||
## Frontière runtime maintenue
|
||||
|
||||
Toujours absents :
|
||||
|
||||
```text
|
||||
RawTransactionIngestWorker
|
||||
start/spawn
|
||||
JoinHandle/JoinSet
|
||||
mpsc/watch
|
||||
supervisor
|
||||
Store write
|
||||
common RAW conversion
|
||||
Transport
|
||||
source live/provider SDK
|
||||
```
|
||||
|
||||
Le manifest de production est inchangé depuis `pre.002`.
|
||||
|
||||
## Tests ajoutés/étendus
|
||||
|
||||
```text
|
||||
unit_tests/settings.rs
|
||||
defaults exacts
|
||||
bornes min/max inclusives
|
||||
six cas hors bornes
|
||||
code/contexte d'erreur stable
|
||||
redaction Debug du WorkerId
|
||||
|
||||
tests/public_api.rs
|
||||
kind + settings consommables depuis crate root
|
||||
validation network/Worker identity reste lower-layer-owned
|
||||
erreur de borne publique stable et sans echo d'identité
|
||||
|
||||
tests/dependency_boundary.rs
|
||||
firewall pre.002 conservé
|
||||
crate-root pre.003 limité à identity/settings
|
||||
absence de comportement runtime prématuré
|
||||
```
|
||||
|
||||
## Fichiers ajoutés
|
||||
|
||||
```text
|
||||
crates/ksp-worker-raw-transaction-ingest-lib/src/error.rs
|
||||
crates/ksp-worker-raw-transaction-ingest-lib/src/identity.rs
|
||||
crates/ksp-worker-raw-transaction-ingest-lib/src/settings.rs
|
||||
crates/ksp-worker-raw-transaction-ingest-lib/unit_tests/settings.rs
|
||||
crates/ksp-worker-raw-transaction-ingest-lib/tests/public_api.rs
|
||||
deltas/0.3.11/pre.003.md
|
||||
```
|
||||
|
||||
## Fichiers modifiés
|
||||
|
||||
```text
|
||||
Cargo.toml
|
||||
crates/ksp-worker-raw-transaction-ingest-lib/src/lib.rs
|
||||
crates/ksp-worker-raw-transaction-ingest-lib/tests/dependency_boundary.rs
|
||||
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
|
||||
|
||||
Premier passage : quatre écarts de forme détectés par l'audit Rust (rustdoc `pub(crate)`, ordre de constantes, ligne vide de fonction), puis un espacement Markdown documentaire détecté après ajout de la validation. Ils ont tous été corrigés avant livraison.
|
||||
|
||||
Gate final local :
|
||||
|
||||
```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), 777 file(s))
|
||||
|
||||
contrôle statique runtime-boundary : clean
|
||||
comparaison byte-à-byte avec pre.002 : 6 fichiers ajoutés, 5 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
|
||||
```
|
||||
|
||||
## Suite
|
||||
|
||||
Après gate opérateur vert, `pre.004` introduit le `start` caller-runtime-owned, le handle concret, le lifecycle/terminal et le stop idempotent. Aucun supervisor complet ni persistence réelle ne doit être anticipé avant leurs tranches dédiées.
|
||||
Reference in New Issue
Block a user