行为冻结物理拆分;保留 initTradingView/dispose 对外 API;无打包器。node --check 全绿。 Co-authored-by: Cursor <cursoragent@cursor.com>
2.1 KiB
2.1 KiB
ECR-008
Title: 拆分主站巨型 chart_tv.js(行为冻结)
Status: Done (Reviewed)
Date: 2026-08-07
Change Level: L3(结构重构;行为冻结)
Change
将 web/static/js/app/chart_tv.js(≈4700 行)按职责拆为多个无打包 script;薄门面保留 initTradingView / disposeTradingViewCharts 供 ui.js 调用。
Motivation
ECR-001/002 CODE_REVIEW 非阻断债务;威科夫与 Live 叠层继续堆入单体,审阅与回归成本上升。
Scope
Allowed
- 新增:
chart_tv_lifecycle.js/chart_tv_shell.js/chart_tv_indicators.js/chart_tv_chan.js/chart_tv_overlays.js/chart_tv_finalize.js chart_tv.js改为编排门面;index.html调整 script 顺序与 cache bustnode --check;主站手动冒烟
Forbidden
- Vite / React / TS 构建流水线
- 修改笔 / 线段 / 中枢 / 买卖点算法语义或绘制语义(仅搬移)
- 破坏
/api/analyzeJSON 字段 - 修改
config//strategies/ - 为主站重新引入 WebSocket 实时
Risk
| Risk | Mitigation |
|---|---|
| 拆分漏变量 / 作用域错误 | ctx 显式传参;冒烟 dispose + 三周期元素 + 威科夫 |
| script 顺序错误 | index.html 固定 lifecycle→…→门面→sync |
| 缓存旧单体 | bump ?v= |
Acceptance Criteria
initTradingView/disposeTradingViewCharts仍可被ui.js调用- 自动刷新 dispose 路径保留(含 Cycle Summary 节点保全)
- 主/次/次次 笔段中枢、买卖点、威科夫、ChanMACD 开关行为与拆前一致(搬移;浏览器目测待 Human)
node --check全部相关 JS PASS- IMPLEMENTATION_REPORT / TEST_REPORT / CHANGELOG / TRACEABILITY / CODE_REVIEW
Rollback
git revert 本 ECR 提交;可恢复单文件 chart_tv.js。
Risk Review
N/A(不改交易决策语义)
Linked
- IDEA:
docs/IDEA/IDEA-006-chart-tv-split.md - ENGINEERING_SPEC:
docs/ENGINEERING_SPEC/ECR-008-chart-tv-split.md - HANDOFF:
docs/HANDOFF/ECR-008-architect-to-engineer.md - TRACEABILITY: Yes