CHANGELOG

Continuous delivery, visible progress

Track every addition, improvement and fix across server editions and client platforms.

Server & Product

See what shipped for each sellable edition, release by release.

  • v1.17.02026-08
    • Server v1.17.0 adds persistent auth sessions with administrator revocation, message envelopes and combined-detail reads, community channel governance, notification strategies, auditable runtime configuration, and expanded observability. AI streams gain cancellation, persisted final envelopes, and authorized large-reply object delivery, alongside message-size governance and verified multi-database migrations.
  • v1.15.12026-08
    • Client SDK 1.13.0 is released as versioned downloads with new React Native and WeChat Mini Program adapters; server behavior remains compatible with 1.15.0.
  • v1.15.02026-08
    • Agent collaboration ships in every edition: an agent can hand a customer to a named colleague or let a team route automatically (online and least-busy first), and a supervisor can force a reassignment; group service supports claim / release / reassignment; internal-only customer notes and a shared canned-reply library are new. Transfers carry a context brief, so the receiving agent doesn't have to re-read the thread.
    • Rich interactive messages: bots and agents can send quick-reply button groups and information cards; a customer's tap enters the normal conversation flow under their own identity and is recorded structurally. The web and Flutter UIKits render them out of the box, and clients that don't know the new types degrade to plain text.
    • Hot-path performance: message payloads are parsed once, codecs are reused, and group/room fan-out allocates less — lower CPU and memory under load, with no behavior change.
  • v1.14.02026-07
    • Released alongside the client suite (SDK 1.11.1 / Flutter UIKit phase 2); no server-side behavior changes.
  • v1.13.02026-07
    • chat-studio demo follow-ups: WeChat-style in-thread time separators (shown only for ≥5-minute gaps) and a more compact auto-growing composer. (The client suite shipped SDK 1.11.0 and the Flutter UIKit in the same release — see the SDK track.)
  • v1.12.02026-07
    • chat-studio demo visual uplift: a neutral WeChat-style skin with brand teal, deterministic initial avatars, an avatar column beside peer bubbles with an AI streaming caret, humanized WeChat-style timestamps, entrance micro-motion (honoring reduced-motion), and a branded product-mode welcome. (The client suite debuted the Web UIKit in the same release — see the SDK track.)
  • v1.11.02026-07SDK 1.10.0
    • Message size governance: a unified inbound request gate (websocket.max_request_bytes, default 256 KB) — over-limit requests now return the new error code 1011 Message too large (previously a disconnect or silent storage) without consuming rate-limit budget; generic byte budgets for 26 message-segment string fields (URL-like 4096, name/ID-like 1024, errors name the field); new imcore_msg_oversize_total metric, /stat field and Prometheus alert rule; the bilingual limits table docs/LIMITS.md documents every limit and its over-limit behavior.
    • Kubernetes umbrella chart: the Helm deployment can optionally bundle PostgreSQL / Redis / RabbitMQ / MinIO subcharts (values-bundled.yaml brings up the full stack in one install) and orchestrates the database-migration Job; the chart's appVersion doubles as the default image tag.
  • v1.10.12026-07
    • Deployment experience patch: release packages now bundle demo_token (mint a test JWT in one command, matching the quickstart verification step); the config template defaults to PostgreSQL with a fully documented database.driver switch (migrate and the server read the same switch); fixed the MySQL deployment path — the ai_tools DDL could not apply on MySQL 8, a RongCloud bootstrap script had crept into the migration directory and broke bin/migrate, and the ops-trend DATE column shifted across time zones; CI gains a MySQL integration job so both databases stay continuously verified.
  • v1.10.02026-07SDK 1.9.0
    • Message expansion Key/Value: attach mutable KV entries to any message (chat_{dm,group,room}_expand) — a generic base for polls, sign-up chains, surveys and task status. u:<userID>: private prefixes are writable only by their owner (tamper-proof votes); public keys only by the sender. Per-key last-write-wins with server-side per-message serialization, live broadcast, multi-device sync and offline catch-up via history — no DDL.
    • Typed @mention targets: structured @user / @role / @here / @all mentions (server-side resolution and authorization), with mention-level push preferences.
    • Group member marks: owners/admins can attach staff-visible marks to members (customer notes for support scenarios).
    • Sharded connection registry: the ClientManager connection set and online-user index are sharded (default 32, power-of-two), removing the global lock hot spot under high concurrency.
    • Correctness fixes: conversation summaries overlay the authoritative unread column (no drift); room mark-read backfills read receipts over the whole range; the inbound OpenAPI no longer leaks raw database error text to callers.
  • v1.9.02026-07SDK 1.8.0
    • Conversation UX trio (server + all four SDKs): manual mark-unread (per-conversation, synced across your own devices, auto-cleared on real read); cross-device draft sync (last-write-wins); scheduled do-not-disturb / quiet hours (suppresses offline push during your configured window). Typed SDK wrappers operations.markUnread, drafts.set/clear, push.getDnd/setDnd ship in JS/TS, Dart, Swift and Kotlin.
    • Standalone consumer observability: the persist consumers expose /metrics and /healthz·/livez·/readyz on an opt-in address.
  • v1.8.02026-07
    • Credential hygiene: tracked-file secret scanning now runs in CI.
  • v1.7.02026-07SDK 1.7.0
    • Complete server OpenAPI 3.1 contract: every customer-facing HTTP route is described, served at /openapi.{yaml,json}, and drift-guarded in CI.
    • All WebSocket commands are SDK-accessible: the final 25 commands enter the protocol catalog; all four SDKs gain an operations API.
    • Website dependency security: Astro upgraded past the reported npm advisories while keeping the static build green.
  • v1.6.02026-07SDK 1.6.0
    • Resilient connections (four SDKs): connect timeout, dead-connection retirement, and jittered exponential reconnect backoff.
    • Bidirectional history pagination: historyPage() with before/after/seq cursors; the array-returning history() stays compatible.
    • Production health probes: process-only /livez and dependency-aware /readyz (Redis / DB / broker), alongside /healthz.
  • v1.2.02026-07
    • Object storage (S3-compatible + bundled MinIO).
    • SDK relations helper.
    • Multi-party call cap.
    • Mobile voice messages.
  • v1.1.02026-07
    • Location & contact-card messages.
    • Mobile H5 chat with a QR demo.
    • Live read-only demo with a RAG assistant.
  • v1.0.02026-07
    • First official release — free Basic edition, one-command Docker Compose, Docker Hub + Aliyun ACR images, and amd64 / arm64 / loong64 binaries plus offline bundles.
  • 2026-07
    • /openapi/v1 inbound push API.
  • 2026-07
    • Enterprise directory.
  • 2026-07
    • Basic quota raised to 1,000 connections.
  • 2026-06
    • Docs & packaging: SDK docs and bilingual product / security / solutions pages; consolidated to four sellable editions (Basic / Pro / Enterprise / Customer Service) from a single source of truth.
  • v1.17.02026-08
    • Server v1.17.0 adds persistent auth sessions with administrator revocation, message envelopes and combined-detail reads, community channel governance, notification strategies, auditable runtime configuration, and expanded observability. AI streams gain cancellation, persisted final envelopes, and authorized large-reply object delivery, alongside message-size governance and verified multi-database migrations.
  • v1.15.12026-08
    • Client SDK 1.13.0 is released as versioned downloads with new React Native and WeChat Mini Program adapters; server behavior remains compatible with 1.15.0.
  • v1.15.02026-08
    • Agent collaboration ships in every edition: an agent can hand a customer to a named colleague or let a team route automatically (online and least-busy first), and a supervisor can force a reassignment; group service supports claim / release / reassignment; internal-only customer notes and a shared canned-reply library are new. Transfers carry a context brief, so the receiving agent doesn't have to re-read the thread.
    • Rich interactive messages: bots and agents can send quick-reply button groups and information cards; a customer's tap enters the normal conversation flow under their own identity and is recorded structurally. The web and Flutter UIKits render them out of the box, and clients that don't know the new types degrade to plain text.
    • Hot-path performance: message payloads are parsed once, codecs are reused, and group/room fan-out allocates less — lower CPU and memory under load, with no behavior change.
  • v1.14.02026-07
    • Released alongside the client suite (SDK 1.11.1 / Flutter UIKit phase 2); no server-side behavior changes.
  • v1.13.02026-07
    • chat-studio demo follow-ups: WeChat-style in-thread time separators (shown only for ≥5-minute gaps) and a more compact auto-growing composer. (The client suite shipped SDK 1.11.0 and the Flutter UIKit in the same release — see the SDK track.)
  • v1.12.02026-07
    • chat-studio demo visual uplift: a neutral WeChat-style skin with brand teal, deterministic initial avatars, an avatar column beside peer bubbles with an AI streaming caret, humanized WeChat-style timestamps, entrance micro-motion (honoring reduced-motion), and a branded product-mode welcome. (The client suite debuted the Web UIKit in the same release — see the SDK track.)
  • v1.11.02026-07SDK 1.10.0
    • Message size governance: a unified inbound request gate (websocket.max_request_bytes, default 256 KB) — over-limit requests now return the new error code 1011 Message too large (previously a disconnect or silent storage) without consuming rate-limit budget; generic byte budgets for 26 message-segment string fields (URL-like 4096, name/ID-like 1024, errors name the field); new imcore_msg_oversize_total metric, /stat field and Prometheus alert rule; the bilingual limits table docs/LIMITS.md documents every limit and its over-limit behavior.
    • Kubernetes umbrella chart: the Helm deployment can optionally bundle PostgreSQL / Redis / RabbitMQ / MinIO subcharts (values-bundled.yaml brings up the full stack in one install) and orchestrates the database-migration Job; the chart's appVersion doubles as the default image tag.
  • v1.10.12026-07
    • Deployment experience patch: release packages now bundle demo_token (mint a test JWT in one command, matching the quickstart verification step); the config template defaults to PostgreSQL with a fully documented database.driver switch (migrate and the server read the same switch); fixed the MySQL deployment path — the ai_tools DDL could not apply on MySQL 8, a RongCloud bootstrap script had crept into the migration directory and broke bin/migrate, and the ops-trend DATE column shifted across time zones; CI gains a MySQL integration job so both databases stay continuously verified.
  • v1.10.02026-07SDK 1.9.0
    • Message expansion Key/Value: attach mutable KV entries to any message (chat_{dm,group,room}_expand) — a generic base for polls, sign-up chains, surveys and task status. u:<userID>: private prefixes are writable only by their owner (tamper-proof votes); public keys only by the sender. Per-key last-write-wins with server-side per-message serialization, live broadcast, multi-device sync and offline catch-up via history — no DDL.
    • Typed @mention targets: structured @user / @role / @here / @all mentions (server-side resolution and authorization), with mention-level push preferences.
    • Per-user group push level: each member can set all / mentions / direct / none per group; offline push is filtered accordingly.
    • Group member marks: owners/admins can attach staff-visible marks to members (customer notes for support scenarios).
    • Sharded connection registry: the ClientManager connection set and online-user index are sharded (default 32, power-of-two), removing the global lock hot spot under high concurrency.
    • Correctness fixes: conversation summaries overlay the authoritative unread column (no drift); room mark-read backfills read receipts over the whole range; the inbound OpenAPI no longer leaks raw database error text to callers.
  • v1.9.02026-07SDK 1.8.0
    • Conversation UX trio (server + all four SDKs): manual mark-unread (per-conversation, synced across your own devices, auto-cleared on real read); cross-device draft sync (last-write-wins); scheduled do-not-disturb / quiet hours (suppresses offline push during your configured window). Typed SDK wrappers operations.markUnread, drafts.set/clear, push.getDnd/setDnd ship in JS/TS, Dart, Swift and Kotlin.
    • Standalone consumer observability: the persist consumers expose /metrics and /healthz·/livez·/readyz on an opt-in address.
  • v1.8.02026-07
    • Credential hygiene: tracked-file secret scanning now runs in CI.
  • v1.7.02026-07SDK 1.7.0
    • Complete server OpenAPI 3.1 contract: every customer-facing HTTP route is described, served at /openapi.{yaml,json}, and drift-guarded in CI.
    • All WebSocket commands are SDK-accessible: the final 25 commands enter the protocol catalog; all four SDKs gain an operations API.
    • Website dependency security: Astro upgraded past the reported npm advisories while keeping the static build green.
  • v1.6.02026-07SDK 1.6.0
    • Resilient connections (four SDKs): connect timeout, dead-connection retirement, and jittered exponential reconnect backoff.
    • Bidirectional history pagination: historyPage() with before/after/seq cursors; the array-returning history() stays compatible.
    • Production health probes: process-only /livez and dependency-aware /readyz (Redis / DB / broker), alongside /healthz.
  • v1.2.02026-07
    • Object storage (S3-compatible + bundled MinIO).
    • SDK relations helper.
    • Multi-party call cap.
    • Mobile voice messages.
  • v1.1.02026-07
    • Location & contact-card messages.
    • Mobile H5 chat with a QR demo.
    • Live read-only demo with a RAG assistant.
  • v1.0.02026-07
    • First official release — free Basic edition, one-command Docker Compose, Docker Hub + Aliyun ACR images, and amd64 / arm64 / loong64 binaries plus offline bundles.
  • 2026-07
    • /openapi/v1 inbound push API.
  • 2026-07
    • Enterprise directory.
  • 2026-07
    • Built-in Chinese moderation lexicon.
  • 2026-07
    • Basic quota raised to 1,000 connections.
  • 2026-06
    • Docs & packaging: SDK docs and bilingual product / security / solutions pages; consolidated to four sellable editions (Basic / Pro / Enterprise / Customer Service) from a single source of truth.
  • v1.17.02026-08
    • Server v1.17.0 adds persistent auth sessions with administrator revocation, message envelopes and combined-detail reads, community channel governance, notification strategies, auditable runtime configuration, and expanded observability. AI streams gain cancellation, persisted final envelopes, and authorized large-reply object delivery, alongside message-size governance and verified multi-database migrations.
  • v1.16.02026-08
    • Data governance now covers the full message lifecycle: set retention by conversation or group, then archive, restore and safely delete expired messages. Complete data export, erasure and anonymisation, legal hold, audit-integrity verification and backup/restore drills join one managed workflow.
  • v1.15.12026-08
    • Client SDK 1.13.0 is released as versioned downloads with new React Native and WeChat Mini Program adapters; server behavior remains compatible with 1.15.0.
  • v1.15.02026-08
    • Agent collaboration ships in every edition: an agent can hand a customer to a named colleague or let a team route automatically (online and least-busy first), and a supervisor can force a reassignment; group service supports claim / release / reassignment; internal-only customer notes and a shared canned-reply library are new. Transfers carry a context brief, so the receiving agent doesn't have to re-read the thread.
    • Rich interactive messages: bots and agents can send quick-reply button groups and information cards; a customer's tap enters the normal conversation flow under their own identity and is recorded structurally. The web and Flutter UIKits render them out of the box, and clients that don't know the new types degrade to plain text.
    • Hot-path performance: message payloads are parsed once, codecs are reused, and group/room fan-out allocates less — lower CPU and memory under load, with no behavior change.
  • v1.14.02026-07
    • Released alongside the client suite (SDK 1.11.1 / Flutter UIKit phase 2); no server-side behavior changes.
  • v1.13.02026-07
    • chat-studio demo follow-ups: WeChat-style in-thread time separators (shown only for ≥5-minute gaps) and a more compact auto-growing composer. (The client suite shipped SDK 1.11.0 and the Flutter UIKit in the same release — see the SDK track.)
  • v1.12.02026-07
    • chat-studio demo visual uplift: a neutral WeChat-style skin with brand teal, deterministic initial avatars, an avatar column beside peer bubbles with an AI streaming caret, humanized WeChat-style timestamps, entrance micro-motion (honoring reduced-motion), and a branded product-mode welcome. (The client suite debuted the Web UIKit in the same release — see the SDK track.)
  • v1.11.02026-07SDK 1.10.0
    • Message size governance: a unified inbound request gate (websocket.max_request_bytes, default 256 KB) — over-limit requests now return the new error code 1011 Message too large (previously a disconnect or silent storage) without consuming rate-limit budget; generic byte budgets for 26 message-segment string fields (URL-like 4096, name/ID-like 1024, errors name the field); new imcore_msg_oversize_total metric, /stat field and Prometheus alert rule; the bilingual limits table docs/LIMITS.md documents every limit and its over-limit behavior.
    • Kubernetes umbrella chart: the Helm deployment can optionally bundle PostgreSQL / Redis / RabbitMQ / MinIO subcharts (values-bundled.yaml brings up the full stack in one install) and orchestrates the database-migration Job; the chart's appVersion doubles as the default image tag.
  • v1.10.12026-07
    • Deployment experience patch: release packages now bundle demo_token (mint a test JWT in one command, matching the quickstart verification step); the config template defaults to PostgreSQL with a fully documented database.driver switch (migrate and the server read the same switch); fixed the MySQL deployment path — the ai_tools DDL could not apply on MySQL 8, a RongCloud bootstrap script had crept into the migration directory and broke bin/migrate, and the ops-trend DATE column shifted across time zones; CI gains a MySQL integration job so both databases stay continuously verified.
  • v1.10.02026-07SDK 1.9.0
    • Message expansion Key/Value: attach mutable KV entries to any message (chat_{dm,group,room}_expand) — a generic base for polls, sign-up chains, surveys and task status. u:<userID>: private prefixes are writable only by their owner (tamper-proof votes); public keys only by the sender. Per-key last-write-wins with server-side per-message serialization, live broadcast, multi-device sync and offline catch-up via history — no DDL.
    • Typed @mention targets: structured @user / @role / @here / @all mentions (server-side resolution and authorization), with mention-level push preferences.
    • Per-user group push level: each member can set all / mentions / direct / none per group; offline push is filtered accordingly.
    • Group member marks: owners/admins can attach staff-visible marks to members (customer notes for support scenarios).
    • Sharded connection registry: the ClientManager connection set and online-user index are sharded (default 32, power-of-two), removing the global lock hot spot under high concurrency.
    • Correctness fixes: conversation summaries overlay the authoritative unread column (no drift); room mark-read backfills read receipts over the whole range; the inbound OpenAPI no longer leaks raw database error text to callers.
  • v1.9.02026-07SDK 1.8.0
    • Conversation UX trio (server + all four SDKs): manual mark-unread (per-conversation, synced across your own devices, auto-cleared on real read); cross-device draft sync (last-write-wins); scheduled do-not-disturb / quiet hours (suppresses offline push during your configured window). Typed SDK wrappers operations.markUnread, drafts.set/clear, push.getDnd/setDnd ship in JS/TS, Dart, Swift and Kotlin.
    • Standalone consumer observability: the persist consumers expose /metrics and /healthz·/livez·/readyz on an opt-in address.
  • v1.8.02026-07SDK 1.7.0
    • Data-governance control plane (Enterprise): reviewed data inventory, access/export/erasure cases, legal holds, retention previews/runs, and dedicated governance:read / governance:write permissions.
    • Fail-closed by default: erasure and retention execution stay disabled until explicitly configured, honour active legal holds, and record durable run evidence.
    • Governance OpenAPI + runbook: 11 typed endpoints, plus bilingual legal-review guidance mapped to PIPL/GDPR (no certification claim).
    • Credential hygiene: tracked-file secret scanning now runs in CI.
  • v1.7.02026-07SDK 1.7.0
    • Complete server OpenAPI 3.1 contract: every customer-facing HTTP route is described, served at /openapi.{yaml,json}, and drift-guarded in CI.
    • All WebSocket commands are SDK-accessible: the final 25 commands enter the protocol catalog; all four SDKs gain an operations API.
    • Website dependency security: Astro upgraded past the reported npm advisories while keeping the static build green.
  • v1.6.02026-07SDK 1.6.0
    • Resilient connections (four SDKs): connect timeout, dead-connection retirement, and jittered exponential reconnect backoff.
    • Bidirectional history pagination: historyPage() with before/after/seq cursors; the array-returning history() stays compatible.
    • Production health probes: process-only /livez and dependency-aware /readyz (Redis / DB / broker), alongside /healthz.
  • v1.2.02026-07
    • Object storage (S3-compatible + bundled MinIO).
    • SDK relations helper.
    • Multi-party call cap.
    • Mobile voice messages.
  • v1.1.02026-07
    • Location & contact-card messages.
    • Mobile H5 chat with a QR demo.
    • Live read-only demo with a RAG assistant.
  • v1.0.02026-07
    • First official release — free Basic edition, one-command Docker Compose, Docker Hub + Aliyun ACR images, and amd64 / arm64 / loong64 binaries plus offline bundles.
  • 2026-07
    • /openapi/v1 inbound push API.
  • 2026-07
    • Enterprise directory.
  • 2026-07
    • Built-in Chinese moderation lexicon.
  • 2026-07
    • Basic quota raised to 1,000 connections.
  • 2026-06
    • Docs & packaging: SDK docs and bilingual product / security / solutions pages; consolidated to four sellable editions (Basic / Pro / Enterprise / Customer Service) from a single source of truth.
  • 2026-06
    • Community (super-groups & channels).
  • v1.17.02026-08
    • Server v1.17.0 adds persistent auth sessions with administrator revocation, message envelopes and combined-detail reads, community channel governance, notification strategies, auditable runtime configuration, and expanded observability. AI streams gain cancellation, persisted final envelopes, and authorized large-reply object delivery, alongside message-size governance and verified multi-database migrations.
  • v1.16.02026-08SDK 1.14.0
    • The Customer Service edition completes its operations loop with unified support sessions, cases, omnichannel intake, intelligent routing, Customer 360, AI knowledge quality and business reporting, plus deeper integration between the web support widget and its host application.
    • The support console adds a session center, real-time operations, Customer 360, omnichannel management and reporting. Each business line can configure hours, after-hours handling, routing and first-response SLAs; email joins the unified inbox, and team replies gain review, publishing, version history and effectiveness insights.
    • Intelligent routing now matches agent availability, skills, languages, shifts and concurrent capacity, with ordered overflow teams when the primary team is busy. Transfers, supervisor reassignments and automatic assignment share the same availability rules, while operations teams can watch queue waits and agent load in real time.
    • A complete case workflow is new: turn a support session into a case, progress it by priority, category, owner and status, and track first-response and resolution SLAs separately. Cases can link multiple sessions, orders and other business objects, with a standard resolution outcome required on completion.
    • AI knowledge quality becomes a continuous improvement loop: low-confidence questions can be answered, politely declined or handed to a human, with optional customer-facing sources. Real unanswered questions enter a review queue where operators can correct answers, manage bot versions and evaluation sets, and score release quality.
    • The web support widget adds host-application integration: business pages can open, hide or destroy it, pass visitor and page context, and listen for connection, message, unread-count and handover changes. The admin console provides both standard installation and advanced integration examples.
    • Data governance now covers the full message lifecycle: set retention by conversation or group, then archive, restore and safely delete expired messages. Complete data export, erasure and anonymisation, legal hold, audit-integrity verification and backup/restore drills join one managed workflow.
  • v1.15.12026-08
    • Client SDK 1.13.0 is released as versioned downloads with new React Native and WeChat Mini Program adapters; server behavior remains compatible with 1.15.0.
  • v1.15.02026-08SDK 1.12.0
    • The AI customer-service subsystem (AI bots, knowledge-base retrieval, human handover, call analysis) now runs on NATS JetStream as well as RabbitMQ, including the embedded single-binary mode — so a minimal deployment needs no external message broker. Upgrading an existing NATS deployment takes one manual step; see the backup/restore runbook.
    • Service delivery becomes measurable: every service episode is bounded automatically and summarised by AI, recording duration, message count and first-response time — for human-served and group-service conversations alike. The admin console adds a post-call AI quality-review page for call analysis and quality scores.
    • Customer satisfaction ratings: a rating card is sent automatically once a session closes and the customer scores it in one tap; the admin console adds satisfaction review with internal annotations and reminders, and the operational-trends page reports surveys sent, answered and satisfied. Disabled by default — opt in explicitly.
    • Long-term AI memory: customer-profile fields are configurable per deployment, filled in by the model with operator edits always taking precedence, and injected alongside cross-session summaries and long-tail fact recall. A handover from AI to a human now generates a briefing pushed to the agent only, and the human's resolution is written back into that customer's long-term memory. Customer profiles and rolling summaries now work on MySQL deployments too.
    • Agent collaboration ships in every edition: an agent can hand a customer to a named colleague or let a team route automatically (online and least-busy first), and a supervisor can force a reassignment; group service supports claim / release / reassignment; internal-only customer notes and a shared canned-reply library are new. Transfers carry a context brief, so the receiving agent doesn't have to re-read the thread.
    • Rich interactive messages: bots and agents can send quick-reply button groups and information cards; a customer's tap enters the normal conversation flow under their own identity and is recorded structurally. The web and Flutter UIKits render them out of the box, and clients that don't know the new types degrade to plain text.
    • Hot-path performance: message payloads are parsed once, codecs are reused, and group/room fan-out allocates less — lower CPU and memory under load, with no behavior change.
    • The demo site gains a visitor-side support entry: a chat bubble in the corner opens an AI conversation, and one tap escalates to a human and lands in the agent queue — pair it with the agent workspace to demo the full flow. Disabled by default.
    • The customer-service operations surface ships: a dedicated agent workspace (enterprise SSO sign-in, enabled agents only), a live service queue, first-response SLA countdowns, session history and daily statistics; the IM admin console gains a Customer & AI Service module for agents, teams, service groups and canned replies, reusing admin permissions and auditing.
  • v1.14.02026-07
    • Released alongside the client suite (SDK 1.11.1 / Flutter UIKit phase 2); no server-side behavior changes.
  • v1.13.02026-07
    • chat-studio demo follow-ups: WeChat-style in-thread time separators (shown only for ≥5-minute gaps) and a more compact auto-growing composer. (The client suite shipped SDK 1.11.0 and the Flutter UIKit in the same release — see the SDK track.)
  • v1.12.02026-07
    • chat-studio demo visual uplift: a neutral WeChat-style skin with brand teal, deterministic initial avatars, an avatar column beside peer bubbles with an AI streaming caret, humanized WeChat-style timestamps, entrance micro-motion (honoring reduced-motion), and a branded product-mode welcome. (The client suite debuted the Web UIKit in the same release — see the SDK track.)
  • v1.11.02026-07SDK 1.10.0
    • Message size governance: a unified inbound request gate (websocket.max_request_bytes, default 256 KB) — over-limit requests now return the new error code 1011 Message too large (previously a disconnect or silent storage) without consuming rate-limit budget; generic byte budgets for 26 message-segment string fields (URL-like 4096, name/ID-like 1024, errors name the field); new imcore_msg_oversize_total metric, /stat field and Prometheus alert rule; the bilingual limits table docs/LIMITS.md documents every limit and its over-limit behavior.
    • Kubernetes umbrella chart: the Helm deployment can optionally bundle PostgreSQL / Redis / RabbitMQ / MinIO subcharts (values-bundled.yaml brings up the full stack in one install) and orchestrates the database-migration Job; the chart's appVersion doubles as the default image tag.
  • v1.10.12026-07
    • Deployment experience patch: release packages now bundle demo_token (mint a test JWT in one command, matching the quickstart verification step); the config template defaults to PostgreSQL with a fully documented database.driver switch (migrate and the server read the same switch); fixed the MySQL deployment path — the ai_tools DDL could not apply on MySQL 8, a RongCloud bootstrap script had crept into the migration directory and broke bin/migrate, and the ops-trend DATE column shifted across time zones; CI gains a MySQL integration job so both databases stay continuously verified.
  • v1.10.02026-07SDK 1.9.0
    • Message expansion Key/Value: attach mutable KV entries to any message (chat_{dm,group,room}_expand) — a generic base for polls, sign-up chains, surveys and task status. u:<userID>: private prefixes are writable only by their owner (tamper-proof votes); public keys only by the sender. Per-key last-write-wins with server-side per-message serialization, live broadcast, multi-device sync and offline catch-up via history — no DDL.
    • Typed @mention targets: structured @user / @role / @here / @all mentions (server-side resolution and authorization), with mention-level push preferences.
    • Per-user group push level: each member can set all / mentions / direct / none per group; offline push is filtered accordingly.
    • Group member marks: owners/admins can attach staff-visible marks to members (customer notes for support scenarios).
    • Sharded connection registry: the ClientManager connection set and online-user index are sharded (default 32, power-of-two), removing the global lock hot spot under high concurrency.
    • Correctness fixes: conversation summaries overlay the authoritative unread column (no drift); room mark-read backfills read receipts over the whole range; the inbound OpenAPI no longer leaks raw database error text to callers.
  • v1.9.02026-07SDK 1.8.0
    • Conversation UX trio (server + all four SDKs): manual mark-unread (per-conversation, synced across your own devices, auto-cleared on real read); cross-device draft sync (last-write-wins); scheduled do-not-disturb / quiet hours (suppresses offline push during your configured window). Typed SDK wrappers operations.markUnread, drafts.set/clear, push.getDnd/setDnd ship in JS/TS, Dart, Swift and Kotlin.
    • Standalone consumer observability: the persist consumers expose /metrics and /healthz·/livez·/readyz on an opt-in address.
  • v1.8.02026-07
    • Credential hygiene: tracked-file secret scanning now runs in CI.
  • v1.7.02026-07SDK 1.7.0
    • Complete server OpenAPI 3.1 contract: every customer-facing HTTP route is described, served at /openapi.{yaml,json}, and drift-guarded in CI.
    • All WebSocket commands are SDK-accessible: the final 25 commands enter the protocol catalog; all four SDKs gain an operations API.
    • Website dependency security: Astro upgraded past the reported npm advisories while keeping the static build green.
  • v1.6.02026-07SDK 1.6.0
    • Resilient connections (four SDKs): connect timeout, dead-connection retirement, and jittered exponential reconnect backoff.
    • Bidirectional history pagination: historyPage() with before/after/seq cursors; the array-returning history() stays compatible.
    • Production health probes: process-only /livez and dependency-aware /readyz (Redis / DB / broker), alongside /healthz.
  • v1.2.02026-07
    • Object storage (S3-compatible + bundled MinIO).
    • AI post-call analysis (Customer Service).
    • SDK ai streaming.
    • SDK relations helper.
    • Multi-party call cap.
    • Mobile voice messages.
  • v1.1.02026-07
    • Location & contact-card messages.
    • Mobile H5 chat with a QR demo.
    • Live read-only demo with a RAG assistant.
  • v1.0.02026-07
    • First official release — free Basic edition, one-command Docker Compose, Docker Hub + Aliyun ACR images, and amd64 / arm64 / loong64 binaries plus offline bundles.
  • 2026-07
    • /openapi/v1 inbound push API.
  • 2026-07
    • Enterprise directory.
  • 2026-07
    • Built-in Chinese moderation lexicon.
  • 2026-07
    • Basic quota raised to 1,000 connections.
  • 2026-06
    • Docs & packaging: SDK docs and bilingual product / security / solutions pages; consolidated to four sellable editions (Basic / Pro / Enterprise / Customer Service) from a single source of truth.

Client SDKs

See what shipped for each client SDK platform.

  • v1.15.02026-08
    • The four SDKs and both UI kits gain typed message envelopes and combined-message reads, dynamic server message-limit refresh, reauthentication and offline-queue protection after auth revocation, plus community governance, AI stream cancellation, and large-reply object references; the Web and Flutter UI kits also tighten conversation and message-stream consistency.
  • v1.14.02026-08
    • All four SDKs add typed customer-service workspace APIs for bootstrap, customer transfer, customer profiles, internal notes, group-service claim and routing-change events, ready for custom agent applications.
  • v1.13.02026-08
    • The JavaScript / TypeScript SDK adds dedicated React Native and WeChat Mini Program entries. React Native integrates AsyncStorage, AppState, NetInfo and the mobile WebSocket runtime; the mini-program adapter covers SocketTask, asynchronous storage, app/network lifecycle reconnects and wx.uploadFile. Both entries ship in the same versioned JS SDK package.
  • v1.12.02026-08
    • A PC / Electron adapter now keeps the IM connection, JWT, cache, offline queue and media uploads in the main process; preload exposes only a restricted transport while the renderer retains the full typed API. Separate entries isolate Node file capabilities, IPC verifies the source window and protocol command, and an atomic userData file store is included.
    • All four SDKs add the customer-service operations protocol — workspace bootstrap, the live service queue, session history and statistics, plus group-service claim / release / reassignment and routing-change notifications — ready to drive a custom agent workspace. Interactive-message replies get a typed API on web and Dart, and the web and Flutter UIKits render quick-reply buttons with answered-state sync.
  • v1.11.12026-07
    • Flutter UIKit phase 2 — production-ready: history pagination (scroll up to load older messages, stable bottom-landing on open), read reporting (unread clears on open/new message/foreground, with conversation-list local-clear wiring), optimistic send with failure retry (instant echo, resend/delete on failure), media message rendering (images with a fullscreen viewer; video/voice/file cards hand off via onOpenMedia), realtime recall/edit/delete/reactions with a long-press action menu (capability- and state-gated), and a dark theme (ImcoreTheme.dark(), the cross-platform token reference). Fix: the media upload path on all four SDKs (TS/Kotlin/Swift/Dart) is corrected to /user/chat/upload (previously always 404). Known limitation: on Flutter Web, image loading is subject to browser CORS; mobile and desktop are unaffected.
  • v1.11.02026-07
    • Flutter UIKit component library imcore_uikit (first release): the same component contract and theme tokens as the web kit — ImcoreScope, conversation list, message thread, composer and a connection-state banner plus headless controllers for custom UIs, built on imcore_sdk (sibling-directory path dependency) with a bundled example app, included in every edition; released as imcore-uikit-dart-<ver>.tar.gz. Dart ChatMessage.messageId changed from int? to String? (server message IDs are UUIDv7 strings; the old parse crashed — a Dart source-breaking change), plus three web UIKit fixes (history loads merge with in-flight pushes, failed sends no longer clobber a newer draft, automatic refetch once authentication completes).
  • v1.10.02026-07
    • Web UIKit component library @imcore/uikit (debut): a React chat UI on top of @imcore/sdk — conversation list, message thread, composer and a connection-state banner, drop-in and included in every edition; theming via CSS variables (--imcore-* plus the --bubble-* tokens shared with chat-studio), with headless hooks (useConnectionState/useConversations/useMessages) for custom UIs.
    • Client SDK 1.10.0: all four SDKs gain a maxRequestBytes pre-send check (default 262144, <=0 disables) — over-limit requests fail locally with RequestError 1011 (message carries local precheck and the actual byte count), with no network write and no orphaned pending request; error-code constant groups (ErrorCodes etc., including 1011) are now generated from clients/protocol.yaml so apps can match server errors programmatically.
  • v1.9.02026-07
    • Client SDK 1.9.0: typed group-member mute/kick wrappers (group.muteMember / group.kickMember) across all four SDKs; new command constants + API reference for chat_{dm,group,room}_expand (message expansion), typed @mentions, group push levels and member marks.
  • v1.5.02026-07
    • Client SDK 1.5.0: group governance (muteAll, roles, transfer, disband, join requests, history policy) and directed-visibility group.send.
  • v1.4.02026-07
    • Client SDK 1.4.0: realtime signaling (RTC) — a four-SDK typed wrapper (signaling only; your app owns the media/peer connection).
  • v1.3.02026-07
    • Client SDK 1.3.0: message lifecycle (edit / recall / delete, typing, read receipts) and a four-SDK enterprise directory; SDK versioning decoupled from the server.
  • 2026-07
    • Four SDKs as versioned downloads.
  • v1.02026-06
    • Four official typed SDKs: JavaScript/TypeScript, Dart/Flutter, Swift/iOS, Kotlin/Android (v1).
  • v1.15.02026-08
    • The four SDKs and both UI kits gain typed message envelopes and combined-message reads, dynamic server message-limit refresh, reauthentication and offline-queue protection after auth revocation, plus community governance, AI stream cancellation, and large-reply object references; the Web and Flutter UI kits also tighten conversation and message-stream consistency.
  • v1.14.02026-08
    • All four SDKs add typed customer-service workspace APIs for bootstrap, customer transfer, customer profiles, internal notes, group-service claim and routing-change events, ready for custom agent applications.
  • v1.12.02026-08
    • All four SDKs add the customer-service operations protocol — workspace bootstrap, the live service queue, session history and statistics, plus group-service claim / release / reassignment and routing-change notifications — ready to drive a custom agent workspace. Interactive-message replies get a typed API on web and Dart, and the web and Flutter UIKits render quick-reply buttons with answered-state sync.
  • v1.11.12026-07
    • Flutter UIKit phase 2 — production-ready: history pagination (scroll up to load older messages, stable bottom-landing on open), read reporting (unread clears on open/new message/foreground, with conversation-list local-clear wiring), optimistic send with failure retry (instant echo, resend/delete on failure), media message rendering (images with a fullscreen viewer; video/voice/file cards hand off via onOpenMedia), realtime recall/edit/delete/reactions with a long-press action menu (capability- and state-gated), and a dark theme (ImcoreTheme.dark(), the cross-platform token reference). Fix: the media upload path on all four SDKs (TS/Kotlin/Swift/Dart) is corrected to /user/chat/upload (previously always 404). Known limitation: on Flutter Web, image loading is subject to browser CORS; mobile and desktop are unaffected.
  • v1.11.02026-07
    • Flutter UIKit component library imcore_uikit (first release): the same component contract and theme tokens as the web kit — ImcoreScope, conversation list, message thread, composer and a connection-state banner plus headless controllers for custom UIs, built on imcore_sdk (sibling-directory path dependency) with a bundled example app, included in every edition; released as imcore-uikit-dart-<ver>.tar.gz. Dart ChatMessage.messageId changed from int? to String? (server message IDs are UUIDv7 strings; the old parse crashed — a Dart source-breaking change), plus three web UIKit fixes (history loads merge with in-flight pushes, failed sends no longer clobber a newer draft, automatic refetch once authentication completes).
  • v1.10.02026-07
    • Client SDK 1.10.0: all four SDKs gain a maxRequestBytes pre-send check (default 262144, <=0 disables) — over-limit requests fail locally with RequestError 1011 (message carries local precheck and the actual byte count), with no network write and no orphaned pending request; error-code constant groups (ErrorCodes etc., including 1011) are now generated from clients/protocol.yaml so apps can match server errors programmatically.
  • v1.9.02026-07
    • Client SDK 1.9.0: typed group-member mute/kick wrappers (group.muteMember / group.kickMember) across all four SDKs; new command constants + API reference for chat_{dm,group,room}_expand (message expansion), typed @mentions, group push levels and member marks.
  • v1.5.02026-07
    • Client SDK 1.5.0: group governance (muteAll, roles, transfer, disband, join requests, history policy) and directed-visibility group.send.
  • v1.4.02026-07
    • Client SDK 1.4.0: realtime signaling (RTC) — a four-SDK typed wrapper (signaling only; your app owns the media/peer connection).
  • v1.3.02026-07
    • Client SDK 1.3.0: message lifecycle (edit / recall / delete, typing, read receipts) and a four-SDK enterprise directory; SDK versioning decoupled from the server.
  • 2026-07
    • Four SDKs as versioned downloads.
  • v1.02026-06
    • Four official typed SDKs: JavaScript/TypeScript, Dart/Flutter, Swift/iOS, Kotlin/Android (v1).
  • v1.15.02026-08
    • The four SDKs and both UI kits gain typed message envelopes and combined-message reads, dynamic server message-limit refresh, reauthentication and offline-queue protection after auth revocation, plus community governance, AI stream cancellation, and large-reply object references; the Web and Flutter UI kits also tighten conversation and message-stream consistency.
  • v1.14.02026-08
    • All four SDKs add typed customer-service workspace APIs for bootstrap, customer transfer, customer profiles, internal notes, group-service claim and routing-change events, ready for custom agent applications.
  • v1.12.02026-08
    • All four SDKs add the customer-service operations protocol — workspace bootstrap, the live service queue, session history and statistics, plus group-service claim / release / reassignment and routing-change notifications — ready to drive a custom agent workspace. Interactive-message replies get a typed API on web and Dart, and the web and Flutter UIKits render quick-reply buttons with answered-state sync.
  • v1.11.12026-07
    • Flutter UIKit phase 2 — production-ready: history pagination (scroll up to load older messages, stable bottom-landing on open), read reporting (unread clears on open/new message/foreground, with conversation-list local-clear wiring), optimistic send with failure retry (instant echo, resend/delete on failure), media message rendering (images with a fullscreen viewer; video/voice/file cards hand off via onOpenMedia), realtime recall/edit/delete/reactions with a long-press action menu (capability- and state-gated), and a dark theme (ImcoreTheme.dark(), the cross-platform token reference). Fix: the media upload path on all four SDKs (TS/Kotlin/Swift/Dart) is corrected to /user/chat/upload (previously always 404). Known limitation: on Flutter Web, image loading is subject to browser CORS; mobile and desktop are unaffected.
  • v1.11.02026-07
    • Flutter UIKit component library imcore_uikit (first release): the same component contract and theme tokens as the web kit — ImcoreScope, conversation list, message thread, composer and a connection-state banner plus headless controllers for custom UIs, built on imcore_sdk (sibling-directory path dependency) with a bundled example app, included in every edition; released as imcore-uikit-dart-<ver>.tar.gz. Dart ChatMessage.messageId changed from int? to String? (server message IDs are UUIDv7 strings; the old parse crashed — a Dart source-breaking change), plus three web UIKit fixes (history loads merge with in-flight pushes, failed sends no longer clobber a newer draft, automatic refetch once authentication completes).
  • v1.10.02026-07
    • Client SDK 1.10.0: all four SDKs gain a maxRequestBytes pre-send check (default 262144, <=0 disables) — over-limit requests fail locally with RequestError 1011 (message carries local precheck and the actual byte count), with no network write and no orphaned pending request; error-code constant groups (ErrorCodes etc., including 1011) are now generated from clients/protocol.yaml so apps can match server errors programmatically.
    • Swift SDK breaking change: ImcoreClient.send(_:_:) changed from async -> Int to async throws -> Int (the pre-send check must throw, and Swift's checked-error model requires the signature change); existing callers must add try. Landed inside the pre-first-publish window — the SDKs are not on package registries yet.
  • v1.9.02026-07
    • Client SDK 1.9.0: typed group-member mute/kick wrappers (group.muteMember / group.kickMember) across all four SDKs; new command constants + API reference for chat_{dm,group,room}_expand (message expansion), typed @mentions, group push levels and member marks.
  • v1.5.02026-07
    • Client SDK 1.5.0: group governance (muteAll, roles, transfer, disband, join requests, history policy) and directed-visibility group.send.
  • v1.4.02026-07
    • Client SDK 1.4.0: realtime signaling (RTC) — a four-SDK typed wrapper (signaling only; your app owns the media/peer connection).
  • v1.3.02026-07
    • Client SDK 1.3.0: message lifecycle (edit / recall / delete, typing, read receipts) and a four-SDK enterprise directory; SDK versioning decoupled from the server.
  • 2026-07
    • Four SDKs as versioned downloads.
  • v1.02026-06
    • Four official typed SDKs: JavaScript/TypeScript, Dart/Flutter, Swift/iOS, Kotlin/Android (v1).
  • v1.15.02026-08
    • The four SDKs and both UI kits gain typed message envelopes and combined-message reads, dynamic server message-limit refresh, reauthentication and offline-queue protection after auth revocation, plus community governance, AI stream cancellation, and large-reply object references; the Web and Flutter UI kits also tighten conversation and message-stream consistency.
  • v1.14.02026-08
    • All four SDKs add typed customer-service workspace APIs for bootstrap, customer transfer, customer profiles, internal notes, group-service claim and routing-change events, ready for custom agent applications.
  • v1.12.02026-08
    • All four SDKs add the customer-service operations protocol — workspace bootstrap, the live service queue, session history and statistics, plus group-service claim / release / reassignment and routing-change notifications — ready to drive a custom agent workspace. Interactive-message replies get a typed API on web and Dart, and the web and Flutter UIKits render quick-reply buttons with answered-state sync.
  • v1.11.12026-07
    • Flutter UIKit phase 2 — production-ready: history pagination (scroll up to load older messages, stable bottom-landing on open), read reporting (unread clears on open/new message/foreground, with conversation-list local-clear wiring), optimistic send with failure retry (instant echo, resend/delete on failure), media message rendering (images with a fullscreen viewer; video/voice/file cards hand off via onOpenMedia), realtime recall/edit/delete/reactions with a long-press action menu (capability- and state-gated), and a dark theme (ImcoreTheme.dark(), the cross-platform token reference). Fix: the media upload path on all four SDKs (TS/Kotlin/Swift/Dart) is corrected to /user/chat/upload (previously always 404). Known limitation: on Flutter Web, image loading is subject to browser CORS; mobile and desktop are unaffected.
  • v1.11.02026-07
    • Flutter UIKit component library imcore_uikit (first release): the same component contract and theme tokens as the web kit — ImcoreScope, conversation list, message thread, composer and a connection-state banner plus headless controllers for custom UIs, built on imcore_sdk (sibling-directory path dependency) with a bundled example app, included in every edition; released as imcore-uikit-dart-<ver>.tar.gz. Dart ChatMessage.messageId changed from int? to String? (server message IDs are UUIDv7 strings; the old parse crashed — a Dart source-breaking change), plus three web UIKit fixes (history loads merge with in-flight pushes, failed sends no longer clobber a newer draft, automatic refetch once authentication completes).
  • v1.10.02026-07
    • Client SDK 1.10.0: all four SDKs gain a maxRequestBytes pre-send check (default 262144, <=0 disables) — over-limit requests fail locally with RequestError 1011 (message carries local precheck and the actual byte count), with no network write and no orphaned pending request; error-code constant groups (ErrorCodes etc., including 1011) are now generated from clients/protocol.yaml so apps can match server errors programmatically.
  • v1.9.02026-07
    • Client SDK 1.9.0: typed group-member mute/kick wrappers (group.muteMember / group.kickMember) across all four SDKs; new command constants + API reference for chat_{dm,group,room}_expand (message expansion), typed @mentions, group push levels and member marks.
    • Kotlin SDK: shared OkHttp client hardened for weak networks (explicit connectTimeout / pingInterval; fastFallback deferred to OkHttp 5).
  • v1.5.02026-07
    • Client SDK 1.5.0: group governance (muteAll, roles, transfer, disband, join requests, history policy) and directed-visibility group.send.
  • v1.4.02026-07
    • Client SDK 1.4.0: realtime signaling (RTC) — a four-SDK typed wrapper (signaling only; your app owns the media/peer connection).
  • v1.3.02026-07
    • Client SDK 1.3.0: message lifecycle (edit / recall / delete, typing, read receipts) and a four-SDK enterprise directory; SDK versioning decoupled from the server.
  • 2026-07
    • Four SDKs as versioned downloads.
  • v1.02026-06
    • Four official typed SDKs: JavaScript/TypeScript, Dart/Flutter, Swift/iOS, Kotlin/Android (v1).