95371712f2
Issue 1: Add '+ New View' to sidebar dropdown - Add '+ New View' action button (data-action='new-view') to renderSidebarViewDropdown() - Add showSidebarNewViewInput() function targeting #sidebar-view-dropdown-menu - Wire sidebar dropdown click handler to call showSidebarNewViewInput() - Also wire 'Manage Views' action in sidebar dropdown Issue 2: Remove keyboard shortcut numbers, add session counts - Remove <span class='view-dropdown__shortcut'> elements from both render functions - Show count of non-hidden sessions next to 'All Sessions' - Show each user view's session count (view.sessions.length) in parentheses - Keep keyboard shortcuts functional (backtick, 1-9) — just remove visual display Issue 3: Empty new view opens Add Sessions panel - Call openAddSessionsPanel() after switchView() in showNewViewInput() Enter handler - Same in showSidebarNewViewInput() — user immediately sees panel to populate new view Issue 4: Add '+ New View' option to tile flyout submenu - Add separator + '+ New View' button at bottom of _openFlyoutSubmenu() view list - Click handler: close flyout, prompt for name, validate, create view with session, switchView - Remove early exit when views.length === 0 (show New View option even with no views) Issue 5: Fix openAddSessionsPanel entry point + move to header - Remove broken add-sessions-tile with onclick='window.MuxplexApp.openAddSessionsPanel()' - Add <button id='add-sessions-btn'> to header-actions in index.html (hidden by default) - Add updateAddSessionsButton() to show/hide button based on active view - Wire button click to openAddSessionsPanel() in bindStaticEventListeners() - Call updateAddSessionsButton() from switchView() and DOMContentLoaded Issue 6: Fix device badge overlapping flyout icon - Move tile-options-btn inside tile-header as last flex item (was absolute sibling of article) - Move device badge out of tile-meta, now a direct flex sibling between tile-name and tile-meta - Remove tile-meta-sep separator (badge no longer in meta) - Add gap: 4px to .tile-header CSS - Remove position:absolute from .tile-options-btn CSS — flex-shrink:0 instead Tests: Add 17 new static analysis tests in test_frontend_js.py for all 6 issues. Update test_app.mjs tile tests to match new tile-header layout. All 318 frontend tests + 224 backend tests pass.