- library: expose page tags (batch), render tag chips per row and add a tag
filter bar; register tag create/associate/remove in the shared context menu
exactly like local-workspace
- library: restore monochrome SVG icons (folder/edit/image/file) matching
local-workspace, with optional custom page_icon
- workspace: refresh tag chips/filter live on tag add/remove (reassign arrays
+ tagsVersion) instead of requiring a page reload
- ctxmenu: measure the rendered menu and clamp it to the viewport on open
- library.html: remove leftover syntax error + orphan </template></div> that
broke libraryPage() (page showed 'undefined' and no files), call the correct
fdCtx.openMenu and use self instead of a throwaway libraryPage() instance
- _ctx_menu.html: full conventional menu with shortcuts, tags + colour picker,
edit-icon picker; closes on outside click and Escape
- local_workspace.html: migrate onContextMenu to the shared fdCtx store with
complete handlers; drop legacy window._ctxMenuData DOM hacks
- dashboard.py: expose page_icon + favorited in the workspace tree