Element Call reaches production only as the embedded npm package, which webpack
copies into ThreadNet-Web under /widgets/element-call/. The embedded build sets
publicDir: false — upstream reasons that public/ holds nothing but the favicon,
which stopped being true when the model assets landed there.
Verified rather than assumed: with the upstream value everything builds, the
standalone bundle works, and the filter is dead only inside the widget, 404ing on
the model. That is the failure this would have shipped.
The package grows from about 41 to 66 MB, measured — most of what was already
there is source maps and the crypto and vision wasm.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>