dhammadassana/tipitaka
Implement expandable volume breakdown with page chips in search panel
Fix Volume Breakdown query expansion discrepancy in SearchService
Implement hot-reloaded search rules config file for monk prefixes
Fix synonym highlighting in snippet and reader panel, and fix health diagnostics 500 error
Add health diag endpoint for troubleshooting vector search
Implement synonym and related words highlighting in search results and reader panel
Fix write permissions crash on Hugging Face Spaces by configuring paths before downloading and adding a writability check on /data
Fix AI search by appending query expansions instead of replacing the original query
fix: pass task='retrieval.query' to SentenceTransformers encode when using Jina or fine-tuned embedding models to prevent Task missing error
fix: add peft to requirements.txt to support loading fine-tuned LoRA models in SentenceTransformers
feat: add 'Search' option to selection popup so users can search highlighted text directly in the database
fix: resolve pythainlp and huggingface_hub Permission Denied errors by setting HOME and HF_HOME env variables, and add 'Try searching with AI' button to empty search state
fix: change ownership of /app to UID 1000 in Dockerfile to prevent sqlite3.OperationalError read-only database error
feat: support Hugging Face persistent storage at /data and local Docker volumes for persisting SQLite database (search logs/cache) across container rebuilds
fix: extract and highlight individual matched words from snippets in both AI and FTS modes
fix: reset totalPages to 0 on volume change to prevent stale totalPages capping target page number
fix: highlight matching keywords when jumping from volume breakdown bars
fix: highlight not showing - set highlightQuery after setVolume not before
feat: highlight search keywords on reader page with auto-scroll to first match
feat: FTS5-first + AI button search with split button mode selector
fix: update QWEN_MODEL_ID default to 1.5B in main.py (missed in previous commit)
chore: upgrade Qwen model default from 0.5B to 1.5B Instruct
feat: update technology badge in NavDrawer overview tab to Turbovec + Reranker
docs: align README.md with Turbovec architecture and link new documents
docs: add Turbovec-specific architecture and tech stack documents
feat: complete turbovec search backend integration, ignore tvim file in git, and stabilize mobile UI transitions
feat: add Google-style breadcrumb navigation to search results
fix: resolve critical vector embedding bug and refine query transform prompt for prefix word matching
fix: serialize concurrent thread access to in-memory SQLite connection to prevent race conditions and deadlocks
docs: update SEARCH_ARCHITECTURE_V3.md to compare Qwen2.5-0.5B-Instruct and Qwen3.5-0.8B and specify prefix matching
fix: change search result card div to button to fix touch/click event bubbling on iOS Safari
Implement SQLite FTS5 prefix matching to support partial Thai word search and resolve segmentation tokenization issues
Swap default Query-Transform LLM to Qwen2.5-0.5B-Instruct to significantly reduce memory footprint and CPU generation latency on Hugging Face free tier
Optimize PyTorch resource usage: set CPU threads to 1 to prevent health check timeouts and reduce max generation tokens to 45
Optimize backend preloading: preload Qwen & Jina-v5 at startup, cache Qwen in QueryTransformService class attributes, and bypass Ollama connection attempts when not ready
ux: optimize mobile search result tap responsiveness and drawer closing animation smoothness
fix: optimize local mode Qdrant restore by replacing server snapshots with pre-packaged SQLite databases
chore: untrack and ignore SEARCH_ARCHITECTURE_V3.md spec
docs: add SEARCH_ARCHITECTURE_V3 spec and include helper scripts for reindexing and RAG query testing
fix: increase Ollama HTTP client timeout to 30.0s to handle model cold starts resiliently
fix: implement query_batch_points and sequential fallback in SearchService, and raise 404 on page not found in pages router
feat: implement Search Architecture V3 (Hybrid search with Qwen query transformation, batch embeddings, batch Qdrant searches, and optimized CPU reranking)
ux(ai): move clear history button from header to settings bar to prevent accidental taps on mobile
fix(reader): use theme-aware muted color for footnote text instead of hardcoded text-white/50
design(ai): align disclaimer position below buttons in Answer Card and optimize bottom spacing
fix(ai): resolve disclaimer text overlapping in header by relocating to footer
design(ai): enhance speed dial labels clarity and implement responsive positioning clamping
feat(ai): update AI Chat color scheme to modern Zen Teal & Emerald palette
docs: update arch doc to v2.4.0 and move maximize button to bottom-right
feat(ai): enable full screen focus mode for individual chat history messages
