feat: Workshop interaction layer — chat input, visitor presence, bark display (#40, #41, #42) #46

Merged
perplexity merged 1 commits from feat/workshop-interaction into feat/integration-phase2 2026-03-18 21:53:52 -04:00
Owner

Workshop #222 — The Minimum Viable Conversation Loop

Closes the most critical gap from the Workshop #222 vision audit: visitors cannot interact with Timmy. The 3D world was read-only.

After this PR, the conversation loop works:

  • Visitor arrives → visitor_entered sent
  • Visitor types message → visitor_message sent
  • Timmy reacts → bark appears in viewport

1. Chat Input (#40)

  • Terminal-styled input at bottom of viewport
  • Enter to send (desktop), button tap (iPad)
  • Messages appear as YOU: in chat panel
  • Safe-area padding for notched devices

2. Visitor Presence Protocol (#41)

  • visitor_entered on load with device type + viewport
  • visitor_left on unload or 30s hidden (iPad tab suspend)
  • visitor_message from chat input
  • Session duration tracking

3. Bark Display System (#42)

  • Prominent viewport toasts with typing animation
  • Auto-dismiss, queue system (max 3)
  • Demo barks in mock mode (Workshop-themed)
  • Barks logged permanently in chat panel

Build

  • 18 modules, 0 errors
  • Desktop + Mobile tested via Playwright

Closes #40, #41, #42
Ref: rockachopa/Timmy-time-dashboard#222

## Workshop #222 — The Minimum Viable Conversation Loop Closes the most critical gap from the Workshop #222 vision audit: visitors cannot interact with Timmy. The 3D world was read-only. After this PR, the conversation loop works: - Visitor arrives → `visitor_entered` sent - Visitor types message → `visitor_message` sent - Timmy reacts → bark appears in viewport ### 1. Chat Input (#40) - Terminal-styled input at bottom of viewport - Enter to send (desktop), button tap (iPad) - Messages appear as YOU: in chat panel - Safe-area padding for notched devices ### 2. Visitor Presence Protocol (#41) - `visitor_entered` on load with device type + viewport - `visitor_left` on unload or 30s hidden (iPad tab suspend) - `visitor_message` from chat input - Session duration tracking ### 3. Bark Display System (#42) - Prominent viewport toasts with typing animation - Auto-dismiss, queue system (max 3) - Demo barks in mock mode (Workshop-themed) - Barks logged permanently in chat panel ### Build - 18 modules, 0 errors - Desktop + Mobile tested via Playwright Closes #40, #41, #42 Ref: rockachopa/Timmy-time-dashboard#222
perplexity added 1 commit 2026-03-18 21:49:33 -04:00
Implements the minimum viable conversation loop for Workshop #222:
visitor arrives → sends message → Timmy barks back.

- js/visitor.js: Visitor presence protocol (#41)
  - visitor_entered on load (with device detection: ipad/desktop/mobile)
  - visitor_left on unload or 30s hidden (iPad tab suspend)
  - visitor_message dispatched from chat input
  - visitor_interaction export for future tap-to-interact (#44)
  - Session duration tracking

- js/bark.js: Bark display system (#42)
  - showBark() renders prominent viewport toasts with typing animation
  - Auto-dismiss after display time + typing duration
  - Queue system (max 3 simultaneous, overflow queued)
  - Demo barks in mock mode (Workshop-themed: 222, sovereignty, chain)
  - Barks also logged permanently in chat panel

- index.html: Chat input bar (#40)
  - Terminal-styled input + send button at viewport bottom
  - Enter to send (desktop), button tap (iPad)
  - Safe-area padding for notched devices
  - Chat panel repositioned above input bar
  - Bark container in upper viewport third

- js/websocket.js: New message handlers
  - 'bark' message → showBark() dispatch
  - 'ambient_state' message → placeholder for #43
  - Demo barks start in mock mode

- js/ui.js: appendChatMessage() accepts optional CSS class
  - Visitor messages styled differently from agent messages

Build: 18 modules, 0 errors
Tested: desktop (1280x800) + mobile (390x844) via Playwright

Closes #40, #41, #42
Ref: rockachopa/Timmy-time-dashboard#222, #243
perplexity merged commit 6b8a4db0c4 into feat/integration-phase2 2026-03-18 21:53:52 -04:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: perplexity/the-matrix#46