diff --git a/app/templates/local_workspace.html b/app/templates/local_workspace.html
index 5c8fdc5..36f04e5 100644
--- a/app/templates/local_workspace.html
+++ b/app/templates/local_workspace.html
@@ -1986,14 +1986,16 @@ window._ctxMenuData = {
ctxAvailTags: [],
ctxNewTagColor: '#787774',
ctxTagColors: ['#787774','#E03E3E','#D9730D','#DFAB01','#0F7B6C','#0B6E99','#6940A5','#AD1A72','#E16259','#D4A72C','#448361','#337EA9','#9065B0','#C94D8B'],
- ctxMenuOpenPage() { window._wsInitData.ctxMenuOpenPage(); },
- ctxMenuOpenFolder() { window._wsInitData.ctxMenuOpenFolder(); },
- ctxMenuRename() { window._wsInitData.ctxMenuRename(); },
- ctxMenuDuplicate() { window._wsInitData.ctxMenuDuplicate(); },
- ctxMenuDelete() { window._wsInitData.ctxMenuDelete(); },
- ctxAddExistingTag(t) { window._wsInitData.ctxAddExistingTag(t); },
- ctxAddNewTag(n, c) { window._wsInitData.ctxAddNewTag(n, c); },
- ctxRemoveTag(id) { window._wsInitData.ctxRemoveTag(id); },
+ // Use Alpine proxy (window._wsData) for reactivity, not raw object (window._wsInitData)
+ _ws() { return window._wsData || window._wsInitData; },
+ ctxMenuOpenPage() { this._ws().ctxMenuOpenPage(); },
+ ctxMenuOpenFolder() { this._ws().ctxMenuOpenFolder(); },
+ ctxMenuRename() { this._ws().ctxMenuRename(); },
+ ctxMenuDuplicate() { this._ws().ctxMenuDuplicate(); },
+ ctxMenuDelete() { this._ws().ctxMenuDelete(); },
+ ctxAddExistingTag(t) { this._ws().ctxAddExistingTag(t); },
+ ctxAddNewTag(n, c) { this._ws().ctxAddNewTag(n, c); },
+ ctxRemoveTag(id) { this._ws().ctxRemoveTag(id); },
};
console.log('FLOWDECK v2.4.6 — IIFE done, _wsInitData keys:', Object.keys(window._wsInitData).length);