Brian Krabach
93dc92484b
feat: pre-render sidebar on openSession before first poll tick
2026-03-27 17:38:36 -07:00
Brian Krabach
9f60ead3d2
feat: wire sidebar toggle button click handlers
2026-03-27 17:23:53 -07:00
Brian Krabach
0c39a79b8a
feat: add initSidebar and toggleSidebar with localStorage persistence
2026-03-27 17:18:19 -07:00
Brian Krabach
bba862fba3
feat: add renderSidebar — populates sidebar list from session data
2026-03-27 17:11:18 -07:00
Brian Krabach
730ed68a30
feat: add buildSidebarHTML — session card HTML builder for sidebar
2026-03-27 17:05:40 -07:00
Brian Krabach
67da2e9aa2
feat: add responsive sidebar overlay at <960px and reduced-motion support
2026-03-27 17:00:07 -07:00
Brian Krabach
4e7e461077
feat: add sidebar session card styles
2026-03-27 16:53:51 -07:00
Brian Krabach
599b9a8997
feat: add sidebar container styles and collapse animation
2026-03-27 16:48:09 -07:00
Brian Krabach
0f95f5aab0
feat: add view-body flex layout and --bg-surface variable
2026-03-27 16:44:20 -07:00
Brian Krabach
1023c14480
fix: type-safe Tag guard in test and aria-label on sidebar-collapse-btn
2026-03-27 16:40:51 -07:00
Brian Krabach
a3f1e2efd8
feat: add sidebar markup, toggle button, and view-body wrapper to expanded view
...
- Add #sidebar-toggle-btn to expanded-header (after #back-btn, before #expanded-session-name)
with aria-label='Toggle session list' and hamburger icon ☰
- Wrap #terminal-container in div.view-body
- Add #session-sidebar before #terminal-container inside .view-body, containing:
- .sidebar-header with .sidebar-title 'Sessions' and #sidebar-collapse-btn (chevron ‹)
- #sidebar-list div
- Keep #reconnect-overlay outside .view-body as sibling inside #view-expanded
Tests added:
- test_html_sidebar_toggle_button: verifies placement, aria-label, and order in header
- test_html_view_body_wrapper: verifies .view-body contains #session-sidebar and #terminal-container
- test_html_reconnect_overlay_outside_view_body: verifies #reconnect-overlay is outside .view-body
- test_html_session_sidebar_structure: verifies full sidebar DOM structure
Co-authored-by: Amplifier <amplifier@amplified.dev >
2026-03-27 16:35:43 -07:00
Brian Krabach
604525e64c
fix: bell badge sizing, text contrast, and empty timestamp display
...
- .tile-bell: inline-flex badge (min-width:16px height:16px) so it's a
circle for single digits, pill for '9+'; was display:inline so
width/height were ignored → oval shape
- .tile-bell color: #0D1117 (dark on amber) — was inheriting muted gray
from .tile-meta, making count illegible
- formatTimestamp(null): return '' instead of em-dash '—' which rendered
as a confusing glyph in the tile meta area
2026-03-27 15:32:39 -07:00
Brian Krabach
50007a6d2a
fix: anchor tile preview to bottom so newest terminal content is visible
...
Previously the <pre> snapshot floated to the top of .tile-body — when
content overflowed, the oldest lines showed and newest were clipped.
Now .tile-body pre is position:absolute;bottom:0 so overflow clips
from the top and the lower-left corner (newest content) is always shown.
2026-03-27 15:17:07 -07:00
Brian Krabach
8234e2ec05
refactor: restructure project into muxplex/ subdir with brand integration
...
- Move coordinator/, frontend/, Caddyfile, pyproject.toml, requirements.txt,
docs/ into muxplex/ subdir in prep for packaging/sharing
- Add brand assets to frontend/: favicon.ico, pwa-192/512.png,
apple-touch-icon.png, wordmark-on-dark.svg
- Update app: title → muxplex, header → wordmark SVG, brand color tokens
in style.css, manifest.json updated with muxplex name and brand icons
- Add design system: assets/branding/tokens.css (101 CSS custom properties),
tokens.json (127 tokens), DESIGN-SYSTEM.md (856-line spec)
- Add assets/branding/: SVG sources, rendered PNGs (icons, favicons, PWA, OG)
- Add scripts/render-brand-assets.py for reproducible PNG generation
- Add muxplex/README.md
2026-03-27 15:06:00 -07:00