Skip to content

Comments

feat: add HTMX dashboard with auth and CRUD#598

Open
edouard-claude wants to merge 2 commits intosipeed:mainfrom
edouard-claude:feat/dashboard-htmx
Open

feat: add HTMX dashboard with auth and CRUD#598
edouard-claude wants to merge 2 commits intosipeed:mainfrom
edouard-claude:feat/dashboard-htmx

Conversation

@edouard-claude
Copy link
Contributor

Summary

Ref #101

Naive attempt at a built-in web dashboard — no strong opinion on this, just a proposal to explore the idea. Happy to hear thoughts or close if this isn't the right direction.

Dashboard

dashboard-main

Login

dashboard-login

Settings

dashboard-settings

What it does

  • Optional dashboard at /dashboard (dashboard.enabled: false to disable)
  • Password-protected with HMAC-SHA256 signed cookie sessions (24h expiry)
  • Auto-generates a 16-char password on first launch, saved to config.json
  • HTMX-powered with real-time SSE status updates
  • CRUD for Agents (with AGENT.md instructions editing), Models, Channels, Settings
  • Dark monospace theme, responsive
  • HTMX loaded from CDN, no vendored JS
  • Restart banner warns when changes need a gateway restart

Performance

Measured on macOS (Apple Silicon), 3 agents, no channels:

Without dashboard With dashboard Delta
Binary 25 MB 61 MB +36 MB
RSS at idle 21 MB 30 MB +9 MB

Binary increase comes from the Go linker retaining more SDK symbols when the dashboard references AgentLoop — not from the dashboard code itself (169 symbols, ~20KB static). Fully optional.

E2E tested

  • Login/logout flow, cookie persistence across restarts
  • Agent CRUD with AGENT.md written to correct workspace
  • Config persistence, restart banner

Test plan

  • go test ./pkg/dashboard/... (55 tests)
  • go vet ./...
  • Manual: login, CRUD, disable with config flag

Ref sipeed#101 — built-in web dashboard with password auth and config management.

- Optional dashboard at /dashboard (dashboard.enabled: false to disable)
- HMAC-SHA256 signed cookie sessions (24h expiry)
- Auto-generated password on first launch, saved to config.json
- HTMX + SSE real-time status, CRUD for agents/models/channels/settings
- Agent instructions editing (AGENT.md per workspace)
- 55 tests, E2E tested (login, CRUD, persistence, logout)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant