Skip to content

feat: 扩展匿名使用统计覆盖核心功能#38

Merged
chenpingan666 merged 3 commits into
developfrom
codex/anonymous-analytics
Jul 22, 2026
Merged

feat: 扩展匿名使用统计覆盖核心功能#38
chenpingan666 merged 3 commits into
developfrom
codex/anonymous-analytics

Conversation

@selwen-0102

Copy link
Copy Markdown
Collaborator

问题描述

现有匿名统计仅覆盖少量启动、供应商切换、代理启停和更新事件,无法观察主要功能的实际使用量、成功率与故障分布。

修复思路

  • 统计默认开启,用户可在设置中随时关闭,关闭状态本地持久化。
  • 统一使用固定事件域与 action/result/app/source/enabled 枚举。
  • 只在真实业务成功或失败回调中统计,避免点击误报和重复上报。
  • 前端即时熔断,Rust 后端发送前再次读取设置。
  • 前后端双重白名单,不记录密钥、账号、供应商名称、URL、路径、错误正文或配置内容。

覆盖范围

  • Claude、Codex、Gemini、OpenCode、OpenClaw、Hermes
  • 供应商新增、编辑、删除、切换、排序、测试
  • 本地代理、应用接管、路由配置、热切换、故障转移队列、熔断
  • OAuth 登录、全部退出、单账号退出,仅记录类型和结果
  • 配置导入、导出、备份、恢复
  • WebDAV 测试、上传、下载
  • 更新检查、下载、安装,并区分自动/手动检查
  • 应用目录、各客户端目录、终端和开机启动设置

更新代码架构

  • 新增统一前端统计入口 src/lib/analytics.ts
  • 新增 Rust 统计命令与严格事件 shape 校验。
  • 固定 Umami 地址和站点 ID,不允许前端指定统计目标。
  • 限制并发与速率,3 秒超时,不重试、不持久化事件队列。
  • 同步新增设置 UI、三语言文案、交接文档与人工 QA。

验证

  • pnpm exec tsc --noEmit
  • cargo fmt --manifest-path src-tauri/Cargo.toml -- --check
  • cargo test --manifest-path src-tauri/Cargo.toml commands::analytics::tests --lib:8 passed
  • cargo test --manifest-path src-tauri/Cargo.toml analytics_defaults_on_but_preserves_explicit_opt_out --lib:1 passed
  • git diff --check

未执行完整 App/DMG 构建。

水滴鱼 and others added 3 commits July 21, 2026 17:58
问题描述:现有统计只能覆盖少量启动、供应商切换、代理启停和更新事件,无法在匿名边界内观察主要功能的使用量与结果。

修复思路:统一使用固定事件域及 action/result/app/source/enabled 枚举,在真实业务成功或失败回调中上报,并由前后端双重白名单过滤敏感字段。

更新代码架构:新增统一前端统计入口和 Rust 上报命令,接入供应商、代理、OAuth、配置、WebDAV、更新与设置模块,同时补充默认开启可关闭的设置、Docs/QA 和安全测试。
问题描述:develop 合入 CC 3.17 底座、S3、Profile、Usage 和新更新链路后,PR #38 与设置、供应商、更新等入口产生代码冲突。

修复思路:以最新 develop 架构为准逐项迁移匿名统计埋点,删除已废弃的旧 build 工作流,不回退底座新增功能;更新检查适配新原生与 GitHub 兜底链路。

更新代码架构:保留统一 analytics 前端入口与 Rust 严格白名单,把供应商、代理、OAuth、同步、设置和更新事件接入 CC 3.17 对应的新 Hook、Context 与后端设置模型。

@chenpingan666 chenpingan666 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

已完成代码审查并验证通过。

重点确认:

  • 匿名统计采用固定事件名与字段白名单,后端拒绝未知字段,不上传 Provider 名称、ID、URL、路径、错误正文、账号或密钥等敏感信息;
  • Release 构建才发送,用户关闭后前后端双重熔断,3 秒超时且不重试、不落盘;
  • 已补齐 Web 热更新 requiredCapabilities 契约和 invariant 检查;
  • 已区分 Profile、托盘与故障转移切换来源,避免统计污染。

本地验证:check:tuzi、format:check、typecheck、451 项前端单测、Rust 定向测试、cargo check --locked、git diff --check 全部通过;远端四平台 CI 全绿。

@chenpingan666
chenpingan666 merged commit d612489 into develop Jul 22, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants