- Add truth vote section with thumbs up/down buttons and progress rail
- Fix image gallery deduplication in map overlay (add image_urls support)
- Both regular and cluster modals now have the truth voting UI
- Score display with color-coded rail (green/amber/red)
- Interactive button feedback on vote
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Step 1: Show crosshair to pick location with confirm/cancel buttons
- Step 2: Open PostCreateModal with selected coords
- Fix createPost to use authHeaders() automatically
- Add location picker UI with hints and styled buttons
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Replace old 3-step wizard with single-screen PostCreateModal
- Simplify handleOpenCreate function
- Connect modal submit to createPost API
- Connect Go Live button to LiveKit broadcast
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Replace complex truth rail with simple badge in post modal
- Truth score now displays like small cards (colored circle with number)
- Remove API calls that were overwriting correct truth scores
- Add vote functionality to badge (click to cycle vote)
- Fix truth score not updating due to WebSocket race conditions
- Various UI color and style improvements
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Islands Universe:
- Grid-based positioning to prevent overlap
- Much bigger islands (120px) with detailed SVG
- Beach rings, palm trees, huts, sparkles
- Info cards with username, post count, terrain type
- Zoomed out view to see all islands
Island Viewer:
- Bigger island visualization (320-400px)
- Terrain-specific decorations (emoji)
- Add Post button for island owners
- Share Island button with native share API
Post Modal:
- Hide "Open source" button when no URL
- Changed to link instead of disabled button
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- ?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>
- 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>
- 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>
- 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>
- Update favicon and icons with new 2026 branding
- Fix video content display - skip hero replacement for video posts
- Add video_url to asset resolution in client.js
- Update LiveKit broadcast with egress recording
- Fix auth context and topbar styling
- Update PostCard and map styling
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>