From 142bf81afa8e8bdda408a00eeb3004ce4ee9aeac Mon Sep 17 00:00:00 2001
From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com>
Date: Mon, 20 Jul 2026 05:06:50 +0000
Subject: [PATCH 1/2] docs: add Jul 20 changelog entry for Chat XDK v0.4.0
---
changelog.mdx | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/changelog.mdx b/changelog.mdx
index f3390f5a7..8a1bfb7f8 100644
--- a/changelog.mdx
+++ b/changelog.mdx
@@ -7,6 +7,19 @@ keywords: ["changelog", "API updates", "release notes", "what's new", "API chang
To subscribe to updates, please [**“Turn on notifications”**](https://help.x.com/en/managing-your-account/notifications-on-mobile-devices#:~:text=In%20the%20top%20menu,%20you,you%20would%20like%20to%20receive) for [**@API**](https://x.com/api). You can also follow this changelog in your feed reader via the [**RSS feed**](https://docs.x.com/changelog/rss.xml).
+
+ ### Chat XDK v0.4.0
+
+ Today, we released [Chat XDK v0.4.0](/xchat/xchat-xdk) with a simpler, safer end-to-end encrypted messaging API across all six supported languages (Rust, Python, TypeScript, Go, C#, and Java). What this means for you:
+
+ - **SDK-generated message IDs.** Encrypt calls now return a signed `message_id` on the payload — you no longer need to mint UUIDs before sending. See [Getting started](/xchat/getting-started).
+ - **Set your identity once.** Call `set_identity(user_id, signing_key_version)` at session start; per-call `sender_id` and `signing_key_version` arguments are gone. `import_keys` now takes the registered key version.
+ - **Optional session stores.** Register verification keys and enable a signature-verified conversation-key cache to unlock short-form helpers like `decrypt_events(events)`, `decrypt_event(b64)`, and `encrypt_message(conversation_id, text)`. Explicit per-call arguments remain available for serverless and multi-instance deployments. See the [XDK reference](/xchat/xchat-xdk).
+ - **Event-based replies and reactions.** New helpers `encrypt_reply(conversation_id, text, reply_to_event)` and `encrypt_add_reaction(target_event, emoji)`. Decrypted replies now include a `reply_preview_validation` outcome so you can verify that a reply preview matches the referenced message — see the [cryptography primer](/xchat/cryptography-primer).
+ - **Real-time dedupe guidance.** [Real-time events](/xchat/real-time-events) now clarifies when to dedupe on `event_uuid` (delivery) versus the signed `message_id` (message).
+ - **Refreshed troubleshooting.** [Troubleshooting](/xchat/troubleshooting) has new entries for missing session identity and `Invalid` reply previews, with error messages verified against the SDK.
+
+
### Articles draft and publish endpoints
From e184c94d0ed17d14ca6c187779850326d519f3b1 Mon Sep 17 00:00:00 2001
From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com>
Date: Mon, 20 Jul 2026 05:09:42 +0000
Subject: [PATCH 2/2] docs: mirror Jul 20 Chat XDK v0.4.0 changelog to es, ja,
pt, ko
---
es/changelog.mdx | 13 +++++++++++++
ja/changelog.mdx | 13 +++++++++++++
ko/changelog.mdx | 13 +++++++++++++
pt/changelog.mdx | 13 +++++++++++++
4 files changed, 52 insertions(+)
diff --git a/es/changelog.mdx b/es/changelog.mdx
index f8078cb12..078d53cc8 100644
--- a/es/changelog.mdx
+++ b/es/changelog.mdx
@@ -7,6 +7,19 @@ keywords: ["registro de cambios", "actualizaciones de la API", "notas de la vers
Para suscribirte a las actualizaciones, [**"Activa las notificaciones"**](https://help.x.com/en/managing-your-account/notifications-on-mobile-devices#:~:text=In%20the%20top%20menu,%20you,you%20would%20like%20to%20receive) para [**@API**](https://x.com/api). También puedes seguir este registro de cambios en tu lector de feeds mediante el [**feed RSS**](https://docs.x.com/changelog/rss.xml).
+
+ ### Chat XDK v0.4.0
+
+ Hoy lanzamos [Chat XDK v0.4.0](/xchat/xchat-xdk), con una API de mensajería cifrada de extremo a extremo más simple y segura en los seis lenguajes admitidos (Rust, Python, TypeScript, Go, C# y Java). Esto es lo que significa para ti:
+
+ - **IDs de mensaje generados por el SDK.** Las llamadas de cifrado ahora devuelven un `message_id` firmado en la carga útil, por lo que ya no necesitas generar UUIDs antes de enviar. Consulta [Primeros pasos](/xchat/getting-started).
+ - **Establece tu identidad una sola vez.** Llama a `set_identity(user_id, signing_key_version)` al iniciar la sesión; los argumentos `sender_id` y `signing_key_version` por llamada ya no existen. `import_keys` ahora toma la versión de la clave registrada.
+ - **Almacenes de sesión opcionales.** Registra las claves de verificación y habilita una caché de claves de conversación verificadas por firma para acceder a helpers de forma corta como `decrypt_events(events)`, `decrypt_event(b64)` y `encrypt_message(conversation_id, text)`. Los argumentos explícitos por llamada siguen disponibles para despliegues serverless y con varias instancias. Consulta la [referencia del XDK](/xchat/xchat-xdk).
+ - **Respuestas y reacciones basadas en eventos.** Nuevos helpers `encrypt_reply(conversation_id, text, reply_to_event)` y `encrypt_add_reaction(target_event, emoji)`. Las respuestas descifradas ahora incluyen un resultado `reply_preview_validation` para que puedas verificar que la vista previa de la respuesta coincida con el mensaje referenciado. Consulta la [introducción a la criptografía](/xchat/cryptography-primer).
+ - **Guía de deduplicación en tiempo real.** [Eventos en tiempo real](/xchat/real-time-events) ahora aclara cuándo deduplicar por `event_uuid` (entrega) frente al `message_id` firmado (mensaje).
+ - **Solución de problemas actualizada.** [Solución de problemas](/xchat/troubleshooting) incluye nuevas entradas para casos de identidad de sesión ausente y vistas previas de respuesta `Invalid`, con mensajes de error verificados contra el SDK.
+
+
### Endpoints de borrador y publicación de Articles
diff --git a/ja/changelog.mdx b/ja/changelog.mdx
index c46353e1b..3fb893fe2 100644
--- a/ja/changelog.mdx
+++ b/ja/changelog.mdx
@@ -7,6 +7,19 @@ keywords: ["変更履歴", "API 更新", "リリースノート", "新着情報"
更新情報の通知を受け取るには、[**@API**](https://x.com/api) の [**「通知をオンにする」**](https://help.x.com/en/managing-your-account/notifications-on-mobile-devices#:~:text=In%20the%20top%20menu,%20you,you%20would%20like%20to%20receive) を有効にしてください。また、この変更履歴は [**RSS フィード**](https://docs.x.com/changelog/rss.xml)を使ってフィードリーダーで購読することもできます。
+
+ ### Chat XDK v0.4.0
+
+ 本日、サポートされている 6 つの言語(Rust、Python、TypeScript、Go、C#、Java)でエンドツーエンド暗号化メッセージング API をよりシンプルかつ安全にした [Chat XDK v0.4.0](/xchat/xchat-xdk) をリリースしました。ユーザーにとっての変更点は以下のとおりです。
+
+ - **SDK が生成するメッセージ ID。** 暗号化呼び出しはペイロードに署名済みの `message_id` を返すようになり、送信前に UUID を自分で生成する必要はなくなりました。[はじめに](/xchat/getting-started) を参照してください。
+ - **アイデンティティは 1 回だけ設定します。** セッション開始時に `set_identity(user_id, signing_key_version)` を呼び出します。呼び出しごとの `sender_id` と `signing_key_version` 引数は廃止されました。`import_keys` は登録済みのキーバージョンを受け取ります。
+ - **オプションのセッションストア。** 検証キーを登録し、署名検証済みの会話キーキャッシュを有効にすることで、`decrypt_events(events)`、`decrypt_event(b64)`、`encrypt_message(conversation_id, text)` などの短縮ヘルパーが利用できます。サーバーレスやマルチインスタンス環境向けに、呼び出しごとに明示的な引数を渡す方法も引き続き利用できます。[XDK リファレンス](/xchat/xchat-xdk)を参照してください。
+ - **イベントベースの返信とリアクション。** 新しいヘルパー `encrypt_reply(conversation_id, text, reply_to_event)` と `encrypt_add_reaction(target_event, emoji)` を追加しました。復号された返信には `reply_preview_validation` の結果が含まれるようになり、返信プレビューが参照先メッセージと一致するかを検証できます。[暗号化の概要](/xchat/cryptography-primer)を参照してください。
+ - **リアルタイム重複排除のガイダンス。** [リアルタイムイベント](/xchat/real-time-events)では、`event_uuid`(配信)と署名済み `message_id`(メッセージ)のどちらで重複排除するかを明確にしました。
+ - **トラブルシューティングの刷新。** [トラブルシューティング](/xchat/troubleshooting)に、セッションアイデンティティ未設定の場合や `Invalid` の返信プレビューに関する新しいエントリを追加しました。エラーメッセージは実際の SDK と照合済みです。
+
+
### Articles のドラフトおよび公開エンドポイント
diff --git a/ko/changelog.mdx b/ko/changelog.mdx
index 29a6c76fa..929ad83f6 100644
--- a/ko/changelog.mdx
+++ b/ko/changelog.mdx
@@ -7,6 +7,19 @@ keywords: ["변경 로그", "API 업데이트", "릴리스 노트", "새로운
업데이트를 구독하려면 [**@API**](https://x.com/api)의 [**"알림 켜기"**](https://help.x.com/en/managing-your-account/notifications-on-mobile-devices#:~:text=In%20the%20top%20menu,%20you,you%20would%20like%20to%20receive)를 활성화하세요. 또한 [**RSS 피드**](https://docs.x.com/changelog/rss.xml)를 통해 피드 리더에서 이 변경 로그를 구독할 수도 있습니다.
+
+ ### Chat XDK v0.4.0
+
+ 오늘, 지원되는 6개 언어(Rust, Python, TypeScript, Go, C#, Java)에서 더 간단하고 안전한 종단 간 암호화 메시징 API를 제공하는 [Chat XDK v0.4.0](/xchat/xchat-xdk)을 출시했습니다. 사용자에게 미치는 변경 사항은 다음과 같습니다.
+
+ - **SDK가 생성하는 메시지 ID.** 암호화 호출은 이제 페이로드에서 서명된 `message_id`를 반환하므로, 전송 전에 UUID를 직접 생성할 필요가 없습니다. [시작하기](/xchat/getting-started)를 참조하세요.
+ - **세션 아이덴티티를 한 번만 설정합니다.** 세션 시작 시 `set_identity(user_id, signing_key_version)`을 호출하세요. 호출마다 전달하던 `sender_id`와 `signing_key_version` 인수는 사라졌습니다. `import_keys`는 이제 등록된 키 버전을 받습니다.
+ - **선택적 세션 스토어.** 검증 키를 등록하고 서명 검증이 적용된 대화 키 캐시를 활성화하면 `decrypt_events(events)`, `decrypt_event(b64)`, `encrypt_message(conversation_id, text)` 같은 단축형 헬퍼를 사용할 수 있습니다. 서버리스 및 다중 인스턴스 배포를 위해 호출별로 명시적 인수를 전달하는 방식도 계속 지원됩니다. [XDK 참조](/xchat/xchat-xdk)를 확인하세요.
+ - **이벤트 기반 답장 및 반응.** 새 헬퍼 `encrypt_reply(conversation_id, text, reply_to_event)` 및 `encrypt_add_reaction(target_event, emoji)`를 추가했습니다. 복호화된 답장에는 이제 `reply_preview_validation` 결과가 포함되어 답장 미리보기가 참조된 메시지와 일치하는지 확인할 수 있습니다. [암호화 개요](/xchat/cryptography-primer)를 참조하세요.
+ - **실시간 중복 제거 가이드.** [실시간 이벤트](/xchat/real-time-events)에서 `event_uuid`(전달)와 서명된 `message_id`(메시지) 중 어느 쪽으로 중복 제거해야 하는지를 명확히 설명합니다.
+ - **문제 해결 업데이트.** [문제 해결](/xchat/troubleshooting)에 세션 아이덴티티가 누락된 경우와 `Invalid` 답장 미리보기에 대한 새 항목이 추가되었으며, 오류 메시지는 SDK와 대조하여 확인했습니다.
+
+
### Articles 초안 작성 및 게시 엔드포인트
diff --git a/pt/changelog.mdx b/pt/changelog.mdx
index a636b9560..503d6e014 100644
--- a/pt/changelog.mdx
+++ b/pt/changelog.mdx
@@ -7,6 +7,19 @@ keywords: ["registro de alterações", "atualizações da API", "notas de versã
Para se inscrever para receber atualizações, [**"Ative as notificações"**](https://help.x.com/en/managing-your-account/notifications-on-mobile-devices#:~:text=In%20the%20top%20menu,%20you,you%20would%20like%20to%20receive) para [**@API**](https://x.com/api). Você também pode acompanhar este registro de alterações no seu leitor de feeds por meio do [**feed RSS**](https://docs.x.com/changelog/rss.xml).
+
+ ### Chat XDK v0.4.0
+
+ Hoje, lançamos o [Chat XDK v0.4.0](/xchat/xchat-xdk), com uma API de mensagens criptografadas de ponta a ponta mais simples e segura nas seis linguagens suportadas (Rust, Python, TypeScript, Go, C# e Java). O que isso significa para você:
+
+ - **IDs de mensagem gerados pelo SDK.** As chamadas de criptografia agora retornam um `message_id` assinado no payload — você não precisa mais gerar UUIDs antes de enviar. Consulte [Introdução](/xchat/getting-started).
+ - **Defina sua identidade uma única vez.** Chame `set_identity(user_id, signing_key_version)` no início da sessão; os argumentos `sender_id` e `signing_key_version` por chamada foram removidos. `import_keys` agora recebe a versão da chave registrada.
+ - **Armazenamentos de sessão opcionais.** Registre chaves de verificação e habilite um cache de chaves de conversa verificado por assinatura para desbloquear helpers em formato curto, como `decrypt_events(events)`, `decrypt_event(b64)` e `encrypt_message(conversation_id, text)`. Argumentos explícitos por chamada continuam disponíveis para implantações serverless e com múltiplas instâncias. Consulte a [referência do XDK](/xchat/xchat-xdk).
+ - **Respostas e reações baseadas em eventos.** Novos helpers `encrypt_reply(conversation_id, text, reply_to_event)` e `encrypt_add_reaction(target_event, emoji)`. As respostas descriptografadas agora incluem um resultado `reply_preview_validation` para você verificar se a prévia da resposta corresponde à mensagem referenciada — consulte a [introdução à criptografia](/xchat/cryptography-primer).
+ - **Orientações de desduplicação em tempo real.** [Eventos em tempo real](/xchat/real-time-events) agora esclarece quando desduplicar por `event_uuid` (entrega) versus o `message_id` assinado (mensagem).
+ - **Solução de problemas atualizada.** [Solução de problemas](/xchat/troubleshooting) traz novas entradas para os casos de identidade de sessão ausente e prévias de resposta `Invalid`, com mensagens de erro verificadas em relação ao SDK.
+
+
### Endpoints de rascunho e publicação de Articles