v4.0.0 — Full-featured Buddhist Digital Text Platform
🎉 FoJin v4.0.0
A major milestone — 93 commits, 65+ PRs since v3.4.0, transforming FoJin into a comprehensive, production-ready Buddhist digital text platform.
Live at fojin.app
✨ New Features
AI Chat ("XiaoJin" 小津)
- Real SSE streaming with hybrid RAG retrieval grounded in 11M characters of canonical text (#51, #74)
- Auto-generate session titles from conversation (#62)
- Typing animation with thinking placeholder (#52)
- Paginated session messages (#69)
- Daily quota display for users (#60)
Knowledge Graph
- 9,700+ entities and 4,170+ relations across 6 types (person, text, place, concept, school, dynasty)
- Seeded 25 Buddhist places and 18 core concepts (#53)
- Auto-link texts to concepts via title keyword matching — Pass G (#54)
- pg_trgm GIN index for fast fuzzy search (#54)
- Statistics panel with entity/relation counts (#54)
- Fixed DILA Authority Database integration (#53)
Reader & Annotations
- Annotation button and panel for text reader (#72)
- Bookmark toggle button (#58)
- Mobile-optimized reading view (#19, #47)
Search
- Highlight matches in catalog search results (#64)
- Rate limiting and filter caching (#67)
- Loading skeleton cards (#44)
Data Sources — 571 Global Sources
- 30 new global sources spanning South/Southeast Asia, East Asia, Europe, Americas (#70)
- 28 more sources including AI/NLP tools, Silk Road, Vietnamese Nom, Manchu/Sogdian (#73)
- Added Dharmamitra AI toolkit (#35), 51shu.app Ashoka Index (#55), and more
Internationalization
UX
- Dark mode with Ant Design 5 theme support (#46)
- Citation export in BibTeX, RIS, and APA formats (#48)
🏗 Infrastructure & Quality
- Error handling: Custom
FoJinErrorhierarchy with 20+ specific types (#38, #42, #50) - Security: HSTS header, secrets scanning CI, Docker healthchecks (#41)
- CI/CD: Split type-check/build steps, tightened ESLint threshold (#39)
- Rate limiting: Configurable via environment variables (#43)
- Dependencies: Upgraded alembic 1.14→1.18, pydantic-settings 2.7→2.13 (#75)
- Docker: Debian-based Nginx with DNS re-resolution (#45)
📊 By the Numbers
| Metric | Value |
|---|---|
| Data sources | 571 across 30+ countries |
| Readable fascicles | 4,488 |
| KG entities | 9,700+ |
| KG relations | 4,170+ |
| Dictionary entries | 237,593 |
| Supported languages | 30 |
| PRs merged | 65+ |
🚀 Quick Start
git clone https://github.com/xr843/fojin.git
cd fojin
cp .env.example .env
docker compose up -dVisit http://localhost:3000 — API docs at http://localhost:8000/docs
Full Changelog: v3.4.0...v4.0.0