You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs/design/TESTFLIGHT_RC_CHECKLIST.md lists 0.9.0 (2) on current main as Ready to archive. That build renders the procedural placeholder rather than the packaged companion, for the whole session. Recommend holding the archive until #246 lands.
This is not a regression in the packaged asset — the asset loads correctly. Two runtime bugs meant it was never shown.
Why the diagnostics looked healthy
Field receipts on main report the packaged asset as loaded and animating:
All of that is true, and the companion on screen is still the placeholder. The two are not contradictory:
The placeholder is never swapped out. The companion spawns as soon as the game asks, which is routinely before a large rig finishes decoding, so the first companion is the procedural fallback. Continuity then reports ok_present and never re-plants. The packaged asset finishes loading and sits unused.
Replaced companions never leave the scene. Companions sit on AnchorEntitys added via scene.addAnchor, which the scene's anchor collection owns — removeFromParent() does not detach them. Anything that did replace the placeholder rendered behind it.
Operator-visible symptom: cone ears, a gold core sphere and a ground disc — the primitive companion — with the real mesh either absent or occluded. Multiple device sessions across several days showed this while every diagnostic read healthy, which is why it survived so long.
Fix
#246 versions the loader template and upgrades a companion built from an older generation, and detaches anchors through scene.removeAnchor. Covered by tests (scene.anchors 2 → 1 on replace; packaged height/ground/material/clip-selection measurements). Operator-confirmed on device: the packaged companion now renders.
Hold
docs/design/TESTFLIGHT_RC_CHECKLIST.mdlists 0.9.0 (2) on currentmainas Ready to archive. That build renders the procedural placeholder rather than the packaged companion, for the whole session. Recommend holding the archive until #246 lands.This is not a regression in the packaged asset — the asset loads correctly. Two runtime bugs meant it was never shown.
Why the diagnostics looked healthy
Field receipts on
mainreport the packaged asset as loaded and animating:All of that is true, and the companion on screen is still the placeholder. The two are not contradictory:
The placeholder is never swapped out. The companion spawns as soon as the game asks, which is routinely before a large rig finishes decoding, so the first companion is the procedural fallback. Continuity then reports
ok_presentand never re-plants. The packaged asset finishes loading and sits unused.Replaced companions never leave the scene. Companions sit on
AnchorEntitys added viascene.addAnchor, which the scene's anchor collection owns —removeFromParent()does not detach them. Anything that did replace the placeholder rendered behind it.Operator-visible symptom: cone ears, a gold core sphere and a ground disc — the primitive companion — with the real mesh either absent or occluded. Multiple device sessions across several days showed this while every diagnostic read healthy, which is why it survived so long.
Fix
#246 versions the loader template and upgrades a companion built from an older generation, and detaches anchors through
scene.removeAnchor. Covered by tests (scene.anchors2 → 1 on replace; packaged height/ground/material/clip-selection measurements). Operator-confirmed on device: the packaged companion now renders.Suggested sequence
make validate(code moved past the Phase A receipt SHA)Also worth noting
ACTIVE_WORK.mdis stale against the repo: it pinsmainatd7954ac(actual850fe7b) and states "Open PRs: prefer none" while #242–#246 are open.