leefer
|
2f8a76da3f
|
Merge pull request 'docs: add project handover handbook' (#1) from agent/agent/1f4a1630f24c into main
Reviewed-on: http://192.168.200.36:3200/leefer/tongxunruanjian/pulls/1
|
2026-08-23 16:55:28 +08:00 |
|
 编码工程师andmultica-agent
|
6cd369f548
|
docs: add project handover handbook
Co-authored-by: multica-agent <github@multica.ai>
|
2026-08-23 14:28:07 +08:00 |
|
 编码工程师andmultica-agent
|
fa8584a73f
|
chore(scripts): 修正 fix-livekit-ports.sh 回退指令为从备份恢复
Co-authored-by: multica-agent <github@multica.ai>
|
2026-08-18 00:32:09 +08:00 |
|
 编码工程师andmultica-agent
|
5cc2685f03
|
fix(livekit): 统一信令/媒体端口为 17880/17881/17882,修复接听后双方网络错误
根因:LiveKit 的 config/livekit.yaml 媒体端口(7881/7882)与宿主实际映射(17881/17882)不一致,
信令走 17880 能通,但媒体被宣告到 7881/7882 连不上。
- config/livekit.yaml: port/tcp_port/udp_port -> 17880/17881/17882
- docker-compose.yaml: 容器侧端口与宿主侧一致(1788x),不再重映射
- .env.example: 默认端口改为 1788x 并注明三处需一致
- scripts/selftest.sh: LK_PORT 默认值改为 17880
- scripts/fix-livekit-ports.sh: 一键备份+对齐 .env+仅重建 livekit 的修复脚本
- README: 更新端口表、客户端接入参数与排障说明
Co-authored-by: multica-agent <github@multica.ai>
|
2026-08-18 00:31:08 +08:00 |
|
 编码工程师andmultica-agent
|
8391e6a7b4
|
docs: 阶段4跨端回归记录(2026-08-16,B-52修复后)
Co-authored-by: multica-agent <github@multica.ai>
v1.0.6-internal-test
|
2026-08-16 18:36:39 +08:00 |
|
 编码工程师andmultica-agent
|
a007e8f694
|
chore(mobile): 支持 --dart-define=AUTH_HOST 本地联调覆盖登录地址(默认不变)
Co-authored-by: multica-agent <github@multica.ai>
|
2026-08-16 16:54:38 +08:00 |
|
 编码工程师andmultica-agent
|
7eab7d5e23
|
chore: bump mobile 1.0.6 / PC 1.0.2 for B-52 fix packages
Co-authored-by: multica-agent <github@multica.ai>
|
2026-08-16 16:43:33 +08:00 |
|
 编码工程师andmultica-agent
|
c73e19c792
|
style(mobile): new_friends_screen 去掉无效空合并(dart analyze 清洁)
Co-authored-by: multica-agent <github@multica.ai>
|
2026-08-16 03:06:19 +08:00 |
|
 编码工程师andmultica-agent
|
b50ee2464c
|
fix(mobile): 新的同事页合并发出/收到申请并按方向渲染(视觉审查 🔴1/🔴2)
- 合并 getFriendApplicationListAsApplicant(我发出的)+ AsRecipient(我收到的),
按 fromUserID 是否等于自己判断方向
- 我发出的待处理 → 灰字「等待对方通过」且无操作按钮;我收到的待处理才渲染
「接受/拒绝」;已同意→已添加、已拒绝→已拒绝(视觉规范 5.1)
- 接受/拒绝按钮 shape 复用 theme.dart 新增的统一 8px Token(AppRadius.button),
不再用 Material3 默认胶囊圆角,页面内零魔法数值
- 窄屏(<360)按钮组/状态字换第二行右对齐不挤压姓名;非窄屏状态区固定 132px
双机实测:A(t2001)发→A 侧 AsApplicant 显示 handleResult=0(等待对方通过、无按钮);
B(t2002)收→AsRecipient 显示接受/拒绝按钮,点接受后双方 handleResult=1(已添加)
Co-authored-by: multica-agent <github@multica.ai>
|
2026-08-16 03:03:11 +08:00 |
|
 编码工程师andmultica-agent
|
c5516b8eb8
|
fix(mobile): 登录后等待会话同步完成再刷新(补 B-52 根因修复)
refreshConversations 在登录态守卫与 SDK 10009(登录未完成)间竞争:
- login 后立即刷新会拿到 10009;改为等待 onSyncServerFinish
(conversationsLoaded)后再拉取,最多 10s 超时兜底
- refreshConversations 内部对 10009 做 5 次短重试
验证:干净登录后 onSyncServerFinish -> getAllConversationList
返回 si_t1001_t1002(Test Two),会话列表不再停空态
Co-authored-by: multica-agent <github@multica.ai>
|
2026-08-16 02:37:10 +08:00 |
|
 编码工程师andmultica-agent
|
032882dbec
|
feat(pc-client): 通讯录入口整改 + 添加同事弹窗 + 发送错误提示(视觉规范 v1,B-52 施工 3/3)
- ContactSider:三个功能入口改为 20px 线性图标 + 36x36 浅蓝图标块 + 文字
(①新的同事②添加同事③我的群聊),行高 44,删掉 48px PNG 大图
- 新增 AddColleague 弹窗:工号 + 可编辑验证消息 + 五态(默认/校验失败/发送中/成功/失败)
- 会话栏搜索框右侧新增「+」入口,两处打开同一个弹窗
- useSendMessage:空接收方明确提示、SDK 错误码映射中文提示
- 申请状态文案对齐规范:等待对方通过/已添加/已拒绝
- global.scss 补 --search-bg / --chat-bg token
Co-authored-by: multica-agent <github@multica.ai>
|
2026-08-16 02:19:05 +08:00 |
|
 编码工程师andmultica-agent
|
12b0a1c943
|
feat(mobile,account-service): 统一发送服务 + 员工目录接口 + 好友申请五态/验证消息(B-52 施工 2/3)
- message_send_service:所有消息走统一门禁(登录/连接/空接收方/好友校验),
失败打印 SDK 原始 code 并映射中文提示,不再只吞异常
- chat_screen 接入统一发送服务,失败提示真实原因
- account-service 新增 GET /api/directory(登录用户可读启用员工,用于添加同事)
- add_friend_screen 增加可编辑验证消息(视觉规范 4.2)
- new_friends_screen 五态 + 窄屏(<360)按钮组换行不挤压姓名(视觉规范 5.3)
Co-authored-by: multica-agent <github@multica.ai>
|
2026-08-16 02:16:00 +08:00 |
|
 编码工程师andmultica-agent
|
d6ef6eb9a4
|
fix(mobile): 通讯录进会话空对方 + 登录后会话列表空态(B-52 无法发送消息根因)
- contacts_screen 用 f.friendUserID(SDK 恒为空)打开会话,导致建出
si__<空对方> 会话,所有消息发给空 userID 全部失败;改用 f.userID
- login 后补一次 refreshConversations:SDK 登录期间同步回调先于
loggedIn=true 触发,refreshConversations 因登录态守卫提前返回,
会话列表永久停在空态
双机实测:修复前 sendMessage userID='' 失败;修复后 A→B 消息
正常送达(B 端 onRecvNewMessage 收到 fixverify999)
Co-authored-by: multica-agent <github@multica.ai>
|
2026-08-16 02:14:13 +08:00 |
|
 编码工程师andmultica-agent
|
1a5045a4d5
|
docs: 员工使用说明(一页纸大白话)
Co-authored-by: multica-agent <github@multica.ai>
|
2026-08-16 01:08:12 +08:00 |
|
 编码工程师andmultica-agent
|
4cf1d4120a
|
fix(pc-client,account-service): B-61 试用前小修 - 头像取首字/群头像拼格/近似灰Token收敛/重置密码踢下线,构建 v1.0.1 安装包
Co-authored-by: multica-agent <github@multica.ai>
|
2026-08-16 01:07:53 +08:00 |
|
 编码工程师andmultica-agent
|
2fe8417900
|
fix(pc-client): PC 端统一手机端设计 Token 并补提交 src/components(B-52 视觉阻塞修复)
Co-authored-by: multica-agent <github@multica.ai>
|
2026-08-16 00:27:52 +08:00 |
|
KIMI
|
9074b5d1d7
|
fix: 修复 release 包消息组件永久无响应(B-58 用户手机登录卡死的根因)
根因两条,叠加导致 release 包 initSDK 永不返回:
1. AGP 9 默认开启 R8 混淆,OpenIM 插件用反射按字段名分发方法
(getDeclaredField("imManager")),混淆后抛 NoSuchFieldException 被静默吞掉,
Dart 侧 Future 永远 pending —— 表现为「消息组件初始化超时」
2. 插件 manifest 漏声明 ACCESS_NETWORK_STATE,onAttachedToEngine 里
registerDefaultNetworkCallback 抛 SecurityException,注册中断
修复:
- release 关闭 isMinifyEnabled / isShrinkResources(与官方样板工程配置一致)
- App manifest 补 ACCESS_NETWORK_STATE
已在模拟器上用同版本 SDK 最小复现 App 验证:修复前 release 必现卡死,
修复后 initSDK 返回 true、connect SUCCESS、login 成功。debug 包之前正常
(debug 不混淆),与此结论一致。版本号 1.0.5+6
|
2026-08-15 16:38:33 +08:00 |
|
KIMI
|
107325f6d1
|
mobile v1.0.4:初始化步骤打点,超时可区分卡在 存储目录/建目录/SDK内核;初始化超时放宽到 30s(B-58)
|
2026-08-15 16:07:03 +08:00 |
|
KIMI
|
a5b3a0e35f
|
mobile v1.0.3:登录卡死定位增强(B-58)
- SDK 初始化与登录拆成两步分别超时,提示语区分卡在哪一步
- 登录失败时读取并展示 OpenIM SDK 日志文件结尾(去 ANSI 颜色码),用户拍照即可回传诊断信息
- 模拟器实测(Android 15 x86_64):initSDK+login 对 192.168.200.11 全流程正常,排除服务端与代码逻辑问题
- libgojni arm64 已验证 16KB 页对齐,排除新机型兼容性问题
|
2026-08-15 15:42:31 +08:00 |
|
KIMI
|
e2cc59d8c1
|
mobile: APK 压缩打包 native 库(useLegacyPackaging),arm64 包从 52MB 降到 23MB,绕开附件平台 50MB 上传上限
|
2026-08-15 15:21:33 +08:00 |
|
KIMI
|
a8cb84f4c7
|
fix: 登录失败自动自检三个服务端口并展示 SDK 原始错误(B-58)
- IMService 记录 onConnectFailed 的 code/error(lastConnectError)
- SDK 未初始化成功时 login 直接抛错,不再无限等待
- 登录页失败提示下附自检结果:账号服务/消息接口/消息长连接 通不通
- 版本号 1.0.2+3
|
2026-08-15 15:12:20 +08:00 |
|
KIMI
|
f94c747aa4
|
pc-client: NSIS 快捷方式名改为畅联(打 Windows 安装包)
|
2026-08-15 15:03:47 +08:00 |
|
KIMI
|
3b5c76cac4
|
fix: 修复手机连不上服务器时启动页无限转圈(B-58)
- 启动页先读本地凭证:无凭证(首次打开)直接进登录页,不再先等 SDK 初始化
- SDK init/login 加 20s 超时;init 用共享 Future 防止超时后重复触发 initSDK
- 登录页对 IM 登录超时给出明确提示(确认手机连着公司内网 WiFi)
- 修复 flutter create 模板遗留的 widget_test(引用不存在的 MyApp),改为登录页渲染冒烟测试
- 版本号 1.0.1+2
|
2026-08-15 14:54:52 +08:00 |
|
KIMI
|
d481e1bc2f
|
mobile: 提交 android/ios 平台脚手架与打包配置(B-58)
- flutter create 生成的 android/ ios/ 脚手架入库,服务器/使用者无需再装 Flutter
- AndroidManifest:补 INTERNET/录音/存储权限,应用名改「畅联」,开 usesCleartextTraffic(内网 http/ws)
- iOS Info.plist:麦克风/相册用途说明、ATS 放行内网明文、显示名「畅联」
- gradle:阿里云镜像优先(本网络 maven.google.com 不可达);统一 Java/Kotlin 编译目标 17;
抬升 livekit_client compileSdk 到 36 以满足 flutter_webrtc 的 AAR 校验
- README 更新为「直接打包」流程
|
2026-08-15 13:22:25 +08:00 |
|
KIMI
|
7ce40e356f
|
新增 pc-client:畅联 PC 端工程(Electron+React,按确认效果图改造,B-59)
- 基于 openim-electron-demo 改造:工号+密码登录(自研账号服务)、会话列表/聊天窗/通讯录界面重做
- 文字/语音/文件/图片消息、文件拖拽发送、表情面板、一对一语音通话(LiveKit)
- RTC 令牌对接账号服务带鉴权版 /api/rtc_token(Bearer imToken + {room,identity})
- account-service: CORS Allow-Headers 补 authorization(浏览器/渲染进程跨域调 rtc_token 需要)
- 附本地 mock 账号服务(scripts/mock-account-server.js)与截图联调脚本
|
2026-08-09 09:11:06 +08:00 |
|
KIMI
|
b95159f7eb
|
新增 mobile/:畅联手机端 Flutter 工程(B-58)
- 登录:工号+密码走 account-service /api/login,自动登录、被踢下线回登录页
- 消息:会话列表(未读角标/免打扰/时间)、单聊群聊、文字/语音/图片/文件消息、失败重发、历史分页
- 通讯录:新的同事/我的群聊入口、按部门分组(好友 ex 字段)、搜索
- 通话:一对一语音通话(信令走 OpenIM 自定义消息 + LiveKit,token 走 /api/rtc_token)
- 界面按确认效果图 m1/m2/m3 实现,主色 #3B87F5,四态视图齐全,无英文残留
|
2026-08-09 01:28:12 +08:00 |
|
KIMI
|
bef4ffcf6f
|
account-server 新增 /api/rtc_token:用 IM token 换 LiveKit 进房 token(手机端语音通话用,B-58)
|
2026-08-09 01:28:01 +08:00 |
|
KIMI
|
de67af0f6b
|
清理误提交的本地测试残留文件
|
2026-08-09 00:54:59 +08:00 |
|
KIMI
|
07f018c280
|
管理页新增:员工删除功能 + 直接选择 CSV 文件导入(不用复制粘贴)
- server.js 新增 POST /api/admin/delete:移除本地账号并逐平台 force_logout
- admin.html 员工行新增删除按钮(带确认);导入区新增选择文件导入,自动去 BOM
|
2026-08-09 00:54:52 +08:00 |
|
KIMI
|
dfcecaaff6
|
管理页批量导入处新增模板下载按钮(CSV 带 BOM,Excel 直接打开不乱码)
|
2026-08-09 00:47:18 +08:00 |
|
KIMI
|
0f72fce82b
|
新增 account-server:自研工号+密码登录体系(B-60)
- account-service/:零依赖 Node 单文件服务 + 极简管理页 + Dockerfile
- 员工账号管理员导入/新增/停用/启用/重置密码,JSON 文件存储,密码 scrypt 加盐哈希
- 登录校验后调 OpenIM REST 自动开户并换取 IM token;停用即拒登并逐平台 force_logout
- 并入 docker-compose(端口 10010,管理口令 ACCOUNT_ADMIN_TOKEN)
- 已对 192.168.200.11 真实环境端到端自测:导入 50 人、双端登录、停用拒登、重置密码全部通过
|
2026-08-09 00:39:02 +08:00 |
|
KIMI
|
d7b34689b6
|
fix: LiveKit 自测改发真实音频轨(--publish ogg) + 被叫显式 --auto-subscribe(cli v2 默认 false); 内置 30s opus 测试音频
|
2026-08-09 00:01:03 +08:00 |
|
KIMI
|
efd8becd3b
|
livekit 三个宿主端口全部可配置(带默认值); LIVEKIT_API_SECRET 默认加长到 42 字符; README 同步
|
2026-08-08 23:30:03 +08:00 |
|
KIMI
|
6dd1d4a245
|
fix: selftest 所有 API 请求补 operationID 头(OpenIM 强制校验)
|
2026-08-08 22:49:51 +08:00 |
|
KIMI
|
39b21de4c6
|
selftest 支持自定义 LIVEKIT_PORT; README 补充 7880 端口冲突处理
|
2026-08-08 22:36:06 +08:00 |
|
KIMI
|
33fa2339e2
|
OpenIM + LiveKit 内网测试环境一键部署包
- docker-compose: openim-server v3.8.3-patch.12 + mongo/redis/etcd/kafka/minio + livekit v1.13.5
- 按约束移除 openim-chat(GPLv3) 及依赖它的 web/admin 前端; 监控组件收进 profile m
- scripts/deploy.sh 一键部署, scripts/selftest.sh 自测(注册/登录/文字/语音/文件/一对一通话), scripts/restart.sh 重启
- README: 部署记录(服务器要求/端口表/运维/接入参数)
|
2026-08-08 22:07:55 +08:00 |
|