vrOS v0.16.2 Patch Notes
Highlights
Critical hotfix for a settings-persistence regression introduced in the v0.16.0 line. If you launched vrOS between the affected releases and changed any setting, your config.toml may have been overwritten with default values. This update restores reliable persistence and adds layered safeguards to prevent recurrence. Users on Windows can check %LOCALAPPDATA%\vrOS\ for config.toml.bak. files — going forward, any future default-shaped overwrite of a real config is automatically backed up there before being replaced.
Bug Fixes
- Fixed user settings not saving between sessions. The dashboard's JS bridge could finish initializing after React had already mounted, causing the in-memory config store to fall back to defaults and then persist those defaults over the user's saved config.toml on the next setting change. Production hydration now waits for the bridge instead of stamping defaults, with a hard cap on retries so the UI never spins forever.
- The settings store now refuses to persist a mutation when the only loaded snapshot is DEFAULT_CONFIG and no bridge is connected, surfacing a console error instead of silently overwriting saved settings.
- Bridge push events (config resyncs, persist confirmations, layout updates) registered before the Ultralight bridge had been injected are no longer lost — useBridgeEvent polls for the bridge's arrival and attaches once it appears.
- Immediately after the desktop bridge is injected, the backend now pushes an authoritative config.resynced event so the UI is guaranteed to hold the on-disk config, even if the initial hydrate raced ahead of the bridge.
Improvements
- save_raw now writes a timestamped config.toml.bak. sibling whenever it is about to overwrite a non-default config with a default-shaped one. Cheap insurance against future regressions of this class — real edits never produce backups.
- Internal documentation now describes the bridge timing contract, when the dev-preview defaults fallback is allowed, and the regression tests that guard the persistence pipeline.
