Commit Graph
67 Commits
Author SHA1 Message Date
2a817e77d8 docs: 记录 B-197/B-198 跨端构建修复与验收
补记 Dart/Gradle/锁文件提交 SHA、debug/release 与 PC 重构建命令、产物 SHA256、启动冒烟、未测项与回退。不宣布运行回归通过。

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: multica-agent <github@multica.ai>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 06:16:08 +08:00
c150033b39 chore(pc-client): 同步 package-lock 根版本号为 1.0.2
与 package.json 的 1.0.2 对齐。npm install 只回写锁文件顶层 version,无依赖树或包升级。

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: multica-agent <github@multica.ai>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 06:15:22 +08:00
5160c8ec87 chore(mobile-next): Android Gradle 堆改为 4096M
-Xmx1536M 无法完成 release 构建(Java heap space)。本机以 -Xmx4096M 真实打通 debug/release,作为当前项目稳定值入库。

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: multica-agent <github@multica.ai>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 06:15:21 +08:00
1767cf2547 fix(mobile-next): 修复资料页 FeatureFlags 导入与图片预览 const
资料页相对导入少一层导致 FeatureFlags 无法解析;大图预览 Center 使用了非 const 的 Styles.c_0089FF。仅改这两处编译阻塞,不扩大格式化。

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: multica-agent <github@multica.ai>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 06:15:21 +08:00
2c81a11e03 docs: 记录 B-189 语音返工提交与回退命令
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-08-20 04:22:18 +08:00
15d7f1935e feat(mobile-next): 补齐语音未听红点、录音浮层与 50-60s 时限
按 B-187 打回修复 4.3/4.4 阻塞项,输入框与按住说话改用 searchBg。

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-08-20 04:22:06 +08:00
e40ece184b docs: 记录 B-188 PC 会话置顶返工检查与回退
补记修复提交 SHA、npm run build / tsc 结果、上游存量错误和未实测项。不宣布整批通过。

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-08-20 04:19:14 +08:00
d9d5853f73 fix(pc-client): 会话置顶改用 SDK setConversation
@openim/electron-client-sdk 无 pinConversation,右键置顶会 TS2551 且运行时 TypeError。改走已有的 setConversation,删除路径不动。

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-08-20 04:18:42 +08:00
a4d21ef367 docs: 记录 B-185 第二批提交、越界核对与未验证项
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-08-20 03:51:55 +08:00
a44537da4e feat(pc-client): 第二批登录、会话、聊天与添加同事界面按规范收口
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-08-20 03:51:28 +08:00
d1657ea29f feat(mobile-next): 断网横幅恢复后收起,底栏标签改用 12px
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-08-20 03:51:27 +08:00
26622676ed feat(mobile-next): 工号查询防抖、开关接入,资料页不再把工号当手机号
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-08-20 03:51:27 +08:00
3b87812db8 feat(mobile-next): 聊天输入区、语音气泡与大图按规范重排
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-08-20 03:51:27 +08:00
49b346d375 feat(mobile-next): 通讯录按部门分组并补齐职务行与申请窄屏
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-08-20 03:51:27 +08:00
7f131457f7 feat(mobile-next): 会话页接全局搜索、精简加号菜单并改为长按操作
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-08-20 03:51:27 +08:00
ce2a3ae059 feat(mobile-next): 补齐状态线性图标与 toast/断网横幅动效 Token
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-08-20 03:51:26 +08:00
fb58da670b docs: 补记 B-171 小回归两提交与检查结果
记录断网横幅 SafeArea、添加同事独立 Obx 的 SHA、analyze 结果与回退命令。

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-08-20 03:22:18 +08:00
e355b89204 fix(mobile-next): 添加同事页工号提示与发送按钮改回独立 Obx
仅改 add_colleague_page.dart:directoryHint 与 sending 各用独立 Obx 追踪,去掉嵌套 Builder。

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-08-20 03:21:57 +08:00
26d070fbaf fix(mobile-next): 断网横幅加顶部 SafeArea,避免叠进状态栏
仅改 home_view.dart:CompanyOfflineBanner 外包 SafeArea(bottom: false),横幅高度仍为 36。

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-08-20 03:21:47 +08:00
d9690168f8 docs: 记录 B-171 视觉返工提交、特批窗口常量与构建结果
更新验收文档:五项独立返工 SHA、electron 仅两常量差异、品牌历史遗留裁决、回退命令。

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-08-20 03:00:26 +08:00
63520a6488 fix(pc-client): 主窗口下限改为 1080×680(B-171 特批仅两常量)
仅改 pc-client/electron/main/windowManage.ts 的 minWidth/minHeight。
electron/ 其余文件仍冻结。

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-08-20 02:52:33 +08:00
2b2c2d28a4 fix(mobile-next): 把加载、失败、断网接到真实 SDK 与目录请求
会话列表、通讯录、好友申请、添加同事页覆盖 CompanyLoadingView/CompanyFailView;
主页断网横幅跟随 IMSdkStatus.connectionFailed。不伪造状态。

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-08-20 02:52:24 +08:00
092f513708 fix(mobile-next): 登录失败改为顶部 toast,2 秒后自动消失
改 company_login_page.dart 与 company_login_logic.dart。
保留「工号或密码不正确」「网络异常,请稍后重试」;去掉按钮下方常驻错误字。

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-08-20 02:49:48 +08:00
87a5930906 fix(mobile-next): 会话姓名改为 16sp,字号只用 12/14/16/18
仅改 conversation_view.dart 会话姓名,去掉 17sp,改用 AppFont.body。

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-08-20 02:49:41 +08:00
da9152d36b fix(mobile-next): 未读角标改为最小 18×18、白字 12、圆角 9 并去掉重阴影
仅改 unread_count_view.dart。默认尺寸 18,数字 12,圆角 9;删除三层 BoxShadow。

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-08-20 02:49:21 +08:00
5e098a5d32 docs: 记录 B-171 第一批构建、越界比对与回退
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-08-20 02:30:10 +08:00
0589623075 feat(pc-client): 在可改目录按 v2 重整 Token、侧栏宽度与好友申请五态
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-08-20 02:30:10 +08:00
60b6590409 feat(mobile-next): 工号登录与目录薄适配,并完成登录/会话/聊天/通讯录第一批界面
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-08-20 02:30:10 +08:00
d787c0a477 feat(mobile-next): 建立 v2 Token 唯一入口、内网地址与功能开关
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-08-20 02:30:09 +08:00
45d91684bc docs: 修正 B-149 上游差异表、2c9dab1 回退范围与 SHA256 当次产物说明
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-08-20 02:11:04 +08:00
编码工程师andmultica-agent e26abad4e1 docs(mobile-next): 建立 docs/upstream 与 docs/acceptance,回退引用对齐本分支提交
- docs/upstream/baseline.md: 上游来源/固定版本/许可证原文位置/工具链锁定/差异
- docs/upstream/build-and-rollback.md: 构建命令、本机实测 SHA256、逐提交回退方法
- docs/acceptance/sdk-compat-gate.md: hotfix.12 兼容冒烟矩阵(初始化/登录/会话同步/断线重连/好友/群组/文字双向/图片/文件/语音)
- docs/acceptance/pc-boundary.md: PC 端只读核对的可改边界封存
- docs/acceptance/visual-spec-token-entry.md: 视觉规范 v2 唯一来源与 Token 入口预留
- 修正导入/验证文档中回退引用为 B-95 分支实际提交

Co-authored-by: multica-agent <github@multica.ai>
2026-08-19 15:55:45 +08:00
编码工程师andmultica-agent 2c9dab160e feat(mobile-next): 接入 flutter_openim_sdk 3.8.3+hotfix.12 并完成核心能力实测
- 仅升级 flutter_openim_sdk 3.8.3+3 → 3.8.3+hotfix.12(pubspec.yaml、openim_common、openim_live、pubspec.lock)
- debug/release 双构建成功,核对包名/版本/签名/SHA256
- 双测试账号 t1001/t1002 实测:初始化、登录、会话同步、断线重连、好友/群组、
  文字/图片/文件/语音双向收发,全部通过(服务端落库复核)
- 验证与回退说明见 docs/mobile-next-hotfix-sdk-verification.md

Co-authored-by: multica-agent <github@multica.ai>
2026-08-19 15:24:37 +08:00
编码工程师andmultica-agent 8046ec7483 feat(mobile-next): 导入官方 openim-flutter-demo 固定基线 3.8.3-patch.3 并完成双构建
- 上游: github.com/OpenIMSDK/openim-flutter-demo tag 3.8.3-patch.3
  commit b3dfdb1e8aaeaaf6f0793e10cadd20d5c184a31f
- 并行目录 mobile-next/ 原样导入(含 LICENSE),不覆盖现网 mobile/
- 锁定 Flutter 3.24.5 / Dart 3.5.4 / JDK 17 / Gradle 7.6.3 / AGP 7.3.1
- 实测 Android debug 与 release 构建均成功(见 docs/mobile-next-baseline-import.md)
- 本提交可单独回退:git revert 1db1229(重写前)

Co-authored-by: multica-agent <github@multica.ai>
2026-08-19 15:24:33 +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