Problem
saveState() is debounced at 500ms. fetchManifest() polls every 30s and rebuilds desktop items. If user drags an icon and the manifest poll fires before the debounced save completes, the icon position is lost.
Fix
Add a dirty flag. Skip manifest rebuild if state has unsaved local changes.
Reference
- Refactor Plan — Phase 1.2
- Lines: 966, 884 in
default-pages/desktop.html
Problem
saveState()is debounced at 500ms.fetchManifest()polls every 30s and rebuilds desktop items. If user drags an icon and the manifest poll fires before the debounced save completes, the icon position is lost.Fix
Add a dirty flag. Skip manifest rebuild if state has unsaved local changes.
Reference
default-pages/desktop.html