Commit Graph

429 Commits

Author SHA1 Message Date
Your Name b3fc07b001 feat(frontend): add external apps UI components
- AppStore for browsing and subscribing to apps
- SubscribeModal with consent flow
- ExtAppPostCard for rendering app posts
- CreateAppPost for posting to subscribed apps
- MySubscriptions for managing subscriptions
- useExtAppFeed hook for fetching app posts
- extAppsApi client for all API calls

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 19:04:08 +00:00
Your Name 6d92a984ca fix: chat window mobile height overflow and keyboard handling
- Fix chat window going off-screen on mobile (was editing wrong file ChatWindow.jsx instead of ChatWindowNew.jsx)
- Add max-h-[65dvh] constraint to prevent overflow
- Replace scrollIntoView with scrollTop to prevent parent scroll
- Add keyboard detection with visualViewport API to move chat above keyboard
- Add missing translations for chat status (sending, sent, read)
- Add common.offline translation

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 05:55:22 +00:00
Your Name e650cf2cae Move My Position button inside search bar
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 02:17:01 +00:00
Your Name 7c09a62170 Fix: Prevent browser zoom on map - only map zoom should work
- Add user-scalable=no to viewport meta
- Add touch-action: none to map containers and markers
- Prevents pinch-zoom triggering browser zoom instead of map zoom

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 02:09:24 +00:00
Your Name afd620da68 Fix search suggestions dropdown visibility
- Add top: 100% to dropdown to position below search bar
- Increase z-index to 9000 to ensure visibility above map elements
- Add overflow: visible to parent containers to prevent clipping

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 01:27:50 +00:00
Your Name ce76c57902 fix: Skip time filter when showing search results
When user searches, show all matching results regardless of time filter.
The time filter should only apply to normal map browsing, not explicit searches.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 01:17:03 +00:00
Your Name 33e7213ca9 fix: Use ref instead of stale closure for search state check
The load() function was using searchQuery from a stale closure,
causing it to skip fetches even after search was cleared.
Now uses searchResultsRef which is always current.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 00:57:35 +00:00
Your Name 3e780268ba feat: Islands v116 - Search bar fixes and island post improvements
- Fix search bar: single X button, form submit for Enter key
- Fix search clearing to properly refetch normal posts
- Hide native browser search cancel button with CSS
- Add island post support with island_username context
- Interactive island terrain with click-to-place posts

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 00:51:57 +00:00
Your Name 90e9f79fcd v116: Interactive island terrain with click-to-place posts
- Island terrain now interactive like a map
- Click anywhere on your island to place a post at that position
- Pending post marker shows where you clicked with confirm/cancel buttons
- Posts saved with island_x and island_y coordinates (0-100%)
- PostComposer accepts islandX/islandY and includes in payload
- Posts display at their saved coordinates, fallback to random if not set
- Added translations for new UI elements (EN/FR)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 23:26:06 +00:00
Your Name fa90d7426b v115: Use existing FAB for island posts with island_username context
- FAB (+) button now context-aware - includes island_username when on island
- PostComposer accepts islandUsername prop and includes in payload
- Removed custom post buttons from island terrain view
- Global __activeIslandContext set when viewing an island
- App.jsx handles sw:openPostCreator event for island posts

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 23:15:56 +00:00
Your Name 717e5f64a1 v114: Add owner badge on islands + floating create post button
- "Mon île" badge appears on user's own island with home icon
- Floating FAB button to create post when viewing own island
- Badge has pulse animation to stand out
- FAB positioned bottom-right with pop animation

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 23:06:33 +00:00
Your Name e1956b1383 v113: Enable map navigation + full-screen island terrain view
- Removed auto-rotation, enabled drag/pan/zoom navigation
- Added navigation controls (zoom buttons)
- Islands placed in a grid with jitter (25° spacing)
- Clicking island opens full-screen overlay with island terrain
- Island shape rendered as SVG background (ocean, sand, grass, trees)
- Posts displayed scattered on the island terrain

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 23:01:29 +00:00
Your Name 6422aeebfe v112: Scatter islands randomly + full-screen terrain zoom with posts
- Islands now scattered across 300° world area using seeded random positions
- When clicking island, zooms to fill screen (zoom 16, pitch 0)
- Full-screen terrain overlay shows posts scattered on the island
- Posts positioned pseudo-randomly based on island seed
- Loading state while fetching island posts
- Empty state with "create first post" CTA for island owner

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 22:52:05 +00:00
Your Name b6b176271b v111: Implement in-map zoom for islands/planets + create planet modal
- Islands: clicking zooms camera to island position using flyTo()
- Planets: same zoom behavior + Create Planet button with modal
- Search bar repositioned higher (top: 52px, z-index: 600)
- Removed unnecessary Create Island button (islands auto-create with profiles)
- Added zoomed overlay UI with back button, info, and post actions

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 21:10:13 +00:00
Your Name e8af1a6a08 feat: Add terrain zoom view for Islands and Planets
When clicking an island or planet:
- Zooms into a full-screen terrain view
- Shows the island/planet surface as an interactive map
- Posts are displayed as markers on the terrain
- Back button to return to world view
- Post button for authenticated users (on own island)

Changes:
- Fixed search bar position to fixed top: 56px (below topbar)
- Removed Create Island button (islands auto-create with profile)
- Removed planet detail modal (replaced with terrain view)
- Added Island/Planet TerrainCanvas components
- Added fetchIslandPosts API function
- Added terrain CSS styles

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 20:57:41 +00:00
Your Name 36626fa091 feat: Add profile/edit icons to island markers, fix planets API
- Add profile button to view user profile from island marker
- Add edit button (owner only) to modify island
- Style island action buttons with hover animations
- Fix planets API endpoint to use /planets/nearby
- Fix create planet endpoint to use /planets/create
- Match search bar positioning with map overlay (0.7rem top)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 20:46:03 +00:00
Your Name ef075ccb9b feat: Move world nav buttons into search bars
- Remove top world nav bar
- Add Islands/Planets buttons to Map search bar
- Add Map/Planets buttons to Islands search bar
- Add Map/Islands buttons to Planets search bar
- Move search bars to fixed position just below topbar
- Compact button styling matching map design
- v0.0.107

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 20:12:43 +00:00
Your Name 9706d673c3 feat: Add 3 separate worlds system (Map, Islands, Planets)
- Add world navigation bar with 3 buttons to switch between worlds
- Create IslandsWorld component: personal metaverse with floating islands
- Create PlanetsWorld component: group metaverse with orbiting planets
- Each world has full-screen immersive MapLibre visualization
- Add search functionality with icon badges in Islands/Planets views
- Always start on Map view on page load
- Add translations for EN, FR, ES
- v0.0.104

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 19:53:32 +00:00
Your Name ac99f0f1e4 docs: Add islands-planets agent context file
Documents Islands (personal spaces) and Planets (group spaces)
architecture, API endpoints, data models, and TODO roadmap.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 18:44:42 +00:00
Your Name 8e11dc732f chore: Bump version to 0.0.103, fix planet filter tabs
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 08:16:58 +00:00
Your Name 5ffec6bcec feat: Add planet markers to IslandUniverse map
- Display planets as ringed spheres in outer ring
- Add getPlanetColor helper for planet themes
- Planet markers show name and member count
- Click handler ready for future navigation

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 07:49:55 +00:00
Your Name 7faf0b180b feat: Add planets fetch and tabs UI to IslandUniverse
- Fetch planets alongside islands with error handling
- Add filter tabs (All/Islands/Planets)
- Show planets count in header

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 07:43:01 +00:00
Your Name a1ef3cf6ff feat: Add universe tabs and planet marker CSS
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 07:37:12 +00:00
Your Name 733296dd59 feat: Add planets API and translations (safe incremental)
- Add planet API functions to client.js (fetchPlanets, createPlanet, etc.)
- Add updateIsland function for island customization
- Add sociowire:create-post event listener in App.jsx
- Add planets translations (EN, FR, ES)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 07:34:45 +00:00
Your Name c50c61ff36 fix: content filter triggers immediate refetch on change
- Fix race condition between content filter effect and general filter effect
- Map content filters to proper content_type values for backend
- Links → link, Image → image/picture/photo, Text → post/system/news_enriched
- Live → live/camera/stream, Video → video
- Ensure forceFetch fires moveend to trigger refetch

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 16:49:07 +00:00
Your Name 3a469dfa8d Fix tags display in PostDetailModal
- Use event_tags (API field) instead of tags
- Add impact-based coloring (green positive, red negative, default neutral)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 03:03:46 +00:00
Your Name 9e6f3f8029 feat: add impact-colored tags to post modals
- Update renderTagPills to accept topicImpacts and apply color classes
- Tags colored by impact: negative=red, neutral=blue, positive=green
- Add CSS for tag color classes (sw-tag-negative, sw-tag-neutral, sw-tag-positive)
- Tags display below title in post modals

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 14:45:25 +00:00
Your Name 91e024e156 Fix image gallery deduplication for absolute vs relative URLs
- Extract filename only (not full path) for deduplication
- Same image as https://domain/path/file.jpg and /path/file.jpg
  were not being deduplicated because full paths differ
- Updated both PostDetailModal.jsx and markerManager.js
- Added fetchPostById to get full post data with image_urls

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 23:02:54 +00:00
Your Name 3a29812319 Fix gallery to use image_urls only, not media_urls
media_urls is for video files, image_urls is for images.
Updated PostDetailModal.jsx and markerManager.js to exclude
media_urls from gallery image collection.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 21:07:26 +00:00
Your Name 081fba7244 Increase card sizes and improve gallery deduplication
- Polaroid scale: 0.58/0.48 (desktop/mobile)
- Handle _l, _m, _s suffixes in gallery deduplication

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 21:00:49 +00:00
Your Name 848f19d02b Increase map card size (scale 0.52/0.42)
- Fix duplicate CSS rule that was overriding card size
- Increase scale from 0.45 to 0.52 (desktop) and 0.38 to 0.42 (mobile)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 20:48:11 +00:00
Your Name cc3baf8c29 Fix image gallery deduplication for short suffixes
- Handle _l, _m, _s size suffixes in addition to _large, _medium, _small
- Prevents carousel from showing duplicate images in different sizes

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 20:45:03 +00:00
Your Name 61654601ff Increase compact map marker size
- Larger padding, dot, and text for compact markers
- max-width increased from 180px to 220px
- font-size increased from 11px to 13px

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 20:42:56 +00:00
Your Name 2a9ec02d1c Fix map cards, share URL, and post modal issues
- Fix share URL format (/p/ instead of /post/)
- Reduce map card size (scale 0.45/0.38)
- Add polaroid tilt effect via CSS variable
- Fix card positioning above pointer
- Improve gallery image deduplication
- Fix save error handling in post edit

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 20:38:52 +00:00
Your Name 30c962e95e fix: Weather widget positioning and z-index
- Position at 64px from top (desktop & mobile)
- z-index 830 (above FAB, below searchbar dropdown)
- Throttle map updates to 2 seconds
- Click outside to close expanded view

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 10:38:06 +00:00
Your Name 3c3a6639e4 feat: Add weather widget with apps system
- Weather widget in top-left slot with compact pill display
- Click to expand 7-day forecast
- Uses apps system via Pulsar with Open-Meteo fallback
- Click outside to close expanded view
- Throttled updates (1/sec) when moving map

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 10:18:34 +00:00
Your Name e635d0e7f6 feat: Add event clusters visualization with lake-like zones
- Add EventClustersLayer component with convex hull algorithm
- Clusters appear as organic shapes around member posts
- Only visible when Clusters filter is selected
- Add fetchEventClusters API function
- Update ContentFilters with cluster filter option
- Filter posts by cluster membership when filter active

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 07:44:07 +00:00
Your Name da4fde9185 Fix template selection for posts with images but empty content_type
- Added detection for posts with images when content_type is empty
- Posts with images now correctly show as polaroid style instead of news

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 01:53:39 +00:00
Your Name dd5954caad fix: improve content filtering for unknown types
- Unknown content types (systems, news-scrapper) treated as text
- Filter "text" now includes news and unknown types
- Add KNOWN_CONTENT_TYPES set for type detection

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20 16:57:44 +00:00
Your Name 4b3bbe01ef Show 'Wired to Life' tagline on mobile (v0.0.95)
- Remove hidden class, show on all screen sizes
- Smaller text (7px) and dot (1px) on mobile

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20 07:42:56 +00:00
Your Name 09f4ace25b Auto-play videos when opening post (v0.0.94)
- Add autoPlay to HeroVideo component
- Videos now start playing automatically when post opens

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20 07:39:39 +00:00
Your Name 01272f492b Fix live post removal + add commenter avatars (v0.0.93)
- Always dispatch live-post-deleted when stream ends (removes marker)
- If saved, also dispatch live-post-created with video post
- Add commenter avatar fetching from profile API
- Display profile pictures in live chat comments

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20 07:33:04 +00:00
Your Name bacf7d9df3 Redesign LiveKitBroadcast with fullscreen experience (v0.0.92)
- Fullscreen video preview with gradient overlays
- Pre-live: Collapsible settings panel for title/category
- Live: Floating comments section with toggle
- Modern pill-style badges for LIVE/viewers/timer
- Camera switch and settings buttons on right side
- End stream confirmation with Save/Discard/Continue options
- Websocket events for live-post-updated/deleted already handled

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20 07:20:58 +00:00
Your Name 6bec96cc19 Pass live title/category from PostCreateModal to LiveKitBroadcast (v0.0.91)
- Add liveData state to MapView for title/category/subCategory
- Pass initialTitle, initialCategory, initialSubCategory to LiveKitBroadcast
- Skip form in LiveKitBroadcast when data provided from PostCreateModal
- Show ready state with title/category instead of redundant form
- Fix auto-scroll only on new comment (v0.0.90)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20 07:12:56 +00:00
Your Name f4fe10d804 Fix auto-scroll on post open - only scroll on new comment (v0.0.90)
- Add justCommentedRef to track when user submits a comment
- Only scroll to comments bottom when user adds new comment
- Don't auto-scroll when modal opens with existing comments

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20 07:07:29 +00:00
Your Name d051a9337c Add commenter avatars & category colors to comments (v0.0.89)
- Fetch profile avatars for commenters
- Apply post category gradient to comment avatars
- Add events, friends, market to CATEGORY_CONFIG
- Fix first comment race condition with setTimeout

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20 06:53:52 +00:00
Your Name 0119174969 Add category icons & author avatars to PostDetailModal (v0.0.88)
- Category icon shown when post has no image (with gradient background)
- Author avatar fetched from profile API and displayed
- Logo position adjusted (6px down, 1px left)
- Comments auto-open when existing comments present

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20 06:45:06 +00:00
Your Name 68c1fce064 TopBar redesign & PostDetailModal improvements (v0.0.87)
TopBar:
- Responsive logo size (adapts to mobile)
- Logo positioned correctly (+5px down, +2px right)
- Brand text "SOCIOWIRE" visible on all sizes
- Tagline "Wired to Life" hidden on mobile
- Smaller action buttons on mobile (w-7 → w-9 responsive)
- Friends button always visible (opens login if not auth)
- Removed duplicate search bar and location button

PostDetailModal:
- Truth score block made more compact
- Comments use correct API fields (username, body)
- Comments auto-open when there are existing comments
- Fixed comment API response handling (ok at end of spread)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20 06:36:37 +00:00
Your Name 37f879556e feat: Refactor PostDetailModal with unified post type system
- Add unified getPostType() detection for 6 post types: link, story, picture, video, live, camera
- Create dedicated Hero components for each post type
- Quebec511 cameras now use proxy stream /live/api/stream/{id}
- Fix media URLs to use relative paths (same origin)
- Add scroll lock when modal is open
- Generic link display (domain name instead of "Read article")
- Stories with images show gallery, text-only shows gradient
- Support long text content with proper scrolling
- Add i18n keys for modal (EN/FR/ES)
- markerManager.js now dispatches React event for all post types

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20 05:36:51 +00:00
Your Name 471d5ab544 fix: Remove old cycling vote handler, skip if already voted same way
- Remove old truthBadge click handler that cycled through votes
- Add check to skip vote if already voted that way (no double-click bug)
- Fetch initial vote state and show active button
- Update button styles to show current vote

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 21:29:11 +00:00