Story: WebSocket Display Backend #12

Closed
opened 2026-03-18 06:26:12 +00:00 by david · 1 comment
Owner

As a user
I want to view mainline in a web browser
So that I can display on devices without terminal

Acceptance Criteria:

  • WebSocket server on port 8765 broadcasts frames
  • HTTP server on port 8766 serves HTML client
  • Client renders ANSI colors on HTML5 Canvas
  • Fullscreen support in browser

Technical Tasks:

  • Create engine/display/backends/websocket.py: WebSocketDisplay
  • Create client/index.html: Browser client with ANSI parsing
  • Update engine/display/__init__.py: Registry discovers websocket
  • Add tests: test_websocket.py, test_websocket_e2e.py
**As a** user **I want** to view mainline in a web browser **So that** I can display on devices without terminal **Acceptance Criteria:** - [ ] WebSocket server on port 8765 broadcasts frames - [ ] HTTP server on port 8766 serves HTML client - [ ] Client renders ANSI colors on HTML5 Canvas - [ ] Fullscreen support in browser --- **Technical Tasks:** - Create `engine/display/backends/websocket.py`: WebSocketDisplay - Create `client/index.html`: Browser client with ANSI parsing - Update `engine/display/__init__.py`: Registry discovers websocket - Add tests: `test_websocket.py`, `test_websocket_e2e.py`
Author
Owner
**ADR:** [ADR-004: Display Protocol Pattern](https://git.notsosm.art/david/Mainline.wiki/ADR-004-Display-Protocol-Pattern)
david closed this issue 2026-03-18 06:53:29 +00:00
david reopened this issue 2026-03-18 06:54:07 +00:00
david added this to the Mainline project 2026-03-18 07:12:12 +00:00
david added the status:feature-complete label 2026-03-18 07:15:15 +00:00
david added the status:tested label 2026-03-18 07:48:58 +00:00
david moved this to Tested in Mainline on 2026-03-18 07:53:28 +00:00
david added the epic:#4 label 2026-03-18 07:55:42 +00:00
david added the epic:Display Backend label 2026-03-18 07:59:14 +00:00
david closed this issue 2026-03-18 22:03:26 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: klubhaus/sideline#12