f41061f85f7a4427546ea03ddcc6d5cfaccdf6d2
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.
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
Description
Languages
Python
63.1%
JavaScript
30.5%
CSS
4%
HTML
1.4%
Go
1%