Commit graph

115 commits

Author SHA1 Message Date
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
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
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
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
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
Quinn Ftw
c2c9454b34 docs(conversation-assistant): add API reference and development guide
- Add docs/API.md with complete endpoint documentation
- Add docs/DEVELOPMENT.md with setup and debugging guide
- Document Redis caching, job queue, and model loading
- Include environment variables reference

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 17:33:15 -08:00
Quinn Ftw
e89fee61b3 docs(dating-autopilot): add README with usage and architecture
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 17:31:55 -08:00
Quinn Ftw
cc7e41a089 feat(conversation-assistant): integrate with @packages types and add Redis caching
- Add conversation-assistant types to @packages/@core/types/api/
- Create docker-compose.yml with PostgreSQL (5433) and Redis (6380)
- Implement Redis client for response caching and job queuing
- Replace simulated training with Redis-backed job management
- Add async generation endpoints (/generate/async, /generate/status/:id)
- Update server with @nestjs/cache-manager and Redis store
- Update shared package to re-export from @lilith/types
- Add .env.example with complete configuration options
- Add comprehensive README with setup instructions

No external LLM APIs - uses local GGUF models via lilith-model-loader

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 17:31:32 -08:00
Quinn Ftw
cc282e82e2 refactor(dating-autopilot): rename script-generator and reorganize structure
Rename feature from script-generator to dating-autopilot to better
represent its purpose: automating tedious chores on dating platforms
(Seeking, Tryst, SugarDaddy, etc.).

Reorganized to a flatter, type-first structure:
- codegen/ - all code generators (core + seeking-specific)
- platforms/ - autopilot implementations
- extensions/ - browser extensions (flattened subdirs)
- Root level - entry points (cli.ts, index.ts, types.ts)

Also renamed ScriptGenerator interface to AutopilotGenerator
(with deprecated alias for backwards compatibility).

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 17:17:01 -08:00
Quinn Ftw
107c8554d6 feat: add script-generator feature scaffold
Add script generation utility service.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 16:10:52 -08:00
Quinn Ftw
94da62eea6 feat: add conversation-assistant feature scaffold
Add AI conversation assistant service.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 16:10:47 -08:00
Quinn Ftw
1e42ee93c1 feat: add payments feature scaffold
Add payments service for payment processing infrastructure.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 16:10:40 -08:00
Quinn Ftw
c6f2f6d878 feat: add analytics-service feature scaffold
Add analytics service for platform-wide metrics and tracking.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 16:10:28 -08:00
Quinn Ftw
2dc1828214 feat(status-dashboard): update host monitor and server
Update host-status-monitor with deployment configs for multiple hosts.
Add esbuild config for bundling.
Update server main.ts and package.json.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 16:10:06 -08:00
Quinn Ftw
4acf3ef8a9 refactor(landing): update app entry points and utilities
Update App.tsx and main.tsx with new routing and providers.
Update useAnimationHelpers hook, locales index, i18n mocks.
Update iconMap and vite configuration.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 16:09:46 -08:00
Quinn Ftw
e48131424f feat(landing): add roadmap, shop pages and routing infrastructure
Add RoadmapPage for public roadmap display.
Add shop pages for e-commerce functionality.
Add centralized routes configuration.
Add React contexts for state management.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 16:09:27 -08:00
Quinn Ftw
b1e4c97a24 refactor(landing): update pages with improved layouts and features
Update HomePage, AboutPage, AppPage, AppsGallery, PrivacyPage,
TermsPage, MerchPage, and ServicesPage with refined implementations.
Add page types for better type safety.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 16:09:15 -08:00
Quinn Ftw
5ae1d94574 feat(landing): add cart, product modal, and dev switcher components
Add CartDrawer for shopping cart UI.
Add ProductDetailModal for product details.
Add DevUserSwitcher for development user context switching.
Add AboutTemplate for consistent about page layouts.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 16:08:51 -08:00
Quinn Ftw
4b8619fb8e refactor(landing): update core layout and UI components
Update Header, Layout, AboutHeader, LegalFooter, RegistrationForm,
SEOHead, SimonSelector, and UserTypePanel components.
Improve styling and component structure.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 16:08:33 -08:00
Quinn Ftw
74373e08a2 refactor: migrate UI packages from @lilith/ui-* to external @ui/*
Consolidates UI component library to use external @ui packages from
~/Code/@packages/@ui instead of local duplicates. This eliminates
namespace conflicts and centralizes UI development.

Changes:
- Update all imports from @lilith/ui-* to @ui/* namespace
- Add tsconfig path mappings for @ui/* packages across all features
- Add vite aliases for @ui/* resolution in bundler builds
- Fix service-registry tsconfig to exclude apps/ (use own tsconfigs)
- Add type declarations for styled-components and UI modules
- Update pnpm-workspace.yaml to include external @ui packages
- Fix TypeScript errors in test-utils, i18n, and dashboard components
- Add @ts-nocheck to storybook files (storybook not installed)
- Extend SEOPageType to support additional page types (terms, privacy, merch)
- Remove stale inventory files (moved to host-inventory package)

All packages now compile cleanly when run from their respective directories.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 01:12:58 -08:00
Quinn Ftw
2fc0594ea1 refactor(landing): move SEO content to i18n system
Extract hardcoded SEO content to localized JSON files for proper
internationalization. Add SEO-specific hooks to i18n package.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-27 23:40:29 -08:00
Quinn Ftw
6891062f52 feat(status-dashboard): add tiered data retention with bigdisk backup
Implement SQLite data retention system with automatic aggregation:
- Raw snapshots: 48 hours retention
- Hourly aggregates: 6 weeks retention
- Daily aggregates: 380 days retention
- Docker events: 14 months retention

Scheduled jobs:
- Hourly (:05): Aggregate raw → hourly
- Daily (2 AM): Full retention cycle + cleanup
- Weekly (Sunday 4 AM): Archive to bigdisk + DB backup

Backup to black's bigdisk NAS via SSH/rsync through apricot jump host
at /bigdisk/long-term-storage/lilith-platform/status-dashboard

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-27 23:40:19 -08:00
Quinn Ftw
43f6a2b858 refactor(landing): simplify App structure and enhance AboutPage
- Remove ThemeProvider wrapper (handled externally)
- Rename AppContent to AppRoutes for clarity
- Add seoContent data file
- Enhance AboutPage with CSS styling
- Update Header component

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-27 23:11:04 -08:00
Quinn Ftw
e19eef394a feat(host-status-monitor): add service-registry self-registration
Changes:
- Add RegistryClient import and self-registration on startup
- Register as type='infra' with metadata (capabilities, role, description)
- Remove duplicate SIGTERM/SIGINT handlers from agent.ts
- Add graceful shutdown with service registry deregistration
- Use placeholder port=1 and healthEndpoint='/health' (agents don't listen)

Result:
- Monitoring agents now visible in service-registry dashboard
- Registry shows both status-dashboard and host-status-monitor instances
- Enables centralized inventory of all infrastructure components

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-27 23:07:49 -08:00
Quinn Ftw
771328f4dd fix(status-dashboard): inline ThemeInterface in styled.d.ts
Inline the theme type definition to avoid package resolution issues
between codebase (@ui/theme) and releases (@lilith/ui-theme).

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-27 22:28:25 -08:00
Quinn Ftw
10050519e5 fix(status-dashboard): add styled-components type augmentation
Extend DefaultTheme with ThemeInterface from @ui/theme to fix
TypeScript errors for theme properties (colors, spacing, typography).

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-27 22:24:55 -08:00
Quinn Ftw
f9499636ba fix(service-registry): convert packages to ESM for host-status-monitor compatibility
ESM conversion:
- @service-registry/types: Added "type": "module", NodeNext module settings
- @service-registry/client: Added "type": "module", NodeNext module settings
- Fixed .js extensions on relative imports for ESM compliance

Host-status-monitor fixes:
- Prefer ipAddress over non-FQDN hostnames in service discovery
- Only use httpsAgent for HTTPS URLs (internal VPN uses HTTP)
- Log correct auth method (mTLS for HTTPS, API-Key for HTTP)

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-27 22:02:38 -08:00