41 lines
1.4 KiB
Markdown
41 lines
1.4 KiB
Markdown
---
|
|
id: TASK-80
|
|
title: People online panel — live peer presence on canvas
|
|
status: Done
|
|
assignee: []
|
|
created_date: '2026-03-03 00:57'
|
|
labels:
|
|
- feature
|
|
- canvas
|
|
- presence
|
|
dependencies: []
|
|
priority: medium
|
|
---
|
|
|
|
## Description
|
|
|
|
<!-- SECTION:DESCRIPTION:BEGIN -->
|
|
Add real-time people online panel to the canvas showing who's currently viewing the same space. Includes peer announcements, join/leave broadcasts, avatar dots badge, expandable panel, and ping-user relay for "come here" notifications.
|
|
<!-- SECTION:DESCRIPTION:END -->
|
|
|
|
## Acceptance Criteria
|
|
<!-- AC:BEGIN -->
|
|
- [ ] #1 People online badge shows in canvas with colored dots
|
|
- [ ] #2 Panel expands showing usernames and avatars
|
|
- [ ] #3 Peer join/leave events broadcast in real-time
|
|
- [ ] #4 Ping button relays viewport coordinates to target peer
|
|
<!-- AC:END -->
|
|
|
|
## Final Summary
|
|
|
|
<!-- SECTION:FINAL_SUMMARY:BEGIN -->
|
|
Committed pre-existing people online feature:
|
|
|
|
- **community-sync.ts**: Re-announce on reconnect, handle peer-list/joined/left/ping-user events, `setAnnounceData()` API
|
|
- **presence.ts**: Export `peerIdToColor` helper
|
|
- **server/index.ts**: Track `peerAnnouncements` map, broadcast peer-joined/left, relay ping-user to target
|
|
- **canvas.html**: People online badge (bottom-right), expandable panel with avatar dots and ping button
|
|
|
|
Commit: 5ee59f8. Deployed to production.
|
|
<!-- SECTION:FINAL_SUMMARY:END -->
|