Changelog

Dernières mises à jour et améliorations

GitHub Sync repensé `IMPROVED`

  • Autodétection de la file structure + key format depuis l'arbre du repo et le contenu (`flat` vs `nested`)
  • Carte de recommandation façon Cloudflare avec drapeaux et noms de langue, ancrée sur la langue source
  • La modale d'édition expose File Structure et Key Format ; la sauvegarde préserve la structure existante

Quatre structures de fichiers — désormais avec Astro `NEW`

  • Single file `locales/en.json` · Locale folders `locales/en/common.json` · Namespace folders `faq/en.json` *(nouveau)* · Locale-suffixed `faq.en.json`
  • Détection, lecture et écriture symétrique end-to-end, y compris le manifest CDN v2

Connexion et re-sync plus fluides `IMPROVED`

  • Bouton "Sync now" avec polling jusqu'à la fin
  • Les repos déjà liés/orphelins sont réconciliés au lieu d'un 409
  • Écran "You're all set" ; le flux GitHub Sync saute les étapes framework/SDK inutiles

Moteur de workflows de traduction — renforcé `IMPROVED`

  • Traduction concurrente par langue ; contrat LLM key-keyed + chunking dual-limit + retry
  • GPT-4.1 Mini pour les workflows batch ; les traductions en masse passent par le workflow
  • Cancel end-to-end ; `translateBatch` corrigé (tournait en no-op, échoue maintenant clairement)

Apportez votre propre DeepL `NEW`

DeepL utilise désormais votre propre clé API au lieu d'un compte partagé. Chaque projet traduit sur son propre quota.

Cohérence read-after-write `IMPROVED`

  • Éditeur, sync, statut de publish et activation du CMS lisent à jour
  • Billing comble l'écart — le plan payant se reflète instantanément après Checkout
  • **Sécurité**: l'état d'autorisation est toujours lu uncached

Suppression de compte self-serve `NEW`

  • Suppression confirmée par email, page dédiée + email de clôture (aussi OAuth)
  • Bouton Resend + modale de suppression renforcée ; FKs utilisateur à null

Content CMS — publication sûre, uploads & Trash `IMPROVED`

  • Save-before-publish + gating dirty-state ; Trash, uploads média, états par langue plus clairs
  • Champs de relation multivalués ; plus d'analytics inventées

Fiabilité et sécurité `IMPROVED`

  • Fix du stuck-splash au cold-load + boot watchdog ; états error/not-found/empty redessinés
  • Partner OAuth: CRUD de contenu, minting de clés API ; Chinois (`zh`) comme langue ; plus de stack traces en production

Agent AI v3 natif Mastra

  • Migration Mastra — `handleChatStream` est la route de chat canonique ; route AI SDK legacy supprimée.
  • Mémoire sémantique cross-thread — Mastra Memory + pgvector avec adaptateur postgres.js (Path B), embeddings 768 dimensions, HNSW réactivé.
  • HITL via `useChat` — `@ai-sdk/react` avec suspend/resume natif, pas d'endpoints snapshot personnalisés.
  • Auto-Apply des écritures — les outils d'écriture appliquent directement ; comptage honnête des succès partiels au lieu de chiffres faussement parfaits.
  • `webSearch` (Exa) — recherche project-aware avec quota mensuel.
  • 70%+ de réduction du contexte — écritures Memory allégées pour les outils de lecture/workflow.

Workflow Engine sur Cloudflare Workers `NEW`

`createPlan` + `startWorkflow` produisent un pipeline live et suspendable avec progression SSE directement dans l'UI du chat. Mastra default engine sur stockage D1 ; idle timeout CF Workers résolu via SSE heartbeat. Deux workflows : `translation-batch` (traduction en masse avec progression par langue) et `content-creation` (DISCOVERY → plan → write → verify).

Support In-App Helpway `NEW`

Aperçu ancré dans la sidebar pour la dernière annonce de support ou conversation non lue. Helpway est le premier produit externe utilisant l'OAuth partenaire de Better i18n en production.

Refonte de la Navigation Sidebar

  • Migration de la top-navbar vers une sidebar repliable (inspirée par ElevenLabs)
  • Sidebar de paramètres contextuelle avec navigation last-context
  • Membres et Facturation surfacés dans la sidebar des paramètres d'org
  • Carte d'usage compacte dans le footer de la sidebar
  • Éditeur de contenu avec layout single-header et fil d'ariane

Partner OAuth 2.0 `STABLE`

  • Onboarding MCP OAuth (sans clé) pour Claude Code et Cursor
  • Enregistrement dynamique de client RFC 7591 avec déduplication
  • Endpoint `GET /v1/installations` pour la découverte de grants
  • Polish de l'écran de consentement avec auto-redirect
  • Révocation des grants via `dbDirect` (effet immédiat)

Content CMS Analytics `NEW`

  • Sparkline par entrée dans la table (toggle 7j/30j)
  • TimeRangePicker style Cloudflare avec 10 presets
  • Sidebar analytics avec breakdowns par pays et referrer
  • Endpoint stats KV-cached sur Cloudflare Analytics Engine
  • `publishEntry` refuse de publier les traductions au body vide

Télémétrie, Fiabilité et Sécurité

  • Migration vers PostHog Managed Reverse Proxy + pipeline sourcemaps
  • `no-cache` sur index.html + recovery `vite: preloadError`
  • Workaround TanStack Router #7120 (`wrapInSuspense: true`)
  • `samlify` >= 2.13.0 (XML injection), `dompurify` >= 3.4.0 (XSS), `next` >= 16.2.6 (8 CVEs)
  • CODEOWNERS + baseline de sécurité au niveau org

Outils MCP pour Agents

  • Détection de doublons sémantiques — `createKeys` avertit quand le même texte source existe dans un autre namespace.
  • **Détection de clés fantômes** — `listKeys` signale les doublons legacy (`p: true`) qui corrompent les fichiers CDN.
  • Contexte de traduction v2 — Récupération RAG par clé avec recherche de similarité pgvector.
  • `setTranslations` — Écriture en masse avec ~60% de payload en moins.
  • `cancelSync` + attente `getSync` — Annulez les publications en attente.

Système OAuth `BETA`

Flux OAuth 2.0 style GitHub Apps pour les partenaires.

Pipeline CDN

  • Diff basé sur le hash — 99% d'écritures R2 en moins par publication.
  • Livraison par namespace — Traductions par namespace au lieu d'un fichier unique.
  • Attribution d'auteur — Les clés portent l'auteur du commit Git.

Plateforme

  • Application de quotas unifiée avec UI de facturation style Vercel
  • Suggestions contextuelles du drawer AI
  • Événements webhook du CMS
  • Détection de collisions de chemins dans `createKeys`
  • Tableau de bord admin avec analytics CDN réelles

Éditeur de Traduction

  • Flux de traduction en masse: Sélectionnez, approuvez, rejetez ou traduisez plusieurs traductions à la fois avec la sélection par plage Shift+clic et les opérations par lot.

CMS de Contenu

  • Champs de relation et modèle Utilisateurs intégré: Les modèles de contenu prennent désormais en charge les champs de relation avec un rendu approprié dans l'éditeur et des références d'auteur intégrées.
  • Clés API de Contenu avec guide d'intégration: Section Démarrage Rapide avec des exemples cURL, des commandes d'installation du SDK et des extraits de code après la création d'une clé API.
  • Migration vers Cloudflare AI et Content MCP: Traductions AI plus rapides propulsées par Cloudflare AI avec autorisation basée sur les modèles et endpoints llm.txt.

Dashboard

  • Chat AI interactif dans le Démarrage Rapide: Essayez l'assistant AI directement depuis le flux d'intégration sans quitter l'assistant de configuration.
  • Refonte de la navigation du projet: Structure d'onglets plus claire avec les Langues fusionnées dans Vue d'ensemble et les paramètres réorganisés avec une mise en page en barre latérale.
  • Flux «Ajouter des Langues» repensé: Section des langues populaires, filtrage avec recherche en temps réel et regroupement des variantes régionales.

Corrections et Améliorations

  • Permissions des Membres de l'Équipe: Les administrateurs ne peuvent plus attribuer le rôle de Propriétaire ni supprimer d'autres administrateurs. Le nombre d'invitations en attente s'affiche désormais correctement.
  • Vue d'ensemble de l'utilisation: Les valeurs des Clés de Traduction et de l'Utilisation AI récupèrent maintenant les données réelles depuis l'API.
  • Crash de l'éditeur de contenu: Correction de l'erreur «Expected drag drop context» sur les pages de détail des entrées.

CMS de Contenu

  • Contenu de blog, journal des modifications et feuille de route: Créez et modifiez des entrées de contenu avec une prise en charge complète de la localisation.
  • Éditeur de texte enrichi: Expérience d'écriture propulsée par PlateJS avec mise en forme, blocs de code et plus encore.
  • Traductions de contenu multilingues: Gérez les traductions de chaque entrée de contenu dans toutes les langues du projet.
  • Contrôle du statut brouillon/publié: Contrôlez la mise en ligne du contenu grâce à la gestion des statuts.
  • Intégration Unsplash: Recherchez et ajoutez des images libres de droits directement depuis l'éditeur.
  • Sauvegarde automatique: Ne perdez jamais votre travail grâce à la sauvegarde automatique.

Traductions AI

  • Mode d'approbation automatique: Finalisez l'intégralité du processus de traduction en un seul clic.
  • Suggestions de traduction plus rapides: Les modèles AI améliorés offrent des traductions de meilleure qualité.

Dashboard

  • Menu d'aide: Menu d'accès rapide pour le support et les ressources.
  • Guide de démarrage: Assistant de configuration étape par étape avec temps estimé et notes pour chaque étape.
  • Indicateurs de progression visuels: Suivez les étapes d'intégration complétées en un coup d'œil.
  • Ordre des langues par glisser-déposer: Organisez les langues dans l'ordre d'affichage de votre choix.
  • Réinitialiser l'ordre des langues: Revenez rapidement à l'ordre par défaut avec l'anglais en tête.

Agent AI

  • Réponses AI optimisées: Tous les endpoints de lecture renvoient désormais des réponses 40-50% plus légères, réduisant considérablement les coûts en tokens AI.
  • Sortie d'outil optimisée: `getKeyDetails` renvoie un format plus efficace (55% de réduction de tokens) avec une légende de champs intégrée.
  • Streaming HTTP immédiat: Le chat AI ouvre la connexion HTTP instantanément, éliminant la perception de «blocage» lors de l'initialisation.
  • Fenêtre de contexte AI: Le comptage des tokens utilise désormais l'utilisation de la dernière étape plutôt que les totaux cumulatifs.
  • UX d'approbation automatique: Flux d'approbation automatique plus clair avec des balises XML sémantiques.

Dashboard

  • Type d'activité de note: Annotez les clés de traduction avec des notes suivies dans le journal d'activité.
  • Bascule du cycle de facturation: Tarification mensuelle/annuelle avec badge d'économies annuelles de 20%.
  • Décomposition de l'UI des outils: tool.tsx monolithique décomposé en 11 fichiers ciblés sans aucun changement visuel.

Infrastructure

  • Architecture à double bucket R2: Les images de drapeaux et les ressources statiques ont été migrées vers un bucket R2 dédié (`s3.better-i18n.com`), séparé des fichiers de traduction.
  • Optimisation des requêtes de publication: Requêtes parallélisées pour des temps de réponse plus rapides.
  • Attribution des utilisateurs: Les tâches de synchronisation suivent désormais quel utilisateur les a déclenchées.

Corrections et Améliorations

  • Publication MCP: Correction d'un échec lorsque le CDN est activé mais qu'aucun fichier n'a encore été téléversé.
  • Renommage avec suppression douce: Correction de la transaction utilisant une seule connexion pour trouver+renommer+insérer.
  • Hauteur de VList: Correction d'une inadéquation de hauteur pour les petites listes de traduction (moins de 20 éléments).
  • Invalidation du cache: Correction de la clé d'invalidation du cache des paramètres de l'organisation.

Outils MCP

  • Outils de publication MCP: Deux nouveaux outils — `getPendingChanges` pour prévisualiser les déploiements et `publish` pour déployer les traductions sur le CDN, le tout depuis votre IDE.
  • Flux de travail MCP complet: Les assistants AI peuvent désormais suivre le cycle complet : lire → traduire → vérifier → publier → confirmer.
  • Indices de publication en attente: Les opérations d'écriture renvoient désormais des indices rappelant à l'AI d'appeler publish lorsque les modifications sont prêtes.
  • Documentation du routeur MCP: Documentation complète des outils avec des catégories et un guide de flux de travail recommandé.

CDN et Publication

  • Format CDN par défaut: Le format par défaut a été changé de JSON_FLAT à JSON_NESTED pour une meilleure compatibilité avec les bibliothèques i18n.
  • Langue de secours CDN par défaut: Les nouveaux projets bénéficient automatiquement du support de langue de secours activé.

Dashboard

  • Recréation de clés plus sûre: Correction du renommage avec suppression douce en utilisant une seule transaction de base de données, évitant les conflits.
  • Meilleure compaction du chat: La commande `/compact` affiche désormais le message de l'utilisateur et le contenu réel de la résumisation.
  • Tri des langues: Les langues sont désormais triées par statut : actif → brouillon → archivé.

Corrections et Améliorations

  • Soumission automatique des commandes slash: Correction du problème de double soumission.
  • Nettoyage de la résumisation: Suppression de l'outil de résumisation obsolète côté serveur.

AI et MCP

  • Contexte d'espace de noms pour l'AI: Les modèles AI peuvent désormais associer un contexte enrichi (description, équipe, domaine, instructions AI, étiquettes) lors de la création ou de la mise à jour de clés.
  • Mentions de clés plus intelligentes: Les clés mentionnées dans le chat AI incluent désormais leur contexte d'espace de noms pour un ciblage AI plus précis.
  • Streaming Gemini plus rapide: Prompts système optimisés pour un streaming significativement plus rapide avec les modèles Gemini.

SDKs et Plateforme

  • Langue de secours de localisation: Lors de l'ajout d'une nouvelle langue, les clés manquantes héritent automatiquement de la langue de secours.
  • Lancement open source: Les packages, le serveur MCP et la page d'accueil sont désormais publics sur github.com/better-i18n/oss.
  • Espaces de noms relationnels: Les clés de traduction ont désormais une connexion relationnelle appropriée aux espaces de noms pour une meilleure organisation.

Dashboard

  • Paramètres de projet repensés: Interface de paramètres de projet entièrement revue pour une meilleure convivialité.
  • Interface de filtres améliorée: Expérience de filtrage améliorée dans tout le dashboard de traduction.
  • Support de republication CDN: La suppression de fichiers CDN réinitialise désormais le statut de publication, permettant une republication propre.

Agent AI

  • Réponses AI plus fluides: SDK AI mis à jour vers v6.0.39 avec smoothStream pour un streaming de réponses fluide et naturel.
  • Mise en cache intelligente du contexte: Cache de 30 secondes pour les requêtes de contexte de projet réduit la charge de la base de données et accélère les réponses AI.
  • Réflexion AI plus intelligente: Configuration de réflexion améliorée pour des décisions de traduction plus précises.

MCP et Outils Développeurs

  • Meilleurs schémas d'outils MCP: Format d'entrée des outils MCP repensé pour une intégration IDE plus intuitive.
  • Traductions MCP instantanées: Les clés créées via MCP sont désormais automatiquement approuvées.
  • Mentions de clés améliorées: Champ d'espace de noms ajouté aux mentions de clés dans le chat AI pour une meilleure prise de conscience du contexte.

Dashboard

  • Descriptions des vues sauvegardées: Ajoutez des descriptions et des paramètres de confidentialité à vos vues de traduction sauvegardées.
  • Interface de chat plus épurée: Conception simplifiée du bouton de copie pour moins d'encombrement visuel.

Corrections et Améliorations

  • Analyse des messages: Correction de l'analyse des messages en supprimant les console.logs de débogage.
  • Fiabilité de publication: Amélioration de la fiabilité du processeur de traitement par lots de publication.
  • Intégrité des données: Amélioration des fonctions auxiliaires de suppression douce pour une meilleure intégrité des données.

Agent AI

  • Outil MCP de suppression de clés: Supprimez doucement des clés de traduction directement depuis votre IDE en utilisant le serveur MCP.
  • Performances de l'agent AI: Temps de réponse plus rapides et meilleure gestion du contexte.
  • Résumisation du chat: Résumisation de conversation améliorée pour les longues sessions.
  • Intégration Gemini: Migration vers la nouvelle API thinkingBudget pour de meilleures réponses AI.

Dashboard

  • Modal d'outils développeurs: Nouveaux DevTools modernes avec visionneuse de sessions de chat et inspecteur réseau.
  • Usurpation d'identité administrateur: Les administrateurs d'équipe peuvent désormais usurper l'identité des utilisateurs pour le débogage.

Corrections et Améliorations

  • Sécurité RLS: Correction du contournement RLS avec une gestion correcte des transactions.
  • Politiques de suppression douce: Résolution des politiques RLS de suppression douce qui ne fonctionnaient pas correctement.
  • Déchiffrement des clés API: Correction des problèmes de déchiffrement des clés API.