refactor: establish standalone application boundary

This commit is contained in:
leefer
2026-08-03 21:42:25 +08:00
parent cc5fb8d73e
commit e1e76cd51e
324 changed files with 63090 additions and 44743 deletions
@@ -0,0 +1,91 @@
# 切片 11:不确定代码审计日志
> 审计基线:`dec3cd12365df5e7d4c391369f14c457cf56d7d9`
> 恢复标签:`xiaobai-preservation-slice-10-20260731`
> 原则:只有静态引用、动态注册、运行路径和兼容责任同时排除后才试删;其余继续保留
> 当前状态:自动与人工验收均已通过,试删项于2026-08-01确认废弃
本日志记录试删前的原位置、内容指纹、证据、决定和恢复方式。试删阶段不等于永久废弃;
2026-08-01用户完成迁移版全部页面和功能人工检查,确认视觉与功能迁移成功,所见问题几乎都
属于原版遗留问题,未发现阻止验收的迁移回归。该人工结论关闭了本日志的最终确认门槛。
## 1. `app/demo_data.py`
- 类型:旧演示行情构造器,376行、17,199字节。
- SHA-256`fb69682d499993534e7ee029989b35cf512c455eec49e07d7b09658cddd9e028`
- 静态引用:运行代码、配置、启动入口、Docker、页面及后台任务均没有导入或调用`DEMO_LIMITS``build_demo_dashboard``build_demo_dragon_tiger``build_demo_stock_detail`
- 动态/注册路径:没有模块名字符串、插件注册或反射加载。
- 产品事实:`app/README.md`明确主行情不再回退演示数据;行情服务和Repository只负责排除历史`source=demo`缓存,未依赖本文件。
- 兼容责任:不参与数据库schema、历史记录解释或配置读取。
- 最终决定:确认废弃;切片10标签继续保留单项恢复能力。
- 恢复:从切片10标签恢复`app/demo_data.py`
## 2. `app/frontend/heaven-loading.js`
- 类型:旧版问天加载动画,642行、30,563字节。
- SHA-256`ee914762b893a89f745e9e705cac6840c1dbd6c5b68dc7a47620b8c4db3615c7`
- 静态引用:`app/frontend/index.html`只加载`/pages/heaven/loading-v2.js`,没有加载本文件。
- 动态/注册路径:没有脚本清单、页面注册表或运行时代码引用旧路径;新旧文件虽然都导出`window.HeavenLoadingCanvas`,但浏览器只能执行v2。
- 运行证据:切片10已覆盖观势、观气和观心解读加载动画,v2节点、动画名及可见行为与原版基线一致。
- 兼容责任:不是数据库、配置或历史数据资产。
- 最终决定:确认废弃;切片10标签继续保留单项恢复能力。
- 恢复:从切片10标签恢复该文件。
## 3. 五个疑似无引用前端函数
全前端非供应商JavaScript逐词扫描后,下列符号都只有定义本身一次;HTML、页面注册表、事件绑定、字符串查找、测试入口和其他脚本均无消费者:
| 函数 | 位置 | 原用途线索 | 决定 |
|---|---|---|---|
| `commonReviewColumns` | `frontend/shared/export.js` | 旧通用导出列定义;当前每个导出入口均显式传列 | 确认废弃 |
| `outcomeClass` | `frontend/app.js` | 旧昨日涨停结果样式映射;当前渲染不调用 | 确认废弃 |
| `screenerResultMatchesSelection` | `frontend/pages/screener/page.js` | 旧选股结果存在性包装;已由`activeScreenerResultEntry`直接承担 | 确认废弃 |
| `selectRegime` | `frontend/pages/screener/page.js` | 旧阶段手动切换;当前阶段由盘后数据写入且无按钮绑定 | 确认废弃 |
| `showHeartRitualCurtain` | `frontend/pages/heaven/page.js` | 旧观心幕帘过场;当前流程直接调用`activateHeartRises` | 确认废弃 |
本次只删除这5个函数,不连带删除`selectedRegime``heartRitualCurtain`隐藏节点、`heartCurtainTimer`或相关CSS。后者与仍在使用的选股状态、观心节点和复合选择器相邻,尚不足以证明可独立删除,默认保留。
恢复:从切片10标签按上述文件恢复对应函数;源码映射可通过`docs/migration/evidence/slice-10/frontend-source-map.json`定位。
## 4. `wencai_saved_queries`及其方法
- 类型:历史兼容数据表及用户隔离Repository方法。
- 当前入口:问财前端和`/api/wencai*`已按用户决定取消;iFinD的`wencai()`能力仍由股池原因补全使用,但不依赖保存查询表。
- 保留责任:数据库初始化仍创建表和用户索引;`list_wencai_saved_queries``save_wencai_query``delete_wencai_saved_query`保持已有数据可读取;`test_ifind_features`明确验证跨用户隔离。
- 风险:当前数据库表为空不能证明所有用户历史库均为空;删除会改变62项schema契约并破坏旧库兼容。
- 决定:保留,不试删。只有未来正式数据库迁移、导出/归档和用户批准同时具备时才允许移除。
## 5. 试删验收门槛
每次试删后必须同时满足:
1. 全前端符号与资源引用扫描没有悬空消费者。
2. 全部JavaScript通过`node --check`
3. 原版231项测试继续通过,迁移版全量测试通过。
4. 21个固定只读API与数据库schema/关键表差分继续一致;明确批准删除的运行外文件不应改变API或数据库。
5. 45项Playwright通过,问天加载动画与智能选股流程无回归。
6. 用户使用迁移版完成最终人工页面验收。
任一项失败时,按本日志指向的切片10标签恢复对应候选,不把其他已通过候选一起回退。
## 6. 试删后结果
- 五个前端符号在全部非供应商JavaScript中的剩余引用均为0。
- 运行代码中没有`demo_data`导入;页面只请求`/pages/heaven/loading-v2.js`
- 24个现存前端JavaScript文件通过`node --check`
- 原版231项、迁移版298项Python测试和45项Playwright全部通过。
- 21个只读API、62个schema对象和21张关键表继续与原版一致。
- 桌面日间/夜间及390x844移动端真实页面检查通过,问天三页和观气底部内容可达。
- `wencai_saved_queries`及三个方法保持存在,并由清理契约测试持续保护。
## 7. 人工最终确认
- 验收日期:2026-08-01。
- 验收运行时:隔离端口`8797`与迁移审计数据库副本。
- 验收范围:用户逐页浏览全部页面并测试全部可操作功能。
- 验收结论:视觉与功能迁移成功;发现的问题几乎都是原版遗留问题,未发现阻止验收的迁移回归。
- 删除结论:`demo_data.py`、旧问天加载文件和上述5个无消费者函数正式确认为废弃;
`wencai_saved_queries`及证据不足的相邻DOM、状态和CSS继续保留。
确认废弃不取消恢复证据。若后续发现历史兼容责任,可从
`xiaobai-preservation-slice-10-20260731`按本日志记录单项恢复,不回退其他迁移成果。