# 重建版完成度审计 更新日期:2026-07-30 ## 结论 重建版已经建立可维护的模块化单体骨架,并完成了账户、权限隔离、共享行情归档、主要市场工作区、 问师、问天、复盘、确定性选股、迁移和备份等核心路径。但它尚未达到《小白复盘-完整产品规格说明书》 定义的“功能完整迁移”,此前 `spec-coverage.md` 中“85/85”结论作废。 本文件只记录可由代码、确定性测试或真实浏览器断言证明的事实。页面可打开、组件名称存在、截图看似正常, 均不能替代产品行为验收。 ## 已确认完成的基础 - 新旧运行时完全分离,新版不导入旧版 `server.py`、`database.py`、`app.js` 或旧样式覆盖层。 - 账户、会话、管理员与会员双维度权限、私有数据隔离、系统凭据加密和模型密钥不回显已有服务端测试。 - 行情供应商通过唯一 `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`内部元组直接展示到系统管理;历史记录读取时兼容清理,新增失败按用户可读说明入库。 - 发布候选`310dbba`本轮复核为Ruff、112项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 切换后执行最终冒烟,旧实现只按确认后的清理方案处理。