全年活动图、Copilot 图表与遥测配置入口
2026-10-01,Windows 11 x64。本轮保留此前 Copilot 审查及其他未提交修改; 没有提交、推送、修改真实 Agent 配置或发送模型调用。 配置要求见 Copilot OTel。
修复与范围
- 热力图原来复用最近 30 天查询;现在以统计时区的当前年份查询 Jan 1–Dec 31, 可切换年份,闰年 366 格。未来、真实零调用、无按日历史及部分覆盖分别保留。 星期分布独立查询统计筛选范围,避免年份切换或跨年范围使其漏掉日期;星期名使用 UTC 日历。
- Copilot 输入存在,但缓存/未缓存拆分未知,原图只画拆分而隐藏输入;现增加已报告输入曲线。 总量未知时显示已知输入/输出分量和提示,仍不推导完整 total。 趋势及总览今日悬浮保留未知总量、已知分量与实测零值;零值保留为实测零,不显示为无数据。
- 启动后使用 blocking worker 异步检查,前端共享结果;总览提示缺失配置,设置常规页 提供完整列表、重查、预览、合并应用及当前进程内撤销。
- VS Code 默认用户/profile、Insiders、Agent Host、Gemini、Qwen、Claude、Codex、 CodeBuddy 采用各自配置;CLI Copilot 创建进程级 launcher,不改自动管理的状态文件。 检测 PATH 文件与已有用户目录不执行 CLI,常规安装清单用于验证 VS Code 配置键。
- JSONC 精确区间编辑,TOML 保留格式;有界读取、重复键/过深嵌套/链接/只读/并发检查。 Codex exporter 按叶字段合并,普通表/内联表的既有 headers 与其他选项保留;冲突形状不改写。 备份原始字节,临时文件替换;profile 同步排除项合并默认用户文件并有条件回滚。 撤销跳过用户后改的值;旧输出目标、企业策略、启动环境与 Sync 显式冲突不被强改。
- 本机接收器即时绑定后才写 OTLP 设置;失败撤回本次启用。修正 OTLP AnyValue 字段编号及旧测试编码,protobuf 成功响应为空 protobuf;增加 logs 只接收明确允许的属性。 logs/supplemental traces 独立存放,防止加入已有原生统计。
核验资料
共同字段:verified_at=2026-10-01,owner=仓库维护者;相关配置任务、客户端更新或 格式/策略变化时复核。rolling 文档证明配置方式,不等于安装版本真实导出验收。
| ID / scope | source_url / source_version | method / status / impact |
|---|---|---|
| T01 Copilot file 与 Agent Host | 既有固定版本源码依据,dc546cc3c9979a19adafccd439889d7b64298def | 源码与本机 manifest 只读核验;扩展 0.68.0 声明、app 1.140.0 基线;新导出未启用 |
| T02 Sync 作用域 | userDataSync.ts | 固定源码确认 ignoredSettings 是 APPLICATION,默认空列表;profile 必须另改默认用户文件 |
| T03 Gemini outfile/home | 官方遥测、Storage、paths,rolling | 官方文档/源码;HOME 替换后附加 .gemini;仅合成写入验证 |
| T04 Qwen 配置与内容开关 | 官方设置、遥测,rolling | 官方正文;QWEN_HOME 与 runtime 不同,敏感日志/span 开关关闭;仅合成验证 |
| T05 Claude logs/env | 官方监控,rolling | 官方正文确认 logs 独立 HTTP/JSON endpoint 与内容开关;不配置 beta traces 或不支持的 metrics |
| T06 Codex TOML/exporter | 官方示例,rolling | 官方正文确认 HTTP/JSON logs exporter 与 log_user_prompt;使用 openai-docs Skill 核验 |
| T07 CodeBuddy env/traces | 官方用户设置、官方监控,rolling | settings 正文经公开 HTML 核对 env/session 语义;仅 HTTP/protobuf traces;未声称本机新版导出已验收 |
| T08 CLI 用户状态 | 官方配置目录,rolling | config.json 为自动管理状态、settings.json 为用户设置;未证实用户 telemetry 键,故仅创建 launcher |
| T09 OTLP 编码 | common.proto、logs.proto,rolling | 官方 proto 核对字段及独立标准样本;旧整数/布尔/双精度编号错误已修复 |
公开资料核验结果保存在忽略目录 build/telemetry-setup-evidence/。
固定 Sync 源码 SHA256:bdff135f2943761075df3e238a6bc190c1dd5289e033585acbfebfa3835bf329。
本机只读检查
本节记录前一轮检查,当时用户目录仍可提供配置候选;下方 UI 调整后的检查收紧安装依据。
显式执行 cargo test --manifest-path desktop/src-tauri/Cargo.toml --locked -p llm-usage-desktop local_configuration_audit -- --ignored --nocapture,退出码 0。
最终探测识别 VS Code 默认用户及一个 profile、各自 Agent Host、Codex、Copilot CLI、
CodeBuddy 的缺失用户层输出。只输出客户端 ID、状态和原因,不输出配置正文或凭据。
该检查只读,不以本机存在用户目录证明 CLI 的当前版本,也不保证另一个启动环境无覆盖。
配置候选检查通过不等于输出文件或 token 记录已产生。
验证与缺口
本节为前一轮验收基线;后续批量入口的验收见下一节。 环境:Node.js 24.21.0、Rust/Cargo 1.98.1、Edge 154.0.4258.48,Windows 11 x64。 所有命令从仓库根执行,以下退出码均为 0。
| 命令 | 结果 |
|---|---|
npm run verify |
Markdown 163 文件、资源 67 派生/82 文件、脚本测试 3、UI 测试 10;svelte-check 0 错误/警告;fmt、clippy -D warnings 通过;Rust 752 通过/1 默认忽略;前端 745 模块构建通过 |
npm run test:browser |
真实 Edge、9 个截图、159 次合成 IPC;pageerror 为空,全部交互断言通过 |
cargo test ... local_configuration_audit -- --ignored --nocapture |
默认忽略的本机只读审计显式运行通过,7 个配置候选 |
python build/copilot-otel-setup/check-links.py |
6 份受影响文档的 98 个相对链接通过;不宣称外部链接或章节定位的在线验收 |
git diff --check |
通过;临时产物仅在已忽略的 build/ 下 |
完整日志在 build/telemetry-setup-evidence/{verify,browser,local-audit}.log,
截图和交互结果在 build/browser-smoke/;均不进入版本库。
浏览器使用真实 Edge、Vite 和 IPC 合成响应,不连接真实 Agent。
已验证全年/闰年/未来格、已知输入但缓存未知、未知 total 与零输出悬浮、异步检查不写配置、
总览/设置入口、预览/应用/撤销、十语言、主题和窄屏,以及原有筛选/用户/分页回归。
Rust 配置测试全部使用仓库 build/ 中合成文件;包含 profile 双文件失败回滚、
Codex 内联表/普通表保留和撤销、来源发行者核对、深度上限及标准 OTLP 编码。
未验收:macOS/Linux 桌面、portable/custom user-data 自动发现、真实用户配置写入及 重载后的新 OTel 导出、按新导出自动入统计、跨格式统计来源选择、trace SQLite 与持久化撤销。 新导出目前用于补充核验,不能解释为已补齐历史或已纳入总 token。
总览简化与批量配置(2026-10-01 后续)
总览仅显示简要提示与“一键开启全部”“查看详情”;详情直接选择设置中独立的 本机遥测面板并定位焦点。该面板保留单项预览/合并应用/撤销,新增批量按钮。 已配置目标、管理策略及其他阻止自动配置的项目跳过;每项现场预览后立即应用, 避免多个 profile 共享设置文件造成预先生成的计划过期。单项失败继续后续项目, 报告成功、失败和手工项;操作状态与撤销入口在切换页面后保留。
安装检查只认可 PATH 中的 CLI 启动文件或经过发行者核对的 IDE 安装清单; 独立 Copilot 扩展还要求对应 IDE 的启动文件。残留用户目录、globalStorage、profile 与缺少对应 IDE 安装依据的扩展缓存不会单独使 Agent 显示。没有配置文件的已安装 CLI 仍显示。 CLI 非 PATH 安装、portable/custom user-data 与桌面平台的既有验收缺口继续保留。
新增测试:共享设置写入顺序、失败继续与错误脱敏、无可配置项/检查失败零写入; 安装残留排除与独立扩展的宿主依据;总览只有两个按钮、不列路径/键/Agent, 详情导航与焦点、执行中切页、部分失败重试、跨页撤销和三语言窄屏。 沿用上述 Windows/Node/Rust/Edge 环境,以下命令从仓库根执行,最终退出码均为 0。
| 命令 | 最终结果 |
|---|---|
npm run verify |
Markdown 163 文件;资源 67 派生/82 文件;脚本 3、UI 13、Rust 754 通过/1 默认忽略;svelte-check 0 错误/警告;fmt/clippy 通过;前端 746 模块构建通过 |
npm run test:browser |
两次独立执行通过,每次 192 次合成 IPC;25 类检查、11 张截图,pageerror 为空;既有统计/用户/分页断言继续通过 |
cargo test ... local_configuration_audit -- --ignored --nocapture |
1 个显式只读测试通过,识别 VS Code 默认用户/profile 各自扩展和 Agent Host,以及 Codex,共 5 项 |
python build/copilot-otel-setup/check-links.py / git diff --check |
6 份文档、98 个相对链接及补丁空白检查通过 |
本机 PATH 未找到 Copilot CLI、CodeBuddy 等 CLI 启动文件;它们的用户目录不再单独
进入配置候选。这不证明非标准路径的程序已卸载,也不删除既有统计。
日志保存在 build/telemetry-batch-ui/{verify,browser,browser-recheck,local-audit}.log,
页面截图和合成交互结果仍在 build/browser-smoke/;已人工核对总览与窄屏详情截图。
执行中切页的回归采用可显式释放的异步 mock,避免短定时器在导航完成前已经结束。 调试时另出现一次初始卡片加载 30 秒超时,未获得当次页面错误;增加失败 JSON/截图 采集后,两次独立运行同一组断言通过,启动超时原因未确定。未放宽业务断言。 未修改真实 Agent 配置,未执行 Agent;既有真实写入/新导出/跨平台验收缺口继续保留。