Translation Pipeline#
- Upgraded the whole translation stack to Gemini 3.1 Flash Lite Preview — the same model now powers translation, entity detection, chat, and wiki generation
- New parallel chunk pipeline — the first chunk streams live while the rest translate in parallel in the background. Big chapters finish in seconds instead of minutes
- Automatic failover across multiple translation accounts when one gets rate-limited — zero visible slowdown on busy days
- New fallback chain for content-policy blocks: if the primary model refuses, we cascade through alternates and finally to Grok. Chapters that used to show "content omitted" placeholders now come back fully translated
- Fast-fail on blocked content — we no longer waste retries on prompts the model has already refused; the next model kicks in immediately
- Smoother streaming under load — the translator releases its database slot before the long LLM call, so heavy traffic no longer chokes the backend
- Tuned chunk sizes and post-processing for cleaner output
Entity Detection & Glossary#
- Cleaner detection pipeline — entity mappings save as a baseline before the LLM pass, so even if detection hiccups mid-chapter, your chapter still has clickable entities
- Junk filters added — common Chinese/Japanese/Korean words and English filler words no longer get flagged as character names
- Massive glossary cleanup: removed roughly a million bloated entities that had built up from earlier over-detection runs. Glossary pages load faster and search is noticeably more relevant
- Canon/fanfic auto-promotion — when a mod marks an entity edit with reasons like "canon name" or "fandom", the entity is automatically promoted to the global Fan-Fiction glossary. 91 historical entries were backfilled based on past change history
- Disabling a general entity for a novel now correctly lets you add a novel-specific override with the same name
- Entities with middle-dot characters (like
贞特·崔格) now match properly in detection
Codex (AI Features)#
- Wiki pages, character chat, and AI image generation are back online after the embeddings migration
- Wiki and character chat now use the upgraded translation model for better quality
- Dual-path chat streaming — normal chats use our fast primary path, NSFW chats route through the alternate
- Character image generation switched to a faster/cheaper tier and images are now hosted on our own CDN
- Wiki generation waits until a novel is at least 60% indexed before it can run — prevents half-baked wikis
- Character wiki pages load dramatically faster — the main query that powered them was the biggest single source of database load and got completely rewritten (also fixed a subtle bug where character stats were bleeding across novels)
Scraping#
- New scraper: trxs.org — that's 38 supported source sites total
- Universal URL normalization — paste any URL from a supported site (novel page, chapter page, catalog, pagination, search) and the scraper now auto-resolves to the novel page. No more "invalid URL" errors because you pasted from deep in a reader
- Hiatus detection fix — 92 novels that were wrongly marked Hiatus (even though they were getting new chapters) are now correctly marked Ongoing
- Cleaned up a couple of novels stuck in a "0 chapters" zombie state from failed initial scrapes
- Faster scraping — a new database index cut the scraper's "does this chapter already exist?" check from ~100ms down to under 1ms, which was by itself eating 64% of our database time
- Inkstone uploader script improvements
Database & Site Performance#
- Added the new chapter-URL index mentioned above — biggest single perf win of the release
- "Latest updates" query on the homepage rewritten — 100× faster (went from ~1 second per call to ~11ms)
- Character wiki entity query rewritten — another huge win in both speed and correctness
- Novel search tuned — dropped a heavy similarity scan on full descriptions that was eating 19% of database time with almost no search-quality benefit
- General FastAPI tuning across the board: fewer redundant health checks, slimmer worker pool, cleaner connection handling
Rate Limits — Weekly → Monthly Rollover#
- Weekly request limits are now monthly. Scraping, previews, chat messages, and wiki generations now use a single monthly pool instead of expiring every Monday — unused quota carries over within the calendar month
- Monthly cap = previous weekly cap × 4 (Translator Pro: 32 novel requests, 128 previews, 1,000 chats, 40 wikis per month)
- Retranslations stay at 50/day — that one doesn't roll over
- Pools reset on the 1st of each calendar month at 00:00 UTC
- Existing weekly usage was migrated — your April activity counts against the new monthly bucket
- Mid-month tier upgrades apply immediately against the new higher cap
Reliability & Redis#
- Fixed a bug where the
/meendpoint would sometimes show your level as blank and other times show the real number — now consistent on every page load - Your level badge updates as soon as the nightly XP recalculation runs, instead of staying stale for up to 5 minutes
- Fixed a rare race condition in the daily rate limiters for comments, reviews, and reports
- Redis cache layer now has a connection pool and faster serialization — dashboard pages load quicker
- The
/me/limitspage cut its Redis round-trips by 80% per load - Slow-request tracking redesigned — the admin dashboard can now actually tell you which routes are slow, not just which unique URLs were slow once
- Fixed a timezone bug where scraper and API services could disagree on when "this week" started, very rarely letting users double up on their quota around midnight UTC
Infrastructure#
- Sitemap + RSS feed generation moved from GitHub Actions (which was getting blocked by Cloudflare) to a Celery Beat task that runs every 6 hours
- The background "check for missing chapter embeddings" task now actually runs — it had been silently stalling for a while
- Grok added as the final fallback for content-policy blocks
- Discord mod bot rate-limit fixes and tag handling improvements
Frontend#
- Level badges on profile pages and next to usernames across reviews, comments, community rankings, and activity feeds
- New entity list sheet with plural entity handling (e.g. "Goblins" and "Goblin" are merged in display)
- Custom fandom input — type your own fandom name when requesting a translation
- Entity dialog in chapters opens even when the clickable-glossary toggle is off
- Prefilled reasons in novel report and entity change forms
- Clickable glossary hover states and styling polish
- User engagement history view — new activity feed
- Request view cleanup — disclaimer removed, prompts prefilled
- Streaming progress visual — live progress bar while a chapter translates
- Rating reminder toast after you've read enough chapters of a novel
- Notification UI refresh
- Chapter summary fixes, text capitalization and pluralization cleanups
- Review / comment collapse in long threads
- SEO optimization + repo size trim — smaller frontend bundle, faster first paint
- Scrollable novel tags on desktop (not just mobile)
- "Category" label renamed to "Genre" site-wide
- Skeleton loading fixes across views
- Back-navigation fix in the browse view
- Auth flow / cookie handling fixes
- Optimistic update improvements across interactions