Commit graph

10 commits

Author SHA1 Message Date
Patrick Britton 5b5e89e383 feat: Add overlay_json field for Quip text/sticker decorations
- Go: Add overlay_json to Post model, CreatePost handler, and all post queries
- Flutter: Rename QuipTextOverlay → QuipOverlayItem with type enum (text/sticker)
- QuipOverlayItem: add id field, content replaces text, backward-compat alias
- quip_video_item: parse overlay_json and render non-interactive overlays in feed
- quip_upload_provider: accept overlayJson param and pass to publishPost
- api_service: add overlayJson param to publish
2026-02-17 20:06:53 -06:00
Patrick Britton 0753fd91e6 fix: Resolve Flutter compile errors across 15 files
- Fix GroupCategory enum duplication (group.dart re-exports from cluster.dart)
- Fix stitchVideos arg count (use stitchVideosLegacy in quip_recorder)
- Fix enhanced_quip_recorder: getter/field conflict, XFile→File, static calls, CameraLensDirection, setState syntax
- Fix blocking_service: imports, ShareXFiles, SnackBar content, nullable bool
- Fix audio_overlay_service: path_provider import, getOutput() stub, fade icons
- Fix enhanced_beacon_detail_screen: flutter_map v8 interactionOptions, const constraints, Uri.parse
- Fix private_capsule_screen: add api_provider import
- Stub e2ee_device_sync_service (packages not in pubspec)
- Add generic post()/delete() helpers to api_service
- Fix repost_service: remove static, migrate StateNotifier→Notifier (Riverpod 3.x)
- Fix repost_widget: Repost? null assertion, RepostState type, Post field names, timeago, context param
- Fix sojorn_swipeable_post: close if-block, remove undefined _updateChainSetting
- Fix draggable_widget_grid: use this.widget for isEditable/theme/callbacks when ProfileWidget param shadows

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-17 17:43:30 -06:00
Patrick Britton 15e83c6a14 feat: Flutter group nav, quip repair API, share, capsule key rotation, admin groups/quips pages
Flutter:
- clusters_screen: _navigateToGroup now pushes real GroupScreen (was print)
- public_cluster_screen: calls GET /groups/:id/feed instead of fetchNearbyBeacons
- feed_sojorn_screen: _sharePost uses share_plus
- api_service: getSignedMediaUrl calls Go /media/sign endpoint
- quip_repair_screen: fully rewired to Go admin API (GET /admin/quips/broken, POST repair)
- private_capsule_screen: auto key rotation on open (_checkAndRotateKeysIfNeeded),
  _performKeyRotation helper; _CapsuleAdminPanel now ConsumerStatefulWidget with
  working Rotate/Invite/Remove/Settings modals

Admin panel:
- Sidebar: Groups & Capsules + Quip Repair links added
- /groups: full group management page with member panel + deactivate/remove
- /quips: quip repair page with per-row and repair-all
- /algorithm: live feed scores table (lazy-loaded)
- api.ts: listGroups, getGroup, deleteGroup, listGroupMembers, removeGroupMember,
  getBrokenQuips, repairQuip, setPostThumbnail, getFeedScores

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-17 15:45:42 -06:00
Patrick Britton f1ee925057 fix: Resolve compilation errors in Groups feature 2026-02-17 11:13:41 -06:00
Patrick Britton c1c7ebd678 feat: Add Groups system - Flutter models and API methods 2026-02-17 11:04:51 -06:00
Patrick Britton 00b4705a00 fix: Remove duplicate follow methods and fix FollowButton to use provider 2026-02-17 10:42:08 -06:00
Patrick Britton 7f618bcdf2 feat: Add feed filtering UI with FeedFilterButton and integrate into personal feed 2026-02-17 10:33:32 -06:00
Patrick Britton da93bc3579 feat: Follow system - database migration, backend handlers, FollowButton widget, API methods 2026-02-17 10:16:44 -06:00
Patrick Britton c255386db5 feat: Phase 1.1 - Groups page overhaul with discovery, category filtering, and join flow 2026-02-17 03:29:20 -06:00
Patrick Britton 434937961c security: sanitized baseline for public release 2026-02-15 00:33:24 -06:00