docs: update dev-log - 清理死代码 LogManager+logsApi+LogEntry

This commit is contained in:
attacker committed 2026-06-17 08:05:12 +08:00
1 parent 73505d6604
commit 4797059be2
1 file changed
+25
+25
View File
@@ -1518,3 +1518,28 @@ cd ~/devops/aiops
- LogManager.tsx(514) 属已移除菜单(日志能力)的死代码,可考虑直接删除
- sidebar.tsx(689行) 为 shadcn 标准 UI 组件,context 已提取,剩余无需拆分
- 后端 sql_audit.go(435行) 属已移除菜单死代码(保留不拆)
## 2026-06-17 自动推进(cron)— 清理死代码 LogManager + logsApi + LogEntry
- **任务**: 清理已移除「日志能力」菜单遗留的孤立死代码(LogManager.tsx + logsApi + LogEntry 类型)
- **背景**: 日志能力菜单+路由已于此前移除(用户要求"太复杂暂不做"),但前端组件文件 `LogManager.tsx`(514行)、`api.ts` 中的 `logsApi` 对象(32行)、`types/index.ts` 中的 `LogEntry` 接口(9行)残留在磁盘上成为死代码。dev-log 上次建议"LogManager.tsx(514) 属已移除菜单(日志能力)的死代码,可考虑直接删除"。本次执行系统性死代码审计并清理
- **审计方法**: 用 Python 构建前端 import 图(从 App.tsx/main.tsx BFS 遍历所有 import),对比全量组件文件找出不可达的孤立文件;再用 grep 精确验证每个候选的引用计数(排除 `@/` alias 解析误报)。最终确认 LogManager.tsx 为唯一零引用的死组件,logsApi 仅被 LogManager 引用,LogEntry 仅被 LogManager 引用
- **清理内容**:
- `frontend/src/components/monitor/logs/LogManager.tsx` — 删除(514行) + 移除整个 `logs/` 目录(该目录仅含此文件)。注意:此文件从未被 git 跟踪(untracked),`rm` 直接从磁盘移除
- `frontend/src/services/api.ts` — 移除 `logsApi` 对象(行577-608,含 query/getSources/createSource/deleteSource/export 5个方法,对应后端 /logs/* 路由),共 -32 行
- `frontend/src/types/index.ts` — 移除 `LogEntry` 接口(行358-367,含 id/timestamp/level/source/message/host/metadata 字段),共 -9 行
- **结果**:
- npx tsc --noEmit 零错误 ✅(确认无任何文件引用已删除的组件/API/类型)
- npm run build 通过(3.17s) ✅
- ./run.sh restart 后 /health 正常 + 前端 200 ✅
- grep 确认 frontend/src 下零残留引用(logsApi/LogEntry/LogManager/monitor/logs 全部 0 命中) ✅
- git push 成功 (commit 73505d6) ✅
- 后端 log.go handler + /logs 路由保留(遵循"后端代码保留不删除"原则,仅清理前端死代码)
- **下一步建议**:
- 前端剩余接近上限的真实业务组件: TopologyView.tsx(576)、AIAlertAnalyzer.tsx(541)
- TopologyView.tsx(576) 含 SVG 拖拽状态机,拆分需谨慎保留拖拽三件套逻辑(onMouseDown/onMouseMove/onMouseUp + getScreenCTM)
- AIAlertAnalyzer.tsx(541) 可提取规则分析卡片/历史案例匹配区块为子组件
- TraceManager.tsx(620)/GrafanaDashboard.tsx(616) 属优雅降级组件(无后端),拆分价值低于真实业务组件
- 可考虑后端同步清理 log.go handler(已移除菜单,4个API变死代码),但需确认无其他前端/Agent 调用