10 Commits

Author SHA1 Message Date
shawn 2840d8b58e Fix agent tab wrapping: horizontal scroll instead of flex-shrink
- Tabs now scroll horizontally (overflow-x: auto) with hidden scrollbar
- Each tab maintains its natural width (flex-shrink: 0) — no wrapping
- Label stays pinned (flex-shrink: 0) so it doesn't get lost when scrolling
2026-06-02 18:02:10 -04:00
shawn 1a3740cdad Widen mobile panels 88% → 94% 2026-06-02 18:00:36 -04:00
shawn 147c2eb30d Widen mobile panels 72% → 88%, stretch profile tabs horizontally
- Mobile panel max-width: 72% → 88% (6% margins each side)
- Profile tabs: flex:1 with justify-content:center, fill available width
- Cache buster style.css v=13 → v=14
2026-06-02 17:53:12 -04:00
shawn 5839bc47ce Add watchdog agent profile to command center
- Add 'watchdog' to KNOWN_PROFILES (5th agent)
- Custom status check via watchdog state file + kanban gateway fallback
- New /api/watchdog/status endpoint with scripts, plugins, heartbeat info
- Watchdog endpoint bypasses auth (public, non-sensitive)
- Update frontend PROFILE_ICONS + cache buster
2026-06-02 17:45:03 -04:00
shawn 3f086b7849 Fix Firefox mobile panel centering and agent profile loading
- Fix auth middleware: make GET /api/agents public so agent profiles
  load in Firefox mobile (browser doesn't send Basic Auth on XHR)
- Fix CSS: use display: grid; justify-items: center on .content
  instead of margin: 0 auto on .panel — Firefox fails to honor
  margin: auto with percentage width inside flex containers
- Add box-sizing: border-box to panel elements
- Bump cache busters (v=13 for CSS, v=2 for JS)

Root cause: Firefox mobile on Pixel 4a rendered .panel with
width:72%; margin:0 auto shifted 242px right (flush to edge).
CSS Grid centering resolves the cross-browser rendering difference.
2026-06-02 17:18:17 -04:00
shawn 9788abb8ce feat: Agent Chat API backend - profiles, send, history
- GET /api/agents - list known profiles with online/offline status
- POST /api/agents/{profile}/send - send message via Hermes CLI subprocess
- GET /api/agents/{profile}/history - retrieve conversation history
- SQLite conversation store at ~/.hermes/kanban/boards/hermes-command-center/conversations.db
- Response cleanup to strip Hermes CLI wrapper formatting
- Auth-gated via existing Basic Auth middleware
2026-06-01 23:53:39 -04:00
shawn ca1cb63f65 feat: Network Status Dashboard frontend
- Host cards grid with live status (green/red/yellow badges), latency, expandable details
- Service table with category, URL/port, status, latency
- Local services tab (from ss -tlnp)
- Auto-refresh every 30s with visual countdown bar
- Manual refresh button with rotate animation
- Summary bar (online/degraded/offline/total counts)
- Mobile-responsive: single-column cards, scrollable tables
- Tab-based navigation between Hosts / Services / Local Services
2026-06-01 23:50:38 -04:00
shawn 54af25d2da feat: config file editor with API endpoints, frontend UI, and tests
- Added GET /api/config/list - list whitelisted config files with metadata
- Added GET /api/config/read - read file content with line numbers
- Added POST /api/config/save - save with auto-backup and YAML validation
- Added POST /api/config/backup - manual backup endpoint
- Security: whitelist-based path validation, rejects paths outside whitelist
- Auto-backup before save with .bak.<timestamp> naming
- YAML validation for .yaml/.yml files
- Frontend: file list sidebar, code editor with line numbers, status bar
- Mobile-responsive layout (file list top, editor below)
- Config panel in nav, lazy-loaded when navigated to
- 13/13 tests passing
2026-06-01 23:49:30 -04:00
shawn 0dc5a2db2f Agent chat, config editor, vault reader, network status - initial implementation 2026-06-01 23:47:45 -04:00
shawn 049edc0238 Initial scaffold: FastAPI server, responsive UI shell 2026-06-01 23:44:10 -04:00