You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Local asset storage never cleans up: deleting an asset:// scan or guide orphans its File in IndexedDB #733
Split out of #726 (review note) so it doesn't get lost.
handleDelete in packages/editor/src/components/ui/sidebar/panels/site-panel/index.tsx only routes http(s) URLs to onDeleteAsset. Assets persisted locally through saveAsset (packages/core/src/lib/asset-storage.ts, asset://<id> URLs) are never removed from IndexedDB when the referencing node is deleted.
Guide images have had this gap since local guide storage landed; with #726 the same path now stores scans, which are up to 200 MB each, so the orphaned data is no longer trivia.
Two layers to it:
Immediate: when a node holding the last reference to an asset:// URL is deleted, delete the IDB entry (mind undo — a deleted node can come back with history, so eager deletion needs either a grace period or resurrection re-save).
Structural: loadAssetUrl's module-level urlCache never revokes object URLs either. A small ref-counted asset lifecycle in asset-storage.ts would cover both.
An interim mitigation could be a sweep on scene load: drop IDB entries whose ids appear in no loaded node.
Activity
fix(editor): drop scene-load asset sweep that wiped other scenes
fix(core): schedule local asset cleanup from deleteNodes lifecycle
fix(core): fire-time asset recheck, post-commit replace, epoch on set…
fix(editor): explicit multi-scene GC instead of active-graph deletes