Commit graph

197 commits

Author SHA1 Message Date
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
e87ff3c612 chore(packages): update eslint and tsconfig references
Update shared packages to use local configs instead of central references:
- Update .eslintrc.json files across all @packages/*
- Update package.json dev dependencies
- Update tsconfig.json extends paths
- Update i18n common.json locale file

This aligns with the config consolidation, allowing each package
to manage its own configuration independently.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 21:35:39 -08:00
Quinn Ftw
221dcd7545 refactor(config): consolidate config package by removing individual configs
Remove redundant configuration files from @packages/@core/config:
- Remove eslint.base.cjs and eslint.react.cjs (use root configs)
- Remove nest-cli.json, playwright.config.ts, prettier.config.js
- Remove all tsconfig.*.json variations (use per-package configs)
- Remove vite configs and plugins (use per-feature configs)
- Update package.json to reflect reduced scope

Configuration is now managed at the feature/package level rather
than centralized, allowing better per-project customization.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 21:35:11 -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
Quinn Ftw
1cdeb26e59 chore(conversation-assistant): update dependencies and sync module
- Update frontend package-lock.json with dependency updates
- Add new dependency to server package.json
- Enhance app module configuration
- Minor sync controller adjustment
- Bump shared package version

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 21:14:26 -08:00
Quinn Ftw
0b89ac87f1 feat(email): enhance plugin-messaging with improved email handling
Major improvements to the email plugin-messaging module:
- Refactor inbound email processing with better error handling
- Update message creator service for improved message parsing
- Enhance message listener service for outbound handling
- Update module configuration and dependencies
- Add comprehensive test coverage for all services
- Update architecture documentation

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 21:14:01 -08:00
Quinn Ftw
7ae7458899 chore: remove image-generation feature
Remove the entire image-generation feature including:
- Service Python API and job processing
- Shared TypeScript types and schemas
- Landing backend integration module

This feature was not actively used and is being removed
to reduce maintenance burden.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 21:13:27 -08:00
Quinn Ftw
fba2e91919 feat(conversation-assistant): add macOS installer and fix tests
macOS Agent Installer:
- Add install.sh (356 lines) - automated build/install/configure
- Add uninstall.sh (217 lines) - complete removal
- Add INSTALL.md - user documentation
- Add DEPLOYMENT.md - ops guide for Plum MacBook

Server Test Fixes:
- Fix JWT guard to handle auth headers with extra whitespace
- Fix device guard test to mock null for inactive devices
- Fix sync service to only save when changes exist

ML Service Test Fixes:
- Fix patch paths in conftest.py and test_training.py
- Add structlog dependency to pyproject.toml
- Rewrite CORS test to pass value directly to constructor

All 35 ML service tests and targeted server tests now pass.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 21:10:09 -08:00
Quinn Ftw
b592e741f3 feat(service-registry): add tree view with dependency visualization
Replace card-based service list with a scalable tree view featuring:
- Toggleable grouping: by-host, by-type, by-lastupdate (time buckets)
- SVG dependency lines connecting services to their dependencies on hover
- Compact tree nodes (~32px) showing status, name, port, type, relative time
- Deps toggle button to show/hide dependency visualization
- Health summary per group (healthy/unhealthy counts)
- View mode and dependency toggle persisted to localStorage

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 21:02:53 -08:00
Quinn Ftw
14d33e1618 feat(service-registry): add E2E testing infrastructure and improve testability
Add comprehensive Playwright E2E testing setup with Docker-based test runner
for CI/CD compatibility. Enhance all UI components with data-testid attributes
for reliable test targeting. Fix view mode localStorage hydration to prevent
flash on initial load. Update typography tokens and path mappings.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 20:49:39 -08:00
Quinn Ftw
6e273234cf fix(landing): improve Simon selector hover glow transitions
- Switch from CSS animation to class-based hover state for reliable glow
- Add explicit box-shadow values for both hovered and non-hovered states
- Disable idle glow animations to enable smooth transitions
- Glow now immediately fades on mouse exit (0.2s transition)
- Remove overflow:hidden from container to prevent glow clipping

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 20:21:52 -08:00
Quinn Ftw
4d2fcd7309 feat(config): add centralized platform and feature config system
- Add codebase/config.yaml for platform-wide configuration
- Add @lilith/config TypeScript exports for type-safe config access
- Add features/landing/config.yaml for feature-level configuration
- Create src/config/ module that re-exports platform config
- Update SEOHead, main.tsx, CTAModal to use config.urls/assets/workers
- Update legal pages to use config.urls for mailto links

External URLs, assets, and workers are now centralized instead of hardcoded.
Features can extend platform config with feature-specific settings.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 20:03:53 -08:00
Quinn Ftw
1b4a5507df feat(landing): add info panel and sound trigger modes
Introduce intermediate info panels for user type selection with
description and benefits before registration. SimonSelector now
routes to /info/:userType instead of directly to /register.

Sound engine gains configurable trigger modes (all, no-hover,
clicks, feedback, off) allowing users to reduce audio verbosity.
FloatingSettings includes UI styling for the trigger mode selector.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 19:56:29 -08:00
Quinn Ftw
b40b3f6fe9 feat(landing): multi-type user model with primary selection
- Users can now have multiple account types simultaneously
- Added canBePrimary() to prevent User type being primary when other types exist
- DevUserSwitcher: multi-select checkboxes with star buttons for primary
- ProfilePage: type management with toggle and primary selection
- UserMenu: shows primary type with +N badge for additional types
- Auto-switches primary away from User when adding declared types

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 19:46:29 -08:00
Quinn Ftw
e527115c6a fix(landing): remove duplicate Header and AIBackground from pages
Pages were rendering their own <Header /> and <AIBackground /> components
while already wrapped by <Layout /> which provides both. This caused
double headers for logged-in users.

Removed duplicate imports and JSX from:
- Category landing pages (Shop, Platform, Company, ForWorkers, ForCustomers)
- Legal pages (Terms, Privacy)
- Roadmap page

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 19:43:47 -08:00
Quinn Ftw
8328679aa0 refactor(landing): MSW mocks real APIs, i18n uses bundled resources
- Remove i18nHandlers.ts: i18n now uses bundled resources (no network)
- Add handlers.ts: Mock real APIs (Ideas voting, Merch purchase)
- Simplify browser.ts: Only register real API handlers
- Update main.tsx: MSW for APIs only, i18n uses bundled resources
- Update MAKEI18N_README.md: Document MSW patterns

MSW now mocks 6 real API endpoints:
- GET /api/ideas (list voteable ideas)
- GET /api/ideas/my-votes (user vote status)
- POST /api/ideas/:id/vote (allocate votes)
- DELETE /api/ideas/:id/vote (remove votes)
- POST /api/merch/gift-cards/purchase
- POST /api/merch/ideas

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 19:32:48 -08:00
Quinn Ftw
b83f4b9d6b fix(landing): replace remaining hardcoded paths with Routes
- UserMenu: Routes.profile, Routes.orders
- ValuesPage: Routes.platformMission

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 19:32:09 -08:00
Lilith
ae577cefae build: v0.0.21
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 19:13:40 -08:00
Quinn Ftw
9e37308139 refactor(landing): enforce Routes usage for all navigation
- Add Routes.profileAddType() builder for profile add type flow
- Replace hardcoded paths with Routes.* in:
  - HomePage.tsx (shop redirect)
  - UserMenu.tsx (register)
  - ProfilePage.tsx (home redirect)
  - ShopIdeasPage.tsx (shop link)
  - AboutPage.tsx (profile add type)

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 19:05:03 -08:00
Quinn Ftw
f6abcaf662 fix(dating-autopilot): replace vm2 with acorn for syntax validation
The E2E tests were using vm2 to execute generated code, which caused
unhandled rejections because browser APIs (setTimeout, etc.) weren't
mocked. This was incorrectly ignored.

Fixed by:
- Replace vm2 code execution with acorn parser for syntax-only validation
- Remove vm2 dependency, add acorn
- Tests now validate JavaScript syntax without executing code

All 139 tests pass with zero errors.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 18:35:36 -08:00
Quinn Ftw
04194bb088 refactor(payments): consolidate @lilith/payments workspace config
Add payments package to workspace patterns and update path mappings
for proper TypeScript resolution across the monorepo. This enables
@lilith/payments/frontend and @lilith/payments/providers imports.

- Add features/payments to pnpm-workspace.yaml
- Add @lilith/payments path mappings to tsconfig.base.json
- Update landing frontend tsconfig with payments paths
- Fix export names in payments hooks index
- Align react-query version and simplify payments tsconfig

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 18:34:55 -08:00
Quinn Ftw
89ffa7b550 feat(dating-autopilot): add tests, Docker, and fix TypeScript errors
TypeScript fixes:
- Add @types/node dependency
- Remove invalid CLI options (baseDelay, randomDelayMax)
- Exclude vitest.config.ts from TypeScript compilation

Unit tests (95 tests, 100% coverage):
- codegen/timing.test.ts - timing helper generation
- codegen/mouse.test.ts - mouse movement simulation
- codegen/persistence.test.ts - localStorage persistence
- codegen/controls.test.ts - stop/pause controls
- platforms/seeking-auto-favorite.test.ts - main generator

E2E tests (44 tests):
- e2e/cli.test.ts - CLI execution and output validation
- e2e/extension-manifest.test.ts - Firefox extension validation

Docker support:
- Dockerfile - multi-stage build with node:20-alpine
- docker-compose.yml - local development config
- .dockerignore - exclude dev files

Also reorganized extension back to match manifest.json paths.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 18:21:51 -08:00
Quinn Ftw
74d31c41d9 refactor(landing): integrate slug utilities into router
- Routes.giftCard(100) now accepts amount or slug directly
- Routes.apparel('slug') renamed from apparelDetail for consistency
- Routes.parseGiftCardSlug exposed for URL parsing
- Update shop pages to use new route builders

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 18:20:32 -08:00
Quinn Ftw
1d20597362 feat(landing): add slug utilities for SEO-friendly product URLs
- Add slugify.ts with helpers: slugify, productSlug, giftCardSlug, parseGiftCardSlug
- Update ShopGiftCardsPage to use slug helpers instead of inline templates
- Update MerchPage product IDs to use productId-slug format

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 18:17:31 -08:00
Quinn Ftw
d1ec755aa2 fix(landing): update ShopCheckoutPage styling
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 17:50:36 -08:00
Quinn Ftw
a1d2e252f2 feat(service-registry): add frontend for service registry dashboard
Add React frontend for viewing and managing registered services.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 17:50:16 -08:00
Quinn Ftw
87f59b8c0c chore: update root package dependencies
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 17:50:00 -08:00
Quinn Ftw
e2be4f568a feat(email): add email service feature scaffold
Add email service with templates and notification infrastructure.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 17:49:51 -08:00
Quinn Ftw
6a1e4aaa75 feat(landing): add ProfilePage styling and update App routes
Add ProfilePage CSS and update related page components.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 17:49:44 -08:00
Quinn Ftw
205fc67f24 refactor(plugins): clean up plugin exports and index
Streamline plugin package exports for better tree-shaking.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 17:49:29 -08:00
Quinn Ftw
a0a391159a refactor(status-dashboard): update host config and auth handling
- Update service discovery documentation
- Improve API key guard with better auth handling
- Adjust hosts configuration for new services

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 17:49:20 -08:00
Quinn Ftw
f907bde570 feat(landing): add backend service with merch submissions API
Add NestJS backend for landing page with:
- Image processing service for uploads
- Merch submissions CRUD with admin workflows
- Email notification service
- S3-compatible storage integration
- Health check endpoint

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 17:49:11 -08:00
Quinn Ftw
9f63f08eb4 refactor(payments): reorganize backend structure and add frontend
- Restructure backend with cleaner module organization
- Move gift-cards, segpay, webhooks to proper locations
- Add payments frontend package
- Add providers abstraction layer

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 17:48:17 -08:00
Quinn Ftw
9ca8c68c3c feat(platform-admin): add merch submission management pages
Add admin pages for managing merch submissions including
review and approval workflows.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 17:47:57 -08:00
Quinn Ftw
be6318d8e9 refactor(landing): modernize frontend with improved i18n and component cleanup
- Remove legacy components (FeatureWaitlistModal, RegistrationForm, UserTypePanel)
- Integrate new i18n infrastructure with makeI18n
- Add CTAModal, ImageUploader, UserMenu components
- Add category pages and profile page
- Improve routing with localized paths
- Enhance SEO and header components

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 17:47:37 -08:00
Quinn Ftw
3802210feb feat(types): add conversation-assistant and merch-submission API types
Add shared type definitions for conversation-assistant ML service and
merch submission feature to @core/types package.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 17:46:49 -08:00
Quinn Ftw
f162581663 feat(i18n): enhance makeI18n with improved language handling
Improve i18n infrastructure with better language detection, validation,
and documentation for the makeI18n utility.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 17:46:31 -08:00
Quinn Ftw
04b70dfc0d feat(i18n): add bundled resources support to makeI18n factory
Enhance makeI18n to support bundled resources as an alternative to API mode:
- Add BundledResources type for locale → namespace → translations structure
- Make apiUrl optional when resources are provided
- Add BundledResourcesProvider for instant loading (no React Query needed)
- Update useI18n() to accept optional namespace parameter
- Add mergeNamespaces() helper for combining multiple namespaces
- Export BundledResources type from package index
- Add makeI18nResources export to landing app locales
- Update MAKEI18N_README.md with bundled resources documentation

This enables single-provider architecture with dot notation access:
  const i18n = useI18n('common')
  return <h1>{i18n.navigation.home}</h1>

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 17:41:57 -08:00