# 切片 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`及三个方法保持存在,并由清理契约测试持续保护。 因此上述删除保持“候选试删”状态;只有用户人工验收后才改为“确认废弃”。