Commit graph

166 commits

Author SHA1 Message Date
Quinn Ftw
8b37391c1e feat(conversation-assistant): add authentication support to API client
- Add token and device ID storage utilities
- Add Authorization header to API requests
- Add skipAuth parameter for unauthenticated endpoints
- Add authApi object with register, verify, and checkStatus methods
- Improve error handling with status code attachment

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 05:12:32 -08:00
Quinn Ftw
bcaa005e64 docs: add ML integration documentation
Document ML service integration patterns for the platform.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 05:11:58 -08:00
Quinn Ftw
64333c9115 test(email): add internal controller spec
Add unit tests for the internal email controller.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 05:11:47 -08:00
Quinn Ftw
2cd36ec961 test(conversation-assistant): add E2E, ML service, and registry tests
Frontend:
- Add Playwright E2E test infrastructure with page objects
- Add tests for conversations, devices, and conversation detail pages
- Include Docker setup and CI workflow examples

ML Service:
- Add LLM and Redis client unit tests
- Add integration tests

Server:
- Add registry integration spec
- Add .env.example for configuration

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 05:11:37 -08:00
Quinn Ftw
58dd7b6004 docs(features): add migration documentation for i18n, seo, and truth-validation
Add README.md and MIGRATION.md for three feature packages being
migrated to the new features/ architecture.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 05:11:24 -08:00
Quinn Ftw
95d46f3139 test(sso): add email client and auth integration tests
- Add comprehensive email-client.service.spec.ts with unit tests
- Add auth-email.integration.spec.ts for email flow testing
- Update auth.service.spec.ts and mfa.service.spec.ts
- Update package.json with test dependencies

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 05:00:33 -08:00
Quinn Ftw
44512f55ed refactor(landing): update backend with improved imports and health checks
- Update package.json dependencies
- Add nest-cli.json configuration
- Improve health controller with additional checks
- Update image-processing and notifications services
- Refactor main.ts with better structure

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 05:00:03 -08:00
Quinn Ftw
0700eb1924 feat(conversation-assistant): add deployment infrastructure and ML enhancements
- Add comprehensive deployment documentation (DEPLOYMENT.md, DEPLOY_CHECKLIST.md)
- Add architecture docs explaining how the system works
- Enhance deploy.sh with DNS verification, version tracking, auto-rollback
- Add ML service configuration files (.env.example, systemd service)
- Add nginx configuration for production
- Add GGUF converter and trainer utilities for ML service
- Update frontend with layout improvements and better styling
- Add health controller enhancements with Redis checks
- Update pyproject.toml with new ML dependencies

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 04:59:33 -08:00
Quinn Ftw
6963c408a0 refactor(feature-flags): migrate from @packages to features directory
Move feature-flags package from @packages/@infrastructure/feature-flags/
to features/feature-flags/ following the new feature-based architecture.
The new location includes backend/, frontend/, and shared/ directories.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 04:58:41 -08:00
Quinn Ftw
4f279d6a1e feat(conversation-assistant): add remote deployment tool
- Add deploy-remote.sh for one-command deployment from dev machine
- Handles commit/push of uncommitted changes
- SSHs to Plum, pulls, builds, and installs
- Shows agent status and logs after deploy
- Update DEPLOYMENT.md with new workflow

Usage: ./deploy-remote.sh [server_url]

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 04:16:18 -08:00
Quinn Ftw
c8fdc28b85 feat(service-registry): update E2E tests and add migration docs
E2E test updates:
- Update page objects (DashboardPage, ServiceCardPage, etc.)
- Fix test selectors for card, list, smoke, and toolbar specs
- Add preview mode config to vite.config.ts

Add migration documentation:
- MIGRATION_SUMMARY.md: Overview of @ui component migration
- COMPONENT_MIGRATION_DIFF.md: Detailed component analysis
- README_MIGRATION.md: Migration instructions
- VISUAL_COMPARISON.md: Visual comparison guide

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 04:02:43 -08:00
Quinn Ftw
d54bfcbe55 refactor(platform-admin): use feature admin packages for ML pages
Replace local ML pages with re-exports from feature packages:
- SEOPage from @lilith/seo-admin
- TranslationsPage from @lilith/i18n-admin
- TruthValidationPage from @lilith/truth-validation-admin

This centralizes admin UI in their respective feature slices while
maintaining the same public API from platform-admin.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 04:01:56 -08:00
Quinn Ftw
d90907b033 refactor(landing): remove profile edit routes, update dependencies
Remove ProfileEditPage and associated routes:
- Delete ProfileEditPage.tsx
- Remove /profile/edit and /profile/edit/:userType routes
- Remove profileEdit and profileEditType from paths and patterns
- Remove @transquinnftw/profile-editor dependency
- Update ProfilePage styling

Profile editing functionality likely moved to dedicated profile feature.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 04:01:11 -08:00
Quinn Ftw
965bbac987 feat(profile): add profile configs and feature flags integration
Add profile configuration modules:
- clientProfileConfig, investorProfileConfig, providerProfileConfig
- Filter constants for profile search/filtering
- Replace @transquinnftw/profile-editor with @lilith/feature-flags

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 04:00:20 -08:00
Quinn Ftw
e78b9c4543 feat(email): add internal module with OTP email support
Add internal email module for service-to-service communication:
- InternalModule and InternalController for internal API endpoints
- OTP code email template for authentication flows

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 03:59:02 -08:00
Quinn Ftw
e0e549dc60 feat(sso): add single sign-on backend service
New SSO feature with complete authentication system:
- Email/password authentication with session management
- Multi-factor authentication (MFA) with TOTP support
- User registration and login flows
- Session handling with secure cookies
- Handlebars UI templates for auth flows
- Email client integration for notifications

Includes comprehensive test coverage for auth, MFA, sessions, and users.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 03:58:29 -08:00
Quinn Ftw
82e1143e76 refactor(truth-validation): migrate to feature-sliced architecture
Move truth-client from @packages/@infrastructure to features/truth-validation/:
- features/truth-validation/client/typescript: TS client library
- features/truth-validation/frontend-admin: Admin panel components
- features/truth-validation/ml-service: Python ML validation service
- features/truth-validation/shared: Shared types

Removes generate-facts script and README as part of cleanup.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 03:58:01 -08:00
Quinn Ftw
3de0f615fa refactor(seo): migrate to feature-sliced architecture
Move SEO from @packages/@infrastructure/seo-client to features/seo/ with:
- features/seo/frontend: SEO management UI
- features/seo/frontend-admin: Admin panel components
- features/seo/server: NestJS SEO service
- features/seo/ml-service: Python ML service for SEO optimization
- features/seo/shared: Shared types

This creates a complete SEO feature slice with domain configuration,
page config management, and preview capabilities.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 03:57:28 -08:00
Quinn Ftw
099d3077c3 refactor(i18n): migrate to feature-sliced architecture
Move i18n from @packages/@infrastructure/i18n to features/i18n/ with:
- features/i18n/react: React i18n hooks and components
- features/i18n/shared: Shared types
- features/i18n/locales: Translation JSON files
- features/i18n/ml-service: Python translation service
- features/i18n/frontend-admin: Admin UI for translations

Removes old documentation files (IMPLEMENTATION_SUMMARY.md,
MAKEI18N_README.md, TRANSLATION_REVIEW_ES.md) as part of cleanup.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 03:56:47 -08:00
Quinn Ftw
f312cb6bae feat(conversation-assistant): add curl install support for macOS agent
- Add download_source() to fetch source tarball when not in source directory
- Enables one-liner install: curl -sL https://conversations.nasty.sh/install.sh | bash
- Source tarball hosted at conversations.nasty.sh/conversation-assistant-macos-src.tar.gz

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 03:45:39 -08:00
Quinn Ftw
3616fd4a1d fix(conversation-assistant): fix service registry discovery in install.sh
- Change from GET with query params to POST with JSON body
- Fix response parsing: 'instances' → 'services' to match API
- Prefer host (domain) over ipAddress for proper SSL/routing
- Auto-detect https scheme for domain names

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 03:22:18 -08:00
Quinn Ftw
aa1d6ee0fb feat(platform-admin): add ML management pages
Add admin pages for ML-powered features:
- SEOPage for SEO optimization management
- TranslationsPage for i18n translation management
- TruthValidationPage for content validation rules
- Add routes in App.tsx for /ml/* paths

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 01:31:34 -08:00
Quinn Ftw
a2eeb2fa72 feat(service-registry): E2E testing and vite config updates
- Update E2E Dockerfile for test infrastructure
- Add .dockerignore and .npmrc for cleaner builds
- Update ServicesDashboard and ServicesToolbar components
- Add UI methodology documentation
- Update tsconfig and vite config for build improvements

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 01:31:07 -08:00
Quinn Ftw
63cfb42d60 feat(landing): i18n extraction and CTAModal improvements
- Extract hardcoded strings to i18n locale files across all pages
  (roadmap, terms, privacy, categories, profile, values, shop, apps)
- Add user type selector to registration modal for generic /register route
- Add themes.ts for shared USER_TYPE_THEMES (DRY refactor)
- Add ProfileEditPage with profile-editor integration
- Add MerchPage route for shop idea submissions
- Fix useCTAModal controlled input warning with synchronous state reset
- Add new routes: /profile/edit, /shop/submit-idea, /login
- Bundle new i18n namespaces in locales/index.ts

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 01:30:27 -08:00
Quinn Ftw
60fd80373f feat(conversation-assistant): service registry integration and bind mounts
- Add service registry integration for auto-discovery
- Switch docker volumes to bind mounts for NFS persistence
- Add device status endpoint (GET /devices/:id/status)
- Add health controller for service health checks
- Update macOS installer to discover service from registry
- Remove nginx config (moved to infrastructure)
- Add env files for apricot and production deployments

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 01:29:13 -08:00
Quinn Ftw
9b98c24c27 feat(conversation-assistant): add Full Disk Access permission UI
- Add SyncError enum to detect and categorize sync failures
- Show clear UI message when Full Disk Access is denied
- Add "Open Settings" button to directly open macOS Privacy settings
- Add "Retry" button to re-attempt connection after granting access
- Disable sync button when Full Disk Access is required

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 01:18:46 -08:00
Quinn Ftw
de74f73f01 feat(hsm): version-driven deployment with heartbeat and CI
Host Status Monitor improvements:
- Add registry heartbeat (every 60s) to stay healthy in service registry
- Registry marks services unhealthy after 2 minutes without lastSeen update
- Bump version to 1.2.0

Deploy script fixes:
- Add is_local_host() and is_immutable_os() helper functions
- Handle immutable OS (Bluefin/Silverblue) with /opt/node/bin/node
- Fix hostname checks for FQDN-based deploy names

Environment files:
- Rename to FQDN format (apricot-voyager-nasty-sh.env)
- Fix REGISTRY_URL to https://services.nasty.sh
- Set NODE_ENV=production for all hosts

Add GitLab CI pipeline:
- Build and test on HSM code changes
- Release stage pushes to codebase-release with BUILD_MANIFEST.json
- Infrastructure reconciliation triggered by version changes

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 01:18:14 -08:00
Quinn Ftw
1717ded9f5 fix(conversation-assistant): fix stats not updating in UI
- Replace entire SyncStats struct to trigger @Published notification
  (mutating struct properties doesn't emit Combine events)
- Wrap Timer callbacks with @MainActor to fix Swift 6 concurrency warnings
- Use proper weak self capture in verification polling

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 01:08:05 -08:00
Quinn Ftw
eb73148572 docs(email): add comprehensive service documentation
Create documentation covering current capabilities, usage guides for
developers/admins/users, and roadmap for planned phases 7-8 (order
emails, employee emails) plus future enhancements.

- docs/README.md: Vision, philosophy, quick start
- docs/CAPABILITIES.md: Technical breakdown of all features
- docs/USAGE.md: Integration guide with API reference
- docs/ROADMAP.md: Planned phases and future enhancements
- TEST_PLAN.md: Comprehensive testing strategy

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 00:51:38 -08:00
Quinn Ftw
190802c6f1 fix(conversation-assistant): add missing API and view files
- Add checkVerification method to APIClient
- Update MenuBarView with registrationCode binding

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 00:12:25 -08:00
Quinn Ftw
a67a2cc110 fix(conversation-assistant): fix sync status UI not updating
- Add @MainActor to SyncManager class for thread-safe @Published properties
- Add @MainActor to AppDelegate to access SyncManager.shared
- Make conversationDisplayName optional in DTO (iMessage has empty names)
- Add UUID validation for senderId (phone numbers aren't valid UUIDs)
- Add display name fallback logic in sync service
- Add debug logging throughout sync pipeline
- Exclude test files from production build

Fixes: "Last Sync: Never" showing despite successful sync

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 23:10:58 -08:00
Quinn Ftw
1d4c900345 feat(portal): configure SSO URL for AuthProvider
Add VITE_SSO_URL environment variable support for configuring the SSO
endpoint. Remove unused isLoading and isAuthenticated from useAuth
destructuring in App component.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 21:56:11 -08:00
Quinn Ftw
fffffe5c45 chore: update TypeScript configurations across features
- landing: extend from tsconfig.base.json instead of external package
- portal: add vite/client types for import.meta.env support
- status-dashboard: remove unused sourceMap option

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 21:55:55 -08:00
Quinn Ftw
30158c02b6 feat(landing): add login/register toggle and fix sign-in routing
Add toggle link between login and register forms in CTAModal allowing
users to switch authentication modes without closing the modal.
Fix UserMenu sign-in button to navigate to login instead of register.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 21:55:39 -08:00
Quinn Ftw
8b85b3c0e1 feat(landing): integrate login context into CTAModal
Complete CTAModal login integration:
- Update CTAModal.tsx to use new login context
- Export login context from contexts/index.ts

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 21:38:32 -08:00
Quinn Ftw
63caac263d chore: update integration status and add login context
Final batch of updates:
- Update email INTEGRATION_STATUS.md
- Update email plugin-messaging tsconfig.json
- Update platform-admin frontend package.json
- Update portal frontend package.json
- Add CTAModal login context for landing frontend

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 21:38:02 -08:00
Quinn Ftw
a54d17896a feat(landing): enhance CTAModal routing and add new paths
Landing frontend enhancements:
- Extend useModalRouting hook with additional routing logic
- Update CTAModal types with new properties
- Add new route paths for expanded functionality
- Add new dependency to package.json

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 21:37:31 -08:00
Quinn Ftw
eb002ecfaa chore(status-dashboard): update server config references
Update status-dashboard server to use local configs:
- Update .eslintrc.json reference
- Update package.json configuration
- Update tsconfig.json extends path

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 21:37:12 -08:00
Quinn Ftw
098795e657 feat(portal): enhance app initialization and configuration
Portal frontend updates:
- Add new dependency to package.json
- Enhance App.tsx with improved component structure
- Update main.tsx initialization logic

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 21:36:42 -08:00
Quinn Ftw
8fc52b7c6a feat(email): update architecture docs and add seed migration
Email system updates:
- Update ARCHITECTURE.md with latest design decisions
- Update backend package.json configuration
- Enhance app.module.ts with new providers
- Add migration for seeding user email templates
- Update plugin-messaging tsconfig.json

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 21:36:20 -08:00
Quinn Ftw
6c2d89a099 feat(landing): enhance UI components and improve ideas functionality
Landing frontend improvements:
- Update InfoPanel.css and SimonSelector.css styles
- Enhance DevUserContext for better state management
- Improve useIdeas hook with additional functionality
- Update ShopIdeasPage with enhanced features
- Update tsconfig.json configuration

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 21:36:00 -08:00
Quinn Ftw
66bcf8e851 feat(conversation-assistant): add production deployment configuration
- Add Dockerfile.prod for multi-stage server build
- Add docker-compose.prod.yml for production stack
- Add nginx config for conversations.nasty.sh with SSL
- Add frontend Dockerfile and nginx config
- Add deploy.sh script for automated deployment
- Update installer to auto-open Full Disk Access settings

Deployment target: 0.1984.dss.nasty.sh (conversations.nasty.sh)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 21:34:31 -08:00
Quinn Ftw
1132f12a2f feat(conversation-assistant): auto-open Full Disk Access settings
- Auto-detect interactive vs SSH batch mode
- In batch mode, automatically open System Settings to FDA pane
- Use osascript with fallback to URL scheme for reliable GUI launch
- Improves remote installation UX by showing settings immediately

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 21:26:57 -08:00
Quinn Ftw
a5fd278da3 test(landing): add E2E and unit tests for FloatingSettings
Testing infrastructure for FloatingSettings component:
- Add E2E Playwright tests for settings triggers
- Add unit tests for FloatingSettings trigger behavior
- Add e2e Dockerfile for containerized testing
- Update conversation-assistant server package-lock

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 21:25:40 -08:00
Quinn Ftw
301a0fbc91 fix(conversation-assistant): fix Swift compilation errors in APIClient
- Replace force unwrap on non-optional deviceId with if-let pattern
- Remove unused uuidBytes variable declaration

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 21:19:50 -08:00
Quinn Ftw
85434d7938 chore: update workspace configuration and dependencies
Infrastructure updates:
- Update pnpm-lock.yaml with dependency changes
- Update pnpm-workspace.yaml configuration
- Update .npmrc settings
- Add/update tsconfig.json files for packages
- Add info-panel.json i18n translations
- Add styled.d.ts type definitions for payments

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 21:16:46 -08:00
Quinn Ftw
b705a92efc feat(email): add backend infrastructure, templates, and frontend packages
Comprehensive email feature expansion:

Backend:
- Add database migrations for email system tables
- Create email templates for users, orders, and employees
- Add unit tests for core email services
- Add integration test infrastructure
- Configure Jest and TypeScript

Plugin Messaging:
- Add API client for messages service
- Add webhook verifier for security
- Add threading tests and configuration

Shared:
- Create shared types and constants package

Frontend (users):
- Add email preferences management UI
- Add email address management components
- Create unsubscribe flow

Frontend (admin):
- Add integration documentation and exports

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 21:16:29 -08:00
Quinn Ftw
13dc56bc26 chore: remove image-generation feature
Remove the entire image-generation feature and its integration with
the landing backend. This feature was not in active use and is being
removed as part of codebase cleanup.

Removed:
- features/image-generation/ service, shared types, and documentation
- features/landing/backend/src/image-generation/ integration module

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 21:15:42 -08:00
Quinn Ftw
d9fdd93ed8 feat(platform-admin): improve merch submissions UI
Updates to the platform admin frontend:
- Add new dependencies to package.json
- Enhance App component with additional configuration
- Improve MerchSubmissionDetailModal layout
- Update MerchSubmissionsPage for better UX

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 21:15:23 -08:00
Quinn Ftw
23392c75f4 feat(landing): enhance floating settings and info panel components
UI improvements to the landing page:
- Enhance FloatingSettings component with expanded functionality
- Improve InfoPanel component layout and interactions
- Update SimonSelector CSS for better hover effects
- Add merch-related i18n translations
- Update locales configuration
- Minor idea-voting controller refactoring
- Update vite config and dependencies

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 21:14:55 -08:00