Skip to content

v0.2.0 — settings.json 合并 + 多语言 / settings.json reconciliation + i18n

Choose a tag to compare

@zhouxiaofu zhouxiaofu released this 26 May 16:12
· 22 commits to main since this release

✨ settings.json env 合并(解决「切了 env 仍命中旧端点」)

Claude Code 自己也会读 ~/.claude/settings.json 的 env,里面残留的 ANTHROPIC_BASE_URL 等可能反向盖掉 cce 注入的值,导致切换静默失效。本版彻底解决:

  • cce 从不改写你真实的 settings.json;它读取后按模式重组,写一份临时文件,用 claude --settings <tmpfile> 启动,claude 退出即删。
  • 三种合并模式,可全局设、按 env 设、或按次用 -m 设:
模式 效果
override(默认) 完全以本 env 为准;settings.json 里残留的 anthropic 键被屏蔽
merge-cce 与 settings.json 取并集,冲突时本 env 优先
merge-claude 与 settings.json 取并集,冲突时 settings.json 优先
  • 新增 -m / --merge-mode <override|cce|claude> 启动选项,配置项 settingsMode(全局)与 envs.<name>.settingsMode(按 env)。
  • env 泄漏防护:启动前从子进程环境剥离残留的 ANTHROPIC_* 变量,shell 里的 export 不会再静默覆盖。
  • 临时文件带 pid+随机名(并发窗口互不干扰)、chmod 600、全退出路径清理、启动时清扫 6h 以上的孤儿文件。

🌐 多语言界面(中文 / English)

  • cce 的帮助、警告、错误、菜单提示支持英文和简体中文。
  • 检测优先级:CCE_LANG 环境变量 > 配置 lang > 系统 locale > 英文。
  • 新增 cce lang [en|zh-CN|auto] 子命令持久切换;CCE_LANG=zh-CN cce 按次切换。

📖 文档与其它

  • README 拆分中英双语;新增 docs/usage.md、docs/DESIGN.md 双语完整文档。
  • schema.json 增加 settingsMode,编辑器可补全/校验。
  • 新增 settings / i18n / parser 单元测试。

✨ settings.json env reconciliation

Fixes the "switched env but still hitting the old endpoint" trap. Claude Code also reads env from ~/.claude/settings.json, where a stale ANTHROPIC_BASE_URL could silently override cce's injection.

  • cce never edits your real settings.json; it builds a temp file and launches with claude --settings <tmpfile> (deleted on exit).
  • Three modes, settable globally, per-env, or per-run via -m:
Mode Effect
override (default) This env fully wins; stale anthropic keys in settings.json are neutralized
merge-cce Union with settings.json, this env wins on conflicts
merge-claude Union with settings.json, settings.json wins on conflicts
  • New -m / --merge-mode flag; settingsMode (global) and envs.<name>.settingsMode (per-env) config.
  • Env-leak protection: stale ANTHROPIC_* vars are stripped from the child env so shell exports can't shadow your env.
  • Temp files use a pid+random name, chmod 600, cleanup on every exit path, and orphan sweeping (>6h).

🌐 Bilingual UI (English / 简体中文)

  • Help, warnings, errors, and prompts in English and Simplified Chinese.
  • Resolution: CCE_LANG env > config lang > OS locale > English.
  • New cce lang [en|zh-CN|auto] to persist; CCE_LANG=zh-CN cce for a single run.

📖 Docs & misc

  • README split into zh/en; full bilingual docs/usage.md and docs/DESIGN.md.
  • schema.json gains settingsMode for editor validation.
  • Added settings / i18n / parser unit tests.

⬆️ 升级 / Upgrade

npm i -g @xiaofuzhou/cce@latest

Full changelog: v0.1.0...v0.2.0