macOS IMLib 更新日志

本页由平台契约变更记录自动生成:记录 IDL 契约冻结修订历史,客户端绑定随契约版本推进。

项值
IDL 版本1.0.0
状态frozen
冻结修订35
冻结时间2026-10-30T01:15:00.000Z
changelog sha2566927db0f71f3d0be…
本平台绑定状态ga

平台绑定里程碑​

  • 当前绑定语言:JavaScript (ESM) + TypeScript declarations; Electron 桌面端(macOS x64 / arm64);包 / 模块:@ni-paas-im/electron。
  • 独立实现实现:单包 @ni-paas-im/electron;主进程复用自研 Node IMLib 客户端(sdk/node),本地 SQLite 为自研 schema(不用参考实现的私有列/表布局)。
  • 不使用原生 .node 插件:跨平台可构建、无需 ABI 重编译;进程模型(main 持有客户端 + 单写者 DB、preload 具名白名单、renderer 薄代理)对齐参考架构。
  • imlib.localDbNamespace 为 Electron 差异化本地库能力,独立命名空间、独立演进,不计入冻结的 62 op;实现缺失时由 capabilities() 如实上报。
  • imlib.localDbNamespace 为 Electron 差异化本地库能力,独立命名空间、独立演进,不计入冻结的 62 op;实现缺失时须由 capabilities() 如实上报。
  • 签名格式为 TypeScript 片段(参数名: 类型,含返回类型);RcResult<T> = {code: number; data?: T; msg?: string},成功 code=0。
  • macOS 桌面端与融云一致以 Electron 交付:主进程 IMLib + 本地 SQLite,渲染进程 IMKit;本机真实构建、启动、连接、收发与打包 .app 验证。

修订历史​

v1.0.0 冻结修订 25 — 2026-10-28T19:55:00+08:00 涉及本平台​

  • sdk-bindings.json(元数据,非语义;不改变冻结修订号):bindings.ios.status 由 规划期 升级为 ga(Swift + Objective-C 双接口真实实现,Xcode/iOS 模拟器构建与运行验证);新增 bindings.macos(inherits: electron,macOS x64/arm64 桌面端分发,.app/.dmg + 签名/公证)。
  • protocol.json(additive):WS query 可选 deviceId(≤128);hello 回显 deviceId?;多设备独立 deliveredSeq/离线补收,缺省兼容单设备游标。
  • 无新增路由/帧/错误码/回调;计数保持 398/34/43/22。

v1.0.0 冻结修订 23 — 2026-10-28T14:15:00+08:00​

  • domain.json(additive):Message.channelId?:string,超级群频道消息按频道路由/过滤;为空表示群级消息。
  • protocol.json:superGroupSemantics.channelRouting 明确频道路由/成员/历史过滤语义。
  • sdk-imlib.json:sendMessage.options.channelId?、getHistoryMessages.options.channelId?(各端同步)。
  • 兼容性:additive-only;无接口删除/改名;路由/WS 帧/错误码/回调数量不变(398/34/43/22)。

v1.0.0 冻结修订 22 — 2026-10-28T12:50:00+08:00​

  • domain.json(additive):ConversationType.SUPER_GROUP=10,与融云 ConversationType 数值一致;conversationTypeMapping 更新。存量 GROUP(2)+groupType=super 仍可读,新消息/会话使用 10。
  • protocol.json:superGroupSemantics.representation 更新为 conversationType=SUPER_GROUP(10),保留存量兼容说明。
  • 实现面:服务端把 10 按群语义处理(成员/历史/未读/回执/搜索/回调),四端 SDK 常量补齐;文档中心与矩阵同步。
  • 兼容性:additive-only;无接口删除/改名,无路由/WS 帧/错误码/回调数量变化(398/34/43/22)。 # IDL Changelog

v1.0.0 冻结修订 35 — 2026-10-30T18:05:00+08:00 涉及本平台​

  • sdk-bindings.json → bindings.flutter.imlib(元数据/签名面,非语义;不改 op/路由/帧/错误码/回调): Flutter 公开对象已由 RongIMClient 切换为 RCIMIWEngine(T3 生命周期迁移 + T9 基线全量公开面), 同步修正绑定签名面,消除文档生成器按旧签名渲染导致的 docs.coverage.sdk 漂移:
  • class:RongIMClient → RCIMIWEngine;factory:RongIMClient.init(options) → RCIMIWEngine.create(appKey, options)(单次初始化语义);eventsApi 改为 engine.events.listen(...)。
  • methodMap(103 个 IMLib 语义 op)按 sdk/flutter/imlib/lib/src/rcimiw_engine*.dart 实际公开签名重写: init → RCIMIWEngine.create(String appKey, RCIMIWEngineOptions options); connect → connect(String token, int timeout, {RCIMIWConnectCallback? callback})(带超时); disconnect → disconnect(bool receivePush);其余 op 沿用引擎上的同名公开方法(参数名/类型/可选性 与 Dart 源码一致,共 64 条签名更新)。
  • IMKit 组件面不变(bindings.flutter.imkit.exports 11 项维持冻结值)。
  • 兼容性:无 op 增删、无路由/WS 帧/错误码/回调事件变化(398/34/43/22 保持);仅 Flutter 绑定签名面 与 compatibility.policy 的 additive 约束一致(改名属于文档/绑定面收敛,语义 op 名不变)。
  • 其它平台 methodMap 复核:web/electron/android/ios/harmony/macos/native 无 RongIMClient 残留(0 处)。
  • manifest.json:freezeRevision=35,重算 sdk-bindings.json sha256;其余文件哈希不变。

v1.0.0 冻结修订 34 — 2026-10-30T09:15:00+08:00​

  • errors.json(schema 规范化,码表集合不变 43 条):1031–1035 五条历史遗留条目从 {code,name,http,desc} 统一为与其余 38 条一致的 {code,name,httpStatus,category,retryable,since,messageZh,messageEn}:
  • 1031 TAG_LIMIT_EXCEEDED → 400;1032 TAG_NOT_FOUND → 404;1033 TAG_CONVERSATION_LIMIT_EXCEEDED → 400; 1034 CONVERSATION_NOT_FOUND → 404(rev16 会话标签引入,since=1.1.0);
  • 1035 MESSAGE_REJECTED_BY_CALLBACK → 403(rev32 CB01 发送前同步回调 message.publish.before 返回 action=block 或 syncDefaultAction=block 时返回;since=1.1.0)。
  • 无 op / 路由 / 帧 / 回调事件变化;无名称变更、无码值变更(纯字段结构收敛,additive-compatible)。
  • manifest.json:freezeRevision=34,重算 errors.json sha256;其余文件哈希不变。

v1.0.0 冻结修订 33 — 2026-10-30T08:10:00+08:00​

  • sdk-bindings.json(additive):新增顶层 canonical 块(schema=impaas.sdk.bindings.canonical,since=1.8.0,idlRevision=33):
  • canonical.imlib.<op>.canonicalParams[]({name,type,required})+ canonicalReturn:平台无关的参数/返回类型口径,覆盖全部 103 个 IMLib 语义 op。
  • 规则:内联对象类型统一为去平台前缀的具名类型——发送类 options 统一 SendOptions(sendMessage/sendTextMessage/sendImageMessage/sendFileMessage/sendVoiceMessage/sendLocationMessage)、分页统一 PageOptions、历史统一 HistoryOptions、已读详情 ReadDetailQuery、建群 CreateGroupOptions、流式 StartStreamMessageOptions 等;content 槽位统一 ImageContent/FileContent/VoiceContent/LocationContent。
  • normalization:比对前归一规则(去 ObjC IMP/产品 IM 前缀、去 RcResult<>/Promise<> 等结果信封;回调/结果/原始类型不参与类型名比对)。
  • **既有 bindings.*.imlib.methodMap 一个字都没改**(不删除、不改写已交付表面);canonical 是新增的对照基准,供文档/SDK/审计消费。
  • 无 SDK 语义 op / WS 帧 / 错误码 / 回调事件 / 路由变化(IMLib op 103、路由 404 不变)。
  • 兼容性:additive-only;不读 canonical 的旧调用方行为不变。

v1.0.0 冻结修订 32 — 2026-10-30T02:58:00+08:00​

  • protocol.json(additive):clientRest 80 → 85(+5),补声明 5 条「Router 已注册、契约未声明」的客户端 REST(A13 对账项;POST/GET 同路径的 /users 按 method 各计 1 条):
  • POST /api/apps/{appkey}/users(注册用户,since 1.8.0;Bearer / Open API HMAC / 匿名仅 IM_ALLOW_ANON_WRITE=true)
  • GET /api/apps/{appkey}/users(应用内用户列表,since 1.8.0;当前仅校验 appkey)
  • GET /api/apps/{appkey}/users/{userId}(单个用户资料,since 1.8.0;当前仅校验 appkey)
  • POST /api/apps/{appkey}/groups/{groupId}/join(加入 open 策略群,since 1.8.0;Bearer)
  • GET /api/apps/{appkey}/stats(应用级运营计数,since 1.8.0;走写入口身份校验)
  • 实现零改动:这 5 条路由早于契约存在(业务已在用),本修订只补契约声明与自省镜像,请求/响应形状与鉴权行为均不变。
  • 诚实记录(未做):GET /users、GET /users/{userId} 两个读入口当前不校验 Bearer(仅 check_app),属 A02 遗留读入口缺口,已在 IDL auth 字段与 desc 中显式标注;收紧鉴权需另起实现修订,届时不改响应形状(additive 兼容)。
  • 无 SDK 语义 op / WS 帧 / 错误码 / 回调事件变化;无删除/改名/改语义。
  • 兼容性:additive-only;旧客户端与旧调用方行为不变。

v1.0.0 冻结修订 31 — 2026-10-30T01:20:00+08:00​

  • sdk-imlib.json(additive):新增 IMLib 语义 op getMessageReadDetail(group=message,since=1.7.0,transport=rest,errors=[1001,1003,1004]),参数 messageId + options{offset?,limit?,filter?},返回 {messageId, readCount, unreadCount, totalMembers, filter, offset, limit, total, hasMore, items[]};语义 op 102 → 103。
  • domain.json(additive):ReadReceipt 增加可选字段 readAt(int64,具体读取时刻)与 unreadCounts(map<string,uint32>,按消息的未读人数);新增 schema MessageReadDetailItem({userId,name,read,readAt?})。既有字段/语义不变。
  • sdk-bindings.json(additive):web / flutter / android / electron / ios / harmony 六个平台 imlib.methodMap 各新增 1 项(102 → 103);native 保持 curated 17 项不变。
  • SDK 实现面:Web(sdk/web/rongim.mjs 实例方法 + 模块函数 + rongim.d.ts 类型)、Electron(main imlib/service + preload 白名单 + ipc 校验 + types/index.d.ts)、Android(IMClient/ImClientCore/ClientRest/Models + ReadDetailOptions)、Flutter(RongIMClient.getMessageReadDetail + ReadDetailResult/ReadDetailItem)、iOS(Swift protocol/core/MainQueue + ObjC IMPOSClient 桥 + api-surface/objc-surface)、HarmonyOS(仅声明,仍 规划期)。
  • 修复:Web SDK 模块级 getMessageReadUsers(messageId, options) 包装层此前丢弃 options(分页参数不生效),本修订一并修复。
  • 无新增 WS 帧 / 错误码 / 回调事件 / 服务端路由;运行时 freezeRevision 前进到 31(路由总数保持 399)。
  • 兼容性:additive-only;未调用新 op 的旧客户端行为不变。

v1.0.0 冻结修订 30 — 2026-10-30T00:00:00+08:00​

  • protocol.json(additive):clientRest 新增 1 条 GET /api/apps/{appkey}/messages/{messageId}/read-detail(已读详情:已读/未读名单 + 具体读取时间,支持 offset/limit/filter=all|read|unread)。clientRest 79 → 80,运行时路由 398 → 399。
  • protocol.json(additive):read_receipt 帧新增可选字段 readAt(读取时刻)、unreadCounts(按消息的未读人数);read_receipt_ack 同步回显。
  • 服务端实现:新增会话级已读游标 conv_read 与逐条读取时间 receipt_times,随快照/journal 持久化;PG 模式新增 conv_read / receipt_times 两表(永久漫游)。
  • 无 IMLib op / WS 帧 / 错误码 / 回调事件数量变化;运行时 freezeRevision 前进到 30。
  • 兼容性:additive-only;旧客户端不读新字段即行为不变。

v1.0.0 冻结修订 29 — 2026-10-29T23:55:00+08:00​

  • sdk-imkit.json(additive):features 增加 MessageRendererRegistry(文件/语音/视频/位置/名片/自定义/合并转发渲染)、EmojiPanel(表情/贴纸)、QuickReplyView(快捷回复)、LocalNotificationCenter(本地通知)。
  • sdk-bindings.json(additive):对应 Swift + Objective-C 映射。
  • 无 IMLib op/路由/WS 帧/错误码变化;运行时 freezeRevision 前进到 29。

v1.0.0 冻结修订 28 — 2026-10-29T19:20:00+08:00​

  • sdk-imkit.json(additive):features 增加 GroupManagementController(群管理:成员/加人/移除/禁言/管理员/转让/改名/公告/退群)与 ContactListController(好友/申请/备注/删除/黑名单)。
  • sdk-bindings.json(additive):bindings.ios.imkit.features 增加 Swift + Objective-C 映射。
  • 无 IMLib op/路由/WS 帧/错误码变化;运行时 freezeRevision 前进到 28。

v1.0.0 冻结修订 27 — 2026-10-29T15:30:00+08:00​

  • sdk-imkit.json(additive):新增 features(6 组件:UserInfoProvider / GroupInfoProvider / GroupMemberProvider / MessageMultiSelectController / MessageForwardController / QuoteBar),对标融云 IMKit 信息托管、多选、转发、引用。
  • sdk-bindings.json(additive):bindings.ios.imkit.features Swift + Objective-C 映射。
  • 无 IMLib op/路由/WS 帧/错误码变化;运行时 freezeRevision 前进到 27。

v1.0.0 冻结修订 26 — 2026-10-29T03:40:00+08:00​

  • sdk-imkit.json(additive):新增 globalUIKit(新一代 MVVM UI 体系,12 个组件:ChatListViewController/ChatViewController/ChatListViewModel/ChatViewModel/ChatListDataSource/ChatListDelegate/ChatDataSource/ChatDelegate/ChatCellModel/ChatInputController/ChatRouter/ChatUITheme),对标融云 iOS Global IM UIKit;IMKit 10 组件与既有语义不变。
  • sdk-bindings.json(additive):bindings.ios.uikit 增加 Swift + Objective-C 双接口映射(12 组件)。
  • 无路由/WS 帧/错误码/回调变化;服务端运行时契约身份随 manifest 前进到 26。

v1.1.0 冻结修订 21 — 2026-10-27T00:56:09.462Z​

  • protocol.json:clientRest 79 条(+8:超级群频道 POST/GET、频道 join/leave/绑定用户组、 用户组 POST/GET、按用户查询;since 1.5.0,Bearer);serverToClient 保持 24 帧(本修订无新帧)。
  • sdk-imlib.json:语义 op 102(+11,since 1.5.0):registerPushToken/unregisterPushToken/ getPushTokens + createSupergroupChannel/listSupergroupChannels/joinSupergroupChannel/ leaveSupergroupChannel/bindUserGroupToChannel/createUserGroup/listUserGroups/getUserGroupsByUser。
  • domain.json:新增 ChannelType = ["public","private"] 枚举与 SupergroupChannel/UserGroup/PushToken schema;Conversation 增加可选 groupType: "normal"|"super"(additive,不改 conversationType)。
  • 服务端缺陷修复:supergroup/channel/usergroup/bind 现在双向写 channel.userGroupIds 与 userGroup.channelIds(幂等),unbind 双向移除,反查由空变为可用。
  • sdk-bindings.json:web/electron/android/flutter/ios/harmony methodMap 各 102(native 仍 curated 17)。
  • admin-api.json / openapi.json / callbacks.json / errors.json:本修订无变更(管理 API 85、 Open API 230、回调 22、错误码 43)。
  • manifest.json:重新冻结全部文件 sha256 与 freezeRevision=21(上一修订 20);兼容策略 additive-only。

v1.1.0 冻结修订 20 — 2026-10-26T23:27:40.437Z​

  • protocol.json:serverToClient 24 帧(+1:presence_changed,{userId,online,lastSeenAt,timestamp, reason},好友默认 ∪ 显式订阅者,去重且排除自己);clientRest 71 条(+5:presence 订阅 POST/GET 2 条、 推送 token 注册/列表/注销 3 条)。
  • sdk-imlib.json:语义 op 91(+3:subscribePresence/unsubscribePresence/getPresenceSubscriptions since 1.4.0);事件 16(+1:PRESENCE_CHANGED);createGroup 参数扩展 joinPolicy/maxMembers。
  • domain.json:新增枚举 JoinPolicy = ["open","approval","invite"]。
  • admin-api.json:管理 API 85(+6:推送 token 台账 list/revoke、投递 create/list/get/retry); push/stats 扩展 tokenCounts/deliveryCounts/adapters。
  • sdk-bindings.json:web/electron/android/flutter/ios/harmony methodMap 各 91(native 仍 curated 17)。
  • openapi.json / callbacks.json / errors.json:本修订无变更(Open API 230、回调 22、 错误码 43);推送 token/投递复用 1001/1002/1003/1004/1016。
  • manifest.json:重新冻结全部文件 sha256 与 freezeRevision=20(上一修订 19);兼容策略 additive-only。

v1.1.0 冻结修订 19 — 2026-10-26T21:08:20.904Z​

  • domain.json:消息内容类型新增 combine(合并转发),含 CombineItem / CombineContent schema; 校验 title ≤64、items 1..=100、senderId/contentType 非空、senderName ≤64、Σtext ≤16KB(违规 1001)。
  • protocol.json:clientRest 66 条(+1:GET /api/apps/{appkey}/messages/{messageId}/expansion 消息扩展读取,仅会话参与者);limits 新增 combineTitleChars / combineItemsMax / combineTextBytes。
  • sdk-imlib.json:语义 op 88(+2:getMessageExpansion REST、combineMessages 本地构建)+ 常量 CONTENT_TYPE_COMBINE="combine"(since 1.3.0)。
  • sdk-bindings.json:web/electron/android/flutter/ios/harmony methodMap 各 88(native 仍 curated 17)。
  • admin-api.json / openapi.json / callbacks.json / errors.json:本修订无变更(管理 API 79、 Open API 230、回调 22、错误码 43)。
  • manifest.json:重新冻结全部文件 sha256 与 freezeRevision=19(上一修订 18);兼容策略 additive-only。

v1.1.0 冻结修订 18 — 2026-10-26T19:43:49.742Z​

  • admin-api.json:管理 API 79 个(rev17 为 54,+25),覆盖控制台 K09 群组详情/成员治理(8)、 K10 封禁与注销视图(2)、K13 测试用户与配额(3)、K14 统计维度(1)、K21 推送通道 + K22 推送统计(4)、 K24 翻译/机器人配置(6)、K29 嵌入令牌(1);schemas 扩充到 49。
  • openapi.json / protocol.json / callbacks.json / errors.json / sdk-imlib.json / sdk-bindings.json: 本修订无变更(Open API 230、回调 22、错误码 43、IMLib 86、帧 33、客户端 REST 65)。
  • 新增运行时路由 /embed 与 /api/embed/session(控制台嵌入视图,公开但需一次性令牌;不属于 Open API 计数)。
  • manifest.json:重新冻结全部文件 sha256 与 freezeRevision=18(上一修订 17);兼容策略 additive-only。

v1.1.0 冻结修订 17 — 2026-10-26T17:45:05.008Z​

  • sdk-imlib.json:新增 4 个流式消息语义 op(82 → 86):startStreamMessage / appendStreamMessage / completeStreamMessage / getStreamMessage。
  • protocol.json:clientRest 65 条(+4 流式消息客户端端点);serverToClient 23 帧 (+1 stream_changed 增量帧);clientToServer 保持 10。
  • callbacks.json:新增 同步回调事件 message.publish.before(事件数 22), 应用服务器在消息投递前返回 pass/replace/block(超时按 syncDefaultAction 降级)。
  • errors.json:错误码 43 个(+1:1035 MESSAGE_REJECTED_BY_CALLBACK)。
  • 回调配置扩展(additive,不破坏旧配置):syncEnabled / syncTimeoutMs(100–2000,默认 500)/ syncDefaultAction(pass|block,默认 pass)。
  • sdk-bindings.json:web/electron/android/flutter/ios/harmony methodMap 各 86(native 仍为 curated 17)。
  • manifest.json:重新冻结全部文件 sha256 与 freezeRevision=17(上一修订 16);兼容策略 additive-only。

v1.1.0 冻结修订 16 — 2026-10-26T16:12:51.210Z​

  • openapi.json:新增 1 个服务端 Open API 端点(229 → 230):会话标签 创建/更新/删除/查询、标签会话批量增删与分页、会话所属标签、标签未读汇总、标签内置顶、删除会话。
  • sdk-imlib.json:新增 13 个语义 op(69 → 82):createConversationTag / updateConversationTag / deleteConversationTag / getConversationTags / addConversationsToTag / removeConversationsFromTag / getConversationsFromTagByPage / getTagsFromConversation / getUnreadCountByTag / setConversationToTopInTag / deleteConversation / getConversationTypeNotification / setConversationTypeNotification。
  • protocol.json:clientRest 61 条(+13 客户端 REST);帧总数保持 32。
  • errors.json:错误码 42 个(+4:1031 TAG_LIMIT_EXCEEDED / 1032 TAG_NOT_FOUND / 1033 TAG_CONVERSATION_LIMIT_EXCEEDED / 1034 CONVERSATION_NOT_FOUND)。
  • sdk-bindings.json:7 平台 methodMap 同步(web/electron/android/flutter/ios/harmony 各 82, native 仍为 curated 17 子集)。
  • manifest.json:重新冻结全部文件 sha256 与 freezeRevision=16(上一修订 16);兼容策略 additive-only。

v1.1.0 冻结修订 16 — 2026-10-26T16:11:59.437Z​

  • openapi.json:新增 1 个服务端 Open API 端点(229 → 230):会话标签 创建/更新/删除/查询、标签会话批量增删与分页、会话所属标签、标签未读汇总、标签内置顶、删除会话。
  • sdk-imlib.json:新增 13 个语义 op(69 → 82):createConversationTag / updateConversationTag / deleteConversationTag / getConversationTags / addConversationsToTag / removeConversationsFromTag / getConversationsFromTagByPage / getTagsFromConversation / getUnreadCountByTag / setConversationToTopInTag / deleteConversation / getConversationTypeNotification / setConversationTypeNotification。
  • protocol.json:clientRest 61 条(+13 客户端 REST);帧总数保持 32。
  • errors.json:错误码 42 个(+4:1031 TAG_LIMIT_EXCEEDED / 1032 TAG_NOT_FOUND / 1033 TAG_CONVERSATION_LIMIT_EXCEEDED / 1034 CONVERSATION_NOT_FOUND)。
  • sdk-bindings.json:7 平台 methodMap 同步(web/electron/android/flutter/ios/harmony 各 82, native 仍为 curated 17 子集)。
  • manifest.json:重新冻结全部文件 sha256 与 freezeRevision=16(上一修订 15);兼容策略 additive-only。

v1.1.0 冻结修订 15 — 2026-10-26T15:13:21.922Z​

  • openapi.json:新增 16 个服务端 Open API 端点(203 → 219):超级群治理 (默认免打扰、全体禁言、禁言白名单、成员禁言、成员存在性)、按会话类型设置/查询免打扰、 机器人回调渠道配置(v3 bot integration create/update/delete,含 HMAC 投递语义)。
  • admin-api.json:新增 11 个管理 API(43 → 54):应用删除/恢复、 子账号与角色(owner/admin/operator/viewer)、内容审核任务(列表/裁决)、告警规则与事件。
  • callbacks.json / domain.json:回调事件 21 个(如新增 message.audit_result 审核结果回推); WebSocket 帧 32 个(c2s 10 + s2c 22)。
  • manifest.json:重新冻结全部文件 sha256 与 freezeRevision=15(上一修订 san 14);兼容策略仍为 additive-only。

v1.1.0 冻结修订 14 — 2026-10-26T13:47:18.274Z​

  • openapi.json:新增 13 个服务端 Open API 端点(190 → 203,additive):敏感词增量增删/批量、 状态消息(单聊/群聊)、消息审计日志查询与删除、聊天室 KV 批量设置/删除、用户已加入群组分页、 群组同步(应用侧幂等 upsert)、会话属性查询。
  • admin-api.json:新增 6 个管理 API(35 → 43):聊天室销毁/全体禁言、操作日志、功能配置读取/写入、 接口调频读取/写入、推送测试(控制台 K11/K12/K15/K20/K23 模块)。
  • sdk-imkit.json:MessageBubble 新增消息回应/扩展渲染 props 与事件(reactions、expansion、 onReactionClick、onReactionLongPress、reaction_click、reaction_longpress),组件总数保持 10。
  • manifest.json:重新冻结全部文件 sha256 与 freezeRevision=14;兼容策略仍为 additive-only。

v1.1.0 冻结修订 13 — 2026-10-26T12:35:25.417Z​

  • openapi.json:新增 15 个服务端 Open API 端点(175 → 190,additive),覆盖 聊天室治理(封禁列表 / 保活查询+移除 / 成员存在性单查+批量 / 禁言列表 / 全局禁言增删查 / 消息类型白名单增删查)、群成员禁言列表、用户所在群组分页查询、全体聊天室广播; 语义基线为融云 platform-chat-api 对应页面,仅对齐行为与字段,代码独立实现。
  • callbacks.json + domain.json.CallbackEventType:回调事件 12 → 20, 新增 user.online_status_changed、user.deactivated、user.reactivated、user.profile_changed、 friend.changed、chatroom.kv_changed、message.modified、message.deleted(signature/envelope 不变)。
  • manifest.json:重新冻结全部文件 sha256 与 freezeRevision=13;兼容策略仍为 additive-only。

v1.1.0 冻结修订 13 — 2026-10-26T12:19:48.905Z​

  • openapi.json:新增 15 个服务端 Open API 端点(175 → 190,additive),覆盖 聊天室治理(封禁列表 / 保活查询+移除 / 成员存在性单查+批量 / 禁言列表 / 全局禁言增删查 / 消息类型白名单增删查)、群成员禁言列表、用户所在群组分页查询、全体聊天室广播; 语义基线为融云 platform-chat-api 对应页面,仅对齐行为与字段,代码独立实现。
  • callbacks.json + domain.json.CallbackEventType:回调事件 12 → 20, 新增 user.online_status_changed、user.deactivated、user.reactivated、user.profile_changed、 friend.changed、chatroom.kv_changed、message.modified、message.deleted(signature/envelope 不变)。
  • manifest.json:重新冻结全部文件 sha256 与 freezeRevision=13;兼容策略仍为 additive-only。

v1.1.0 冻结修订 12 — 2026-10-26T10:46:27.453Z​

  • 新增 7 个客户端 IMLib 语义操作(additive;62 → 69 op),全部 transport: rest:
  • 消息扩展:updateMessageExpansion、removeMessageExpansion(单聊/群聊/超级群;单次 ≤20 对、单条 ≤300 对)
  • 消息回应:addMessageReaction、removeMessageReaction、batchGetMessageReactionSummaries、 getMessageReactions、getMessageReactionUsers(reactionId 1-16;单条 ≤50 种、每种 ≤100 用户;分页 1-50)
  • protocol.json:clientRest 新增 7 个 JWT 客户端端点(/messages/{messageId}/expansion、 /expansion/remove、/reactions、/reactions/remove、/messages/reactions/batch、 GET /reactions、GET /reactions/{reactionId}/users),与 Open API 的 /message/expansion/*、/message/reaction/* 共享同一领域状态
  • errors.json:新增 5 个客户端错误码(33 → 38):1026 MESSAGE_NOT_EXPANDABLE、 1027 EXPANSION_LIMIT_EXCEEDED、1028 REACTION_INVALID、1029 REACTION_LIMIT_EXCEEDED、 1030 REACTION_USER_LIMIT_EXCEEDED
  • sdk-bindings.json:web/flutter/android/electron/ios/harmony 六个平台各新增 7 条 methodMap; native(C ABI 子集,17 op)当前版本不扩展,保持显式差异
  • 语义基线:融云 IM 5.x message/expansion、message/reaction、ultragroup/expand-message 文档; 仅对齐语义与限制,不复刻其私有信令对象(RC:MsgExMsg)与版本相关字段长度差异
  • protocol.json:serverToClient 新增 2 个广播帧(19 → 21,wsFrames 29 → 31)——reaction_changed、 expansion_changed,推送给会话参与者(含操作者自身多端),使"他人回应/扩展变更"可实时感知
  • sdk-imlib.json:能力事件 12 → 14——MESSAGE_REACTION_CHANGED、MESSAGE_EXPANSION_CHANGED

v1.0.0 冻结修订 11 — 2026-10-24T05:01:17.711Z​

  • sdk-bindings.json(additive):新增 4 个平台绑定(语义仍为 62 个 IMLib op + 10 个 IMKit 组件,未改动任何既有 op/错误码/事件/协议)
  • android:Kotlin(io.nipaas.imlib / io.nipaas.imkit);62/62 op + 10/10 组件;Android 形态差异仅 init(context, options) 与 callback-last,方法名与语义 op 同名
  • electron:@ni-paas-im/electron(主进程 IMLib + 本地 SQLite / preload 具名白名单 / renderer 薄代理);62/62 + 10/10;imlib.localDbNamespace 为本地库差异化能力,不计入冻结 62 op
  • ios:Swift 声明契约(规划期)——未提供但契约已备;sdk/ios/api-surface.json 供零漂移校验
  • manifest.json:freezeRevision 10 → 11;sdk-bindings.json sha256 更新;consumers 增加 sdk-android / sdk-electron / sdk-ios / sdk-harmony
  • 契约校验器:新增 sdk.binding.coverage(7 平台覆盖断言)与 sdk.规划期.surface(iOS/HarmonyOS 预留声明断言)
  • 兼容性:additive-only;Open API / 管理 API / WS 协议 / 既有 4 端 SDK 行为零变更

v1.0.0 冻结修订 10 — 2026-10-23T14:15:00+08:00​

  • openapi.json(additive,7 ops,覆盖最后 7 项外部依赖接口;以“可配置外部服务代理”实现):
  • agent.chat.generate(覆盖 /v3/chat/generate)、agent.chat.suggest(覆盖 /v3/chat/suggest):转发到 IM_AI_ENDPOINT,未配置返回 1021
  • message.translate(覆盖 /v3/translate):转发到 IM_TRANSLATE_ENDPOINT,未配置返回 1021
  • user.proxychat.start/stop/list(覆盖 /v3/user/proxychat/{start,stop,query}):代聊状态管理
  • user.profile.moderation.sync(覆盖 /user/profile/sync):接收审核结果并落库
  • 新增 schema:AgentChatResult / TranslateResult / ProxyChatState / ProxyChatList / ModerationSyncResult
  • 至此对标矩阵 247/247(100%) 全部覆盖:无 P1/P2 缺口、无暂不实现项;外部 AI/翻译/审核能力通过可配置端点接入,未配置时按 1021 SERVICE_NOT_ACTIVATED 明确降级。
  • 兼容性:additive-only。

v1.0.0 冻结修订 9 — 2026-10-23T13:10:00+08:00​

  • openapi.json(additive,23 ops,收口剩余可实现能力):
  • 群特别关注:group.member.follow.add/remove/list(覆盖 /entrust/group/member/follow|unfollow|followed/get)
  • 批量踢群:user.group.kickAll(覆盖 /entrust/group/member/kick/all)
  • 群备注名:group.remark.set/get/remove(覆盖 /entrust/group/remarkname/*)
  • 机器人管理:bot.create/get/list/update/delete(覆盖 /v3/bot/*;对话运行时需外部模型)
  • Agent 管理:agent.create/get/list/update/delete、agent.restriction.set/get/remove/list(覆盖 /v3/agent/*;对话生成需外部模型)
  • RTC 绑定:chatroom.rtc.bind/get(覆盖 /chatroom/correlation/rtc;音视频能力需外部服务)
  • 新增 schema:GroupFollow / GroupFollowList / GroupKickAllResult / GroupRemark / GroupRemarkRemoveResult / Bot / BotList / BotDeleteResult / Agent / AgentList / AgentDeleteResult / AgentRestriction / AgentRestrictionList / AgentRestrictionRemoveResult / ChatroomRtc
  • 仍暂不实现(纯外部依赖,7 项):/v3/chat/generate、/v3/chat/suggest、/v3/translate(大模型/翻译)、/v3/user/proxychat/*(3,代聊需 AI 运行时)、/user/profile/sync(内容审核回调)。
  • 兼容性:additive-only。

v1.0.0 冻结修订 8 — 2026-10-23T12:10:00+08:00​

  • openapi.json(additive,17 ops,收敛流式消息与推送运营域):
  • 流式消息:message.stream.start/append/end/get(覆盖融云 /message/get_stream、/v3/message/{private,group}/publish_stream)
  • 全量/在线广播:message.broadcast、message.broadcast.recall、message.online.broadcast
  • 推送:push.send(scope=all|tag|package|user|users,不落地、按推送配置 webhook 投递并记录日志;覆盖 /push、/push/user、/push/custom)、push.log.list(覆盖 /message/push/detail/history)、push.stats.day、push.stats.byId(覆盖 /stat/getDayPushData、/stat/getPushIdData)
  • 免打扰时段:user.push.period.set/get/remove(覆盖 /user/blockPushPeriod/*)
  • 推送备注名:push.remark.set/get/remove(覆盖 /user/remarks/* 与 /group/remarks/*)
  • 新增 schema:StreamInfo / BroadcastResult / BroadcastRecallResult / PushResult / PushLog / PushLogPage / PushStats / PushPeriod / PushPeriodRemoveResult / PushRemark / PushRemarkRemoveResult
  • 仍暂不实现(外部依赖):AI 生成/回复建议/翻译/代聊、内容审核与托管信息审核回调、Bot/Agent 运行时、群特别关注/群备注名、频道 RTC 绑定。
  • 兼容性:additive-only。

v1.0.0 冻结修订 7 — 2026-10-23T10:55:00+08:00​

  • openapi.json(additive,21 ops,覆盖剩余可实现能力):
  • 消息回应(reaction):message.reaction.add/remove/list/users/batch(覆盖融云 /message/*/reaction/* 共 5 条路径)
  • 模板消息:message.template.publish(覆盖单聊/群/系统通知模板发送,内置 welcome/notification/order 模板)
  • 用户注销/激活:user.deactivate、user.reactivate、user.deactivated.list
  • 超级群私有频道:supergroup.channel.create/list/delete/type.set/members.add/members.remove/members.list/usergroup.bind/usergroup.unbind/usergroup.list(覆盖融云 /ultragroup/channel/* 共 10 条路径)
  • 聊天室消息优先级:chatroom.message.priority.set/list(覆盖 /chatroom/message/priority/* 共 3 条路径)
  • 新增 schema:MessageReaction / ReactionRemoveResult / ReactionItem / MessageReactionSummary / ReactionUsers / ReactionBatchItem / ReactionBatch / UserDeactivation / UserDeactivationList / Channel / ChannelList / ChannelDeleteResult / ChannelMembers / ChannelBinding / ChannelBindingList / ChatroomPriority
  • 明确暂不实现(需第三方/流式传输):/message/get_stream、/v3/message/*/publish_stream(流式消息)、AI/Bot/推送运营/RTC/内容审核。
  • 兼容性:additive-only。

v1.0.0 冻结修订 6 — 2026-10-23T10:05:00+08:00​

  • openapi.json(additive,23 ops,覆盖对标矩阵剩余 P2 项):
  • 用户:user.ban.list、user.delete、user.profile.clean、user.subscription.set/get
  • 好友:friend.check、friend.clean、friend.permission.set/get、friend.profile.set
  • 群:group.mute-all/group.mute-all.get(群全员禁言,覆盖融云 /group/ban/add|rollback|query)、group.ban.whitelist.add/remove/list(群全员禁言白名单)、group.import、group.member.update
  • 聊天室:chatroom.destroy.policy.set(空闲/定时销毁策略)
  • 超级群用户组:supergroup.usergroup.create/list/delete/members.add/members.remove/by-user/channels
  • 新增 schema:UserBanPage / UserDeleteResult / UserSubscription / FriendCheckResult / FriendCleanResult / FriendPermission / FriendProfile / GroupBanWhitelist / GroupImportResult / UserGroup / UserGroupList / UserGroupDeleteResult / UserGroupChannels
  • 明确暂不实现(第三方依赖):/user/profile/sync(托管信息审核结果回调,依赖内容审核服务)。
  • 兼容性:additive-only。

v1.0.0 冻结修订 5 — 2026-10-23T09:30:00+08:00​

  • openapi.json(additive,12 ops,覆盖对标矩阵剩余 P1 项):
  • 消息:message.modify(服务端改消息,单聊/群/超级群统一)、message.history.clean(清除远端历史)
  • 单聊禁言:user.chat.mute、user.chat.mute.list
  • 标签:user.tag.set/get/batch.set(用户标签)、conversation.tag.set/remove/list(会话标签,同时覆盖融云 /user/conversation/tag/* 与 /tag/conversation/*)
  • 聊天室全体禁言:chatroom.mute-all、chatroom.mute-all.get(覆盖融云 /chatroom/ban/add|rollback|query|check)
  • 新增 schema:MessageCleanResult / ChatMuteItem / ChatMuteList / UserTags / UserTagBatchResult / ConversationTagItem / ConversationTagRemoveResult / ConversationTagList / ChatroomMuteAll
  • 超级群历史消息搜索复用既有 message.search(语义等价,不新增接口)。
  • 兼容性:additive-only。

v1.0.0 冻结修订 4 — 2026-10-22T23:25:00+08:00​

  • openapi.json(additive,18 ops):补齐对标矩阵 Top gaps 中的服务端 Open API:
  • 群:group.join(公开群/超级群加入)、group.transfer(群主转让)
  • 聊天室治理(P1):chatroom.kv.set/get/remove、chatroom.mute、chatroom.ban、chatroom.whitelist.add/remove/list
  • 用户治理:user.whitelist.add/remove/list(私聊白名单)、user.token.revoke(主动作废 token)、user.batch.get(批量资料)
  • 消息扩展:message.expansion.set/get/remove
  • 新增 schema:ChatroomKv / ChatroomKvList / ChatroomWhitelist / UserWhitelist / UserTokenState / UserBatch / MessageExpansion
  • admin-api.json(additive,3 ops):admin.callbacks.test(回调测试事件)、admin.users.batchRegister(批量注册)、admin.messages.export(消息 CSV 导出);新增 schema AdminBatchRegisterResult / MessageExport。
  • 兼容性:additive-only;不影响既有 operation 语义与数值。

v1.0.0 冻结修订 3 — 2026-10-22T18:24:36+08:00​

  • admin-api.json(additive):新增 admin.users.get、admin.users.mute、admin.users.resetToken、admin.metrics.overview 及 AdminUserDetail/MetricsOverview schema,对齐运营后台用户管理与看板需求。
  • 命名统一(与 admin-console 规格对齐,最终以本 IDL 为准):
  • ConversationType:1=PRIVATE、2=GROUP、3=CHATROOM、4=SYSTEM;超级群 = GROUP + groupType="super"(不占用 conversationType 4)。
  • ServiceKey(snake_case):private_chat、group、supergroup、chatroom、system_notification、callbacks、message_routing、sensitive_words。
  • 错误码沿用 errors.json:1009 群禁言、1015 成员上限、1016 封禁、1017 应用停用、1021 服务未开通、1025 配额、2002 依赖不可用(未提供端点临时 501)。
  • 兼容性:additive-only。

v1.0.0 冻结修订 2 — 2026-10-22T18:19:19+08:00​

  • protocol.json:clientRest 增补聊天室客户端 REST 形状(冻结跨端约定,Flutter/Web/Native/server-core 共同遵循):
  • POST /api/apps/{appkey}/chatrooms(Bearer,创建)
  • GET /api/apps/{appkey}/chatrooms/{chatroomId}(信息)
  • GET /api/apps/{appkey}/chatrooms/{chatroomId}/members?offset&limit(在线成员)
  • DELETE /api/apps/{appkey}/chatrooms/{chatroomId}(owner 销毁)
  • 系统通知历史复用 GET /api/apps/{appkey}/messages?conversationType=4&targetId=system&limit&beforeSeq
  • 原因:跨端联调发现聊天室缺客户端 REST 面;由 flutter-sdk 提出、Lead 冻结,避免四端漂移。
  • 兼容性:additive-only,无破坏性变更。

v1.0.0 — 2026-10-22 冻结​

首个冻结版本。覆盖范围:

领域模型(domain.json)​

  • 枚举:ConversationType(PRIVATE=1 / GROUP=2 / CHATROOM=3 / SYSTEM=4)、GroupType(normal/super)、Direction、ConnectionStatus、NotificationLevel、ContentType(text/image/file/voice/location/custom/recall/system)、SystemType、GroupRole、MentionType、FriendRequestStatus、ChatroomEventKind、FriendEventKind、CallbackEventType、ServiceKey。
  • 数据结构:Message、Content、Conversation、User/UserProfile、Group/GroupMember(含超级群扩展)、Chatroom/ChatroomMember、FriendRequest/Friend/BlacklistEntry、ReadReceipt、MessageTrace、CallbackConfig/CallbackDelivery/CallbackEnvelope、ServiceActivation、AdminApp、OpsStats、ContractIntrospection、统一响应信封(RcResult/OpenApiResponse/Page)。

错误码(errors.json)​

  • 1001–1025 客户端/参数/权限/签名/配额类;2001–2004 服务端/依赖类;3001–3004 SDK 本地类。含 httpStatus、retryable、中英文案。新增:1012–1014 聊天室、1015 成员上限、1016 封禁、1017 应用停用、1018–1020 Open API 签名、1021 服务未开通、1022–1023 撤回、1024 回调配置、1025 配额;2004 回调投递。

客户端协议(protocol.json)​

  • 既有:connect/send/ack/read/read_receipt/recall/typing/sync/ping + hello/message/send_ack/…/error。
  • 新增:chatroom_join / chatroom_leave / chatroom_joined / chatroom_left / chatroom_event / kick。
  • 语义:心跳 30s、pong 60s 超时重连、指数退避;离线补发 + at-least-once + ACK 游标;多端副本;聊天室在线态不落离线;超级群=GROUP+groupType=super;系统通知=SYSTEM 会话;消息上限 5KB;撤回 120s;离线每会话 500 条。

Open API(openapi.json)​

  • 全部 POST;/im/v2 基路径;App-Key/Nonce/Timestamp/Signature=hex(sha1(secret+nonce+timestamp));统一 {code,msg?,data?,requestId?}。
  • 覆盖用户/好友/黑名单、消息(单聊/群/聊天室/系统通知/撤回/历史/已读/搜索/轨迹)、群与超级群、聊天室、会话、在线状态、敏感词、回调配置与投递、服务开通、统计。

管理 API(admin-api.json)​

  • X-Admin-Secret;应用与密钥、测试用户与 token、群/聊天室、消息查询与轨迹、连接监控、服务开通、回调配置与投递、推送通道、敏感词、运营统计、API 调试元数据。

SDK(sdk-imlib.json / sdk-imkit.json / sdk-bindings.json)​

  • IMLib 语义操作 60+(连接、消息、会话、用户、好友、群/超级群、聊天室、系统通知、上传);事件 13 个。
  • IMKit 组件 11 个(会话列表、会话详情、消息气泡、输入区、头像、角标、时间分隔、状态、主题、门面等),约束 IMKit 仅调用 IMLib 公开接口。
  • 平台绑定:Web(ESM,IMClient)、Flutter(Dart,RongIMClient + Widgets)、Native(Rust core + C ABI,IMLib/IMKit view-model)。

回调(callbacks.json)​

  • 信封 + HMAC-SHA256 签名(X-IM-Timestamp/Nonce/Signature)+ 重试退避 + 投递日志 + 手动重试。
  • 事件:message.routed(全量消息路由)、message.offline、message.recalled、read.receipt、user.registered、user.banned、group.created/updated/destroyed、chatroom.created/destroyed/member_changed。

后续规划(v1.x,additive-only)​

  • v1.1(规划):端级离线游标(multi-device per-device cursor)、消息编辑/Reaction、广播消息、群公告变更事件细化。
  • v1.2(规划):对象存储直传签名、消息已读回执批量接口、好友分组。
  • 所有 v1.x 变更必须更新 manifest 哈希与本文档。

相关文档​