- ?signup=1 now opens clean signup form (clears old messages)
- Live filter only shows camera/live/stream (excludes video)
- Video filter shows only recorded videos
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add share menu with 3 options: Copy URL, Copy with coords, Share via
- Share URL includes lat/lon/zoom/category/time filters
- Restore shared view from URL params on page load
- Fix videos ALWAYS using simple markers (blue pin + play button)
- Camera pins: blue 64x48 with red LED pulse
- Video pins: blue 64x48 with play button overlay (no LED)
- Polaroid cards: reduced from 180x230 to 150x190
- Force camera/video to simple markers in fallback scoring
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Camera posts now use small blue pins with red flashing dot
- Fixed carousel gallery arrows for posts with multiple images
- Added title and source text to polaroid mini cards
- Bumped version to 0.0.21
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Live filter sends live,camera content types to API
- Camera pin border and pointer changed to sky blue (#0ea5e9)
- Camera pin background is sky blue when no thumbnail
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Replace LIVE badge with small pulsing red dot (6px)
- Hide camera marker entirely if no thumbnail available
- Cleaner, less intrusive design
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Camera markers show thumbnail preview from live stream
- Red LIVE badge with pulsing indicator
- Fallback to video icon if thumbnail unavailable
- Blue glow effect for camera pins
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Simple pins (hover card): z-index 150 on hover
- Compact cards: z-index 200 on hover
- Ensures hover cards are always above other markers
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Fix truth voting: add error logging, prevent duplicate event listeners,
guard against concurrent votes
- Add real-time friends list updates in chat via custom event
- Make mobile contact dropdown narrower (260px) and stay on right side
- Add data-vote-bound attribute to prevent duplicate vote handlers
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- First time option now shows "now" label instead of "1h"
- Filters for posts from last 3 hours instead of 1 hour
- Other time options remain: 6h, 24h, 7d, 2w
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Added toggleable sidebar showing friends list on right side of chat
- Small avatars with online status and unread badges
- Click friend to switch conversation
- Toggle button in chat header
- Hidden on mobile (use contacts dropdown instead)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- FAB category z-index goes to 9000 when open (above search/weather)
- FAB returns to normal z-index when closed
- Weather widget positioned with document flow below search bar
- Increased spacing between FAB categories and subcategories
- FABs moved lower on screen (260px desktop, 240px mobile)
- Search bar dropdown z-index increased to 850
- Labels use transparent background with text shadow
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Fix z-index so FAB items appear above weather widget
- Add X button to clear all filters when FAB is open
- Add text labels for categories and subcategories
- Make labels readable with dark text on light background
- Update backdrop z-index hierarchy
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Position weather widget fixed at left:24px, top:240px
- Set weather widget z-index to 300 (below FAB at 398-400)
- Fix FAB z-index to be below search dropdown
- Fix various z-index issues for modals and overlays
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Pass mainFilters/subFilters arrays to usePostsEngine
- Include arrays in filterKey for proper change detection
- Any filter toggle now triggers fresh API fetch
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add mainFilters/subFilters arrays to usePostsEngine
- Update filterKey to use full arrays for comparison
- Any filter toggle now triggers fresh API fetch
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Selected category rotates to horizontal middle position
- Subcategories centered around category with more spacing
- Prevents subcategories from going off screen
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Inverted subcategory logic: empty = all active
- Click to exclude/filter out subcategories
- Excluded items shown dimmed/smaller
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Left FAB: category selection with expandable subcategories
- Right FAB: time filter (1h/6h/24h/7d/2w) + weather toggle
- Multi-select support for categories with split-color FAB
- Category rotation to keep subcategories on-screen
- Simplified search bar (+ and Island buttons only)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Skip marker refresh when post modal is open (update UI in-place)
- Add stopPropagation to vote buttons to prevent event bubbling
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add blue gradient tint to content filters bar
- Add blue tint to sociowall panel
- Show "LIVE" with red pulsing indicator for camera/live content
- Cameras always display as live instead of timestamp
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Map takes 87.5vh (7/8 of screen)
- Sociowall overlaps map by 80px
- Fixed duplicate weather container on us1
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Change sociowall to dark gray glassmorphism for blue theme (not blue)
- Make map 85vh tall (almost full screen)
- Position sociowall below map with spacing (2rem margin)
- Remove overlap between map and wall
- Premium glassmorphism styling with subtle shadows
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Redesign sociowall to be centered (max 680px) with full-width cards
- Add sw-wall-body and sw-wall-footer structure to PostCard
- Update posts.css with Facebook-style card layout (rounded avatars, proper spacing)
- Enable day/night terminator by default with reduced opacity (0.15)
- Keep weather widget at top of map
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Day/night terminator opacity reduced from 0.3 to 0.15
- Day/night enabled by default for new users
- Removed weather button, widget, and modal from map
- Kept blue theme as default
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Set light theme as default for new users
- Change light theme background from #e5e7eb to #f8fafc (brighter)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add Change Password popup modal in Island profile
- Convert avatar URLs to small variant (160x160) for thumbnails
- Add toSmallImageUrl utility function in client.js
- Update markerManager, IslandViewer, FriendsList, TopBar to use small images
- Backend now stores small variant for avatar uploads
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add 'validated' to the list of accepted URL params for email verification,
since Keycloak sends validated=1 instead of verified=1.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Weather posts display as compact blue pills with emoji + temperature
- Weather posts forced to 'simple' type (never full card) to avoid duplicates
- Parse temperature from title when not available in data
- Z-index set to 10 (just above regular posts, below UI elements)
- Add fetchWeatherPosts and fetchMapPins API functions
- Add Weather modal components (WeatherModal, HourlyForecast, DailyForecast)
- Add DayNightTerminator component for map
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Reset saveError and isSaving when opening create form
- Clear error when navigating between steps
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Fix removeMediaFromGallery -> removeMediaUrlAtIndex function reference
- Update create post floating UI styling
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Reduced width to 320px
- Removed teal accent, using light gray instead
- Improved text contrast for blue theme
- Darker background for better readability
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Centered stacked layout at screen center
- Purple accent color instead of blue
- Compact padding and smaller fonts
- Glass effect with blur and transparency
- Theme support (dark/light/blue)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add long-press (1 second) on map to open create post popup
- Add close button (X) to mode selector and create post popups
- Improve create post popup design with glass-morphism effect
- Fix chat: mark messages as read when received in open chat
- Fix avatar styling for guest users (remove nested circles)
- Add userId to auth context for stable chat identification
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add WebSocket-based chat with presence indicators
- Add message delivery status (sending/sent/read)
- Add notification badges for unread messages
- Add body scroll lock on mobile to prevent keyboard issues
- Add visibility change handling to refresh data on browser resume
- Add internationalization (i18n) with English/French support
- Add timezone-aware message timestamps
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
When a post was deleted while viewing it, the map interactions (drag, zoom)
were not being restored, leaving the map frozen.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Set autoWidenRef.current = true when user changes filter to prevent auto-widen
- Time filter now stays as user selected when changing category/subcategory
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Use useDualCamera for device enumeration and reliable switching
- Auto-update LiveKit video track when camera swaps during live
- Only show switch button if device has 2 cameras
- Better camera unavailable state handling
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>