Event handlers now read fresh state from State.get() instead of
using captured values from when bindSidebarEvents was called.
This ensures the sidebar updates correctly with each render.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Instead of depending on non-existent api_library_list_* views,
now queries library_${base} for unique mrf_library values and
fetches tag info from main table.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>