From 99fea9df9b19ad0bde4f2cbc386289a85cae9069 Mon Sep 17 00:00:00 2001 From: ruv Date: Tue, 21 Jul 2026 17:30:33 -0700 Subject: [PATCH] fix(adr-185): drop dead wifi-densepose-nn dep from train to slim [meridian] wheel MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Root cause (investigated, same rigor as the MAT fix): `wifi-densepose-train` declared `wifi-densepose-nn` as a dependency but NEVER imported it anywhere in src/ or bin/ — a dead dependency. (The tch-backend model path uses the `tch` crate directly, not wifi-densepose-nn; `grep -r wifi_densepose_nn src/` returns nothing.) That dead dep pulled `ort` (ONNX Runtime) + reqwest/hyper into every downstream consumer, including the ADR-185 `[meridian]` wheel, which binds only train's pure-compute geometry / rapid_adapt / eval modules + signal::hardware_norm. `cargo tree -i wifi-densepose-nn` confirmed train was the SOLE path pulling nn into the wheel; after removal, the package is absent from the graph. Fix: remove the dead dep line from train's Cargo.toml (no code change, no feature-gating needed — nothing referenced it). Not a hoist: the coupling turned out to be nonexistent, not deep. Measured (maturin build --release --features meridian --strip): BEFORE: 1.8 MB AFTER: 1.7 MB (both already within the ADR-117 §5.4 <=5 MB budget). Honest note: unlike MAT — which instantiates OnnxSession and thus bundles the ort native runtime (8.4 MB) — train never references ort, so the native lib was dead-stripped and the wheel was already under budget. The real win is removing ort/reqwest/hyper from train's dependency graph and compile for ALL consumers, not a dramatic wheel shrink. Verified: cargo build -p wifi-densepose-train (default=[]) OK cargo tree -i wifi-densepose-nn -> no longer in the graph cargo test --features meridian --test meridian_parity 2/2 pass maturin develop --features meridian + pytest test_meridian 13/13 pass --- v2/crates/wifi-densepose-train/Cargo.toml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/v2/crates/wifi-densepose-train/Cargo.toml b/v2/crates/wifi-densepose-train/Cargo.toml index 133026f5..bebbf82c 100644 --- a/v2/crates/wifi-densepose-train/Cargo.toml +++ b/v2/crates/wifi-densepose-train/Cargo.toml @@ -35,7 +35,13 @@ cuda = ["tch-backend"] [dependencies] # Internal crates wifi-densepose-signal = { version = "0.3.0", path = "../wifi-densepose-signal", default-features = false } -wifi-densepose-nn = { version = "0.3.0", path = "../wifi-densepose-nn" } +# NOTE: `wifi-densepose-nn` was declared here but never imported anywhere in +# this crate's src/ or bin/ (the tch-backend model path uses `tch` directly, +# not this crate). It was a dead dependency that pulled `ort` (ONNX Runtime) + +# reqwest/hyper into every downstream consumer — including the ADR-185 +# `[meridian]` wheel. Removed to slim the dependency graph. Inference at +# serving time is done via `wifi-densepose-nn` by the binaries that actually +# load models, which depend on it directly. # Core thiserror.workspace = true