feat: add project usage analytics with ECharts
This commit is contained in:
22
.planning/usage-statistics-echarts/findings.md
Normal file
22
.planning/usage-statistics-echarts/findings.md
Normal file
@@ -0,0 +1,22 @@
|
||||
# 使用统计 ECharts 迁移发现
|
||||
|
||||
## 基线
|
||||
|
||||
- codebase-memory 项目 `home-cc-web` 索引 ready:4,817 节点、10,212 条边。
|
||||
- 图表入口集中在 `renderUsageSparklines`、`renderUsageTrend`、`renderUsageMcpStatus`,总入口仍是 `renderUsageDashboard`。
|
||||
- 当前图表分别使用手写 SVG path/rect 与 CSS conic-gradient;统计数据已经完整,迁移不需要修改后端。
|
||||
- cc-web 没有前端打包流水线,页面直接加载 `public` 静态资源,因此 ECharts 应以本地 UMD bundle 接入。
|
||||
- 当前工作树已有同一看板未提交修改,迁移必须在这些改动上增量实施,不还原或格式化无关区域。
|
||||
|
||||
## 设计约束
|
||||
|
||||
- 不使用 ECharts 默认主题色板,颜色全部读取使用统计语义 CSS 变量。
|
||||
- 微趋势不展示坐标轴、图例和 tooltip chrome;主趋势才承担探索交互。
|
||||
- 环图继续使用现有 DOM 图例,ECharts 只负责可访问图形与 tooltip,避免信息重复。
|
||||
- reduced-motion 下关闭图表更新动画。
|
||||
|
||||
## 运行时接入
|
||||
|
||||
- 固定使用 `echarts@5.6.0`,通过单次 proxyd registry 安装,没有修改项目或用户 npm registry 配置。
|
||||
- 浏览器运行时位于 `public/vendor/echarts.min.js`,Apache 2.0 `LICENSE` 与 `NOTICE` 同目录保留。
|
||||
- npm 安装报告 2 个依赖树漏洞提示;遵照用户此前“不要审计”的要求,本轮不执行 `npm audit` 或自动修复,也不扩大依赖变更。
|
||||
14
.planning/usage-statistics-echarts/progress.md
Normal file
14
.planning/usage-statistics-echarts/progress.md
Normal file
@@ -0,0 +1,14 @@
|
||||
# 使用统计 ECharts 迁移进度
|
||||
|
||||
- 2026-08-03T21:12:00+08:00:完成技能读取、代码入口定位和迁移边界定义,开始引入本地 ECharts 运行时。
|
||||
- 2026-08-03T21:37:00+08:00:安装并固定 echarts@5.6.0;本地 bundle 与 npm 源文件 SHA-256 一致,许可证随 public/vendor 保留,开始迁移微趋势图。
|
||||
- 2026-08-03T21:41:00+08:00:五项 KPI 微趋势改为 ECharts 平滑折线、渐变面积与末端散点,语法检查通过,开始迁移主趋势混合图。
|
||||
- 2026-08-03T21:47:00+08:00:主趋势改为 ECharts 双轴柱线混合图,加入受约束 tooltip、可切换图例和移动标签密度,已删除手写 SVG 构造逻辑。
|
||||
- 2026-08-03T21:52:00+08:00:三个状态环图改为 ECharts pie,中心值、tooltip、主题色和无数据占位已接入;重渲染前主动 dispose 旧实例,开始补主题与 resize 生命周期。
|
||||
- 2026-08-03T21:53:00+08:00:接入看板打开、容器 resize、窗口 resize、主题 mutation 与 reduced-motion 生命周期;删除手写 SVG 图表残留样式,语法检查通过。
|
||||
- 2026-08-03T21:54:00+08:00:ECharts 专项回归通过;真实浏览器首轮停在页面加载完成信号。收到新需求后终止旧版验收,开始将全部 Skill 展示替换为项目统计。
|
||||
- 2026-08-03T22:01:00+08:00:新增项目聚合、每日项目去重、会话项目归属和项目排行;顶部、趋势、状态环图、排行、最近会话均已移除 Skill 展示,数据单测与统计专项回归通过。
|
||||
- 2026-08-03T22:09:00+08:00:真实浏览器完成 4 视口、11 主题、16 张截图验收;全部视图 ECharts 画布齐全,无横向/文字溢出,无 Skill 可见文案。
|
||||
- 2026-08-04T00:02:00+08:00:统计专项、gilded、wasteland、全量回归、语法与 diff 检查通过;在线静态资源均返回 200,本地 ECharts bundle 与 npm 源文件哈希一致。按用户要求进入重新打包与提交推送阶段。
|
||||
- 2026-08-04T00:47:58+08:00:使用 Bun 1.3.14 重新构建 CentOS 7 baseline 单文件包;MCP initialize、ELF、归档结构及 ECharts 资源验证通过,归档 SHA-256 为 e1e0afe99a64970e93745feaf4f981213f99490eba04b7050b5900e4b43ed2cc。
|
||||
- 2026-08-04T00:50:00+08:00:发布产物、源码、ECharts 运行时、项目统计、规划记录、参考资料和真实浏览器截图已统一纳入最终提交范围;任务跟踪 CSV 已按流程清理。
|
||||
51
.planning/usage-statistics-echarts/task_plan.md
Normal file
51
.planning/usage-statistics-echarts/task_plan.md
Normal file
@@ -0,0 +1,51 @@
|
||||
# 使用统计 ECharts 迁移计划
|
||||
|
||||
## 目标
|
||||
|
||||
将使用统计看板的五项微趋势、主趋势和三项环图统一迁移到本地 ECharts 运行时,保留现有真实统计协议、产品化布局、11 个主题与响应式交互。
|
||||
|
||||
## 完成标准
|
||||
|
||||
- 页面从本地静态资源加载固定版本 ECharts,不依赖 CDN。
|
||||
- 五项 KPI 微趋势、主趋势混合图和三个状态环图全部由 ECharts 渲染。
|
||||
- 主趋势支持 tooltip 和图例显隐;微趋势、环图保持克制,不增加无关控件。
|
||||
- 主题切换、看板打开、容器 resize 与移动端断点后图表尺寸和颜色正确。
|
||||
- 不改变统计协议、数据字段、MCP Top 6、明细抽屉、最近会话和聊天状态。
|
||||
- 统计专项、相关主题专项、全量回归和真实浏览器视觉验收通过。
|
||||
|
||||
## 阶段
|
||||
|
||||
1. [complete] 固化 ECharts 迁移边界与视觉原则
|
||||
2. [complete] 引入本地 ECharts 运行时并接入页面
|
||||
3. [complete] 迁移五项指标微趋势图
|
||||
4. [complete] 迁移主使用趋势图
|
||||
5. [complete] 迁移三项状态环图
|
||||
6. [complete] 补齐主题同步与响应式生命周期
|
||||
7. [complete] 移除 Skill 展示并接入项目统计
|
||||
8. [complete] 更新回归契约与真实浏览器验收
|
||||
9. [complete] 执行专项全量回归与在线确认
|
||||
10. [complete] 重新构建并验证 CentOS 7 baseline 发布包
|
||||
11. [complete] 提交并推送全部修改
|
||||
|
||||
## 决策
|
||||
|
||||
- 视觉论点:ECharts 只替换图表几何和交互能力,继续服从 cc-web 当前低装饰、单强调色的运营工作台语言。
|
||||
- 内容计划:顶部保留五项微趋势,中部保留一张主趋势,状态区保留三项真实构成;不增加协议不存在的字段。
|
||||
- 交互论点:主图提供 tooltip 与可切换图例;所有图表随主题和容器尺寸更新;动画遵守 reduced-motion。
|
||||
- 采用本地固定版本 UMD bundle,由 index.html 在 app.js 前加载,单文件发布自动携带 public 静态资源。
|
||||
- 按用户此前要求不派审计代理。
|
||||
- 用户确认 Skill 统计缺乏参考性;后端保留原字段兼容既有协议,前端所有 Skill 展示统一替换为真实项目聚合。
|
||||
|
||||
## 错误记录
|
||||
|
||||
| 错误 | 尝试 | 处理 |
|
||||
|---|---:|---|
|
||||
| 预期的 `node_modules/echarts/LICENSE.txt` 不存在 | 1 | 查找包内许可文件后使用实际的 `LICENSE` 与 `NOTICE`,同时归档到 public/vendor |
|
||||
| index 脚本补丁上下文遗漏了 Mermaid 引用 | 1 | 读取实际尾部脚本顺序后使用完整稳定上下文重新接入 |
|
||||
| rg 检查模式以 `--usage-donut` 开头被解析为参数 | 1 | 使用 `--` 终止参数解析后复检,确认旧 donut 实现无残留 |
|
||||
| 首轮 ECharts 浏览器验收停在页面 complete 信号 | 1 | 已补导航诊断并延长加载窗口;因项目统计需求到达,主动终止旧版验收,待新版 UI 后重跑 |
|
||||
|
||||
## 状态
|
||||
|
||||
- 当前:全部完成
|
||||
- 更新时间:2026-08-04T00:50:00+08:00
|
||||
Reference in New Issue
Block a user