Files
xiaobaifupan/docs/migration/evidence/slice-08/README.md
T

70 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 切片 08:问天、观势、观气与观心
> 基线:`2919229`(切片 07
> 回档标签:`xiaobai-preservation-slice-08-20260731`
> 结论:源码、API、数据库、真实页面、动画与全量回归通过;最终视觉仍等待全站人工验收
## 1. 原实现归位
本切片只移动原版问天 Agent、历法/卦象引擎、服务、持久化与三个 HTTP 入口,没有从
`next/`取用代码,也没有改写六爻、安全门、五运六气、个人合参、铜钱起卦、历史去重或
LLM 解读逻辑。
| 原位置 | 新的唯一实现位置 | 兼容方式 |
|---|---|---|
| `app/heaven_agent.py` | `app/backend/features/heaven/agent.py` | 根级模块指向同一模块对象 |
| `app/heaven_engine.py` | `app/backend/features/heaven/engine.py` | 根级模块指向同一模块对象 |
| `DashboardService`问天方法 | `app/backend/features/heaven/service.py` | `HeavenServiceMixin` |
| 问天历史持久化 | `app/backend/features/heaven/repository.py` | `HeavenRepositoryMixin` |
| 三个问天 POST 入口 | `app/backend/features/heaven/http.py` | `HeavenHttpMixin` |
历法引擎搬迁后仍从`app/vendor``app/data/iching_zh.json`读取原资源;这是唯一资源路径适配,
顶层函数与类定义未变。旧测试依赖的根级模块继续有效。
## 2. 源码等价
- `heaven_agent.py`与原版文件 SHA-256 一致。
- `heaven_engine.py`所有顶层函数和类与原版无位置信息 AST 一致。
- 20个问天服务方法中19个与原版 AST 一致;`_heaven_reading_identity`仅将旧巨型类名
`DashboardService`替换为已归位的`MarketServiceMixin`静态日期格式化方法。
- 5个问天 Repository 方法与原版 AST 一致。
- 三个 HTTP 方法只把全局`SERVICE`改为 Mixin 的`self.application_service`,状态码、字段和异常语义不变。
- `DashboardService``ReviewDatabase``RequestHandler`不再重复保留已迁移实现。
## 3. API 与数据库差分
- 原版`8788`和迁移版`8789`使用同一正式数据库的两个临时副本。
- 固定日期的问天初始化、三类历史读取、六爻成卦和个人五行计算共6个接口,状态码与业务 JSON 完全一致。
- 未调用真实`/api/heaven/interpret`,避免外部模型波动及测试记录写入;提示词和调用链由源码等价与单元测试覆盖。
- 两版均为62个 schema 对象;`heaven_readings``users``system_settings``llm_usage`
`user_birth_profiles``sector_phase_overrides`逐行一致。
- 差分只在系统临时目录副本运行,正式数据库未写入问天记录或 LLM 用量。
## 4. 真实浏览器与动画检查
- 1920×1080视口逐页检查观势、观气、观心,无横向溢出,页面滚动边界可用。
- 观势保留星空、三才六爻与八卦待载入场景;观气生成100个星点,五运六气环动画名为`wt-spin`
五行行业默认折叠;观心呼吸波纹、香火燃烧和阶段文字均持续运行。
- 夜间模式问天背景为`rgb(11, 17, 32)`,全页无控制台错误。
- 没有触发真实解势、解运或解卦调用,加载动画的静态资产及脚本未改动。
- 截图 SHA-256
- `heaven-trend-1080.png``9e70d9cbfd741e74d3c4511c0e76ef8e625a6a31fd5d6bde014103f807bcc76e`
- `heaven-fortune-1080.png``e4cdf0e0fc1d9325724654a781febed1d509e49ddccecb3355803b5e9f1d2f5c`
- `heaven-heart-breathing-1080.png``3493a59b9032c1a8a1ba7da609b499c736170d2c7947b3aa0ac4c8b95d981ff5`
- `heaven-heart-dark-1080.png``3d346fea6b593fa4e43037f5fc68eda1a3f3446a223c2022d9084922f646a088`
## 5. 自动验证与保留边界
| 验证 | 结果 |
|---|---:|
| 原版`python -m unittest discover -s tests -q` | 231项通过 |
| 迁移版`python -m unittest discover -s tests -q` | 280项通过 |
| `python -m unittest tests.test_preservation_slice_heaven -q` | 7项通过 |
| `npx.cmd playwright test --reporter=dot` | 45项通过(2.2分钟) |
| `git diff --check` | 通过 |
- 复盘助手、交易日志、自选、笔记与提醒属于切片09,本切片不提前移动。
- 前端 DOM、页面 JS、CSS和移动端行为未改动,统一归档延至切片10。
- `static/heaven-loading.js`是否失效仍不确定,继续保留到切片11试删。
- 没有删除待定代码、没有修改正式数据库、没有测试或切换 Docker/NAS。