Go to file
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
.plans feat(query): stream extracted questions immediately via SSE 2026-04-25 18:29:22 +08:00
.playwright-mcp feat(query): stream extracted questions immediately via SSE 2026-04-25 18:29:22 +08:00
backend feat(query): stream extracted questions immediately via SSE 2026-04-25 18:29:22 +08:00
frontend feat(query): stream extracted questions immediately via SSE 2026-04-25 18:29:22 +08:00
test materials feat(query): stream extracted questions immediately via SSE 2026-04-25 18:29:22 +08:00
.env.txt init: project setup with AGENTS.md, test structure, and plan directory 2026-04-22 15:22:29 +08:00
.gitignore feat(backend): add PDF page extractor and chunk PDF storage config 2026-04-24 10:52:57 +08:00
AGENTS.md docs: add logging anti-patterns to AGENTS.md 2026-04-23 14:10:09 +08:00
development_plan.md docs: update development plans with Phase 1 completion status 2026-04-23 13:27:52 +08:00