95 lines
6.4 KiB
Markdown
95 lines
6.4 KiB
Markdown
# 小白复盘保真迁移账本
|
||
|
||
> 当前状态:正式迁移,切片02“公共行情、搜索、详情、图表与数据网关”已完成
|
||
|
||
本账本是上下文恢复和人工审计的连续记录。任何迁移提交必须在同一提交中更新本文件及
|
||
`保真迁移状态.json`。
|
||
|
||
## 固定事实
|
||
|
||
- 原版根目录是唯一产品和视觉基线。
|
||
- `next/`已被用户否决并冻结,不进入后续迁移。
|
||
- 新目标目录由用户批准为`app/`,最终作为正式程序目录。
|
||
- 后续采用原代码保真式迁移,不重新实现,不更换技术栈。
|
||
- 2026-07-30用户授权在既定约束内自主完成全部迁移,阶段性差异仍必须阻断后续切片。
|
||
|
||
## 当前检查点
|
||
|
||
| 日期 | 提交或标签 | 事件 | 结论 |
|
||
|---|---|---|---|
|
||
| 2026-07-30 | `xiaobai-next-rejected-20260730` | 冻结失败的`next/`实现 | 禁止部署或继续开发 |
|
||
| 2026-07-30 | `xiaobai-preservation-migration-charter-20260730` | 建立保真迁移总纲、状态和恢复协议 | 尚未开始新迁移 |
|
||
| 2026-07-30 | `41329943c4878fc09ed82ec376eb93ab151e4092` | 完成只读资产清查并由用户批准`app/`结构 | 开始切片00 |
|
||
| 2026-07-31 | `xiaobai-preservation-slice-01-20260731` | 启动、HTTP、账号、会员与系统管理原实现归位 | 自动差分通过,进入切片02 |
|
||
| 2026-07-31 | `xiaobai-preservation-slice-02-20260731` | 公共行情、搜索、详情、图表与数据适配原实现归位 | 自动与浏览器差分通过,进入切片03 |
|
||
|
||
## 资产处置登记
|
||
|
||
开始清查后,每个资产必须登记,禁止只记录已迁移项而遗漏未处理项。
|
||
|
||
| 原位置/符号 | 类型 | 消费者 | 处置 | 新位置 | 等价证据 | 状态 |
|
||
|---|---|---|---|---|---|---|
|
||
| 原版运行源文件(排除`next/`、日志、缓存、构建产物和正式数据库) | 运行资产 | 全站 | 原样保留后逐项移动 | `app/` | 388项受控资产哈希一致;231项Python与45项Playwright测试通过 | 已复制 |
|
||
| `next/` | 失败实现 | 无正式消费者 | 原样保留但禁止迁移 | - | 用户冻结决定 | 已冻结 |
|
||
| `demo_data.py` | 疑似旧兼容代码 | 未发现运行导入 | 待定 | 待删隔离账本 | 静态扫描不足以授权删除 | 保留 |
|
||
| `static/heaven-loading.js` | 疑似旧动画 | 当前页面加载`heaven-loading-v2.js` | 待定 | 待删隔离账本 | 仍需动画运行覆盖 | 保留 |
|
||
| `commonReviewColumns`等5个前端函数 | 疑似无引用符号 | 未发现静态调用 | 待定 | 待删隔离账本 | 仍需动态注册与浏览器覆盖 | 保留 |
|
||
| `wencai_saved_queries`及其方法 | 历史兼容数据 | 当前无前端入口 | 待定 | 数据库兼容区 | 不允许在迁移期破坏旧库 | 保留 |
|
||
| 现有7层CSS | 视觉运行资产 | 全部页面和主题 | 原样保留后逐页归档 | `app/frontend/` | 必须通过截图与计算样式差分 | 保留 |
|
||
|
||
处置只允许:`原样保留`、`移动`、`合并重复`、`待定`、`确认废弃`。
|
||
|
||
## 切片记录
|
||
|
||
每个切片记录以下内容:原版基线、复制范围、必要路径调整、差异测试、人工验收、未关闭问题和回档提交。
|
||
已完成切片:`slice-00-exact-runtime-copy`。
|
||
|
||
- 原版基线:提交`41329943c4878fc09ed82ec376eb93ab151e4092`。
|
||
- 复制范围:确认参与运行、测试、部署和维护的原版文件;排除`next/`和运行产物。
|
||
- 允许改动:新目录中的路径配置、测试根目录和端口;不得改业务实现。
|
||
- 验收:新目录独立启动,231项Python测试、45项Playwright测试、数据库副本和静态资产哈希验证。
|
||
- 回档:本切片建立独立Git提交并推送Gitea。
|
||
- 完整证据:`docs/migration/evidence/slice-00/README.md`。
|
||
- 资产清单:`docs/migration/原版资产清单.json`,388项,0项哈希差异。
|
||
|
||
已完成切片:`slice-01-startup-http-accounts-system`。
|
||
|
||
- 原版基线:提交`4083dce`,即切片00原样副本。
|
||
- 迁移范围:进程入口、应用组装、HTTP传输、账号安全、账号/会员业务、账号/系统设置持久化。
|
||
- 兼容边界:根级`server.py`、`app_config.py`、`security.py`继续保留原导入和命令入口。
|
||
- API与数据库:API/功能注册表哈希一致;原版与副本数据库均为36表、62个schema对象且schema哈希一致。
|
||
- 验收:236项Python测试、5项切片专项测试、45项Playwright测试全部通过;前端运行资产未改动。
|
||
- 回档:标签`xiaobai-preservation-slice-01-20260731`。
|
||
- 完整证据:`docs/migration/evidence/slice-01/README.md`。
|
||
|
||
已完成切片:`slice-02-market-search-charts-data`。
|
||
|
||
- 原版基线:提交`4002f09`,即切片01回档点。
|
||
- 迁移范围:30个公共行情服务方法、11个行情持久化方法及Tushare/iFinD/图表/实时观察实现。
|
||
- 兼容边界:四个根级数据模块保留模块别名;未迁移功能继续使用旧导入且指向同一实现。
|
||
- 等价证明:41个方法AST逐项一致,三个数据文件哈希一致,图表定义AST一致,静态资产哈希一致。
|
||
- 验收:241项Python测试、6项切片源码等价测试、45项Playwright测试及真实服务搜索/详情流程通过。
|
||
- 既存状态:原版和迁移版的实时分时在当前环境均返回相同外部请求失败,不作为迁移回归处理。
|
||
- 回档:标签`xiaobai-preservation-slice-02-20260731`。
|
||
- 完整证据:`docs/migration/evidence/slice-02/README.md`。
|
||
|
||
## 决策记录
|
||
|
||
| 日期 | 决策 | 原因 |
|
||
|---|---|---|
|
||
| 2026-07-30 | 原版运行行为优先,规格书只用于盘点 | 防止再次依据文字重新开发 |
|
||
| 2026-07-30 | 不使用`next/`作为后续迁移起点 | 用户确认其视觉、布局和基础功能不可用 |
|
||
| 2026-07-30 | 目标结构确认前不创建业务目录 | 防止目录先行后再次补写功能 |
|
||
| 2026-07-30 | 目标目录确定为`app/` | 使用长期正式名称,不再建立新的版本式重写目录 |
|
||
| 2026-07-30 | 先建立原样可运行副本,再迁移目录职责 | 保证整理的是原件,而不是依据规格书重新实现 |
|
||
| 2026-07-30 | 不确定代码进入待删账本并延迟试删 | 删除必须能够单独回档并经自动与人工验收 |
|
||
|
||
## 恢复工作检查
|
||
|
||
- [x] 已阅读`AGENTS.md`与保真迁移总纲。
|
||
- [x] 已读取状态JSON和本账本最后一项。
|
||
- [x] 已确认Git工作区和基线提交。
|
||
- [x] 已确认没有修改`next/`或正式数据。
|
||
- [x] 已说明当前切片及新旧等价证据。
|
||
- [x] 已在编辑前确认没有未关闭差异。
|