2026-10-15 · v0.9
Retrieval engine overhaul + answer structure upgrade
- FIXCorpus retrieval overhaul — found the FTS5 tokenizer did not split Chinese per-character, leaving 100k+ statute chunks effectively invisible (only space-separated OCR news matched). Rebuilt the index (per-character tokenization + original text preserved); hit rate went from near zero to normal.
- IMPROVEDRetrieval algorithm — CJK bigram matching, IDF weighting, rare-term AND rescue, document-level aggregation, industry alias table (RO→負責人員, RA9→Type 9, etc.).
- IMPROVEDFour-part answer prompt — conclusion / regulatory basis / practical tips / verification reminder; every regulatory fact must carry a specific provision reference + [n] citation; uncovered topics are stated honestly.
- NEWLLM fallback chain — empty response or failure automatically tries fallback models; empty responses no longer consume quota.
- FIXMalformed request body 400 — wrapped `request.json()` in all six endpoints; no more blank 500 pages.
- FIXSSE upstream disconnect — added `error` event; frontend shows a friendly message instead of hanging silently.
- NEWResend email delivery — magic-link emails actually sent (HTTP API, no port 465).