Files
NixMsg/docs/RELEASE.md
T

6.7 KiB
Raw Blame History

NixMsg 0.1.0 交付说明

项 内容
版本 0.1.0
日期 2026-09-30
功能合入 tip 2ebcb6e1b85a8997c48de2711b013c83fa0440fc(W4 + Q4 已进 main)
发布标签 v0.1.0、sdk/go/v0.1.0(指向含本说明的提交;以 git rev-parse v0.1.0 为准)
对应 PRD.md、DEVELOPMENT.md、TASKS.md

1. 已完成能力

  • 服务端:端登录与会话令牌、在线目录、单聊/群发、离线保留、延迟/定时/撤回/回执、自助注册、管理 API、Prometheus /metrics、SQLite 存储、单端口多协议(HTTP / WebSocket MQTT / TCP MQTT)
  • 管理后台网页:接真实 /api/admin,Playwright 主路径 e2e
  • SDK:Go、JS/TS、Python、Java/Android(源码与接入清单测试在仓库内;包未发布,见第 5 节)
  • 部署文档:README 构建与启动、OPS.md 运维、Docker Compose / Dockerfile 定稿(镜像未推送)

2. F01–F23 验收结果

来源:test/accept/ACCEPTANCE.md(生成时间 2026-09-30T02:16:46Z)。对照表汇总:通过 23,失败 0,未测 0。

长时/环境限制项在对照表备注中保留「未测子项」说明,不单独占「未测」行:

  • F03:未跑 1000 端全表 1s、真拔网线心跳超时(关连接模拟断线)
  • F08:Linux netem 20% 丢包未测(本机 Windows)
  • 压测:未跑 1000 连接保持 10 分钟

通过

编号 一句话
F01 批量开通整批校验、停用、删除群主转让、删除后同编号重开不串数据
F02 新设备登录后旧设备自动退出、换 IP 用令牌重连、两种密码锁定、重置密码后被踢、服务器故障不误报密码错误
F03 断开后状态及时变离线,全表可列出
F04 只通知订阅了的端
F05 崩溃不丢已提交消息,消息号去重和冲突,密码门生效,配额生效
F06 群成员收到同一份,入群前不补,发送者不收到自己的
F07 256 KiB 通过,超出拒绝,接收上限生效
F08 弱网最终送达且应用层不重复,重启后续传
F09 保留时间从发送时刻起算,超时过期
F10 短断线送到,长断线丢弃,服务器重启后宽限内重连送到
F11 发送方离线后到点仍发送
F12 延迟窗口内撤回对方收不到
F13 未推送必撤成功;群部分确认得到部分撤回
F14 回执能补送给当时离线的发送方
F15 输一次记住、改密失效、回复免密、进群仍要密码、防多账号轮流猜
F16 群主权限、退出后不再收到、解散后同编号新群不收旧消息
F17 后台管端、管注册、管群、查记录,响应里没有正文;API 令牌可用且不能越权
F18 送达后正文消失;记录天数 0 时连记录消失;防重仍在
F19 四种 SDK 通过同一清单
F20 裸 MQTT 能登录、收、确认、发
F21 默认一个端口提供后台、WebSocket、TCP、注册;后台可分到单独端口
F22 初始化后单文件或 Docker 启动、备份恢复、升级迁移、证书自动重载、指标可抓取
F23 注册开关、安全码校验、换码不影响已注册、输错锁定

未测

无整行未测项。子项因长时间或环境限制未测的见上「长时/环境限制」与对照表备注。

失败

无。

3. 偏差(供负责人回来审阅)

完整正文见 DEVIATIONS.md。以下只列小节标题,不抄全文:

  • T0.1 2026-09-30
  • L-WIRE 2026-09-30
  • L-UPLINK 2026-09-30
  • T0.2 2026-09-30
  • T0.3 2026-09-30
  • T0.5 2026-09-30
  • T0.4 2026-09-30
  • P1 2026-09-30
  • P2 2026-09-30
  • P3 2026-09-30
  • P4 2026-09-30
  • N1 / N2 2026-09-30
  • N3 2026-09-30
  • M1 2026-09-30
  • M2 / M3 / M4 2026-09-30
  • I1 2026-09-30
  • I2 / I3 / I4 2026-09-30
  • I5 2026-09-30
  • A1 2026-09-30
  • A2 2026-09-30
  • A3 2026-09-30
  • 后台网页 W(W1–W3 假数据与分页等条目)
  • W4 2026-09-30
  • S1.1 传输层可注入假实现(Go / JS)
  • S1.2 Go autopaho OnConnectionUp 内握手改异步
  • S1.3 重连退避与「稳定在线 60s」状态机自管
  • S1.4 Go 模块许可证标注
  • S1.5 JS 回调命名与文档概念名
  • S1.6 任务 1–3 当时未做范围(已被 S1.7 取代)
  • S1.7 2026-09-30 任务 4–5 接入清单与打包文档
  • S2-PY/JAVA 1–3 2026-09-30
  • S2-PY/JAVA 4–5 2026-09-30
  • Q1 / Q4 骨架 2026-09-30
  • Q2 第一部分(已合并功能验收)2026-09-30
  • Q2 补齐 + Q3(本机 Windows)2026-09-30
  • Q4 定稿 + Q5 文档 2026-09-30
  • Q accept-rest 补测 2026-09-30

4. 本轮验证

合并 feat/w4-e2e、feat/q-release-docs 后,在 main(功能 tip 2ebcb6e,含本说明的发布提交)执行:

项 结果
task check 通过
go test ./test/... 通过(accept / chaos / harness / load / report)
task w:e2e(W4 合并后) 通过(1 passed)
sdk/go:go test ./... 通过
sdk/js:npm test 通过(23 passed)
sdk/python:venv + pytest 通过(22 passed);测完已删本地 .venv
sdk/java:mvn test 通过(scoop maven 3.9.16;测完已删 target)

其后在 feat/accept-rest 补齐短时间验收并更新对照表:

项 结果
go test ./test/accept/ -count=1(含 F03/F04/F07/F10/F11/F14/F15/F18,F19 引用既有 SDK 清单) 通过(约 24–27s)
写入 ACCEPTANCE.md / q2_results.json 通过 23,失败 0,未测 0

跳过:1000 连接 10 分钟浸泡、Linux netem 20% 丢包、F03 的 1000 端全表 1s 与真拔网线心跳超时。

5. 构建与启动

请直接按仓库文档操作,此处不重复步骤:

  • 构建、交叉编译、Docker 本地构建与启动示例:README.md
  • 配置项、备份、升级、证书、时钟、指标:docs/OPS.md
  • 配置样例:deploy/config.example.yaml、deploy/config.docker.yaml

常用入口:task check / task build,然后 admin init + serve(见 README)。

6. 未发布 SDK 包与镜像的原因

按本次总控收尾要求:不创建 Gitea package 令牌,因此:

  • 未 npm / pip / Maven 发布到 Gitea 包仓库(@nixevol/nixmsg、nixmsg、asia.asio.nixmsg:nixmsg-sdk)
  • 未 docker push(含 git.asio.asia/nixevol/nixmsg 的版本标签与 latest)
  • 未 执行多架构 buildx 正式推送

有 package 读写令牌且负责人授权后,再按 TASKS.md 第 3 节与 Z3、以及 README / OPS 中的发布命令补做。

7. 标签

在本交付说明提交(含 docs/RELEASE.md)上打附注标签 v0.1.0 与 sdk/go/v0.1.0 并推送到 origin(若远端已存在同名标签则不覆盖,见当时操作记录)。