YunaiV
|
00f273ca77
|
fix(im):加固好友、群成员与群消息边界流程
- 清理好友重加时的 deleteTime 和历史备注残留
- 清理群成员重入时的 quitTime、muteEndTime 和邀请来源残留
- 允许封禁群成员主动退群,仍拦截已解散群
- 校验群已读游标的消息归属和可见性
- 收窄群消息置顶通知为专用展示对象并同步前端展示
- 回填群成员单查接口的昵称和头像
- 补充相关回归测试并流转 IM bug 状态文档
|
2026-05-24 18:22:07 +08:00 |
YunaiV
|
72d8c499a4
|
✨ feat(im): 修一批管理端统计与成员选择器细节
- 消息趋势 / 用户趋势图表加 loading 态(接口错误由全局拦截器统一提示)
- 群成员选择器 grid 模式补右上角 × 移除按钮
- 统计接口 6 个 API 补全返回值泛型
|
2026-05-22 20:15:15 +08:00 |
YunaiV
|
38ecc4f40c
|
✨ feat(im): 修一批前端性能 / 跨账号防御与侧边栏占位
- friendStore.getFriend 改 friendMap 索引,高频反查从 O(N) 降到 O(1)
- faceStore 加 storeEpoch,切账号后旧表情拉取 / 增删响应不再回写新账号
- friendStore 写路径统一补 epoch 守卫(loadFriendInfo / 单查申请 / 删好友 /
免打扰 / 置顶 / 拉黑 / 备注),切账号瞬间的旧响应不污染新账号好友状态
- 私聊侧边栏 friend 缺失时给加载占位,替代原本的空白抽屉
|
2026-05-22 08:38:56 +08:00 |
YunaiV
|
9893aedbb2
|
✨ feat(im): 修一批 WS 健壮性与跨账号防御
- WS 重连改指数退避(1→2→4→8→16→30s + jitter),频率封顶不再固定 3s 形成惊群
- onerror 不再调 reconnect,主动 close 让 onclose 成为唯一重连入口,避免双触计数 +2
- 私聊 / 群消息入口加防御层,senderId / receiverId / 定向 receiverUserIds 不含当前用户的帧直接丢弃
- useMessagePuller 引入 epoch + userId 双重快照,离开 IM / 切账号时旧 pull 写入前自检跳出
- cancelPull 同步清 WS messageBuffer,防止下次进 IM 把旧 session 缓冲帧回放进新 store
|
2026-05-21 20:02:44 +08:00 |
YunaiV
|
5a983bb1eb
|
✨ feat(im): 修一批上传安全与群聊交互问题
- 限制消息媒体上传大小,并让视频独立上传路径复用同一校验
- 禁止发送可执行 / 脚本类文件扩展名
- 切账号时废弃好友 store 未返回请求
- 多选转发过滤撤回 / 系统类消息
- 邀请群成员时前端拦截人数上限
- 允许群管理员 @ 所有人
|
2026-05-21 17:31:46 +08:00 |
YunaiV
|
fead282395
|
✨ feat(im): 修一批正确性 / UX 细节:群名 trim 空、敏感词 / 封禁理由空白校验、默认群名计入创建者、ack 后重算会话摘要、文本重试复用 clientMessageId 防重复
|
2026-05-21 15:57:46 +08:00 |
YunaiV
|
73aa578c9b
|
✨ feat(im): 修管理端 3 处:群消息 atUserNicknames 类型允许 null、移除前端无效的「消息内容」查询入口、表情包宽高加表单校验
|
2026-05-21 15:10:34 +08:00 |
YunaiV
|
7a236b4378
|
✨ feat(im): 修 L-13/L-16:PagedScroller 加 itemKey 防索引乱位、私聊 Message.targetId 改对端 userId、抽 getPrivateMessagePeerId 收敛 4 处 peer 计算
|
2026-05-21 14:50:42 +08:00 |
YunaiV
|
1015423431
|
✨ feat(im): 修一批 L 危:window.open 加 noopener、@ 浮层箭头方向跟随定位、置顶展开切群重置、加黑名单取消静默、菜单负坐标兜底、群选择回显跨页补查
|
2026-05-21 14:25:21 +08:00 |
YunaiV
|
3949e0c89f
|
fix(im): 修复 IM 前端批量 UX 状态问题
|
2026-05-21 13:25:55 +08:00 |
YunaiV
|
29b257b8cd
|
✨ feat(im): 修一批状态串扰:群申请列表防同群 WS 推送乱序覆盖、群免打扰同步会话、跨端群已读清 @、联系人 selection 跟随 store、好友申请按钮并发锁
|
2026-05-21 11:11:36 +08:00 |
YunaiV
|
1e08e9fbca
|
✨ feat(im): 修 IM 切账号串号:loadConversations 开头清状态、加 loadedUserId 守门跨账号同 key 误激活、新增 clear() 对齐 friend/group store
|
2026-05-21 10:06:52 +08:00 |
YunaiV
|
69653163b0
|
✨ feat(im): 修 IM 历史消息切会话串号:loadEarlier 用 getConversationKey 守卫,watch(conversation) 重置分页态
|
2026-05-21 09:05:44 +08:00 |
YunaiV
|
8468d9bf4d
|
✨ feat(im): 修 WebSocket 重复连接:connect 入口检测旧 socket 状态复用 / 重建,disconnect 解绑全部 handler
|
2026-05-21 08:41:44 +08:00 |
YunaiV
|
f7cda1fc4e
|
✨ feat(im): 修一组细节:会话 silent 跟随新消息同步、合并末尾刷摘要 + 群 @ 标记、录音 1s 下限、邀请 reload 透 friendIds、pull 游标取最大 id
|
2026-05-21 01:13:29 +08:00 |
YunaiV
|
b63492199a
|
✨ feat(im): 对齐微信:免打扰会话改小红点、消息 Tab 二次点击滚动到下一未读、移除工具栏 hover tooltip
|
2026-05-20 23:57:18 +08:00 |
YunaiV
|
c6b6e723e0
|
✨ feat(im): 将 style 尽量多的改成 unocss,ai 友好
|
2026-05-20 19:38:14 +08:00 |
YunaiV
|
0a07d4a2e4
|
✨ feat(im): 将 style 尽量多的改成 unocss,ai 友好
|
2026-05-20 13:56:46 +08:00 |
YunaiV
|
fc812aef26
|
✨ feat(im): 增加频道消息的已读状态
|
2026-05-20 01:00:46 +08:00 |
YunaiV
|
30b963149a
|
✨ feat(im): 修复频道消息的引用展示不对;
|
2026-05-19 23:57:46 +08:00 |
YunaiV
|
9a36cfe933
|
✨ feat(im): 继续优化频道的各种代码(v4)优化卡片样式
|
2026-05-19 23:52:11 +08:00 |
YunaiV
|
94e5fc00ac
|
✨ feat(im): 继续优化频道的各种代码(v3)
|
2026-05-19 22:06:38 +08:00 |
YunaiV
|
2442a01e48
|
✨ feat(im): 继续优化频道的各种代码(v2)
|
2026-05-19 17:48:35 +08:00 |
YunaiV
|
bfd407d75b
|
✨ feat(im): 继续优化频道的各种代码,
|
2026-05-19 17:18:48 +08:00 |
YunaiV
|
b6d123ac72
|
✨ feat(im): 增加频道的检查
|
2026-05-19 14:18:08 +08:00 |
YunaiV
|
5ebbbf7499
|
✨ feat(im): 新增频道消息的前端实现
|
2026-05-19 13:26:32 +08:00 |
YunaiV
|
b52ad0c34b
|
refactor: 前端 IM API 移除 src/api/im/home 中间目录,face / friend / group / message / rtc 直接放在 src/api/im 下
|
2026-05-18 13:20:43 +08:00 |
YunaiV
|
5c2ee259a6
|
✨ feat(im): 管理后台新增通话记录只读查询(列表 / 详情 / 参与者);im_rtc_participant 增加 call_id 关联 im_rtc_call.id
✨ feat(im): 管理后台新增通话记录页面(列表 + 详情抽屉 + 参与者表),消息预览补 RTC_CALL_START / END 文案
|
2026-05-18 12:37:51 +08:00 |
YunaiV
|
8329a6a885
|
✨ feat(im): 振铃超时 Job 单人粒度标 NO_ANSWER + 独立 NO_ANSWER 信令推送
✨ feat(im): 处理 RTC_CALL(NO_ANSWER) 信令;私聊气泡显示「未接听」
|
2026-05-18 09:45:32 +08:00 |
YunaiV
|
f58d1d88c8
|
✨ feat(im): 振铃超时 Job 单人粒度标 NO_ANSWER + 独立 NO_ANSWER 信令推送
✨ feat(im): 处理 RTC_CALL(NO_ANSWER) 信令;私聊气泡显示「未接听」
|
2026-05-18 08:03:52 +08:00 |
YunaiV
|
12a41da241
|
✨ feat(im): 修复摄像头关闭后画面卡在最后一帧(pickStream 短路 mute 状态)
|
2026-05-18 00:26:14 +08:00 |
YunaiV
|
ae7f3a8bc5
|
✨ feat(im): 群通话本端拒绝 / 挂断后立即从胶囊条移除自己,无需等后端推回
|
2026-05-18 00:12:28 +08:00 |
YunaiV
|
b9b085f1ee
|
✨ feat(im): 群通话本端拒绝 / 挂断后立即从胶囊条移除自己,无需等后端推回
|
2026-05-18 00:00:53 +08:00 |
YunaiV
|
dc318c8e75
|
✨ feat(im): 通话事件接入会话列表预览(私聊补 START 入消息流);文案统一「语音通话」
|
2026-05-17 22:26:07 +08:00 |
YunaiV
|
6cd49f0ce4
|
✨ feat(im): 修复主叫取消通话时摄像头偶发未关闭的竞态
|
2026-05-17 21:02:54 +08:00 |
YunaiV
|
85207bec98
|
✨ feat(im): 群通话发起/接听时主动同步胶囊条,避免依赖 webhook 延迟
|
2026-05-17 20:27:43 +08:00 |
YunaiV
|
5d222bdf48
|
✨ feat(im): 通话窗扬声器开关 + 按钮关闭态统一深色样式 + 群通话支持刷新后重新加入
- useLiveKitRoom 增加 speakerEnabled 状态 + setSpeakerEnabled;audio 元素 :muted 联动,实现扬声器实际开关
- mic / speaker / camera / 屏幕共享 4 个按钮关闭态统一 bg-white/15 深色(之前一直 bg-white 像「开」)
- speaker / camera / 屏幕共享 关闭态 icon 借用 tabler:volume-off / video-off / device-laptop-off 显斜线(ant-design 缺 muted 变体)
- RtcGroupCallBanner 修复刷新后无法重新加入:按钮文案改为「已在通话中 / 重新加入 / 加入」三态;按钮文字色锁定深色防暗色主题不可见
- RtcCallIncoming 对齐微信样式:右上角小条 + 横排(头像 / 名 / 按钮);群聊带「通话成员」头像行
- RtcCallRunning UnoCSS 重写 + 接收 isGroup prop(去 conversationType 派生)
- RtcCallParticipantTile UnoCSS 重写 + speakerEnabled 透传静音
- 注释 / UI 文案半角省略号 → 全角……;watcher 参数 hidden → suppressTick
|
2026-05-17 17:37:37 +08:00 |
YunaiV
|
03d0ce800d
|
✨ feat(im): 优化群邀请的 running 的交互
|
2026-05-17 16:46:10 +08:00 |
YunaiV
|
68922ebf02
|
✨ feat(im): 优化群邀请的 incoming、inviting 的交互
|
2026-05-17 10:36:01 +08:00 |
YunaiV
|
e629ac3825
|
✨ feat(im): 增加群 call title(进度)情况
|
2026-05-16 21:39:44 +08:00 |
YunaiV
|
8b4351e4f3
|
✨ feat(im): 增加群邀请电话的 dialog
|
2026-05-16 21:39:23 +08:00 |
YunaiV
|
b455ce4949
|
✨ feat(im): 优化 rtcStore 的命名
|
2026-05-14 22:15:35 +08:00 |
YunaiV
|
4a811fb0bb
|
✨ feat(im): 评审下 rtcStore 的实现
|
2026-05-14 17:16:46 +08:00 |
YunaiV
|
e579a4de13
|
✨ feat(im): 优化 rtc 整体弹窗界面
|
2026-05-14 09:44:39 +08:00 |
YunaiV
|
a170ae37ab
|
✨ feat(im): 优化消息的 format 相关的逻辑,从 user 抽到 message 工具类里,更加统一
|
2026-05-13 23:27:02 +08:00 |
YunaiV
|
841d2cb763
|
✨ feat(im): 统一 im 的 api 风格,保持一致性
|
2026-05-13 22:58:09 +08:00 |
YunaiV
|
18e5c97bf3
|
✨ feat(im): 将后端的 roomName 和 callId 融合,简化字段和逻辑(一致性更好、概念更简洁)
|
2026-05-12 20:29:08 +08:00 |
YunaiV
|
38cb980ce4
|
✨ feat(im): 完善 rtc 的后端代码逻辑,各种代码风格的优化
|
2026-05-12 13:17:04 +08:00 |
YunaiV
|
750f25410c
|
✨ feat(im): 基于 livekit 构建 im 通话(语音聊天、视频聊天、共享桌面)v0.1:推进中
|
2026-05-09 15:23:07 +08:00 |
YunaiV
|
e12596ad7c
|
♻️ refactor(im): 移动 IM 相关 API 引用至新路径
|
2026-05-09 01:25:03 +08:00 |