# 切片 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`按本日志记录单项恢复，不回退其他迁移成果。
