Skip to content
IMMERSIAStaging
GuideSettings

Feature migration status

Audit: 2026-10-23. Public Staging for guide and guest testing; full historical parity remains incomplete.

“Server-tested” means automated checks of the compiled application service. It does not mean a hosted user journey or a physical device has passed. Existing production tools remain available while migration is incomplete.

Immersia Prod ↗ · Marketing preview ↗

Area / featureStateEvidence and limitation
Core applicationTour create/read/update and owner isolationhosted-testedCustom-domain guide/anonymous guest journey and two real Staging accounts; Worker integrationOnline core journey verified. Does not certify every physical device or historical capability.
Core applicationConcurrent editing revision conflictsserver-testedWorker/D1 integration; lib/store.tsServer logic verified; hosted signed-in and browser journeys remain unverified.
Core applicationSaved Editor tour → Host without JSON handoffhosted-testedCustom-domain guide/anonymous guest journey and two real Staging accounts; Worker integrationOnline core journey verified. Does not certify every physical device or historical capability.
Core applicationPrivate guide notes excluded from Guest payloadhosted-testedCustom-domain guide/anonymous guest journey and two real Staging accounts; Worker integrationOnline core journey verified. Does not certify every physical device or historical capability.
Core applicationPrivate uploaded media authorization and rangeshosted-testedCustom-domain guide/anonymous guest journey and two real Staging accounts; Worker integrationOnline core journey verified. Does not certify every physical device or historical capability.
Core applicationSession play/pause, seek, blackout and endhosted-testedCustom-domain guide/anonymous guest journey and two real Staging accounts; Worker integrationOnline core journey verified. Does not certify every physical device or historical capability.
Core applicationInvitation validation and revocationhosted-testedCustom-domain guide/anonymous guest journey and two real Staging accounts; Worker integrationOnline core journey verified. Does not certify every physical device or historical capability.
Core applicationStaging/production data separationserver-testedTwo independent Worker/D1 instances; distinct Site bindingsServer logic verified; hosted signed-in and browser journeys remain unverified.
Core applicationFrozen running-tour snapshotserver-testedWorker/D1 integration: edit tour after launchServer logic verified; hosted signed-in and browser journeys remain unverified.
Core applicationMCP private tour reads/writesserver-testedCompiled Worker authenticated JSON-RPC testsServer logic verified; hosted signed-in and browser journeys remain unverified.
Editor and live tourItinerary stop CRUD and reorderingpartialcomponents/Studio.tsxCode present. Browser/device behavior has not been verified in this environment.
Editor and live tourMap markers and stop coordinatespartialcomponents/TourMap.tsxCode present. Browser/device behavior has not been verified in this environment.
Editor and live tourMeeting point, accessibility and audience fieldspartialcomponents/Studio.tsx; lib/model.tsCode present. Browser/device behavior has not been verified in this environment.
Editor and live tourStanding instructions, visual targets, beats and transitionspartialcomponents/Studio.tsxCode present. Browser/device behavior has not been verified in this environment.
Editor and live tourSource references, rights notes and field-verification flagpartiallib/model.ts; components/MediaEditor.tsxCode present. Browser/device behavior has not been verified in this environment.
Editor and live tourStudio JSON import/export and legacy manifest mappingpartialscripts/check-core.mjs; lib/import-tour.tsCode present. Browser/device behavior has not been verified in this environment.
Editor and live tourGuide rehearsal modepartialcomponents/Guide.tsxCode present. Browser/device behavior has not been verified in this environment.
Editor and live tourImage, video and audio media cuespartialcomponents/live/Player.tsxCode present. Browser/device behavior has not been verified in this environment.
Editor and live tourPlayback in/out boundariespartiallib/runtime.ts; /api/session cue regression testsCode present. Browser/device behavior has not been verified in this environment.
Editor and live tourSession history and resumepartial/sessions; /api/session?history=1Code present. Browser/device behavior has not been verified in this environment.
Editor and live tourKeyboard/USB clicker controlspartiallib/runtime.ts hostKeyCommand tests; Host key listenerCode present. Browser/device behavior has not been verified in this environment.
Editor and live tourGuest reconnect and device resumepartialcomponents/live/LiveApp.tsx; /accessCode present. Browser/device behavior has not been verified in this environment.
Editor and live tourQR invitation generationpartialqrcode library; /guest capability URLCode present. Browser/device behavior has not been verified in this environment.
Editor and live tourFullscreen and wake lockpartialFeature-gated browser calls in LiveAppCode present. Browser/device behavior has not been verified in this environment.
Editor and live tourPWA install metadata and iconspartialpublic/manifest.webmanifest; /accessCode present. Browser/device behavior has not been verified in this environment.
Editor and live tourBounded download and offline guest media cachepartialpublic/sw.js cache expiry/range tests; LiveApp downloadCode present. Browser/device behavior has not been verified in this environment.
Media editingBinary clip rendering, private source vault, thumbnails and waveform editornot-migratedHistorical app/src/pages/editor/PrivateClipEditor.tsxNew Editor has playback cue bounds only; it does not render a trimmed media file.
OfflineStarting or controlling a live group without a networknot-migratedHistorical docs/internals/pwa-offline.md; new Host refuses disconnected writesLocal downloaded guide presentation exists. Offline live-group control is not implemented here and is not established as a working historical baseline.
DevicesNFC ringnot-migratedHistorical app/src/lib/device-parity.tsNative pilot remains tracked in #3331. No claim of device success or store update.
DevicesBLE ringnot-migratedHistorical app/src/components/RingControllerBar.tsxNative pilot remains tracked in #3331. No claim of device success or store update.
DevicesGamepad inputpartialStandard browser gamepad mapping in guide controller; rising-edge logic tests passed.D-pad previous/next, A play/pause, B blackout. Physical controller and native-device checks remain.
DevicesIndependent Android external display / phone-only Pocket Modehardware-pendingOrigin-scoped web adapter, renderer acknowledgements and heartbeat expiry; native-display testsStaging Android pilot uses the generated origin. Asset Links statement supplied for the verified staging certificate; native phone/glasses acceptance remains required.
DevicesiOS native wrapper and mirrored display integrationhardware-pendingHistorical ios/Sources/WebViewController.swiftSeparate historical native build/distribution remains in service. Website publication does not update installed binaries or prove device playback.
DevicesAndroid app store deliveryhardware-pendingHistorical android/ and release pipelineSeparate historical native build/distribution remains in service. Website publication does not update installed binaries or prove device playback.
DevicesWebXR textured media planehardware-pendinglib/webxr.tsReal session/render code exists; no headset test, world anchoring or geo-aligned AR validation.
DevicesMeta Ray-Ban Displayhardware-pendingCompact 600px display layout and D-pad handlerLayout only. No verified Meta transport, device session, simulator acceptance or publication.
DevicesXREAL browser screen mirroringhardware-pendingFullscreen guest view; existing app #3105Needs compatible video output and a physical phone/glasses bench.
Live audioLive guide voice streamingpartialWebRTC client and per-listener signaling; owner/invitation/cookie/revocation testsExperimental and off by default. Actual listening on two devices remains unverified; a TURN relay is not configured, so restricted networks may fail.
Live audioLive subtitlesimplementedExplicit guide captions and translated captions broadcast through the session; timed media subtitles are available.Automatic continuous speech captions are not implemented. Voice messages can be transcribed and reviewed before sending.
Live audioSimultaneous audio translationnot-migratedHistorical audio-translation-flag.ts; opt-in translate flagRecorded voice messages, text translation and device speech are implemented; continuous voice streaming and simultaneous audio translation remain unmigrated.
Account and commercialPlans, subscriptions, checkout and billing portalnot-migratedHistorical AccountPage.tsx and plan-limits.jsonBlocked on a Staging Stripe test credential. The available Doppler key is live-mode; it is not used. Stripe connector requires reauthentication.
Account and commercialPlan-based storage/guest/media entitlementsnot-migratedHistorical config/data/plan-limits.jsonThe private Sites pilot must not replace these historical production functions yet.
Account and commercialGuide teams and account administrationnot-migratedHistorical account/profile and plan guide-account limitsGuide account creation and sign-in are implemented. Multi-guide team administration is not ported; historical maxGuideAccounts limits alone do not prove a working team-invite flow.
Account and commercialLead capture, guest CRM and CSV exportspartialOptional consent form, owner-only participant list and CSV; compiled service testsHosted form/CSV validation pending this release. No external CRM writes. Lists are available for 30 days; expired rows are removed on subsequent submissions.
Account and commercialOAuth consent and revocable external agent connectionsnot-migratedHistorical oauth/consent and OAuthConnectionsPage.tsxThe private Sites pilot must not replace these historical production functions yet.
Account and commercialFrench and Chinese application UInot-migratedHistorical i18n locales en/fr/zhThe private Sites pilot must not replace these historical production functions yet.
Announced integrationsBokun product synchronizationexternal-pendingConversation roadmap; Studio Distribution panel; private MCP toolsNo official product-write authorization or reconciliation adapter configured.
Announced integrationsDirect availability/reservation/Stripe checkout in Immersiaexternal-pendingConversation roadmap; Studio Distribution panel; private MCP toolsNo booking transaction service in the new application.
Announced integrationsAutomatic OTA distributionexternal-pendingConversation roadmap; Studio Distribution panel; private MCP toolsNo connected channel write/sync flow in the new application.
Announced integrationsAutonomous tour generationexternal-pendingConversation roadmap; Studio Distribution panel; private MCP toolsPrivate MCP tools allow reading/saving a tour; no end-to-end generator is implemented.
Announced integrationsOfficial ChatGPT/Claude/Gemini marketplace publicationexternal-pendingConversation roadmap; Studio Distribution panel; private MCP toolsCurrent private ChatGPT Site MCP does not establish portable OAuth, third-party compatibility or official directory acceptance.
Announced integrationsLicensed premium catalogue and visitor-fit recommendationsexternal-pendingConversation roadmap; Studio Distribution panel; private MCP toolsStrategic direction; no operational marketplace or empirically validated recommendation service.
Immersia MarketingNew Editor/Host/Guest navigationserver-testedMarketing link audit; unified app routesPrivate access still applies.
Editor and live tourEmbedded MCP tour editorpartialOfficial MCP Apps SDK; authenticated UI resource; list/get/save tools share tour revisions. Compiled service integration tests passed.Private Staging connection only. ChatGPT rendering and other client OAuth acceptance remain to validate.
Migration updateGPS standing point and camera directionimplementedHigh-accuracy browser location, uncertainty, manual map points, bearing and walking directionsField accuracy and physical compass need on-street validation. No AR camera reconstruction.
Migration updateTimed subtitles and translationimplementedSRT/VTT import, editable tracks, transcription and translation, guest language choiceAI output requires review. Device voice availability varies.
Migration updateGuide voice messages and captionsimplementedMicrophone recording, caption broadcast, guest playback and device speechContinuous microphone streaming is not migrated.
Migration updateExisting Cloudflare staging datahosted-testedVerified legacy account UID, per-owner D1/R2 bridge; real historical tour opened and served to an invited guestSource tours stay read only. New drafts preserve slide order and guide provenance. Reopen existing drafts to fill missing blank notes; source vault and rendering remain separate.
AccountsExisting guide sign-in, new guide accounts and anonymous visitorshosted-testedReal Charlie/Douglas sign-ins, secure host-only cookies and independently owned libraries; signup service checksExisting-account authentication still depends on the historical Staging service. ChatGPT and historical identities remain separate.
EditorArchive and restore toursserver-testedCompiled Worker ownership, revision, archive listing and restoration testsRecoverable archive preserves content and media. Hosted UI validation is pending this release.
OfflineAccount-scoped guide downloadsserver-testedSeparate hashed cache namespace for each verified account; sign-out clears active identity; download/resume testsOlder unscoped downloads are preserved but hidden. Local browser storage is not encrypted and is not an account-security boundary against someone controlling the device.