Skip to content

fix(ios): wire model-viewer + multi-model deep-link routes (closes #1015)#1020

Merged
thomas-gorisse merged 1 commit into
mainfrom
claude/ios-1015-deep-link-routing
May 13, 2026
Merged

fix(ios): wire model-viewer + multi-model deep-link routes (closes #1015)#1020
thomas-gorisse merged 1 commit into
mainfrom
claude/ios-1015-deep-link-routing

Conversation

@thomas-gorisse
Copy link
Copy Markdown
Contributor

Closes #1015 (Agent 3 finding of the v4.1.0 audit).

DemoDeepLinkRegistry.allowedIds had model-viewer + multi-model listed but destination(for:) had no cases — they fell to the default branch = "Coming soon" placeholder. Any QR scan of sceneview://demo/model-viewer (the helmet hero on the App Store listing) dead-ended.

iOS doesn't have 1:1 ports of those Android demos. The Sketchfab Explore tab IS the canonical iOS model-viewer experience but it's a Tab inside TabView (not modally presentable). Route both ids to SceneGalleryDemo so user lands on real 3D content (composed multi-shape scene) instead of the placeholder. Mapping rationale documented inline.

Build green on iOS simulator.

)

The `DemoDeepLinkRegistry.allowedIds` whitelist had `model-viewer` and
`multi-model` listed but the `destination(for:)` switch had no cases for
either — they fell to the default branch which routes to the "Coming
soon" placeholder. Result: any user scanning a QR code from
sceneview.github.io that points at `sceneview://demo/model-viewer` (the
helmet hero — also the App Store listing screenshot) dead-ended on a
sablier icon instead of seeing real 3D content.

Surfaced by Agent 3 of the v4.1.0 5-agent post-ship audit.

iOS doesn't have 1:1 ports of Android's `ModelViewerDemo` (single hero
model, orbit camera) or `MultiModelDemo` (tabletop). The Sketchfab
Explore tab IS the canonical iOS model-viewer experience, but it's a
Tab in the main TabView — not a standalone View we can present modally
from a deep-link sheet. So route both ids to `SceneGalleryDemo` (the
composed multi-shape scene): user lands on real 3D content instead of
the placeholder.

A doc-comment in the switch explains the iOS↔Android mapping rationale
so the next contributor doesn't undo it.

Closes #1015.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

iOS demos: model-viewer + multi-model are in allowedIds but route to Coming soon placeholder

1 participant