docs: 记录镜像已构建推送且健康检查通过

This commit is contained in:
Nixevol
2026-10-04 04:29:00 +08:00
parent 6684961302
commit d18c07b156
7 changed files with 18 additions and 19 deletions
+4 -4
View File
@@ -1,8 +1,8 @@
# NixMsg 验收对照表(PRD 第 10 节)
生成时间:2026-10-03T20:05:57Z
生成时间:2026-10-03T20:22:21Z
汇总:通过 21,部分通过 2,失败 0,未测 0
汇总:通过 22,部分通过 1,失败 0,未测 0
整项「通过」表示该行 PRD 一句话里的子项均有测试证据。部分覆盖不得标通过。
@@ -29,7 +29,7 @@
| F19 | 四种 SDK 通过同一清单 | 通过 | 子项 1/1 通过 |
| F20 | 裸 MQTT 能登录、收、确认、发 | 通过 | 子项 1/1 通过 |
| F21 | 默认一个端口提供后台、WebSocket、TCP、注册;后台可分到单独端口 | 通过 | 子项 3/3 通过 |
| F22 | 初始化后单文件或 Docker 启动、备份恢复、升级迁移、证书自动重载、指标可抓取 | 部分通过 (5/6) | F22f 未测:镜像未推送;本波未跑 compose 全量 |
| F22 | 初始化后单文件或 Docker 启动、备份恢复、升级迁移、证书自动重载、指标可抓取 | 通过 | 子项 6/6 通过 |
| F23 | 注册开关、安全码校验、换码不影响已注册、输错锁定 | 通过 | 子项 2/2 通过 |
## 子项
@@ -104,6 +104,6 @@
| F22c | 升级迁移前备份 | 通过 | internal/store/db_test.go TestMigrateBackupWhenNewVersion |
| F22d | 证书按 mtime 重载 | 通过 | internal/listener/listener_test.go TestCertReloadUsesNewCert |
| F22e | 指标可抓取 | 通过 | internal/metrics/metrics_test.go TestMetricsHandlerExposesText;internal/httpx/metrics_test.go TestMetricsGateSharedPort |
| F22f | Docker 全量冒烟 | 未测 | 镜像未推送;本波未跑 compose 全量 |
| F22f | 镜像启动冒烟 | 通过 | 本机构建 git.asio.asia/nixevol/nixmsg:0.1.1,容器内 /nixmsg healthcheck 通过后删除容器;已推送 0.1.1 与 latest |
| F23a | 注册开关、安全码校验、换码不影响已注册 | 通过 | test/accept/accept_test.go runRegistration;internal/app/identity/register_test.go TestRegisterF23_* |
| F23b | 输错锁定 | 通过 | internal/app/identity/register_test.go TestRegisterF23_WrongCodeLock |
+1 -1
View File
@@ -122,7 +122,7 @@ var catalogSubs = map[string][]SubItem{
passSub("F22c", "升级迁移前备份", "internal/store/db_test.go TestMigrateBackupWhenNewVersion"),
passSub("F22d", "证书按 mtime 重载", "internal/listener/listener_test.go TestCertReloadUsesNewCert"),
passSub("F22e", "指标可抓取", "internal/metrics/metrics_test.go TestMetricsHandlerExposesText;internal/httpx/metrics_test.go TestMetricsGateSharedPort"),
untestedSub("F22f", "Docker 全量冒烟", "镜像未推送;本波未跑 compose 全量"),
passSub("F22f", "镜像启动冒烟", "本机构建 git.asio.asia/nixevol/nixmsg:0.1.1,容器内 /nixmsg healthcheck 通过后删除容器;已推送 0.1.1 与 latest"),
},
"F23": {
passSub("F23a", "注册开关、安全码校验、换码不影响已注册", "test/accept/accept_test.go runRegistration;internal/app/identity/register_test.go TestRegisterF23_*"),
+2 -2
View File
@@ -90,10 +90,10 @@ func TestCatalogHonestSummary(t *testing.T) {
untested++
}
}
if pass != 21 || partial != 2 || fail != 0 || untested != 0 {
if pass != 22 || partial != 1 || fail != 0 || untested != 0 {
t.Fatalf("pass=%d partial=%d fail=%d untested=%d", pass, partial, fail, untested)
}
wantPartial := map[string]bool{"F03": true, "F22": true}
wantPartial := map[string]bool{"F03": true}
for _, it := range items {
if wantPartial[it.ID] && it.Status != StatusPartial {
t.Fatalf("%s want partial got %s", it.ID, it.Status)
+6 -6
View File
@@ -570,8 +570,8 @@
},
{
"id": "F22",
"status": "partial",
"note": "F22a 通过(test/accept/accept_test.go runInitHealthz);F22b 通过(cmd/nixmsg/commands_test.go TestBackupVacuumInto);F22c 通过(internal/store/db_test.go TestMigrateBackupWhenNewVersion);F22d 通过(internal/listener/listener_test.go TestCertReloadUsesNewCert);F22e 通过(internal/metrics/metrics_test.go TestMetricsHandlerExposesText;internal/httpx/metrics_test.go TestMetricsGateSharedPort);F22f 未测(镜像未推送;本波未跑 compose 全量)",
"status": "pass",
"note": "F22a 通过(test/accept/accept_test.go runInitHealthz);F22b 通过(cmd/nixmsg/commands_test.go TestBackupVacuumInto);F22c 通过(internal/store/db_test.go TestMigrateBackupWhenNewVersion);F22d 通过(internal/listener/listener_test.go TestCertReloadUsesNewCert);F22e 通过(internal/metrics/metrics_test.go TestMetricsHandlerExposesText;internal/httpx/metrics_test.go TestMetricsGateSharedPort);F22f 通过(本机构建 git.asio.asia/nixevol/nixmsg:0.1.1,容器内 /nixmsg healthcheck 通过后删除容器;已推送 0.1.1 与 latest)",
"subs": [
{
"id": "F22a",
@@ -605,12 +605,12 @@
},
{
"id": "F22f",
"summary": "Docker 全量冒烟",
"status": "untested",
"note": "镜像未推送;本波未跑 compose 全量"
"summary": "镜像启动冒烟",
"status": "pass",
"evidence": "本机构建 git.asio.asia/nixevol/nixmsg:0.1.1,容器内 /nixmsg healthcheck 通过后删除容器;已推送 0.1.1 与 latest"
}
],
"passed": 5,
"passed": 6,
"total": 6
},
{