80 lines
5.6 KiB
Markdown
80 lines
5.6 KiB
Markdown
# 切片 11:不确定代码审计日志
|
||
|
||
> 审计基线:`dec3cd12365df5e7d4c391369f14c457cf56d7d9`
|
||
> 恢复标签:`xiaobai-preservation-slice-10-20260731`
|
||
> 原则:只有静态引用、动态注册、运行路径和兼容责任同时排除后才试删;其余继续保留
|
||
> 当前状态:试删后的自动、API、数据库和浏览器验收已通过,等待用户人工确认
|
||
|
||
本日志记录试删前的原位置、内容指纹、证据、决定和恢复方式。试删不等于永久废弃;自动回归通过后仍需用户在迁移版真实页面完成人工验收,才能把删除结论视为最终确认。
|
||
|
||
## 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标签恢复`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标签恢复该文件。
|
||
|
||
## 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`及三个方法保持存在,并由清理契约测试持续保护。
|
||
|
||
因此上述删除保持“候选试删”状态;只有用户人工验收后才改为“确认废弃”。
|