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 /me endpoint 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/limits page 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