## 背景 PR #474 `feat: 支持 TRAE Work CN Token 统计` 已合入 `main (v0.91.3)`,本机验证链路正常: * `~/Library/Application Support/TRAE SOLO CN/User/globalStorage/storage.json` 存在,`iCubeAuthInfo://icube.cloudide` 为合法 tc v5 密文(2464B,magic `74 63 05 10 00 00`),`status` 显示 `auth readable` * `TOKENTRACKER_TRAE_CN_USAGE=1` 时:`sync → 404 条 trae-cn` 写入 `queue.jsonl`(GLM-5.2 / DeepSeek 等) * 无 env 时:`sync → 0 buckets queued`,`queue.jsonl 0 条 trae-cn`,`status` 仅一行 `usage sync off (set TOKENTRACKER_TRAE_CN_USAGE=1 to enable)` 原因是按审查要求 `S1` 加的默认关闭 opt-in: `src/lib/trae-cn-config.js:27` `isTraeCnUsageEnabled()` 仅在 `TOKENTRACKER_TRAE_CN_USAGE=1/true` 时发请求到 `https://api.trae.cn/trae/api/v1/pay/query_user_usage_group_by_session`(涉及本地 JWT 外发,CodeQL `file-data-to-network`)。 ## 问题 * 对于已安装 `TRAE SOLO CN` 的用户,默认行为等同于“未支持”——无用量、无告警、无引导 * `README` 表格写 `TRAE Work CN | ✅ Auto`,`docs/PRIVACY.md` 写 `During eligible ... when auth exists`,均未提 env,与代码行为不一致 * `init` 不检测/`status` 提示淹没在 30+ 行里、`sync` 静默跳过,`Settings` 无开关,发现率极低 ## 建议(需你拍板,PR 可按结论提小改动) **方案 A(最小改动,推荐先做):** 仅增强 `status` —— 已装且 `auth readable` 但未 opt-in 时,把该行高亮(黄字/加粗)并在末尾追加一行显眼 hint,例如: `⚠ TRAE Work CN detected but usage sync is off — run: export TOKENTRACKER_TRAE_CN_USAGE=1 && launchctl setenv ...` **方案 B:** A + `sync` 时若检测到 `traeCnInstalled && !optIn && !isBackgroundLightweightSync`,在 `stderr` 打印一次提醒(每次 sync 最多一次,避免刷屏)。 **方案 C(全链路):** B + `init` 检测到 CN 安装时给出说明,并将 `isTraeCnUsageEnabled` 扩展为 `env || config.json`,让 `init` 可持久化写入配置(现仅 env 可持久化靠 shell profile,对桌面端不友好)。 > 方案 A/B 不改持久化,风险最小;方案 C 需要新增配置键,但体验最完整。 ## 询问 * 是否接受上述任一提示增强?倾向哪一档? * 是否愿意在文档中明确 opt-in 要求,或考虑将默认改为开启+在 `init` 做隐私确认(与其他被动读取器一致)? --- 复现:`tokentracker status` vs `TOKENTRACKER_TRAE_CN_USAGE=1 tokentracker status`;`tokentracker --debug sync` 对比 `pendingBytes` / `queue.jsonl` 中 `trae-cn` 计数。
Activity
linear commentedon Aug 21, 2026
001-264
xiufengsun commentedon Aug 23, 2026
文档确实在说谎,这部分已经改了(
d385fdf2):docs/PRIVACY.md的两处,现在都把TOKENTRACKER_TRAE_CN_USAGE=1写在第一句。状态列保留✅ Auto—— 在这张表里它的含义是「不用手工装 hook 或插件」,这一点没变;缺的是 opt-in 本身。status采纳方案 A 的最小版:已安装 + auth readable + 未 opt-in 时,那一行前面加⚠。信息本来就在,问题是它和另外 30 行中性的安装行长得一样。方案 B 不做。sync 的 stderr 对桌面端用户根本看不到,对终端用户则是每次 sync 都要看一遍的噪音,而这个提示只需要看到一次。
方案 C 值得做,但不是加个配置键的量级。要持久化的是「允许把本地登录凭据发给第三方」这个授权,它得在 Settings 里看得见、能撤销、撤销后立刻生效,而不是藏在
config.json里让人以后忘掉自己开过。这个单独排。默认开启不会做。这条链路把本地存的 JWT 发到 TRAE 的接口,跟其余全部被动读取器不是一个性质 —— 那些只读本机文件。显式 opt-in 是刻意的,会一直这样。
docs(trae-cn): state the TRAE Work CN usage opt-in that the code requ…
xiufengsun commentedon Aug 29, 2026
这条的核心诉求已经落地,先关闭。
docs/PRIVACY.md都把TOKENTRACKER_TRAE_CN_USAGE=1写在第一句,文档不再和实际行为矛盾。status在「已安装 + auth readable + 未 opt-in」时给那一行加⚠,从三十行同样中性的安装行里区分出来。方案 C 我仍然认为该做,但它不是加一个配置键的量级:要持久化的是「允许把本地登录凭据发给第三方」这个授权,得在 Settings 里看得见、能撤销、撤销后立即生效。这跟本 issue 的「提示不足」是两件事,我另开条目跟踪,不挂在这里等。
默认开启不做,理由不变。感谢你把链路验证得这么完整。
xiufengsun commentedon Aug 29, 2026
跟踪条目已开:#538。