Skip to content

fix(shell): keep hosted module UI roots isolate-scoped - #537

Open
buqizixv wants to merge 1 commit into
OctoSense-org:mainfrom
buqizixv:codex/daycast-rinx-isolate-ui-root-20261014
Open

buqizixv wants to merge 1 commit into
OctoSense-org:mainfrom
buqizixv:codex/daycast-rinx-isolate-ui-root-20261014

Conversation

@buqizixv

Copy link
Copy Markdown

Problem

Confirming the Daycast family-weather reminder opens Rinx's native send-prompt flow, then Rinx stops with a draw panic. The shell log reports the hosted Rinx module panicking in draw with called Option::unwrap() on a None value; this occurs before a provider reply is involved.

A hosted Splash module's Root belongs to its isolated VM. Makepad's current set_ui_root path stores that VM-owned WidgetRef in the process-global widget tree, so a hosted app can replace the host's root and leave the shell with an invalid widget handle.

Change

  • Keep main Splash root registration unchanged.
  • For non-main Splash VMs, inject the root handle into that isolate instead of replacing the process-global root.
  • Record the Makepad fix in the pinned runtime overlay and add a regression test using the real Rinx module through ShowPrompt, HidePrompt, and ShowPrompt.

Validation

  • cargo test --locked --offline --release -p octosense-shell --lib --no-default-features --features app-rinx rinx_reminder_confirmation_does_not_stop_the_module -- --nocapture passed (1 test).
  • git diff --check passed.
  • python tools/setup.py --check --cargo could not run because the local Makepad checkout has local changes; the exact overlay is recorded in runtime-patches.lock.json for CI to verify.

Fixes #536

This branch has not been deployed

No deployments
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.

[Windows][Rinx] Confirming a Daycast reminder stops the hosted module

1 participant