User Levels & XP#
- New leveling system — earn XP from reading, bookmarking, rating, reviewing, editing entities, uploading novels, and more
- Levels displayed next to usernames in reviews, comments, community rankings, and activity feeds
- XP breakdown on your profile showing contributions across all categories
- Fully retroactive — your existing activity already counts
- Community leaderboard with top contributors ranking
On-Demand Translation#
- Chapters translate in real-time as you read — no more waiting for batch translation
- First 50 chapters translate automatically when a novel is added
- Next 2 chapters prefetch in the background while you read for seamless experience
- Streaming translation shows text appearing live as it translates
- Chapter titles translated in batch for full browsable chapter lists
Translation Model Upgrade#
- Upgraded to Gemini 3.1 Flash Lite Preview (1M context, 65K output)
- Single-shot entity detection — full chapter analyzed at once instead of chunks
- Larger translation chunks (50 paragraphs) for better context and fewer seams
- Improved capitalization handling — proper nouns capitalized, common words stay lowercase
- Fixed streaming token spacing issue — no more mashed-together words during live translation
Chapter & Novel Improvements#
- Chapter counts now show total chapters (not just translated ones)
- Word counts include estimates for untranslated chapters based on original content length
- Chapter detail API now shows when chapters were last updated
- Duplicate chapter prevention with Redis locking during refresh
- Fixed novel refresh going through wrong queue (now properly urgent for user-triggered)
Entity & Glossary#
- Entity name changes from the edit dialog now go through mod approval (instead of silently saving as personal translation)
- Added user_id tracking to entity change history and novel reports for accurate attribution
- Improved fandom classification — fan-fiction novels set in existing universes correctly categorized
- 143 fan-fiction novels retroactively assigned fandoms via LLM classification
Queue & Task Management#
- All task timeouts capped at 5 minutes (down from 30-60 min) — no more stuck workers
- Translation tasks split into urgent (reader prefetch) and normal (batch/mod retranslate) queues
- Mod retranslate only processes already-translated chapters (not all chapters)
- Metadata retranslation moved off urgent queue to prevent blocking user actions
- Refresh digest notifications moved to metadata worker
- Concurrent novel refresh prevention with Redis locks
Discord Bot#
- Error recovery for stuck "PROCESSING" states — reports can now be retried after failures
- Novel report approval/rejection tracks user_id for accurate XP attribution
Bug Fixes#
- Fixed chapters with NULL views/word_count causing 500 errors
- Fixed review timestamps showing wrong time ("23 hours ago" on fresh reviews)
- Fixed non-authenticated users triggering expensive on-demand translations
- On-demand translation now requires $4.99 patron tier (LLM cost protection)
- 69shuba.tw scraper reliability improved with a faster direct-fetch path