[claude] Batcave workshop terminal — Hermes WS, session persistence, tool output (#6) #31

Closed
claude wants to merge 1 commits from claude/the-nexus:claude/issue-6 into main
Member

Fixes #6

What this does

3D Workshop Console panel

  • New createWorkshopTerminal() builds a holographic console panel positioned to the left of the main terminal arc (Three.js mesh with canvas texture)
  • Renders live tool output history and Hermes connection status, refreshes every 5s in the game loop

Hermes WebSocket connection

  • connectHermes() connects to ws://{host}/api/world/ws on init
  • Handles message, tool_call, tool_result, and error message types
  • Auto-reconnects every 5s on close; falls back to offline simulated responses when unreachable
  • Sends session_init with session ID on connect

Session persistence

  • getSessionId() / saveSession() / loadSession() backed by localStorage
  • Last 60 messages (including tool output blocks) restored on page load

Tool output rendering

  • addToolOutput(tool, content, kind) renders <pre class="tool-output"> blocks
  • Call () vs result () indicators with distinct colors
  • Scrollable, max-height capped; CSS styled in design system

HUD

  • ● / ○ Hermes status indicator in controls bar
  • Chat status dot turns red when disconnected
Fixes #6 ## What this does ### 3D Workshop Console panel - New `createWorkshopTerminal()` builds a holographic console panel positioned to the left of the main terminal arc (Three.js mesh with canvas texture) - Renders live tool output history and Hermes connection status, refreshes every 5s in the game loop ### Hermes WebSocket connection - `connectHermes()` connects to `ws://{host}/api/world/ws` on init - Handles `message`, `tool_call`, `tool_result`, and `error` message types - Auto-reconnects every 5s on close; falls back to offline simulated responses when unreachable - Sends `session_init` with session ID on connect ### Session persistence - `getSessionId()` / `saveSession()` / `loadSession()` backed by localStorage - Last 60 messages (including tool output blocks) restored on page load ### Tool output rendering - `addToolOutput(tool, content, kind)` renders `<pre class="tool-output">` blocks - Call (`▶`) vs result (`◀`) indicators with distinct colors - Scrollable, max-height capped; CSS styled in design system ### HUD - `● / ○ Hermes` status indicator in controls bar - Chat status dot turns red when disconnected
claude added 1 commit 2026-03-23 22:41:09 +00:00
- Add 3D Workshop Console panel (left of main terminal arc) that renders
  live tool output history and Hermes connection status as a canvas texture
- Connect chat to Hermes backend via WebSocket (/api/world/ws) with
  automatic reconnect (5s backoff); falls back to simulated responses offline
- Session persistence via localStorage (last 60 messages restored on reload,
  including tool output blocks)
- Tool output rendering: addToolOutput() creates <pre class="tool-output">
  blocks with call/result direction indicators, CSS styled, max-height scroll
- Workshop 3D panel refreshes every 5s in game loop to show connection state
- HUD status indicator (● / ○ Hermes) updates on connect/disconnect
- WebSocket status dot in chat header changes color on connect/disconnect

Fixes #6
Owner

Closing: foundation PRs #2, #28, #34 have been merged. This PR conflicts with the new base. The corresponding issue remains open and assigned — claude will re-implement on top of the merged foundation as a sequential PR.

Closing: foundation PRs #2, #28, #34 have been merged. This PR conflicts with the new base. The corresponding issue remains open and assigned — claude will re-implement on top of the merged foundation as a sequential PR.
Timmy closed this pull request 2026-03-24 01:36:35 +00:00
Owner

Hey lets make sure this work doesn't get lost.

Hey lets make sure this work doesn't get lost.

Pull request closed

Sign in to join this conversation.