Brian Krabach f41061f85f fix: correct sidebar element IDs, add missing CSS classes, and align test mocks
Three-part consistency defect identified in code review:

1. HTML: Four sidebar elements missing CSS class attributes so all CSS
   rules targeting .session-sidebar, .sidebar-toggle-btn,
   .sidebar-collapse-btn, and .sidebar-list applied to zero elements.
   Added class= attributes to all four.

2. JS: initSidebar(), toggleSidebar(), and bindSidebarClickAway() called
   $('sidebar') and $('collapse-btn') — neither ID exists in the DOM.
   Corrected to $('session-sidebar') and $('sidebar-collapse-btn').

3. Tests: initSidebar/toggleSidebar mocks matched the wrong IDs, masking
   the defect. Updated all six mock conditions to match corrected IDs.

4. Coverage gap: test_html_element_classes did not verify new sidebar
   elements carry CSS classes. Added four entries for session-sidebar,
   sidebar-toggle-btn, sidebar-collapse-btn, and sidebar-list — these
   entries would have caught Defect 1 on Task 1's test run.

All 136 JS + 167 Python tests pass. Zero regressions.
2026-03-27 18:02:29 -07:00

muxplex

A web-based dashboard for tmux sessions. Access and manage all your tmux sessions from any device — browser, phone, tablet.

Features

  • Live tile grid showing all running tmux sessions
  • Click any session to open a full interactive terminal
  • Bell/activity notifications across sessions
  • Multi-device support with state sync
  • Mobile-friendly, responsive, PWA-capable
  • Works over Tailscale private network

Stack

  • Backend: Python FastAPI coordinator (coordinator/)
  • Frontend: Vanilla JS + xterm.js (frontend/)
  • Terminal: ttyd (WebSocket bridge to tmux)
  • Proxy: Caddy

Running

# Install dependencies
pip install -r requirements.txt

# Start coordinator (from this directory)
python -m uvicorn coordinator.main:app --host 0.0.0.0 --port 8099

# Start Caddy proxy
caddy run --config Caddyfile

Development

# Run tests
python -m pytest

Brand assets

Design language, tokens, and brand assets in assets/branding/. To regenerate PNG/favicon assets from SVG sources:

python3 scripts/render-brand-assets.py
S
Description
Web-based tmux session dashboard and terminal multiplexer
Readme 4.4 MiB
Languages
Python 63.1%
JavaScript 30.5%
CSS 4%
HTML 1.4%
Go 1%