One-time UI state (permission-mode choice, feature-announcement dismissals,
update banner) persists via per-origin localStorage. For embedded hosts
(iframe), storage can be partitioned or origins can change per session
(e.g. per-session ports), so these dialogs reappear on every session.
The published UI packages already expose a host-override seam
(configurePlannotatorUI). Proposal: extend it with an initial-prefs object
(e.g. { permissionMode, dismissedAnnouncements, skipTours }) that the editor
honors on boot, so a host can preset state instead of depending on
localStorage.
One-time UI state (permission-mode choice, feature-announcement dismissals,
update banner) persists via per-origin localStorage. For embedded hosts
(iframe), storage can be partitioned or origins can change per session
(e.g. per-session ports), so these dialogs reappear on every session.
The published UI packages already expose a host-override seam
(configurePlannotatorUI). Proposal: extend it with an initial-prefs object
(e.g. { permissionMode, dismissedAnnouncements, skipTours }) that the editor
honors on boot, so a host can preset state instead of depending on
localStorage.