[Workshop #222] Chat input — visitors must be able to talk to Timmy #40

Closed
opened 2026-03-18 21:40:20 -04:00 by perplexity · 1 comment
Owner

Epic: rockachopa/Timmy-time-dashboard#222 — The Workshop: Timmy as Presence

The Gap

The 3D world has a chat display panel but no input mechanism. No text field, no send button, no voice input. A visitor can watch agents but cannot speak to Timmy.

This directly contradicts the core Workshop vision: "visitors walk in; Timmy was already there." You walk into the Workshop but cannot say hello.

What

A chat input bar at the bottom of the viewport that lets visitors type messages and send them to Timmy via WebSocket.

Acceptance Criteria

  • Text input field visible at bottom of viewport, styled consistently with the Matrix terminal aesthetic
  • Send on Enter key (desktop) and Send button (touch/iPad)
  • Input field does not obstruct the 3D scene — semi-transparent or slides up on focus
  • On send: dispatch visitor_message via WebSocket ({type: "visitor_message", text: "...", timestamp: ...})
  • Input clears after send
  • iPad keyboard handling: viewport adjusts when iOS keyboard slides up (no content hidden behind keyboard)
  • Message appears in the chat panel immediately as a "YOU" entry
  • When WS is disconnected/mock mode: input still works, messages display locally with a "(offline)" indicator

Design Notes

  • Should feel like typing into a terminal, not a chat bubble UI
  • Monospace font, green-on-black, minimal chrome
  • The input is the visitor's voice in the Workshop

Depends on: config.js + websocket-live.js (PR #39)
Ref: rockachopa/Timmy-time-dashboard#243 (bridge protocol)

## Epic: rockachopa/Timmy-time-dashboard#222 — The Workshop: Timmy as Presence ### The Gap The 3D world has a chat **display** panel but **no input mechanism**. No text field, no send button, no voice input. A visitor can watch agents but cannot speak to Timmy. This directly contradicts the core Workshop vision: "visitors walk in; Timmy was already there." You walk into the Workshop but cannot say hello. ### What A chat input bar at the bottom of the viewport that lets visitors type messages and send them to Timmy via WebSocket. ### Acceptance Criteria - [ ] Text input field visible at bottom of viewport, styled consistently with the Matrix terminal aesthetic - [ ] Send on Enter key (desktop) and Send button (touch/iPad) - [ ] Input field does not obstruct the 3D scene — semi-transparent or slides up on focus - [ ] On send: dispatch `visitor_message` via WebSocket (`{type: "visitor_message", text: "...", timestamp: ...}`) - [ ] Input clears after send - [ ] iPad keyboard handling: viewport adjusts when iOS keyboard slides up (no content hidden behind keyboard) - [ ] Message appears in the chat panel immediately as a "YOU" entry - [ ] When WS is disconnected/mock mode: input still works, messages display locally with a "(offline)" indicator ### Design Notes - Should feel like typing into a terminal, not a chat bubble UI - Monospace font, green-on-black, minimal chrome - The input is the visitor's voice in the Workshop Depends on: config.js + websocket-live.js (PR #39) Ref: rockachopa/Timmy-time-dashboard#243 (bridge protocol)
Author
Owner

Implemented in PR #46.

Chat input bar with terminal styling at the bottom of the viewport. Enter to send (desktop), tap > button (iPad). Messages appear immediately in chat panel as "YOU:" with visitor styling. Safe-area padding for notched devices. Input field clears after send.

Implemented in PR #46. Chat input bar with terminal styling at the bottom of the viewport. Enter to send (desktop), tap > button (iPad). Messages appear immediately in chat panel as "YOU:" with visitor styling. Safe-area padding for notched devices. Input field clears after send.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: perplexity/the-matrix#40