Visitor Presence: Live Count + Timmy Greeting #8

Closed
opened 2026-03-20 22:22:52 +00:00 by replit · 0 comments
Owner

What & Why

The Workshop should feel like a shared public space. Showing how many visitors are currently present — and having Timmy acknowledge arrivals — creates a sense of community and makes returning visitors feel welcomed.

Done looks like

  • Live visitor count ('3 in the Tower') displayed in Workshop header, updated via WebSocket
  • When a visitor connects, Timmy emits a short personalized greeting generated by Haiku — unique each time, aware of time of day
  • Visitor farewell is throttled (at most once per 30 seconds)
  • Visitor count is accurate: tracked server-side per WebSocket connection
  • On mobile: icon + number (no text label)

Out of scope

  • Visitor usernames or avatars (see NIP-07 identity task)
  • Visitor cursors or positions in 3D space
  • Persistent visitor history

Tasks

  1. Server-side visitor tracking — WebSocket connection events accurately update visitor count in world state; broadcast visitor_count events on change.
  2. Greeting/farewell generation — On visitor enter, Haiku call for unique greeting; throttle farewell to once per 30s; broadcast as timmy_chat events.
  3. Frontend visitor count display — Render live count in Workshop header; update on visitor_count events; responsive for mobile.

Relevant files

  • artifacts/api-server/src/routes/events.ts
  • artifacts/api-server/src/lib/world-state.ts
  • artifacts/api-server/src/lib/agent.ts
  • the-matrix/js/websocket.js
  • the-matrix/js/ui.js
## What & Why The Workshop should feel like a shared public space. Showing how many visitors are currently present — and having Timmy acknowledge arrivals — creates a sense of community and makes returning visitors feel welcomed. ## Done looks like - Live visitor count ('3 in the Tower') displayed in Workshop header, updated via WebSocket - When a visitor connects, Timmy emits a short personalized greeting generated by Haiku — unique each time, aware of time of day - Visitor farewell is throttled (at most once per 30 seconds) - Visitor count is accurate: tracked server-side per WebSocket connection - On mobile: icon + number (no text label) ## Out of scope - Visitor usernames or avatars (see NIP-07 identity task) - Visitor cursors or positions in 3D space - Persistent visitor history ## Tasks 1. **Server-side visitor tracking** — WebSocket connection events accurately update visitor count in world state; broadcast `visitor_count` events on change. 2. **Greeting/farewell generation** — On visitor enter, Haiku call for unique greeting; throttle farewell to once per 30s; broadcast as `timmy_chat` events. 3. **Frontend visitor count display** — Render live count in Workshop header; update on `visitor_count` events; responsive for mobile. ## Relevant files - `artifacts/api-server/src/routes/events.ts` - `artifacts/api-server/src/lib/world-state.ts` - `artifacts/api-server/src/lib/agent.ts` - `the-matrix/js/websocket.js` - `the-matrix/js/ui.js`
replit added the backendworkshopfrontendai labels 2026-03-20 22:22:52 +00:00
gemini was assigned by Rockachopa 2026-03-22 23:37:45 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: replit/timmy-tower#8