feat: MapLibre record screen, Strava UX, and iOS artifact cleanup#22
Conversation
Local Docker dev often sets SECRET_KEY to match main-backend while activity, community, and map backends require JWT_SECRET. Accept both names so compose starts without duplicate env entries. Co-authored-by: Cursor <cursoragent@cursor.com>
Introduce reusable liquid layout primitives and simplify login/sign-up to a minimal frosted-card flow aligned with SyntrakTheme. Co-authored-by: Cursor <cursoragent@cursor.com>
Replace frosted auth layout with a clean white login/sign-up flow, Snowtrak branding, outlined fields, social buttons, and shared auth UI components. Co-authored-by: Cursor <cursoragent@cursor.com>
Route avatar taps to the You tab, replace threads content with profile sections, and align header and social stats with the Snowtrak UI system. Co-authored-by: Cursor <cursoragent@cursor.com>
…utton Make privacy switches visible and interactive in a grouped card layout, and drop the map tab close control that incorrectly popped the root navigator. Co-authored-by: Cursor <cursoragent@cursor.com>
Give the home tab compact Liquid-style sections with selectable chips and action rows, add stale-while-revalidate weather caching, and tighten the single-line welcome header. Co-authored-by: Cursor <cursoragent@cursor.com>
Delete all Dart-side GPS ingestion, segmentation, and stats engines (~3 000 lines) so all post-processing math lives exclusively in Nivus. Update AppConfig, DioFactory, ServiceLocator, RecordScreen, and ActivityDetailScreen to remove dead references. ActivityDetailScreen now renders the raw GPS track via MapRenderingEngine with a local fallback segment; stats are served directly from the Activity record until Phase 4 server-side segment data is available. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace google_maps_flutter types (GoogleMapController, Completer) with MapLibreMapController. On each GPS tick the live route is pushed to a GeoJSON source (no full rebuild). The map auto-follows via MyLocationTrackingMode.tracking; user can dismiss tracking freely. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…de-engines Merges home feed redesign, auth screens, profile layout, and activity card improvements from the ui branch. Conflict on record_screen resolved in favour of the MapLibre implementation; activity_feed_card takes the ui thumbnail URL addition; map-backend config retains both SYNTRAK_DATABASE_URL and JWT_SECRET fallback. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Regenerated all 15 iOS icon sizes (20px–1024px) from snowtrak_logo.png and added the source logo as a Flutter asset for use in-app. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Carried over from ui-branch merge; activity_feed_card references activity.thumbnailUrl which was missing from the model. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…e fix - Replace AlertDialog GPS prompts with dark modal bottom sheets - RecordBottomSheet: collapsible dark panel, time/distance/speed stats, orange Start button, pause and stop controls, save/discard sheets - RecordMapView: remove style toggle and zoom controls, lock to terrain, add floating re-centre button - Fix rendering lag: timer uses ValueNotifier so map never rebuilds on every tick; GeoJSON pushed to MapLibre only when user moves >=5m Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…r and 3-button controls - ActivityTypeSelector converted from full-screen Navigator page to a compact modal bottom sheet; no map context switch to pick activity - RecordBottomSheet redesigned with Strava-inspired 3-button layout: activity chip always visible, zeroed stats before recording, large centre FAB (orange start / red stop), small side FABs - Pure black (#0F0F0F) background, tabular figures for stable stats Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…controls Stats row now lives in a #1C1C1E rounded card with a white/10 border, floating on the #0F0F0F panel — creates clear hierarchy between activity chip, stats, and button row. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace all hardcoded black/orange with SyntrakColors tokens throughout the record screen, matching the home screen's light theme: - Stats card: white surface, divider border, textPrimary values - Controls bar: white bg with top border, primary blue Start button - Activity picker modal: white sheet, surfaceVariant tiles - GPS denied sheet + location permission dialog: white, blue CTA - Save activity dialog: white, blue Save button, textTertiary Discard - Re-centre button: white circle with blue icon - Loading screen: background + primary blue spinner - All text uses SyntrakTypography + SyntrakColors tokens Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Remove frontend/.dart_tool, frontend/build, backend/.venv, and __pycache__ from the index — these were committed before .gitignore rules were in place and will no longer appear in git status. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Remove frontend/ios/Pods/ and Flutter generated files from the index — committed before .gitignore rules were in place. Also add *.env and .cursor/ rules to prevent future credential/IDE noise. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
Important Review skippedToo many files! This PR contains 151 files, which is 1 over the limit of 150. To get a review, narrow the scope: Upgrade to a paid plan to raise the limit. ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (149)
📒 Files selected for processing (151)
You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Summary
RecordScreento MapLibre with live GPS path drawing, replacing client-side processing enginesbackend/*.envfrom git trackingTest plan
git statusshows no noise fromios/Pods/,Generated.xcconfig, or.envfiles after apod install🤖 Generated with Claude Code