docs: hand over Jinxunda status and next steps
Co-authored-by: multica-agent <github@multica.ai>
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
# 公网测试部署说明(jxd.jinniu.ink)
|
||||
|
||||
> **已过时,仅留档备查(2026-09-23)。** 当前 `154.37.220.158` 已由系统 Nginx 统一承接 80/443,`jxd-edge` 已移除。本页下方 edge 启停、证书和回滚步骤不能直接用于现网;先读 [最新交接](../../docs/项目交接-2026-09-23.md),核对现网配置与未合入 `main` 的部署变更,再制订新操作方案。
|
||||
|
||||
施工员本卡**不执行**本节命令、不 SSH 改测试机。由总工审核通过后再部署。
|
||||
|
||||
目标机:已解析到 `jxd.jinniu.ink` 的香港测试服务器。数据目录仍是仓库下的 `components/` 与 `data/`,回滚不删数据。
|
||||
|
||||
+6
-6
@@ -1,10 +1,10 @@
|
||||
# 畅联项目手册
|
||||
# 金讯达项目手册
|
||||
|
||||
这是项目的交接首页。新接手的人先按下面顺序阅读,不要只凭旧文档或聊天记录判断项目状态。
|
||||
|
||||
1. 先读 [项目需求](项目需求.md):弄清楚项目要做什么、不能碰什么。
|
||||
2. 再读 [最新进度](最新进度.md):确认代码已经做到哪里、哪些结论已经被验证。
|
||||
3. 最后读 [任务清单](任务清单.md):从“正在做”和“还没安排”里选择下一件事。
|
||||
1. 先读 [2026-09-23 项目交接](项目交接-2026-09-23.md):最新部署状态、风险和接下来的计划。
|
||||
2. 再读 [项目需求](项目需求.md):弄清楚项目要做什么、不能碰什么。
|
||||
3. [最新进度](最新进度.md)和[任务清单](任务清单.md)是精简索引;旧验收记录仅供追溯。
|
||||
|
||||
## 仓库里有什么
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
- `pc-client/`:电脑端,使用 Electron,Windows 是当前优先支持的平台。
|
||||
- `account-service/`:公司账号服务,负责工号密码登录、管理员导入和管理名单。
|
||||
- `docker-compose.yaml`、`config/`、`scripts/`:OpenIM、语音服务和内网环境的配置及维护脚本。
|
||||
- `deploy/public/`:香港测试机 `jxd.jinniu.ink` 的公网反代、证书和回滚说明(由总工部署)。
|
||||
- `deploy/public/`:早期公网部署资料。旧 edge 操作不适用于当前系统 Nginx 统一入口,不要直接执行。
|
||||
- `docs/`:本手册和以前留下的验收、回归、使用说明。
|
||||
|
||||
## 更新规矩
|
||||
@@ -24,4 +24,4 @@
|
||||
- 任务状态变化时,更新 `任务清单.md` 的三栏,并写明依据。
|
||||
- 旧文档不能删除;如果它和当前事实不一致,在旧文档开头加“已过时,仅留档备查”提示,再在本目录写新版。
|
||||
|
||||
手册只记录已经确认的事实。拿不准的内容要写成“待确认”,不要当成已完成。
|
||||
手册只记录已经确认的事实。拿不准的内容要写成“待确认”,不要当成已完成。
|
||||
|
||||
+11
-27
@@ -1,33 +1,17 @@
|
||||
# 任务清单
|
||||
|
||||
更新时间:2026-08-31。任务状态以当前仓库和项目约束为准;没有证据的事项不写成“已完成”。
|
||||
更新时间:2026-09-23。旧协调卡 HEL-4 及相关子卡收口后,以 [项目交接](项目交接-2026-09-23.md)为新任务依据。旧卡关闭不等于整个项目已验收。
|
||||
|
||||
## 正在做
|
||||
## 已交付
|
||||
|
||||
无。安卓自适应图标已按 66dp 安全区重做,版本 `1.0.9+10`,等待审核。
|
||||
HEL-294 员工管理页接口路径与英文报错热修:代码和本地自测已完成,等待部署到香港测试环境后由管理员在公网 `/account/` 页面验收。
|
||||
- Flutter 安卓端、Electron Windows 端、账号服务、OpenIM/LiveKit 集成与历史跨端回归记录。
|
||||
- 安卓名称/图标/包名调整,极光和华为构建配置接入,测试包生成。
|
||||
- 香港测试机系统 Nginx 统一入口;金讯达网页并入统一门户。网页单人登录、退出及入口可访问性已有记录。
|
||||
|
||||
## 已做完
|
||||
## 下一步新开独立任务
|
||||
|
||||
- 建立手机端 Flutter 工程和 Windows 优先的 Electron 电脑端工程。
|
||||
- 接入公司工号加密码登录,以及管理员导入、管理员工账号的账号服务。
|
||||
- 完成聊天、通讯录、同事申请、语音消息、文件/图片消息和一对一语音通话的相关代码接入。
|
||||
- 完成一轮手机与电脑的跨端回归记录;其中已通过的项目见旧档 `phase4-regression-2026-08-16.md`。
|
||||
- 将 LiveKit 的信令/媒体端口统一为 `17880`、`17881`、`17882`,并提供可重复执行的修复脚本。
|
||||
- 建立本目录四份交接手册,并为三份过时旧说明加上明确的留档提示。
|
||||
- 手机端应用标识统一为 `cn.solsum.jinxunda`。
|
||||
- 安卓极光 SDK 初始化、通知权限、alias 回传、点击处理,以及 OpenIM 离线推送所需的服务端配置入口(Master Secret 从服务器文件注入)。
|
||||
- 公网反向代理 / HTTPS / WSS / 防火墙与回滚说明(配置进仓库;香港测试环境已由总工部署)。
|
||||
- 公网 overlay 用 `!override` 覆盖内部端口绑定;部署脚本校验 `SERVER_IP` 非空。
|
||||
- 构建机本地放入华为 `agconnect-services.json`(不入库);AGConnect 插件映射/版本已按 AGP 9 补齐,Gradle 能识别包名 `cn.solsum.jinxunda`。
|
||||
- 升级 `livekit_client` 至 `2.10.0`,在 Flutter 3.47 / Dart 3.13 下打出整包安卓 release APK。
|
||||
- 安卓桌面名称改为「金讯达」,按正式参考图生成各密度与自适应图标;随后按真机裁切问题把前景缩进 66dp 安全区,版本提升到 `1.0.9+10` 并重新出包。
|
||||
- HEL-294:管理页按部署前缀请求账号接口,并给 401/404/500/空响应/非 JSON 提供中文兜底(代码已合入分支,公网部署前现网仍会报英文错)。
|
||||
|
||||
## 还没安排
|
||||
|
||||
- 用真机验证华为厂商通道到达,以及一对一语音通话。
|
||||
- 组织真实手机和 Windows 电脑的回归:重点确认文件传输、一对一语音通话和杀进程后的离线通知。
|
||||
- 明确手机正式签名的负责人和安全保管方式;不能把签名密钥提交进仓库。
|
||||
- 获得负责人同意后,再导入真实员工名单并验证账号管理流程。
|
||||
- 不接入小米、OPPO、vivo、荣耀、魅族、FCM 或苹果推送(本阶段明确不做)。
|
||||
1. 审核并同步现网 Nginx 配置与仓库代码,补齐金讯达证书自动续期及回滚演练(原 HEL-554;到期风险优先)。
|
||||
2. 两名真实员工跨安卓、Windows、网页验收消息、附件与一对一语音通话;华为真机验收离线推送。
|
||||
3. 确定账号导入和原生端门户登录策略,准备安卓正式签名及安全保管。
|
||||
4. 根据资质进展另行接其他安卓厂商推送与 iOS。
|
||||
5. 如仍需 `solsum.cn` 根域名 HTTPS,另行处理证书域名不匹配(原 HEL-553;不属于金讯达当前域名接入阻塞)。
|
||||
|
||||
+6
-40
@@ -1,43 +1,9 @@
|
||||
# 最新进度
|
||||
|
||||
更新时间:2026-08-31。以下内容依据当前仓库代码整理。
|
||||
更新时间:2026-09-23。详细事实、证据边界和下一步见 [项目交接](项目交接-2026-09-23.md)。
|
||||
|
||||
## 现在做到哪里
|
||||
|
||||
项目已经具备可继续测试的手机端、Windows 电脑端、账号服务,香港测试环境已由总工部署。本轮在 `1.0.8+9` 图标交付基线上,修正了安卓自适应图标安全区并重新出包:
|
||||
|
||||
- 手机端在 `mobile/`,使用 OpenIM Flutter SDK `3.8.3+hotfix.12`,版本 `1.0.9+10`。
|
||||
- 安卓/苹果应用标识为 `cn.solsum.jinxunda`。
|
||||
- 安卓桌面、最近任务和系统应用信息的显示名称为「金讯达」(`values` / `values-zh` / `values-zh-rCN` / `values-en` 均为此名)。登录页与聊天页文案未改。
|
||||
- 安卓自适应图标不再把带圆角的整张 PNG 顶格作为前景:红色背景铺满 108dp,前景把完整标识放进中心 66dp 安全区;legacy 方/圆图标仍是完整标识。真机 1.0.8 安装器裁切已按此修正。
|
||||
- 手机端已接入极光官方 Flutter 插件(AppKey 在客户端配置),登录后把 OpenIM userID 设为极光 alias。
|
||||
- 华为 AGConnect 插件在放入本地 `agconnect-services.json` 后启用(agcp `1.9.5.301`,适配 AGP 9);该文件含密钥,仓库继续忽略,不入库。
|
||||
- 手机默认服务地址为 `jxd.jinniu.ink` 的 HTTPS/WSS;内网可用 `--dart-define=SERVER_HOST=... --dart-define=USE_TLS=false` 覆盖。
|
||||
- 公网部署 overlay、Nginx、证书步骤、Master Secret 注入脚本和回滚脚本在 `deploy/public/` 与 `scripts/deploy-public.sh`;由总工部署,施工员不改测试机。
|
||||
- overlay 的内部端口用 Compose `!override` 覆盖基础 `0.0.0.0` 绑定,只留 `127.0.0.1`;LiveKit `17881/tcp`、`17882/udp` 仍对公网开放。部署脚本会拒绝空 `SERVER_IP`。
|
||||
- 电脑端在 `pc-client/`,使用 Electron,显示版本 `v1.0.2`。
|
||||
- 员工用工号和密码通过 `account-service/` 登录;管理员导入和管理账号的页面、接口已在仓库中。
|
||||
- HEL-294:管理页接口改为适配 `/account/` 部署前缀;非 JSON/空响应改为中文提示,不再把浏览器英文异常直接展示。热修代码已提交,尚未部署到公网。
|
||||
- 手机和电脑端已接入聊天、通讯录、同事申请、语音消息、文件/图片消息和一对一语音通话相关代码。
|
||||
- 语音服务 LiveKit 的信令和媒体端口已统一为 `17880`、`17881`、`17882`;仓库提供 `scripts/fix-livekit-ports.sh` 用于服务器已部署环境的端口修复。
|
||||
|
||||
## 已有验证记录
|
||||
|
||||
- `docs/phase4-regression-2026-08-16.md` 记录过手机与电脑之间的文字、同事申请、图片、语音消息等跨端回归结果。
|
||||
- 该记录中的文件传输和一对一语音通话,曾因模拟器环境无法闭环,仍需要用真实设备再次确认。
|
||||
- 旧记录使用的是更早的提交、安装包版本和端口状态;因此已保留为档案并在开头标明过时,不能当作当前验收结论。
|
||||
- 放入与 `cn.solsum.jinxunda` 匹配的真实华为配置后,Gradle `:app:processDebugAGCPlugin` 与 `:app:processReleaseAGCPlugin` 通过;debug/release/profile 均识别该配置文件。未因配置缺失或包名不一致失败。
|
||||
- `flutter pub get` 已写入 `jpush_flutter 3.5.6` / `jpush_flutter_android 1.0.2` 到 `mobile/pubspec.lock`。
|
||||
- `flutter analyze` 仅有 2 条既有 OpenIM `group` 弃用 info;`flutter test`(`config_test` 与登录页 widget_test)通过。
|
||||
- 语音组件已升级到 `livekit_client 2.10.0`(配套直接依赖 `uuid 4.5.3`),Flutter 3.47 / Dart 3.13 下可编译。
|
||||
- 整包 `flutter build apk` 已打出 release 安装包 `app-release.apk`,包名 `cn.solsum.jinxunda`,版本 `1.0.9+10`。
|
||||
|
||||
## 当前停在哪
|
||||
|
||||
华为配置可被 Gradle 识别,整包安卓安装包已能在当前工具链打出。真机华为通道到达率、真机一对一语音通话仍待真机验证。本轮未改测试机、未回退公网端口与部署安全修复。
|
||||
|
||||
## 已知风险和待验证事实
|
||||
|
||||
- 真机上的文件传输、一对一语音通话、杀进程后的离线推送(尤其华为通道)仍需实际设备验证。
|
||||
- 当前 release 包仍用调试签名;正式签名需后续单独准备,密钥不得入库。
|
||||
- 电脑端使用较旧的 Electron;公网接入后仍需评估 HTTPS、登录限流和跨域策略。
|
||||
- 最新测试服务器:`154.37.220.158`;系统 Nginx 统一承接 80/443,金讯达网页 `https://jxd.jinniu.ink` 已由负责人整合到统一门户 `https://bg.jinniu.ink`。
|
||||
- 当日只读检查表明网页与账号健康检查可访问,安卓测试包可下载,OpenIM、账号服务、LiveKit 等服务运行;尚不能据此判定双人通讯和推送验收通过。
|
||||
- 安卓代码版本 `1.0.9+10`,包名 `cn.solsum.jinxunda`,名称与图标已经调整;Windows 文档版本 `v1.0.2`。安卓极光和华为配置已有接入,真机到达率仍待验证。
|
||||
- 门户网页已验证单人登录与退出;两个真实员工之间的消息、附件、语音通话仍待验收。Android/Windows 原生端还未适配门户登录;iOS、其他安卓厂商推送、正式签名尚未完成。
|
||||
- 现网统一入口的变更尚未同步进仓库 `main`;旧 `jxd-edge` 部署指令不适用于现网。证书自动续期仍待补齐。
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
# 金讯达项目交接(2026-09-23)
|
||||
|
||||
本页是旧协调卡 HEL-4 归档后的项目入口。它记录截至本日能核实的状态与下一步,不代表整个项目已经验收完成。后续请以新的、范围明确的任务卡推进,并在完成时更新本页。不得把密钥、员工资料或私钥写入仓库。
|
||||
|
||||
## 当前部署和入口
|
||||
|
||||
- 当前香港**测试**服务器公网地址:`154.37.220.158`;`jxd.jinniu.ink` 指向这台服务器。正式上线前仍需独立验收。
|
||||
- 集团统一门户为 `https://bg.jinniu.ink`。负责人已自行把金讯达网页端整合进统一门户;网页地址为 `https://jxd.jinniu.ink`,网页身份入口以门户为准,详情见 [网页试运行说明](portal-web-trial.md)。
|
||||
- 2026-09-23 只读核对:系统 Nginx 占用 80/443,配置检查通过;金讯达网页、账号健康检查均返回 HTTP 200,现有安卓测试包下载支持 HTTP 206 分段下载。OpenIM、账号服务、LiveKit、MinIO 及其依赖容器当时在运行。**这只证明服务和入口当时可用,不等于聊天、通话或推送已完成用户验收。**
|
||||
- 现网由系统 Nginx 统一承接 80/443;原 `jxd-edge` 容器已移除。`deploy/public/README.md` 的 edge 启停步骤是旧方案,禁止直接照其操作现网。
|
||||
|
||||
## 代码与已经交付的能力
|
||||
|
||||
- 代码包含 Flutter 手机端、Electron/网页端、公司账号服务,以及 OpenIM、LiveKit 等部署配置。安卓包名 `cn.solsum.jinxunda`,版本 `1.0.9+10`;安卓名称为“金讯达”,已按系统自适应图标安全区调整图标。Windows 客户端当前文档版本为 `v1.0.2`。
|
||||
- 手机和电脑端已有工号密码登录、通讯录、聊天、图片/文件/语音消息及一对一语音通话相关代码;历史跨端测试记录见 [回归记录](phase4-regression-2026-08-16.md),不能拿历史记录代替当前版本的真机验收。
|
||||
- 安卓已接入极光 SDK 与华为 AGConnect 构建配置;华为配置文件及极光 Master Secret 均为私有材料,不入库。其他安卓厂商通道与苹果推送尚未完成。
|
||||
- 网页端已接入统一门户单点登录。现有网页试运行记录覆盖登录、会话兑换与退出;当时仅有一个正式管理员,尚无两个真实员工之间的消息、音视频、附件完整验收。原生 Android/Windows 客户端仍使用旧登录机制,尚未统一为门户登录。
|
||||
- 本仓库 `main` 已含网页门户整合代码;服务器 Nginx 统一入口相关改动曾交付于另一个分支,**截至本日尚未合入 `main`**。后续部署前要先审查并同步该分支及现网配置,不能直接用 `main` 的旧 edge 脚本覆盖现网。
|
||||
|
||||
## 尚未完成、按优先级推进
|
||||
|
||||
1. **P0:统一部署基线与证书。** 审查并合入系统 Nginx 统一入口相关代码,核对现网配置、备份和回滚路径;补齐 `jxd.jinniu.ink` 证书自动续期。现有证书到期日记录为 2026-11-28,应在 2026-11-14 前完成自动续期及演练。原 HEL-554 尚未执行,不得因旧卡归档误认为已完成。
|
||||
2. **P1:真实员工验收。** 准备两个获授权的测试员工账号,在安卓、Windows、网页之间验证登录、双向消息、附件、语音消息与一对一语音通话;华为真机验证前台、后台和被系统结束后的通知到达与点击。记录设备、版本、时间和失败现象;不得以健康检查代替这些测试。
|
||||
3. **P1:账号及发布安全。** 负责人确认员工名单导入与权限边界;安卓正式发布前改用受保护的正式签名,不能把签名密钥入库。评估网页门户身份与原生客户端旧登录并存的期限,以及原生端是否改用门户登录。
|
||||
4. **P2:其余平台。** 其他安卓厂商通道待各厂商资质完成后再接;iOS 的 Apple 开发者账号、推送凭据、构建和真机验收另立任务,不视为本阶段已完成。
|
||||
5. **P2:`solsum.cn` 证书问题。** 原 HEL-553 记录其根域名证书只覆盖 `www`,与金讯达当前 `jxd.jinniu.ink` 接入不是同一个阻塞;如仍需根域名 HTTPS,由该域名负责人另开独立任务处理。
|
||||
|
||||
## 旧任务卡收口说明
|
||||
|
||||
HEL-4 是跨阶段协调卡,不是“项目全部完工”的证明。归档时,已交付的子卡记为完成;未执行的 HEL-553、HEL-554 仅关闭旧卡、把风险迁入上方计划。以后请从此文档开新卡,不继续在旧长线程里追加施工。实际状态以当时运行环境和最新代码为准。
|
||||
+5
-4
@@ -2,7 +2,7 @@
|
||||
|
||||
## 项目是什么
|
||||
|
||||
“畅联”是集团内部使用的通讯 App,也就是给员工聊天、找同事和语音通话的工具。项目以开源 OpenIM 为基础改造,保留 OpenIM 原有标识,不换品牌、不另起一套产品标识。
|
||||
“金讯达”是集团内部使用的通讯 App,也就是给员工聊天、找同事和语音通话的工具。项目以开源 OpenIM 为基础改造;员工使用的安卓应用已采用经负责人确认的“金讯达”名称和图标。OpenIM 的第三方标识、许可和署名仍须按其许可保留。
|
||||
|
||||
## 要解决什么
|
||||
|
||||
@@ -20,12 +20,13 @@
|
||||
|
||||
- 手机端:Android 和 iPhone 工程都在仓库中;当前手机端版本号为 `1.0.9+10`。应用标识 `cn.solsum.jinxunda`。安卓桌面/最近任务/系统应用信息显示名称为「金讯达」。
|
||||
- 电脑端:Windows 优先;当前电脑端显示版本为 `v1.0.2`。
|
||||
- 服务端:以 Docker Compose(把一组服务一起启动的工具)编排 OpenIM、账号服务和语音服务。公网测试域名为 `jxd.jinniu.ink`(HTTPS/WSS),部署配置在 `deploy/public/`,实际部署由总工执行。
|
||||
- 网页端:已由负责人整合进统一门户,入口 `https://bg.jinniu.ink`,业务页面 `https://jxd.jinniu.ink`;网页身份以门户为准。原生 Android/Windows 尚未同步门户登录。
|
||||
- 服务端:以 Docker Compose(把一组服务一起启动的工具)编排 OpenIM、账号服务和语音服务。当前香港测试机为 `154.37.220.158`,域名 `jxd.jinniu.ink`(HTTPS/WSS);系统 Nginx 承接 80/443。仓库旧 edge 部署资料不得直接用于现网。
|
||||
|
||||
## 当前边界
|
||||
|
||||
- 只做集团内部通讯,不改造成公开社交产品。
|
||||
- 保留 OpenIM 的现有标识,禁止替换品牌。
|
||||
- 尊重 OpenIM 第三方许可与署名;用户可见应用品牌为“金讯达”,不据此改写 OpenIM 上游代码中的许可信息。
|
||||
- 公网第一阶段:安卓极光 + 华为厂商通道(`agconnect-services.json` 只放构建机、不入库,见 `mobile/android/app/README-agconnect.md`);不接小米/OPPO/vivo/荣耀/魅族/FCM/苹果推送。
|
||||
- 不把员工名单、密码、管理员口令、极光 Master Secret、华为 Secret、私钥或服务器私密配置写入仓库和文档。
|
||||
- 本仓库的日常任务如无明确授权,不做发布、部署或改动生产环境。
|
||||
- 本仓库的日常任务如无明确授权,不做发布、部署或改动生产环境。
|
||||
|
||||
Reference in New Issue
Block a user