# 重建版发布候选清单（已作废）

> **禁止部署。** 用户已于2026-07-30否决本实现，`xiaobai-next-rc-20260730-1`不再是有效发布候选。
> 本文件仅保留历史记录，权威冻结决定见`../../../docs/migration/next失败冻结记录.md`。

发布日期：2026-07-30

本清单把首次Docker/Portainer预检固定为可重复构建的候选版本。它不包含密码、令牌、
Fernet密钥、数据库或私有Skill，也不授权停止旧系统或切换正式端口。

## 不可变版本

| 项目 | 固定值 |
|---|---|
| Git标签 | `xiaobai-next-rc-20260730-1` |
| Portainer引用 | `refs/tags/xiaobai-next-rc-20260730-1` |
| 镜像标签 | `xiaobai-review-next:rc-20260730-1` |
| Compose路径 | `next/compose.preflight.yaml` |
| 预检宿主端口 | `8876` |
| 容器端口 | `8765` |
| 正式旧端口 | `8765`，预检期间不得占用或修改 |

标签创建后必须在Gitea中记录其完整提交号。Portainer关闭自动更新；重新部署前先确认标签仍指向
同一提交，镜像不得使用`latest`或只有`preflight`的浮动标签。

## 当前真实旧库基线

此基线只对应2026-07-30本地冻结副本，用于首次预检核对迁移是否完整，不是未来正式切换时的
永久固定计数。正式切换必须对停止写入后的最新一致旧库重新计算SHA-256并归档新报告。

| 项目 | 预期值 |
|---|---:|
| 旧库SHA-256 | `546c5af1a3010bbf0cf37e5d8b1a440fe6dfbfe80b471cddf430d4363a7b1a4a` |
| SQLite完整性 | `ok` |
| 外键异常 | 0 |
| 未映射旧表 | 0 |
| 未映射快照类型 | 0 |
| 用户 | 3 |
| 会员 | 3 |
| 自选 | 6 |
| 复盘笔记 | 3 |
| 问师消息 | 28 |
| 问天记录 | 31 |
| 选股归档 | 107 |
| 策略跟踪 | 16 |
| 市场摘要 | 22 |
| 市场洞察归档 | 47 |
| 模型 | 3 |
| 系统凭据 | 2 |

首次迁移后运行中的数据库可能因后台任务、会话和新快照产生合法增量，因此后续重启验收不能要求
数据库文件哈希保持不变。应核对迁移报告、记录下限、用户归属、SQLite完整性和真实页面行为。

## Portainer环境

必须人工填写：`APP_ENCRYPTION_KEY`、独立绝对路径`APP_STORAGE_PATH`。固定填写：

```text
APP_IMAGE=xiaobai-review-next:rc-20260730-1
APP_PUBLISH_PORT=8876
APP_LOG_LEVEL=INFO
APP_TIMEZONE=Asia/Shanghai
```

`APP_STORAGE_PATH`不得指向旧容器数据目录；目录内旧库副本固定命名为`legacy-review.db`。
密钥、数据库和私有Skill只进入NAS受控目录及加密备份，不进入Git或镜像层。

## 阻断判定

只有以下事实全部成立，发布候选才允许进入正式切换申请：

1. `migration`退出码为0，报告完整性、外键、未映射项及业务计数已核对。
2. `web`使用非root用户、只读根文件系统、清空Capabilities，健康状态稳定。
3. `/app/data`是独立可写数据卷；重启后账号、私有记录、系统配置和共享归档不丢失。
4. 真实管理员会员、会员非管理员和普通用户完成权限及私有数据抽验。
5. 日间、夜间、1080P、4K和390px抽验完成；4K信息密度由用户确认。
6. 备份包含数据库、环境密钥和私有Skill，并在另一个独立目录成功恢复。
7. 固定镜像标签可在不重新构建的情况下完成一次回退启动。

任一项失败时保留日志和失败数据卷，不在失败目标库上手工修补；从最新一致旧库副本重新迁移。
