The API client expects empty responses to use 204, not 200.
Returning 200 with no body caused JSON parse error in the frontend.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Bulk/CSV import now passes theme_id through to DB
- Preferred source update scoped by theme_id (no cross-theme reset)
- Theme creation sends sensible defaults from frontend
- Scheduler wraps generation in 15-minute timeout
- Job store cleanup runs every 5 minutes
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Users can mark sources as preferred via star buttons on the theme page.
Preferred sources are processed first in the pipeline (ordered before
non-preferred in waves, shuffled separately then merged).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- settings.spec.ts: test batch_size instead of removed theme field
- settings-export.spec.ts: test batch_size export/import, open collapsed details section
- sources.spec.ts: convert to API-based test since sources now belong to themes
- generation-live.spec.ts: already updated (no changes needed)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Replace waitForLoadState('networkidle') with 'domcontentloaded' to
avoid hangs caused by the Cloudflare Turnstile script
- Add { waitUntil: 'domcontentloaded' } to all page.goto() calls
- Rewrite registration test to use the API directly instead of UI form
submission, since the Turnstile script causes continuous DOM mutations
that prevent Playwright from clicking elements
- Fix admin-providers test to select Gemini from the provider dropdown
when multiple providers are enabled
- Fix sources test to clean up leftover sources before asserting counts
- Update generation-live LLM call type assertion from 'rewrite' to
'search' to match the current pipeline (classify_summarize is optional)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add Playwright E2E testing setup with Docker Compose test environment,
database seed script, auth helpers, and five test scenarios covering
registration, admin providers, settings persistence, sources CRUD,
and settings export/import.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>