Decisions
ADR-0008: No live dashboard in MVP
- Status: accepted
- Date: 2026-05-27
- Reaffirmed by: ADR-0019 — the chat agent's
coachmode is the formal "what's happening?" surface that replaces a streaming dashboard. The no-dashboard call stands; coach mode covers the gap with grounded, on-demand answers.
Context
A "live trading dashboard" (streaming equity curve, position deltas, fills appearing in real-time) is the natural expectation for a trading product. It's also genuinely expensive to build well:
- WebSocket layer from server to browser
- Per-deployment subscription management
- Concurrency / re-render budget on the client
- Visual design + charting library investment
- Testing under various network conditions
It is also not the critical path to validating the product. The product hinges on whether Skills can be authored, simulated, and deployed safely — not on whether the deployer can watch ticks roll in real-time.
Decision
MVP ships without a live dashboard. The deployment detail page is read-on-demand:
- Current
agent_state(single row read) - Recent
decision_snapshots(paginated, manual refresh) - Recent
agent_logs(paginated, manual refresh) - Recent
agent_commands+ ack status - Chat tab for asking the agent about current state
If the deployer wants a fresh state read, they click Refresh. If they want to know "what's happening right now?", they ask the chat agent.
Alternatives considered
Alt A — Full live dashboard with Supabase Realtime subscriptions
- Subscribe to
agent_staterows, push deltas to browser - Build effort: weeks of design + impl + polish
- Not picked: not on the MVP critical path. Defer to Phase 4+.
Alt B — Polling at fixed interval (e.g., every 5s)
- Cheap to build, looks "live"
- Wastes bandwidth + DB load when nobody's looking
- Not picked: not worth the half-measure. If we're going to do live, do it right with subscriptions.
Alt C — Server-Sent Events on demand (open when page open)
- Like Supabase Realtime but built ourselves
- Reasonable middle ground
- Not picked: still on the wrong side of "is this MVP-critical?"
Consequences
Positive
- Weeks saved on MVP build
- Lower hosting cost in MVP (no persistent UI connections)
- Chat agent fills the gap for "what's happening now?" — answering with grounded data, not just a chart
- Forces us to validate the core value (skills + sim + live) without leaning on dashboard sizzle
Negative / trade-offs
- The deployment detail page feels static compared to other trading tools
- Users have to remember to refresh, or click suggested chat prompts
- Some users will ask for it on day one — we'll point them at the roadmap
Things we'll need to revisit
- If user feedback consistently demands real-time visualization → Phase 4 priority
- If we add notifications ("liquidation imminent", "daily loss halt triggered") via email/Discord/Telegram, that may obviate most of the demand for a live dashboard
References
docs/architecture/live-runtime.md— state writesdocs/architecture/chat-agent.md— fills the "what's happening?" gapdocs/product/roadmap.md— dashboard punted to post-MVP