legco_ai_assistant/frontend
Woody 3b741c1844 feat(query): stream extracted questions immediately via SSE
Convert /query endpoint from synchronous JSON to Server-Sent Events (SSE)
streaming. The frontend now receives extracted_questions as soon as the
first LLM call completes, without waiting for retrieval, filtering, and
answer generation.

Backend:
- Add StreamingQueryEvent union type (Decomposed, Retrieving, Filtering,
  Generating, Completed, Error)
- Convert /query to return StreamingResponse with SSE format
- Yield events after each pipeline phase

Frontend:
- Add queryDocumentStream() using fetch + ReadableStream
- Add useQueryDocumentStream() hook with phase-aware state
- Update LTTPage to use streaming instead of mutation
- Update ResponsePanel to show phase messages (Searching documents...,
  Filtering passages..., Generating answer...)
- Update ExtractedQuestionsDisplay to accept null

Tests:
- Update query_flow e2e test to mock queryDocumentStream
- 84/85 tests pass (1 pre-existing failure from removed file-input)
2026-04-25 18:29:22 +08:00
..
src feat(query): stream extracted questions immediately via SSE 2026-04-25 18:29:22 +08:00
index.html feat(frontend): Phase 1.1 project scaffold with Vite, Tailwind, and API client 2026-04-23 10:57:20 +08:00
package-lock.json feat(frontend): add PDF viewer page with react-pdf (sub-phase 2.5) 2026-04-24 17:09:32 +08:00
package.json feat(frontend): add PDF viewer page with react-pdf (sub-phase 2.5) 2026-04-24 17:09:32 +08:00
postcss.config.cjs feat(frontend): Phase 1.1 project scaffold with Vite, Tailwind, and API client 2026-04-23 10:57:20 +08:00
tailwind.config.cjs feat(frontend): Phase 1.1 project scaffold with Vite, Tailwind, and API client 2026-04-23 10:57:20 +08:00
tsconfig.json feat(frontend): Phase 1.1 project scaffold with Vite, Tailwind, and API client 2026-04-23 10:57:20 +08:00
vite.config.ts feat(frontend): add PDF viewer page with react-pdf (sub-phase 2.5) 2026-04-24 17:09:32 +08:00