## Phase 1: Critical Feature Completion (Beacon Voting) - Add VouchBeacon, ReportBeacon, RemoveBeaconVote methods to PostRepository - Implement beacon voting HTTP handlers with confidence score calculations - Register new beacon routes: /beacons/:id/vouch, /beacons/:id/report, /beacons/:id/vouch (DELETE) - Auto-flag beacons at 5+ reports, confidence scoring (0.5 base + 0.1 per vouch) ## Phase 2: Feed Logic & Post Distribution Integrity - Verify unified feed logic supports all content types (Standard, Quips, Beacons) - Ensure proper distribution: Profile Feed + Main/Home Feed for followers - Beacon Map integration for location-based content - Video content filtering for Quips feed ## Phase 3: The Notification System - Create comprehensive NotificationService with FCM integration - Add CreateNotification method to NotificationRepository - Implement smart deep linking: beacon_map, quip_feed, main_feed - Trigger notifications for beacon interactions and cross-post comments - Push notification logic with proper content type detection ## Phase 4: The Great Supabase Purge - Delete function_proxy.go and remove /functions/:name route - Remove SupabaseURL, SupabaseKey from config.go - Remove SupabaseID field from User model - Clean all Supabase imports and dependencies - Sanitize codebase of legacy Supabase references ## Phase 5: Flutter Frontend Integration - Implement vouchBeacon(), reportBeacon(), removeBeaconVote() in ApiService - Replace TODO delay in video_comments_sheet.dart with actual publishComment call - Fix compilation errors (named parameters, orphaned child properties) - Complete frontend integration with Go API endpoints ## Additional Improvements - Fix compilation errors in threaded_comment_widget.dart (orphaned child property) - Update video_comments_sheet.dart to use proper named parameters - Comprehensive error handling and validation - Production-ready notification system with deep linking ## Migration Status: 100% Complete - Backend: Fully migrated from Supabase to custom Go/Gin API - Frontend: Integrated with new Go endpoints - Notifications: Complete FCM integration with smart routing - Database: Clean of all Supabase dependencies - Features: All functionality preserved and enhanced Ready for VPS deployment and production testing!
1.2 KiB
1.2 KiB
Notifications Troubleshooting and Fix
Symptoms
- Notifications screen fails to load and logs show a
GET | 401response fromsupabase/functions/v1/notifications. - Edge function logs show
Unauthorizedeven though the client is signed in.
Root Cause
The notifications edge function relied on supabaseClient.auth.getUser() without
explicitly passing the bearer token from the request. In some cases, the global
headers were not applied as expected, so getUser() could not resolve the user
and returned 401.
Fix
Explicitly read the Authorization header and pass the token to
supabaseClient.auth.getUser(token). This ensures the function authenticates the
user consistently even if the SDK does not automatically inject the header.
Code Change
File: supabase/functions/notifications/index.ts
Key update:
- Parse
Authorizationheader. - Extract bearer token.
- Call
getUser(token)instead ofgetUser()without arguments.
Deployment Step
Redeploy the notifications edge function so the new auth flow is used.
Verification
- Open the notifications screen.
- Confirm the request returns 200 and notifications render.
- If it still fails, check edge function logs for missing or empty auth headers.