legco_ai_assistant/.plans
Woody cb0ac07786 fix: text accumulation — stashes are sliding windows, merge via overlap detection
DashScope stashes are ~7-char rolling windows, not cumulative. Each partial
event replaces the previous. Completed events rarely sent. This caused text to
jump/replace during streaming and disappear on pause.

Backend:
- Add _merge_stash() — finds overlapping suffix between successive stashes
  and appends only new characters, reconstructing full utterance from partials
- format_transcription_event returns raw stash for read_events to merge
- read_events maintains partial_buffer via _merge_stash, clears on completed
- Guard against empty/whitespace-only stashes

Frontend:
- transcriptRef + onFinalTranscriptRef avoid stale closures in pause handler
- stopStreaming fires onFinalTranscript(currentText) before clearing partial
- Removed blind setPartialTranscript('') that erased text on pause

Tests: 16/16 ws_protocol tests pass, frontend tests unchanged
Plan: Updated phase2_implementation_plan.md to Complete with 11-bug log
2026-05-06 20:06:39 +08:00
..
debug_2026-04-23_upload_500_error.md docs: add debug logs for upload 500 error investigation 2026-04-23 13:25:23 +08:00
debug_vllm_structured_output.md docs: add vLLM structured output fix plan 2026-04-29 16:42:23 +08:00
package2_enhancement_plan.md docs: mark sub-phase 2.6 complete — Package 2 all done 2026-04-24 17:53:56 +08:00
package3_enhancement_plan.md feat(frontend): Phase 3.6 — History page with timing bars, expandable cards, and pagination 2026-04-26 13:19:52 +08:00
package4_enhancement_plan.md docs(plan): add Phase PX profile export/import feature plan 2026-04-27 19:26:33 +08:00
package5_enhancement_plan.md feat: track highlight generation prompt, response, and timing in history (Phase 5.5) 2026-04-29 11:18:21 +08:00
package6_enhancement_plan.md docs: add Package 6 enhancement plan 2026-05-04 14:58:24 +08:00
package6_subquestions_config_plan.md docs: add plan for configurable SubQuestions format 2026-05-04 17:22:38 +08:00
phase1_backend_plan.md feat: Phase 1.4 acceptance tests, error handling, and polish 2026-04-22 17:45:50 +08:00
phase1_debug_plan.md docs: add debug logs for upload 500 error investigation 2026-04-23 13:25:23 +08:00
phase1_enhancement_plan.md feat: add chunk PDF serving endpoint and frontend clickable source links (1.5.6) 2026-04-24 11:49:39 +08:00
phase1_frontend_plan.md docs: update development plans with Phase 1 completion status 2026-04-23 13:27:52 +08:00
phase2_implementation_plan.md fix: text accumulation — stashes are sliding windows, merge via overlap detection 2026-05-06 20:06:39 +08:00
streaming_extracted_questions_plan.md feat(query): stream extracted questions immediately via SSE 2026-04-25 18:29:22 +08:00