文件最后提交记录最后更新时间
chore(uninstall): cargo fmt + clippy fixes - cargo fmt on uninstall module and CLI files only; reverted all unrelated workspace reformats to keep user parallel work clean - Fix 4 clippy lints in uninstall code: actions.rs: needless_range_loop and io_other_error scan.rs: explicit_auto_deref (3x) mod.rs: derivable_impls - use derive(Default) for ExecuteContext - Cargo.lock updated for assert_cmd/predicates (uninstall test deps) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> 27 天前
test(setup_cli): accept either zh/en setup-success marker The smoke test asserted the stdout contains "Setup 完成", but in a fresh tmpdir there is no config.toml, so locale detection falls back to the system default. On CI / English-locale dev machines that produces "Setup complete" instead, and the test fails despite setup itself succeeding (exit 0, skill installed). Accept either marker so the assertion tracks "setup succeeded", not "setup ran under a Chinese locale". 13 天前
Merge feat/telemetry-v2 into release/v4.20.1 Integrates the atomcode-telemetry crate (new) with the MCP support, Ollama function-calling, and background-commands features from release. Key resolutions: - CLI Commands enum: kept both Mcp(McpCli) and Telemetry { action } variants - atomcode_tuix::run(): added mcp_registry + mcp_connect_rx + telemetry params - LoopCtx: added both mcp_registry/mcp_connect_rx/mcp_reload and telemetry fields - runner.rs: kept telemetry scope + tel_return! macro; added unwrap_doubly_nested_args from HEAD into v2's ToolCallDone arm; preserved HEAD's async ToolRegistry API - bash.rs: merged HEAD's enhanced netcat/mknod security detection with v2's code structure improvements; added visit_f64 to lenient deserializer - agent/mod.rs: took HEAD's emit_rich_context_stats().await form - daemon/main.rs: kept register_sync form + telemetry Disabled("daemon") init - commands.rs: took HEAD (mcp, background, init; no /fixissue) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> 1 个月前
refactor: 统一 ATOMCODE_HOME 语义,废弃 ATOMCODE_HOME_OVERRIDE 此前 ATOMCODE_HOME 在工程内存在两套互不兼容的语义: - 语义 A(Config::config_dir):直接把 ATOMCODE_HOME 当 config 根, 即 ATOMCODE_HOME=/X 等价于 ~/.atomcode/;config.toml、history、 memory.md 等都按此路径解析。 - 语义 B(skill/plugin/setup/event_loop):把 ATOMCODE_HOME 当 $HOME 替身,再追加 .atomcode/,即 ATOMCODE_HOME=/X 解析为 /X/.atomcode/。 后果是设了 ATOMCODE_HOME=/X 的用户数据目录会被劈成两半(/X 和 /X/.atomcode 各放一部分),且 uninstall 走另一套独立的 ATOMCODE_HOME_OVERRIDE 变量,自定义过路径的用户运行 uninstall 找不到自己的数据。 本次统一到语义 A,所有目录解析都走 Config::config_dir(): - crates/atomcode-core/src/skill.rs: SkillRegistry::reload 不再 手动拼 .atomcode 子目录 - crates/atomcode-core/src/plugin/paths.rs: plugins_root() 同上 - crates/atomcode-core/src/setup/mod.rs: install_directory_skills_from_seeds 删除双分支逻辑 - crates/atomcode-tuix/src/event_loop/mod.rs: should_auto_show_setup 同上,顺手清理一处多余的重复闭合括号 - crates/atomcode-core/src/uninstall/paths.rs: atomcode_dir() 切到 Config::config_dir(),废弃独立的 ATOMCODE_HOME_OVERRIDE - scripts/uninstall.sh / uninstall.ps1: 同步从 ATOMCODE_HOME_OVERRIDE 改读 ATOMCODE_HOME 测试同步更新:uninstall_integration 把 env 从 ATOMCODE_HOME_OVERRIDE 换成 ATOMCODE_HOME 并去掉 .atomcode 子目录;skill 测试里两处期望路径 从 tmp/.atomcode/plugins 改为 tmp/plugins。 验证: - cargo check -p atomcode-core -p atomcode -p atomcode-tuix 通过 - 6 个 uninstall::paths + plugin::paths 单测通过 - 24 个 skill 单测全过 - plugin_integration 端到端测试通过(ATOMCODE_HOME=tmp 后能正确 扫到 tmp/plugins/.../skills/sk) - uninstall_integration 3 个测试通过 13 天前