• YunaiV authored
     
    Browse Dir »
  • - 已读上报增加本地读位置覆盖判断,避免切换会话和当前会话自动已读时重复调用 read 接口
    - 标记会话已读时同步推进本地 read 游标并写入 IndexedDB,接口失败仅记录日志
    - 缓存私聊对方 maxReadMessageId,并在状态补拉、回执更新和退出 IM 时维护缓存
    - 增加群详情 infoLoaded 内存标记,减少切群时重复拉取群详情,手动刷新和关键通知仍强制刷新
    - 同步 GROUP_INFO_UPDATE 的 joinApproval,避免群审批配置在前端缓存中陈旧
    - 优化群通话胶囊条状态,记录 participantsLoaded,按需补齐参与者并在通话无人时移除胶囊
    - RTC_CALL_START 生成群通话最小胶囊条,后续由参与者事件和 getActiveCall 补齐
    - 退出 IM 时清理 RTC 状态和群通话缓存
    - Vben antd/antd-next 调整媒体元素为函数 ref,修复 MediaStream 与元素挂载时序问题
    - 修复 Vben 消息历史弹窗回调类型标注
    YunaiV authored
     
    Browse Dir »

  • YunaiV authored
     
    Browse Dir »
  • - 后端群 VO 返回当前用户维度的 groupRemark 和 silent
    - 群列表构建时通过成员关系回填个人群设置,并继续仅对有效成员回填置顶消息
    - Vue3 群列表同步时以接口返回的个人群设置为准,只保留成员缓存
    - 会话名写入入口统一使用 getGroupDisplayName,避免群备注被原群名覆盖
    - 空群头像且成员未加载时异步预拉群成员,用于合成群头像
    - 启用 IM Maven 模块和 yudao-server 对 IM 模块的依赖
    YunaiV authored
     
    Browse Dir »
  • - 移除 agreeFriendRequest 中对申请双方的重复 validateUserList 校验
    - 保留申请存在、未处理、操作人必须为接收方的校验,避免削弱处理权限边界
    - 调整单测,断言同意好友申请不再触发双方用户复验
    YunaiV authored
     
    Browse Dir »
  • - 后端将 GROUP_MEMBER_NICKNAME_UPDATE 改为非持久化事件,避免写入群聊历史消息
    - 保留群昵称变更的 WebSocket 在线同步,继续更新成员 displayUserName
    - Vue3 聊天侧栏从当前群成员的 displayUserName 回填「我在本群的昵称」
    - Vue3 WebSocket 收到 GROUP_MEMBER_NICKNAME_UPDATE 时只同步 groupStore,不再插入消息列表
    - 补充后端单测,覆盖群昵称变更事件不入库但仍推送
    YunaiV authored
     
    Browse Dir »
  • - 统一 IM 单测类注释为 {@link Xxx} 的单元测试
    - 保留方法分组注释,收敛不符合规范的分组文案
    - 删除少量冗余字段说明注释
    YunaiV authored
     
    Browse Dir »


  • - 将 WebSocket 推送入口统一为 userId/userIds + conversationType + contentType + payload
    - 移除业务侧 ImNotificationWebSocketDTO 构造和无会话专用发送入口
    - 收敛私聊、群聊、频道、好友、加群申请、RTC 通知调用路径
    - 精简 ImNotificationWebSocketDTO,仅保留统一外壳字段
    - 保留群消息 payload 的 receiptStatus、readCount、receiverUserIds
    - 更新相关单元测试,覆盖群消息通知 payload 字段
    YunaiV authored
     
    Browse Dir »
  • - 将 WebSocket 推送入口统一为 userId/userIds + conversationType + contentType + payload
    - 移除业务侧 ImNotificationWebSocketDTO 构造和无会话专用发送入口
    - 收敛私聊、群聊、频道、好友、加群申请、RTC 通知调用路径
    - 精简 ImNotificationWebSocketDTO,仅保留统一外壳字段
    - 保留群消息 payload 的 receiptStatus、readCount、receiverUserIds
    - 更新相关单元测试,覆盖群消息通知 payload 字段
    YunaiV authored
     
    Browse Dir »

  • - 新增会话读位置持久化接口与前端同步逻辑
    - 增加好友、好友申请、加群申请的增量拉取补偿
    - 统一前端 pull 编排,增加回扫窗口、落库等待和账号切换守卫
    - 调整群成员为按群懒加载缓存,并移除全局成员增量链路
    - 修复消息落库、读位置补偿、READ 事件乱序下的未读状态一致性
    - 完善群申请红点快照刷新和管理员角色变化补偿
    - 更新消息存储设计与修复记录文档
    YunaiV authored
     
    Browse Dir »

  • - 新增 im_conversation_read 会话读位置表,并补充消息存储推拉相关索引
    - 群消息固化 receiver_user_ids 快照,按可见成员快照拉取和统计回执
    - 统一消息 status 为 NORMAL/RECALL,新增私聊 receipt_status 并复用统一回执状态
    - 前端改用 receiptStatus 展示私聊已读、群回执和频道已读态
    - 补齐私聊、群聊、频道 WebSocket 已读同步和离线补偿逻辑
    - 更新 IM 消息状态、回执状态字典和管理后台展示
    - 调整相关单测和测试建表脚本
    YunaiV authored
     
    Browse Dir »
  • - 后端群列表返回历史群成员状态 joinStatus,用于区分当前群和历史退群群
    - 群消息拉取支持基于 receiver_user_ids 快照过滤可见消息
    - 补充群消息 pull、群成员候选、私聊 pull 相关索引与 SQL 脚本
    - 前端接入 joinStatus,并封装历史退群群判断
    - 历史退群群禁发、隐藏群操作入口,并从通讯录、转发、推荐名片候选中排除
    - 保留历史群会话展示能力,用于查看退群前历史消息
    YunaiV authored
     
    Browse Dir »


  • - 调整 MyBatisUtils.findInSet 使用 MyBatis-Plus 参数绑定
    - 增加 columnName 白名单校验,避免列名被注入
    - 补充 H2 兼容实现,恢复相关单测覆盖
    - 替换各模块动态 FIND_IN_SET 字符串拼接写法
    - 补充单参数、多参数绑定场景单测
    YunaiV authored
     
    Browse Dir »



  • - 复用好友申请、群申请和群邀请唯一键冲突后的旧记录,并补充测试
    - 收敛 RTC 旁观者加入、忙线校验、追加邀请超员和群通话通知逻辑
    - 为 RTC 参与者补充房间用户唯一约束与 MySQL 迁移
    - 统一群本体管理请求的 id 字段,并同步前端调用
    - 修复前端来电活跃态守卫和 LiveKit 重连前断开旧房间
    - 清理群成员通知基类命名和相关注释
    YunaiV authored
     
    Browse Dir »
  • - 修复群管理行锁、管理员角色更新、群主转让、置顶消息并发问题
    - 修复好友申请 maxId 游标、重复申请排序、通知类型校验和消息内容结构校验
    - 修复消息统计口径、RTC token 鉴权、离会通知、前端拉取取消和媒体重试
    - 优化表情批量删除、WebSocket 推送注释、群 READ 字段和相关单测
    - 更新 bug_todo、bug_done 和 bug_rejected,剩余 9 个待修
    YunaiV authored
     
    Browse Dir »
  • - 修复管理端消息内容搜索和私聊双向查询
    - 加强 RTC 通话并发状态保护,去除重复接口错误提示
    - 支持成员永久禁言
    - 脱敏群消息 WebSocket 定向收件人字段
    - 更新 IM bug 台账,剩余 P1/P2 共 35 个
    YunaiV authored
     
    Browse Dir »

  • YunaiV authored
     
    Browse Dir »
  • - 校验群资料字段长度,并在同意好友申请时复验双方用户
    - 仅向双向有效好友推送资料更新通知
    - WebSocket 推送收件人去重,并忽略空用户编号
    - 群聊和私聊历史保留撤回消息记录
    - 校验群通话排除发起人后仍需存在被邀请人
    - 统一 IM 前端接口参数传递方式
    - 抽取全局 URL 安全打开工具,并复用到消息预览
    - 防止好友申请同意和拒绝按钮重复操作
    - 补充好友、消息、RTC、WebSocket 相关测试
    YunaiV authored
     
    Browse Dir »
  • - 拒绝匿名 WebSocket 握手,收紧 RTC 接听和入会忙线校验
    - 支持封禁群解散,管理端解散改为独立权限码
    - 增加个人表情数量配置、唯一约束和并发重复兜底
    - 修复 RTC 异常断开上报、视频远端音频和好友选择大列表渲染
    - 让个人表情添加失败透出后端业务错误
    - 流转 P0 bug 文档,并按产品取舍记录 apiSecret 默认值不强制拦截
    YunaiV authored
     
    Browse Dir »
  • - 校验敏感词、表情包、表情项状态枚举和批量删除数量上限
    - 限制私聊、群聊增量拉取 size 最小值
    - 收紧表情包项 Mapper 的 in 查询并在 Service 层处理空好友集合
    - 兼容统计聚合数值类型并明确当前有效群总数口径
    - 固定 LiveKit token 签名编码和 IM web 包说明
    - 修正群禁言权限错误码顺序并补充封禁、踢人、禁言回归测试
    - 流转 IM bug 文档并记录本轮不修项语义
    YunaiV authored
     
    Browse Dir »
  • - 清理好友重加时的 deleteTime 和历史备注残留
    - 清理群成员重入时的 quitTime、muteEndTime 和邀请来源残留
    - 允许封禁群成员主动退群,仍拦截已解散群
    - 校验群已读游标的消息归属和可见性
    - 收窄群消息置顶通知为专用展示对象并同步前端展示
    - 回填群成员单查接口的昵称和头像
    - 补充相关回归测试并流转 IM bug 状态文档
    YunaiV authored
     
    Browse Dir »