Skip to content

AtomCode v5.0.9 新子系统深度分析 — 配置种子注入与离线/托管部署模式 ​

基于 strings CLI 参数 + 环境变量 + 配置字段串 + 模块路径的还原分析 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. 逆向方法论备注 ​

  1. ATOMCODE_SEED_CONFIG is honored as a fallback when the flag is absent 暴露 参数>环境变量 精简配置优先级
  2. No-op when the user already has a config, so it's safe to always pass 是幂等种子配置的逐字语义
  3. atomcode-default-config.toml shipped next to the binary 揭示捆绑默认配置的 离线托管部署模式
  4. falls back to normal onboarding (never blocks startup) 给出永不阻塞启动契约
  5. offline_mode / offline_note / keep_interrupted_context 还原 offline 配置节字段
  6. forced setup lock takeover after sibling released 暴露种子并发锁接管机制

本报告由持续分析循环生成 — v5.0.9 配置种子注入与离线/托管部署模式深度分析

基于 VitePress 构建 · AtomCode v5.2.3 逆向工程分析文档