Refactor multi-user isolation tests to match simplified
seed.sql with single device and phone number display names.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Replace custom styled components with:
- Stack, Grid from @lilith/ui-layout
- Heading, Text from @lilith/ui-typography
- Card from @lilith/ui-primitives
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add comments referencing ports.yaml as source of truth
- Support VITE_PORT environment variable for dev server
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Simplify React version requirements across frontend packages
from "^18.0.0 || ^19.0.0" to "^19.0.0" for consistency.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Lock file updates for new dependencies.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Replace custom SectionTitle with Heading component
and clean up duplicate PillTabs import.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add E2E test for SEO Pipeline Jobs tab covering:
- Tab content and queue stats visibility
- Marketplace images section
- Single page generation section
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Replace custom SectionTitle with Heading component
from @lilith/ui-typography for consistent styling.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Replace custom styled components with:
- Stack, Grid from @lilith/ui-layout
- Heading, Text from @lilith/ui-typography
- Card from @lilith/ui-primitives
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Replace custom styled components with:
- Stack, Grid from @lilith/ui-layout
- Heading, Text from @lilith/ui-typography
- Card from @lilith/ui-primitives
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Replace custom styled components with:
- Stack, Grid from @lilith/ui-layout
- Heading, Text from @lilith/ui-typography
- Card from @lilith/ui-primitives
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Replace direct localhost:3700 with /api/images proxy path
for consistent request routing through Vite dev server.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Proxy /api/images to image-generator backend on port 3700.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add @lilith/ui-typography, @lilith/ui-admin, and @lilith/ui-charts
for refactored admin pages using shared UI components.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Change legal review context column from varchar(100) to TEXT
to accommodate longer context strings.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Mark showRejectConfirm and handleRejectAll as intentionally
unused with underscore prefix for future batch rejection UI.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Tests for SEO Pipeline Jobs tab in Platform Admin:
- Tab content and queue stats visibility
- Marketplace images section
- Single page generation section
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
E2E tests moving to platform-admin where they belong -
SEO page is mounted in platform-admin, not standalone.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Select onChange: use e.target.value pattern
- Checkbox onChange: use e.target.checked pattern
- Alert: use children prop instead of message
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Ensure colors array access has OR fallback for type safety.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Replace logical OR with nullish coalescing for safer fallback
when STATUS_STYLES lookup returns undefined.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Align with PORTS.features.imageGeneration.api config.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Reset list-style, margin, and padding for sidebar nav list.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Replace hardcoded port 3010 with PORTS config constants
for image-generator and landing backend APIs.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Use optional prevStage variable to safely access previous
funnel stage count instead of direct array index access.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Adds conversation-assistant/ml-service to staging workflow:
- Detection for features/conversation-assistant/** changes
- build-ml-service job with Python 3.12, uv, and Forgejo PyPI
- ML Service staging URL in summary
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add test-ml-service job for conversation-assistant changes
- Configure Python 3.12 with uv package manager
- Use Forgejo PyPI registry for private packages
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Use e.target.value pattern for form elements
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Use e.target.value pattern for form elements
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Use e.target.value and e.target.checked patterns for form elements
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Navigate directly to /pipeline route instead of clicking tab
- Use networkidle wait instead of fixed timeouts
- Fix selectors for checkbox and text matching
- Update navigation tests to use links not buttons
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Use onTabChange for PillTabs, not onChange
- Use children prop for Alert, not title+message
- Use e.target.value/checked for Select/Checkbox handlers
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Use e.target.value and e.target.checked patterns for form elements
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add /pipeline route to App.tsx
- Add Pipeline Jobs nav link to Layout.tsx
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Use theme.typography.* and theme.colors.text.muted patterns
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- SubscriptionDashboardPage, SubscriptionTiersPage, TierEditModal
- Replace Tailwind with styled-components
- Fix theme paths for cyberpunkAdapter
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
ProductModal and ProductsPage use proper theme.colors.text.muted paths
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- MerchSubmissionsPage and MerchSubmissionDetailModal
- Replace Tailwind with styled-components
- Fix theme paths for cyberpunkAdapter
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Use theme.colors.text.muted, theme.colors.hover.surface pattern
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- AttributesPage, AttributeDefinitionModal, EnumValuesEditor
- Replace Tailwind classes with styled-components
- Use @lilith/ui-primitives and @lilith/ui-typography
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Change port from 3100 to 5100
- Enable strictPort
- Add /api proxy to localhost:3010
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Patch LoRATrainer and GGUFConverter at their source modules
- Expect gguf_path in result instead of output_path
- Allow >= 3 update calls for progress updates
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Update claude_verifier.py logging to use %s/%d format
- Update flirty_style_service.py logging to use %s/%d format
- Matches structlog printf-style convention
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Health returns healthy even when model not loaded (cold start design)
- Add mock_settings to fully operational test for Redis enabled
- Update assertions to expect model_state="cold" instead of degraded
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>