---
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 -->
