You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
oabrivard aa6f1ba76b Phase 5: Generation pipeline with SSE progress, syntheses CRUD
Backend:
- Full 2-pass generation pipeline: LLM search -> URL scraping -> LLM rewrite
- Async generation with tokio::spawn, JobStore with per-user concurrency limit
- SSE progress streaming via axum::response::Sse + tokio::sync::watch
- Syntheses CRUD: list (paginated), get (ownership check), delete
- Prompt construction ported from original geminiService.ts
- Parallel URL scraping with bounded concurrency (max 10)
- Graceful partial failure handling (some URLs fail -> continue)
- 36 new unit tests, 16 integration tests

Frontend:
- Home dashboard: synthesis card grid, week badges, delete with confirmation
- Generate page: SSE-driven progress bar, step checklist, auto-redirect
- Synthesis detail: section-by-section display, external links, delete
- SSE client helper with auto-reconnect (exponential backoff)
- Date utilities with French locale formatting

Critical fixes applied:
- SSE EventSource now sends credentials (withCredentials: true)
- Gemini error logging sanitized to prevent API key leak in logs

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
3 months ago
..
common Phase 5: Generation pipeline with SSE progress, syntheses CRUD 3 months ago
api_admin_test.rs Phase 3: Admin module with provider/model curation, rate limits, user management 3 months ago
api_auth_test.rs Finished phase 1 3 months ago
api_csrf_test.rs Finished phase 1 3 months ago
api_health_test.rs Finished phase 1 3 months ago
api_keys_test.rs Phase 4: LLM provider abstraction with Gemini, user API key encryption 3 months ago
api_settings_test.rs Finished phase 1 3 months ago
api_sources_test.rs Finished phase 2 3 months ago
api_syntheses_test.rs Phase 5: Generation pipeline with SSE progress, syntheses CRUD 3 months ago