Skip to content

feat: add ralph dashboard command (POC)#33

Closed
malpou wants to merge 7 commits intocomputerlovetech:mainfrom
malpou:pm/dashboard-poc
Closed

feat: add ralph dashboard command (POC)#33
malpou wants to merge 7 commits intocomputerlovetech:mainfrom
malpou:pm/dashboard-poc

Conversation

@malpou
Copy link
Copy Markdown
Contributor

@malpou malpou commented Mar 22, 2026

Summary

This is a proof-of-concept. The dashboard is functional but not production-ready. Feedback welcome on the approach before investing further.

Adds a ralph dashboard CLI command that launches a local web server serving a real-time dashboard UI. The dashboard connects to running ralphs via Server-Sent Events (SSE) for live event streaming.

  • New _dashboard.py module — HTTP server using stdlib http.server (no new dependencies)
  • Cyberpunk-styled single-page dashboard UI with live SSE event streaming
  • ralph dashboard command with --port (default 8420) and --no-open options
  • 12 new tests covering server startup, HTML serving, and SSE event streaming

Test plan

  • All 448 existing tests pass
  • Manual: ralph dashboard starts server and opens browser
  • Manual: Dashboard displays live events when ralphs are running
  • Manual: --port and --no-open flags work as expected

malpou and others added 7 commits March 22, 2026 17:55
Adds _dashboard.py module with a minimal stdlib HTTP server that serves
a dashboard UI and streams RunManager events to connected clients via
Server-Sent Events. No new runtime dependencies.

Co-authored-by: Ralphify <noreply@ralphify.co>
The dashboard HTML connects to the SSE /events endpoint and /api/runs
API to display real-time run status, event log, and iteration history
with sparkline visualization. Includes empty state and active state
views matching the reference design aesthetic.

Co-authored-by: Ralphify <noreply@ralphify.co>
Co-authored-by: Ralphify <noreply@ralphify.co>
The functools.partial approach for setting manager/emitter on the
handler class didn't propagate attributes to handler instances. Switch
to a dynamic subclass so handler instances correctly inherit the
manager and emitter references.

Co-authored-by: Ralphify <noreply@ralphify.co>
Co-authored-by: Ralphify <noreply@ralphify.co>
Co-authored-by: Ralphify <noreply@ralphify.co>
@malpou malpou closed this Mar 22, 2026
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