# 重建版完成度审计（历史记录，验收结论已撤回）

> 用户人工验收确认本实现未达到原系统视觉、布局和基础功能等价要求。本文中的自动测试和阶段结论
> 不能再作为产品完成证明。权威冻结决定见`../../../docs/migration/next失败冻结记录.md`。

更新日期：2026-07-30

## 结论

重建版已经建立可维护的模块化单体骨架，并完成了账户、权限隔离、共享行情归档、主要市场工作区、
问师、问天、复盘、确定性选股、迁移和备份等核心路径。但它尚未达到《小白复盘-完整产品规格说明书》
定义的“功能完整迁移”，此前 `spec-coverage.md` 中“85/85”结论作废。

本文件只记录可由代码、确定性测试或真实浏览器断言证明的事实。页面可打开、组件名称存在、截图看似正常，
均不能替代产品行为验收。

## 已确认完成的基础

- 新旧运行时完全分离，新版不导入旧版 `server.py`、`database.py`、`app.js` 或旧样式覆盖层。
- 旧版已在独立数据目录和临时端口完成首页、健康检查及231项测试与32项subtest验收；迁移期仍可运行。
- 账户、会话、管理员与会员双维度权限、私有数据隔离、系统凭据加密和模型密钥不回显已有服务端测试。
- 行情供应商通过唯一 `DataGateway` 和来源策略进入业务层；公开展示源不能进入正式计算。
- 情绪、竞价、观势、观气、观心、选股和复盘的核心确定性计算已有固定样本测试。
- 16 个主工作区、策略跟踪内部页、账户弹窗和系统管理外壳均已建立。
- 数据库迁移、旧库只读迁移、备份、校验恢复、生产静态文件服务和安全响应头已有自动测试。
- PC 统一 Shell、设计令牌、日夜主题和独立移动端布局规则已经建立。

## 阻断“完整迁移”的最终人工验收

1. `U04` 已增加4K内容最大宽度、基础字号、Shell高度和无横向溢出断言，仍需最终人工视觉验收信息密度。
2. 第26节逐页状态证据已登记在`page-state-matrix.md`；4K人工视觉单元格在正式切换前保持未关闭。

## 本地迁移预检

本轮按用户确认仅执行本地预检，未连接NAS或Docker。新版使用`127.0.0.1:8877`，旧版`8765`
未被占用或替换。完整证据见`../evidence/local-preflight-2026-07-30.md`。

- 旧库只读迁移到独立新版数据库后，SQLite完整性、外键、迁移版本和未映射类型均通过校验。
- 管理员会员、会员非管理员、普通用户三个真实账户已验证双维权限；普通用户智能工具保持完整结构并锁定。
- 情绪、四类股池、天梯、轮动、竞价、题材、热榜、龙虎榜归档、智能选股、问师、问天、复盘和系统管理均读取到迁移后的真实数据。
- 1920×1080、3840×2160和390×844均无页面级横向溢出；移动端侧栏、底部导航、表格卡片化和44px触控目标已直接验证。
- 移动端长页切换工作区统一回到新页顶部，浏览器前进/后退恢复历史滚动位置；该行为已加入端到端回归。
- 服务进程停止并重新启动后，会话、默认数据日期、20行情绪明细、6只自选和系统配置均保持一致。
- 真实v7迁移库已通过SQLite在线备份生成包含数据库、环境和私有Skill的归档，并恢复到全新目录；源库与恢复库关键表计数一致，恢复实例在独立端口启动和重启后仍可读取真实管理员会话及6只私有自选。

## 已在本轮纠正

- 阶段选股不再在当前阶段无结果时错误回退到第一条运行结果。
- 未执行盘后任务时，阶段流程不再预先显示完成态。
- 首次无快照、后台刷新不重绘、刷新后读取最新真实日期已有直接 E2E。
- 上涨K线空心实体和上下影线不穿体已有几何断言。
- 情绪退潮警示无选股建议、60日末行可达、低行数股池状态栏固定已有直接 E2E。
- 阶段、精选、自定义三类结果切换和策略来源隔离已有直接 E2E。
- 旧库选股归档迁移会将内置策略映射到当前36套目录的稳定ID，统一共享归属并按日期、策略和版本去重；关联跟踪记录重映射到保留运行，未知自建策略仍保持账号私有。
- 旧“多因子综合打分(IC动态加权)”迁移后统一显示为“动态多因子（基础版）”，不继承过度宣称。
- 股票、板块、题材和指数共用唯一实体详情接口；详情涨跌幅按所选真实交易日及对应前收计算。
- 个股详情已包含交易指标、资金流、事件逻辑、自选操作、观势入口和私有个股笔记；题材详情展示成分股。
- 股池、天梯、轮动、题材、人气榜、龙虎榜、智能选股、自选、交易日志、策略跟踪和提醒中的股票代码
  共用唯一日K/分时悬浮与详情入口；无悬停设备直接进入详情。
- 系统管理已提供最多15个交易日的历史回补入口；任务结果和失败原因进入统一任务审计。
- 盘中行情刷新、动态竞价、盘后正式刷新、事件补充和盘后选股共用唯一调度器与任务表；同类任务互斥，
  成功与失败按任务类型统一冷却，外部接口故障不会每5秒重复写失败记录。
- 盘中正式计算仅使用Tushare全市场实时行情和官方涨跌停价格；覆盖率不达门槛时拒绝写入并保留最后成功快照。
- 涨停、炸板、跌停原因可由iFinD盘后补充，管理员修订具有更高优先级，全部修订历史永久保留。
- 阶段选股四步和候选区已直接表达未执行、执行中、失败、已完成；策略库不再把未执行或失败误写为暂无信号。
- 状态栏读取真实后台任务与最后成功行情状态，不再显示固定占位文字。
- 模型池中的每个模型可由管理员独立测试；测试复用统一LLM网关并记录模型、耗时、成功或失败，
  不返回密钥和上游正文，也不计入会员每日额度。
- 自然语言选股只允许由统一LLM网关生成白名单JSON公式；未知因子直接拒绝，LLM不参与股票候选计算，
  用户必须核对生成的因子、权重和过滤条件后再保存。
- 自定义选股滚动回测只读取已归档因子快照，以入选日至第3个后续交易日收盘计算；少于20个有效样本
  只提示小样本，达到门槛后才显示胜率和平均3日收益，结果按运行持久化且重复读取不漂移。
- 精选策略详情直接展示配置中已有的质量、风险、执行频率、适用环境、失效风险、适用阶段和完整评分权重，
  没有补造无法验证的策略元信息。
- 图表夜间加载首帧、主题同步切换、7板布局和观心夜间关键文字对比度均已有浏览器直接断言，不再只依赖截图。
- 16个主工作区、策略跟踪、提醒、复盘助手、账户/会员及系统管理已逐项区分加载、真实空和失败；统一API客户端不会向页面泄露上游错误正文。
- 后台任务不再把`AppError`内部元组直接展示到系统管理；历史记录读取时兼容清理，新增失败按用户可读说明入库。
- 当前主分支本轮复核为Ruff、113项pytest、Vue类型检查、7项Vitest、生产构建和
  26项Playwright全部通过。

## 本轮范围外项目

- 本机不存在Docker CLI或Docker Desktop，且按用户确认不连接NAS；镜像构建、容器启动和生产数据卷验证仍待正式切换阶段执行。非容器的真实数据库备份、独立恢复和进程重启已完成，不能替代容器证据。
- NAS 生产容器尚未切换；容器级持久化重启、健康检查和回退必须在Docker/NAS中另行验证。
- 旧运行时在正式切换前继续保留。切换 NAS 和清理旧实现必须取得用户最终明确确认。
- 旧实现的逐路径清理、数据归档和清理后验收已固化在 `legacy-cleanup-plan.md`；
  一次性旧库迁移器也将在回退保留期结束后删除，不进入长期维护面。

## 完成规则

只有以下条件全部满足后，才可恢复“重建完成”的表述：

1. 本文件登记的用户可见功能缺口全部完成并有直接测试。
2. 85 个固定案例逐项标记为“确定性测试”“浏览器直接断言”或“人工视觉验收”；不得使用宽泛截图代替算法证明。
3. `page-state-matrix.md`中的人工验收项由用户确认。
4. Docker 构建、启动、持久化重启、备份恢复和回退在实际容器环境通过。
5. NAS 切换后执行最终冒烟，旧实现只按确认后的清理方案处理。
