Files
NixMsg/docs/RELEASE.md
T
2026-09-30 09:29:31 +08:00

6.4 KiB
Raw Permalink 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-30T00:26:12Z)。对照表汇总:通过 14,失败 0,未测 9。

通过

编号 一句话
F01 批量开通整批校验、停用、删除群主转让、删除后同编号重开不串数据
F02 新设备登录后旧设备自动退出、换 IP 用令牌重连、两种密码锁定、重置密码后被踢、服务器故障不误报密码错误
F05 崩溃不丢已提交消息,消息号去重和冲突,密码门生效,配额生效
F06 群成员收到同一份,入群前不补,发送者不收到自己的
F08 弱网最终送达且应用层不重复,重启后续传
F09 保留时间从发送时刻起算,超时过期
F12 延迟窗口内撤回对方收不到
F13 未推送必撤成功;群部分确认得到部分撤回
F16 群主权限、退出后不再收到、解散后同编号新群不收旧消息
F17 后台管端、管注册、管群、查记录,响应里没有正文;API 令牌可用且不能越权
F20 裸 MQTT 能登录、收、确认、发
F21 默认一个端口提供后台、WebSocket、TCP、注册;后台可分到单独端口
F22 初始化后单文件或 Docker 启动、备份恢复、升级迁移、证书自动重载、指标可抓取
F23 注册开关、安全码校验、换码不影响已注册、输错锁定

未测

编号 一句话 原因(摘自对照表)
F03 断开后状态及时变离线,全表可列出 directory.list / 断开后离线状态未在本波单独断言
F04 只通知订阅了的端 presence.watch 订阅通知未覆盖
F07 256 KiB 通过,超出拒绝,接收上限生效 256 KiB 边界与接收上限未覆盖
F10 短断线送到,长断线丢弃,服务器重启后宽限内重连送到 抖动宽限长短断线未单独拨钟
F11 发送方离线后到点仍发送 发送方离线后定时到点发送未覆盖
F14 回执能补送给当时离线的发送方 回执补送未覆盖
F15 输一次记住、改密失效、回复免密、进群仍要密码、防多账号轮流猜 对话密码授权链路未覆盖
F18 送达后正文消失;记录天数 0 时连记录消失;防重仍在 正文删除与记录天数 0 未覆盖
F19 四种 SDK 通过同一清单 对照表仍标未测(属 S1/S2);本轮交付回归已另跑四套 SDK 测试,见第 4 节

失败

无。

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

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)

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(若远端已存在同名标签则不覆盖,见当时操作记录)。