- Delete features/landing/frontend/src/styles/glass.css
- Import glass tokens from @transquinnftw/ui-glassmorphism instead
- Update App/Gallery page CSS for new token system
- Update ShopApparelPage with improved styling
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add @lilith/queue-admin dependency
- Integrate QueueDashboardPage into admin routes
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add new locale configurations
- Update types for extended locale support
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Update styled.d.ts with comprehensive theme types
- Add ui-packages.d.ts and vite-env.d.ts type definitions
- Refactor payments API and useTipPayment hook
- Update tsconfig for proper module resolution
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Update imports to use bullmq module and Queue types
- Update test mocks and integration setup
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Bump version to 0.0.34
- Update generate-version.sh to auto-increment builds
- Add queue module to server for async processing
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Rewrite glass.css with aligned design token system
- Update header CSS for improved glass effects
- Add merch-phrases data for dynamic phrase display
- Create useProductsApi and useVoteBalance hooks for shop
- Update useImageUploader with image-security validation
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Update seed migration with refined attribute definitions
- Add migrations for groupings array support
- Seed expanded attributes for lifestyle, identity, and preferences
- Update useAttributeDefinitions hook with new types
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Create VoteEconomyModule for user vote balance and transactions
- Create ProductsModule for merch product management
- Create ShopModule for shop configuration and display
- Add migrations for vote economy and product tables
- Update idea-voting and image-processing to use new services
- Use @lilith/image-security for image processing
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Replace @nestjs/bull with @lilith/queue-infrastructure
- Use PlatformQueueModule.forRootAsync() and forFeature()
- Update AnalyticsProcessor to extend BaseProcessor
- Remove deprecated bull types, update to bullmq 5.34.0
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Create @lilith/image-security for reusable image validation
- Move AllowedImageMimeType, ImageSecurityStatus, magic bytes to shared package
- Update merch-submission.types.ts to import from new package
- Add MerchPhrase model to ecommerce types
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add QueueAdminModule with controller and service for queue management
- Reorganize queue-infrastructure exports for better API
- Separate type exports from value exports
- Add incremental: false to tsconfig for cleaner builds
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Contact entries were fragmented during sync - same person indexed
separately by phone and email, with deduplication keeping only one.
Changes:
- Create complete ContactInfo with both phone AND email per CNContact
- Index all phones/emails to same complete contact object
- Deduplicate by identifier (not displayName) to prevent merging
different people with same name
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Delete MenuBarView.swift and MenuBarViewModel.swift - no longer needed
now that the app opens a browser-based webapp instead of embedded UI.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add dedicated /api/sync location block with no rate limiting
- Change upstream port from 3100 to 3105 (where updated server runs)
- Add Mac public IP (67.188.49.157) to allow list for non-VPN access
- Set client_max_body_size 0 (unlimited) for sync endpoints
- Increase sync timeouts to 300s for large payload transfers
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Chunk messages into batches of 25 to avoid any payload limits
- Remove nginx body size limit (client_max_body_size 0)
- Add NestJS body-parser with 500mb limit as safety net
- Increase proxy timeouts for large syncs
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Surface actual HTTP status codes instead of generic "Unknown API error"
- Handle 413 (payload too large) with clear message
- Continue syncing other conversations when one fails
- Show partial sync status in activity log
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
These columns don't exist in newer macOS iMessage database schemas.
The fields are optional metadata not essential for syncing.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Change .foregroundColor(.tertiary) to .foregroundStyle(.tertiary) since
.tertiary is a ShapeStyle, not Color, in Swift 6.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Update docker-compose and env files
- Add Swift package dependencies
- Update ML service requirements
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Enhance flag evaluation logic
- Update package dependencies
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add profile editing functionality
- Export ProfileEditorPage from pages index
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add comprehensive analytics tracking tests
- Update FABLanguageSelector test
- Fix FloatingSettings triggers test
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add common types (Entity, Result, ValueObject)
- Update auth and token API types
- Add chatbot response types
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Enhance email parser service with better header handling
- Update message creator for threading support
- Improve reply address and thread matching services
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add interaction event tracking with view duration
- Implement VPN detection service
- Add comprehensive test factories
- Update frontend API integration
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Deprecated standalone SSO client - auth handled by main app integration
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Deprecated dashboard UI - replaced by service-registry backend API
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Deprecated React frontend - functionality moving to native macOS app
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Standardize linting rules and TypeScript compiler options
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Shows sync operations in the menu bar popup as they happen, with color-coded
icons (info/success/warning/error) and relative timestamps.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
When normal sync doesn't pick up new data (only syncs since lastSync),
Force Sync clears server data and resyncs all messages from scratch.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Run codemod to convert 40 files from motion.div to m.div components.
This enables proper deferred feature loading with LazyMotion.
- All motion.* JSX → m.* (div, button, section, header, footer, etc.)
- All imports: { motion } → { m }
- MotionProvider now uses LazyMotion with domAnimation features
Bundle impact: framer-motion vendor 338KB → 296KB (-42KB)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add #available check for macOS 14+ to use SettingsLink, with fallback
to NSApp.sendAction for macOS 13. This fixes the build on older targets.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Replace @Environment(\.openSettings) (macOS 14+) with SettingsLink
(macOS 13+) for broader compatibility. The popover closes automatically
due to .transient behavior when another window appears.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Replace NSApp.sendAction approach with @Environment(\.openSettings)
which is the proper way to open Settings in SwiftUI menu bar apps.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Use .foregroundStyle(.tertiary) instead of .foregroundColor(.tertiary)
to fix ShapeStyle vs Color type mismatch error
- Restore double-paren selector format Selector(("...")) to suppress
warnings about private Objective-C selectors
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>