@@ -116,12 +116,16 @@ source-config 只用于百炼 / DashScope API 侧消费,不发送到通用网
116116
117117` page ` 仅记录有限数值页码;Webhook 等命令使用的不透明字符串游标不得进入本地日志或远端 AEM,即使字符串内容看起来是数字。
118118
119- 事件同时写入两处 :
119+ 事件写入两处 :
120120
121- 1 . 本地 ` ~/.bailian/telemetry.jsonl ` :权限 ` 0600 ` ,超过 5 MB 后重建
121+ 1 . 本地 ` ~/.bailian/telemetry.jsonl ` :权限 ` 0600 ` ,超过 5 MB 后重建;每行附带 ` uid ` (只读已有文件,不创建)
1221222 . AEM:` pid=bailian-cli-node ` ,源码运行自动使用 ` env=dev ` ,npm 安装或编译二进制使用 ` env=prod `
123123
124- 底层 Node tracker 还会附加公共设备字段:OS 类型/版本、Node 应用名与版本、平台,以及由本机网络标识计算的 MD5 ` device_id ` 。
124+ 旁路状态:` ~/.bailian/telemetry-uid ` (遵循 ` BAILIAN_CONFIG_DIR ` )由 ` ensureUid ` 在首次远端上报时生成,不是事件落盘目标。
125+
126+ 底层 Node tracker 还会附加公共设备字段:OS 类型/版本、Node 应用名与版本、平台,以及内置的 ` device_id ` (本机网卡 MAC 的 MD5,保持不变)。稳定匿名 install id 写入 AEM 的 ` uid ` :来自 ` ~/.bailian/telemetry-uid ` ,首次远端上报时生成随机 UUID v4,以 0600 权限原子发布;生成失败时不上报 ` uid ` 。遥测关闭时不生成该文件。本地 ` telemetry.jsonl ` 每行附带同名 ` uid ` 。注意:这不是账号用户 ID,只是上报到 AEM ` uid ` 字段的匿名标识;与 Tracker 内置 ` device_id ` 无关。
127+
128+ ` ensureUid ` 无锁(对齐 qwen-code ` InstallationManager ` ):稳态只读;缺失或损坏时同目录 temp 写满后 ` rename ` 发布(内容原子替换;并发首次创建时后写覆盖先写,磁盘最终为一个 UUID)。失败则省略 ` uid ` ,不阻塞业务退出。
125129
126130从 2.8.2 起,每条命令事件通过 ` commandPrefix ` 显式记录调用入口,三种入口仍共用 ` pid=bailian-cli-node ` :
127131
@@ -180,6 +184,8 @@ AEM 映射:
180184- [ ] 成功与失败均覆盖;遥测异常必须静默且不改变业务退出码
181185- [ ] runtime 本地语义错误应记录 ` exitCode ` ;新增字段默认随 AEM ` ext ` 上报,无需占用新的 ` c1 ` —` c5 `
182186- [ ] 检查 ` DO_NOT_TRACK=1 ` 与 ` telemetry: false ` 两个关闭入口
187+ - [ ] ` remoteSink ` 从调用到 ` remoteSendEvent ` 入队之间不得出现 ` await ` (flush 只排空已入队事件)
188+ - [ ] 测试中调用 ` remoteSink ` 的用例必须使用 ` enterIsolatedHome() ` ,避免写入真实配置目录
183189- [ ] 遥测发送的 DNS/HTTP/响应体必须受可取消预算控制;flush 超时必须取消在途操作,不能只停止等待,也不能修改全局 DNS/dispatcher 或强制退出宿主
184190- [ ] 退出生命周期变更保留真实子进程回归:挂起响应头/响应体、DNS 预查询和关闭遥测;检查实际退出及进程仍存活时的连接释放,不以 flush Promise 返回代替验收
185191- [ ] 错误字段不得额外拼接 token、请求体、prompt 或本地路径
@@ -190,7 +196,7 @@ AEM 映射:
190196rg -n " trackingHeaders|x-dashscope-source-config|User-Agent" packages --glob ' *.ts'
191197rg -n " trackCommandExecution|PARAM_ALLOWLIST|buildRemoteAemOptions|readCaller" packages/core packages/runtime --glob ' *.ts'
192198vp check
193- vp test packages/core/tests packages/runtime/tests/telemetry-stage.test.ts packages/commands/tests/e2e/auth.e2e.test.ts
199+ vp test packages/core/tests/telemetry-uid.test.ts packages/core/tests/telemetry-sink.test.ts packages/core/tests/telemetry-tracker.test.ts packages/core/tests/telemetry-send.test.ts packages/runtime/tests/telemetry-stage.test.ts packages/commands/tests/e2e/auth.e2e.test.ts
194200```
195201
196202## 常见漏点
0 commit comments