2.0.0

Agent-Native Intelligence, OAuth Apps & CDN Reliability

MCP — Smarter AI Agent Tooling

Better i18n's MCP server now helps AI agents avoid common mistakes and clean up data issues autonomously.

Semantic Duplicate Detection `NEW`

When an AI agent creates a key with `createKeys`, the response now warns if the same source text already exists in another namespace. For example, creating `actions.removeItem` with value "Sil" when `common.delete` already has the same text will return a reuse hint. This prevents translation fragmentation where the same phrase gets translated independently across namespaces — saving AI costs and keeping translations consistent.

Pass `force: true` to skip the check for fast bulk imports.

Phantom Key Detection `NEW`

`listKeys` now flags legacy duplicate rows (`p: true`) that shadow proper namespaced keys and corrupt CDN files during publish. AI agents can call `deleteKeys` with the flagged IDs, then `publishTranslations` to fix CDN corruption — no database access needed.

`createKeys` also warns when a phantom exists for a key being created, with actionable cleanup instructions in the `warnings[]` response.

Translation Context v2 — Per-Key RAG `NEW`

`getTranslationContext` now accepts a `keys` parameter with up to 50 key UUIDs. The response includes pgvector-retrieved passages (glossary terms, past translations, project instructions) ranked by cosine similarity per key — giving AI agents the same context the platform's AI drawer uses.

Other MCP Improvements

---

  • `setTranslations` — New bulk write tool with ~55-65% smaller payload than `updateKeys` for multi-language batches
  • `cancelSync` — Abort pending publish jobs before they reach CDN
  • `getSync` with `waitMs` — Server-side blocking wait replaces 3-6 polling round-trips
  • CDN format metadata — `fileStructure` and `keyFormat` fields in `getProject` and publish hints

OAuth App Installation System `BETA`

A GitHub-Apps-style OAuth 2.0 flow for partners to integrate Better i18n into their platforms.

---

  • Scope-based authorization with Cloudflare-style two-step consent UI
  • Installation tokens — short-lived, project-scoped API access
  • Connected Apps management in user settings with bulk revoke
  • Security email notifications on grant create and revoke
  • Partner API — project creation, language management, and translation access

CDN Publish Pipeline Hardening

April saw significant reliability improvements to the sync worker — the most critical service in the platform.

Hash-Based CDN Diff `NEW`

Publish now computes SHA-256 hashes of generated files and only uploads files whose content actually changed. For the landing project (2,310 CDN files), this dropped per-publish R2 writes from 2,310 to ~22 — a 99% reduction in CDN write operations.

Source Author Attribution `NEW`

Translation keys now carry their Git author (name, email, avatar) from the commit that introduced them. Visible in the dashboard with avatar display.

Namespace CDN Delivery `NEW`

Projects can now serve translations as one file per namespace (`/en/auth.json`, `/en/common.json`) instead of a single monolithic file. Configurable via `fileStructure` (single_file / namespaced_folders) and `keyFormat` (flat / nested).

Other Pipeline Fixes

---

  • Phantom row skip — File generator now deterministically skips legacy duplicate rows that caused random CDN value corruption
  • Slim manifest — Per-locale namespace objects removed from manifest, reducing payload size
  • Queue concurrency — `max_concurrency` set to 5 to eliminate head-of-line blocking
  • Parameter overflow protection — Large ID arrays chunked to stay under PostgreSQL's 65K limit
  • Status update batching — Batch size increased 100→2,000 for large projects

Platform Improvements

  • Unified quota enforcement — Vercel-style billing UI with plan limits enforced across all surfaces (MCP, dashboard, API)
  • Context-aware AI suggestions — AI drawer now shows contextual suggestions based on the current page
  • Content CMS webhooks — Comprehensive event dispatch for translations, keys, languages, and sync operations
  • Path collision detection — `createKeys` now detects leaf↔object conflicts in nested JSON before they reach CDN
  • Admin dashboard — Real CDN analytics, queue monitoring, and rate limiter panels wired to Cloudflare APIs