AtomCode v5.0.9 新子系统深度分析 — 配置种子注入与离线/托管部署模式
基于
stringsCLI 参数 + 环境变量 + 配置字段串 + 模块路径的还原分析 2026-09-09 前置报告:05-version-diff-v4.25.5-to-v5.0.9.md姊妹报告:34_Config_System_Expansion.md(配置结构扩展)、38_Providers_Login.md(提供商/环境变量)、26_种子文件(Skills/命令种子)
1. 涉及模块(v5.0.9 全新路径)
crates/atomcode-config/src/config/offline.rs ← 离线模式配置节
crates/atomcode-capabilities/src/setup/ ← 种子/初始化族
├── mod.rs ← 种子安装编排
├── seeds.rs ← 种子文件定义
├── state.rs ← setup-state.json 状态
└── lock.rs ← setup.lock 互斥锁→ offline.rs 全新;setup/* 目录整体重写为种子 + 状态 + 锁三件套。
2. 配置种子注入(ATOMCODE_SEED_CONFIG)
2.1 CLI 参数 + 环境变量
--seed-config=<path> ← CLI 参数
Prompt to run in headless (non-interactive)
Env `ATOMCODE_SEED_CONFIG` is honored as a fallback when the flag is absent→ 配置来源链:--seed-config 参数 > ATOMCODE_SEED_CONFIG 环境变量 > 默认空。
2.2 语义(幂等安全)
No-op when the user already has a config, so it's safe to always pass.→ 先有配置则 no-op——种子只在用户无配置时生效,可安全地一直传入。
2.3 失败面
Warning: --seed-config ignored (not a valid config):
Warning: --seed-config could not be applied:→ 两类降级:无效配置 → ignored;解析失败 → could not be applied(均仅警告)。
3. 离线/托管部署捆绑配置
3.1 原子化默认配置(bundled)
On read/parse failure, falls back to normal onboarding (never blocks startup).
For offline/managed deploys (e.g. a bundled `atomcode-default-config.toml`
shipped next to the binary): point this at that file via the launcher.→ 离线/托管部署:把默认配置 atomcode-default-config.toml 打进二进制旁, launcher 指向它;读取/解析失败回退正常引导且绝不阻塞启动。
3.2 offline 配置节(offline.rs)
offline_mode ← 布尔:启用离线模式
offline_note ← 离线提示文案(WebUI 展示)
keep_interrupted_context ← 中断后保留上下文→ 配置字段族(挨着 ui.auto_copy_code_blocks / ui.ai_session_naming / ui.terminal_status 等 UI 段),offline_mode 为顶层开关。
3.3 与遥测开关联动
try/env:DO_NOT_TRACK=1 / env:ATOMCODE_TELEMETRY=0 / offline
ATOMCODE_TELEMETRY_ENDPOINT https://acs.atomgit.com→ 离线部署常伴:DO_NOT_TRACK / ATOMCODE_TELEMETRY=0 / 无遥测端点。
4. 种子安装(setup/ 族配套)
Install seed files (skills/commands/hooks/MCP) to ~/.atomcode/
seed skill updated / forced reinstall of seed skill
setup.lock.setup ... forced setup lock takeover after sibling released
setup-state.json ;lock AND force reinstall even if seeds are already present→ 种子面含 skills/commands/hooks/MCP 四类;更新/强制重装均有事件; setup.lock 防并发(sibling 释放后强制接管);setup-state.json 记录安装状态。
5. 与既有系统的关系
| 系统 | 关系 |
|---|---|
| DEEP_ANALYSIS_34 Config 扩展 | 配置节家族新增 offline_mode(顶层)+ UI 段字段 |
| DEEP_ANALYSIS_08 环境变量 | ATOMCODE_SEED_CONFIG 进入 env 参考族,与 DO_NOT_TRACK/ATOMCODE_TELEMETRY 互补 |
| DEEP_ANALYSIS_26 种子文件 | 种子机制从"安装"升级为幂等种子配置 + 状态机 + 并发锁 |
| DEEP_ANALYSIS_35 Daemon | 离线模式影响 daemon 启动(在线服务禁用) |
| DEEP_ANALYSIS_28 遥测 | offline_mode 与遥测关闭强相关 |
6. 逆向方法论备注
ATOMCODE_SEED_CONFIG is honored as a fallback when the flag is absent暴露 参数>环境变量 精简配置优先级No-op when the user already has a config, so it's safe to always pass是幂等种子配置的逐字语义atomcode-default-config.toml shipped next to the binary揭示捆绑默认配置的 离线托管部署模式falls back to normal onboarding (never blocks startup)给出永不阻塞启动契约offline_mode / offline_note / keep_interrupted_context还原 offline 配置节字段forced setup lock takeover after sibling released暴露种子并发锁接管机制
本报告由持续分析循环生成 — v5.0.9 配置种子注入与离线/托管部署模式深度分析