diff --git a/backlog/tasks/task-13 - Fix-rMaps-dedup-callouts-and-push-notification-bugs.md b/backlog/tasks/task-13 - Fix-rMaps-dedup-callouts-and-push-notification-bugs.md new file mode 100644 index 0000000..dd1e323 --- /dev/null +++ b/backlog/tasks/task-13 - Fix-rMaps-dedup-callouts-and-push-notification-bugs.md @@ -0,0 +1,29 @@ +--- +id: TASK-13 +title: 'Fix rMaps dedup, callouts, and push notification bugs' +status: Done +assignee: [] +created_date: '2026-02-15 21:02' +labels: + - bugfix + - push-notifications + - sync +dependencies: [] +priority: high +--- + +## Description + + +Fixed three interrelated bugs in rmaps-online: + +1. **Duplicate participants**: Server-side dedup on join removes ghost entries with same name but different ID. Stale threshold reduced from 1hr to 15min. +2. **Callouts for offline users**: Pinging now sends a visible push notification ("X is looking for you!") to offline users instead of a silent push. Response includes last known locations. +3. **Notification timing**: Push subscriptions deduped by endpoint (prevents duplicate pushes). Joining user excluded from their own "Friend Joined" notification. Service worker has 10s cooldown on location request pushes to prevent burst on reopen. Join/leave notifications suppressed when app is focused. + + +## Final Summary + + +Committed as 30f32e6 and pushed to Gitea main. Files changed: sync-server/server.js, public/sw.js, src/hooks/usePushNotifications.ts, src/app/[slug]/page.tsx, src/components/room/ParticipantList.tsx + diff --git a/src/app/demo/demo-content.tsx b/src/app/demo/demo-content.tsx index 11dc040..e6c7948 100644 --- a/src/app/demo/demo-content.tsx +++ b/src/app/demo/demo-content.tsx @@ -766,6 +766,7 @@ export default function DemoContent() { 🛒 rCart 💼 rWallet 📁 rFiles + ✉️ rInbox 🌐 rNetwork
diff --git a/src/app/page.tsx b/src/app/page.tsx index d5be12c..34da553 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -411,6 +411,7 @@ export default function HomePage() { 🛒 rCart 💼 rWallet 📁 rFiles + ✉️ rInbox 🌐 rNetwork