hf-space kept its own web/js/engine copy while main moved to projector's
(48c766c); it had drifted behind the shared engine (no WebGL context-loss
recovery, grid stranded at the origin under a TF-resolved frame, no
setCameraPose), so the HF Space ran the old engine. Mount
projector.web_engine_dir() at /js/engine, as main does, and delete the copy.
projector-engine is not on PyPI yet: CI installs it from GitHub and the Space
image from the v0.1.0 tag archive (the slim image ships no git); locally
[tool.uv.sources] resolves the ../projector sibling, editable.