Commit Graph

5 Commits

Author SHA1 Message Date
Jeff Emmett cf8bd63298 docs: Update backlog tasks with session progress
- task-3 (Push notifications): Marked Done, added implementation notes
- task-4 (PWA offline): Marked In Progress, documented partial impl
- task-6 (c3nav indoor): Added note about removing indoor button
- task-12 (Stale participants): Added greyed-out locations feature

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-02 15:30:13 +01:00
Jeff Emmett e59150a9ce fix: Improve location handling, session persistence, and mobile UI
Location fixes:
- Add coordinate validation to reject invalid (0,0) and out-of-bounds locations
- Clean up stale participants after 15 minutes (was 1 hour)
- Remove invalid locations from localStorage on load
- Use CCH venue center instead of (0,0) for indoor positions without GPS

Session persistence:
- Remember user name and emoji across sessions on home page
- Pre-fill profile form with saved user info

Mobile UI improvements:
- Add floating location share button inside the map
- Visible on all screen sizes with responsive text
- Prominent styling: white when inactive, green when sharing

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 23:34:00 +01:00
Jeff Emmett 8554a4cb1a feat: Add WebSocket sync server for real-time location sharing
- Add sync-server/ with Node.js WebSocket relay server
- Server handles join/leave/location/waypoint messages
- Auto-cleans stale participants (1hr) and empty rooms (24hr)
- Dockerized with Traefik labels for easy deployment
- Update .env.example with NEXT_PUBLIC_SYNC_URL
- Mark task-5 as Done in backlog

Deployed to https://sync.rmaps.online

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 22:00:55 -05:00
Jeff Emmett eeab19ceac fix: Clean up stale participant sessions from map
- Add cleanupStaleParticipants() to remove participants not seen in last hour
- Use persistent participant ID per browser/room to prevent ghost duplicates
- Fixes issue where old versions of yourself appeared on map reload

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-19 13:28:35 -05:00
Jeff Emmett ff8dead7f2 Initialize backlog with feature tasks 2025-12-15 14:38:46 -05:00