Skip to content

Releases: andeya/aineer

Aineer v0.7.1

12 Apr 16:42

Choose a tag to compare

Aineer v0.7.0

12 Apr 08:52

Choose a tag to compare

Platform & distribution

  • Tauri 2 + React + Vite: Desktop app shell with Bun/Biome toolchain, IPC split by domain modules.
  • Embedded CLI: Run aineer-cli from the app with --cli / -c.
  • Workspace & branding: .aineer config, crate renames (aineer-protocol, aineer-engine, aineer-cli), Aineer branding; remove legacy GPUI/native UI crates in favor of web UI + Tauri.
  • Release: Version 0.7.0; version:patch|minor|major and version:set scripts.

Chat, AI & agent (desktop)

  • Real streaming: send_ai_message → CLI desktop bridge; ai_stream_delta with kind: text | thinking.
  • Agent: start_agent runs tool loop via desktop path; stop_agent(block_id); error events as kind: error.
  • Concurrency: spawn_blocking + unified block IDs; optional cancel flags for streams.
  • Chat UX: Event listeners, safety timeouts, IPC failure recovery, model/cwd/shell-context passed from UI.

Shell & terminal

  • PTY: Session, PTY manager, tray; execute commands with timeout.
  • Shell completion (rewritten): Rust-native file/dir completion under project cwd; $PATH command completion; history hints from ~/.zsh_history / ~/.bash_history; isFirstWord so argument lines don’t mix in commands; CompletionItem + isDir (trailing / vs space); LCP fill in UI; disable OS autocorrect on prompt.

Memory & settings

  • Memory: Synchronous API; cross-platform home dir; forget; Tauri commands without fake async.
  • Settings: Extended schema/loader; CodeMirror JSON editor (lazy).
  • Cache: Scheduled auto-cleanup on startup.

Tooling & quality

  • Workspace clippy (all=warn, unsafe_code=forbid), rustfmt, cargo clippy --all-targets aligned with CI and package.json scripts.

平台与发布

  • Tauri 2 + React + Vite 桌面栈,Bun/Biome,IPC 按领域拆分。
  • 内嵌 CLI:应用内通过 --cli / -c 调用 aineer-cli
  • 工作区与品牌.aineer 配置、crate 重命名(aineer-protocolaineer-engineaineer-cli)、Aineer 品牌;弃用旧 GPUI/原生 UI crate,统一为 Web UI + Tauri。
  • 版本:升至 0.7.0version:patch|minor|majorversion:set 脚本。

对话、AI 与 Agent(桌面)

  • 真实流式send_ai_message → CLI desktop 桥接;ai_stream_delta 支持 kind: text | thinking
  • Agentstart_agent 经 desktop 跑工具回路;stop_agent(block_id);错误以 kind: error 推送。
  • 并发spawn_blocking + 统一 block ID;流式/任务可取消。
  • 聊天体验:事件监听、安全超时、IPC 失败恢复;前端传 model/cwd/shell 上下文。

Shell 与终端

  • PTY:会话、PTY 管理、托盘;带超时的命令执行。
  • Shell 补全(重写):Rust 原生 目录/文件(相对项目 cwd)、$PATH 命令历史(zsh/bash);首词与参数补全分离;目录后缀 / 与公共前缀填充;输入框关闭系统自动纠正。

记忆与设置

  • 记忆:同步 API、跨平台主目录、删除接口;Tauri 侧去掉伪 async。
  • 设置:配置 schema/加载器扩展;CodeMirror JSON 编辑器(懒加载)。
  • 缓存:启动时定时自动清理。

工程与质量

  • 工作区 ClippyrustfmtCI 与 package.json 中 clippy/fmt 命令对齐(含 --all-targets)。

Full Changelog: v0.6.9...v0.7.0

Full Changelog: v0.6.9...v0.7.0

Aineer Nightly

12 Apr 08:19

Choose a tag to compare

Aineer Nightly Pre-release
Pre-release

Automated nightly build from main branch.
Warning: This is an unstable development build.

Codineer v0.6.9

09 Apr 01:20

Choose a tag to compare

Last Codineer Version

Full Changelog: v0.6.8...v0.6.9

Full Changelog: v0.6.8...v0.6.9

Codineer v0.6.8

06 Apr 18:11

Choose a tag to compare

Features

  • Runtime fallback to ~/.codineer/ — when no .codineer/settings.json exists in
    the ancestor chain, all runtime artifacts (sessions, agents, todos, sandbox dirs)
    automatically fall back to ~/.codineer/ instead of creating a stray .codineer/
    directory in arbitrary locations. (feat(runtime))
  • MultiEdit tool — apply multiple file edits in a single tool call. (feat(tools))
  • AskUserQuestion tool — present structured multiple-choice questions to the user
    mid-session. (feat(tools))
  • codineer init full scaffold — generates the complete .codineer/ layout
    (plugins/, skills/, agents/, sessions/, settings.json, .gitignore,
    CODINEER.md) and silently auto-completes ~/.codineer/ on every startup.
    (feat(init))
  • Bundled plugins embedded in binary — built-in plugins are compiled in via
    include_str! and extracted to ~/.codineer/plugins/ on launch; no separate
    source directory is required in the distributed binary. (feat(plugins))

Bug Fixes

  • is_initialized false-positive on banner — the "run /init" hint was incorrectly
    suppressed for any directory under $HOME because ~/.codineer/settings.json matched
    the ancestor walk. Now only cwd/.codineer/settings.json is checked. (fix(banner))
  • Windows dead-code warning — the executable field of BundledPluginFile triggered
    a -D dead-code lint on Windows (field is #[cfg(unix)]-only); suppressed with
    #[cfg_attr(not(unix), allow(dead_code))]. (fix(plugins))

Refactoring & Internal Improvements

  • find_project_codineer_dir() helper — shared ancestor-walk logic extracted and
    used consistently by codineer_runtime_dir(), ConfigLoader::discover(), and skill
    path resolution.
  • ConfigLoader uses project root detection — running from a project sub-directory
    now correctly picks up the nearest ancestor .codineer/settings.json.
  • sandbox_dirs() helper — eliminates duplicate codineer_runtime_dir() calls in
    sandbox_env() and generate_seatbelt_profile().
  • .codineer.json flat config removed — only directory-based settings.json is
    supported; the redundant flat config and its error-handling code have been deleted.
  • CODINEER.md moved into .codineer/ — project memory file now lives at
    .codineer/CODINEER.md; the legacy root-level location is still checked for reading.
  • .codineer/.gitignore scaffoldinit generates a nested .gitignore inside
    .codineer/ to track settings.json, plugins/, skills/, and CODINEER.md while
    ignoring runtime artifacts; root-level .gitignore cleaned up accordingly.
  • Plugin manifest convention simplified — dropped the .codineer-plugin/
    subdirectory; plugin.json now lives at the plugin directory root directly.
  • OnceLock replaces lazy_static — vim-detection one-time init migrated to
    std::sync::OnceLock; external lazy_static dependency removed.
  • Sandbox and agent dirs moved under .codineer/sandbox-home/, sandbox-tmp/,
    and agents/ are now stored under .codineer/ for a cleaner workspace layout.
  • resolve_skill_path unified — skill discovery uses codineer_runtime_dir() to
    match other runtime artifacts; removed stale ~/.agents/skills legacy path.

Documentation

  • Comprehensive plugin development guide added (crates/plugins/README.md +
    Chinese translation README_CN.md).
  • CODINEER.md rewritten with real project context: crate layout, toolchain, coding
    conventions, key design decisions, and working agreement.
  • Plugin discovery table corrected: .codineer/plugins/ is not auto-discovered;
    use plugins.externalDirectories to register project-local plugins.
  • CODINEER_CONFIG_HOME description corrected (removed stale flat-config references).
  • Root README.md / README_CN.md updated with CODINEER.md purpose and monorepo
    support explanation.

新功能

  • 运行时目录自动回退 ~/.codineer/ — 当祖先目录链中不存在 .codineer/settings.json 时,
    所有运行时产物(sessions、agents、todos、sandbox 目录)自动回退到 ~/.codineer/
    不再在任意目录生成散乱的 .codineer/
  • MultiEdit 工具 — 单次工具调用对多个文件执行批量编辑。
  • AskUserQuestion 工具 — 会话中途向用户展示结构化多选问题。
  • codineer init 完整脚手架 — 一键生成完整 .codineer/ 目录结构
    plugins/skills/agents/sessions/settings.json.gitignoreCODINEER.md),
    并在每次启动时静默补全 ~/.codineer/
  • 内置插件嵌入二进制 — 通过 include_str! 将内置插件编译进二进制,启动时解压到
    ~/.codineer/plugins/;发布的二进制无需携带额外插件源目录。

Bug 修复

  • 欢迎横幅 is_initialized 误判 — 在 $HOME 下任意子目录运行时,因祖先遍历命中
    ~/.codineer/settings.json,"运行 /init" 提示被错误隐藏;现在仅检测
    cwd/.codineer/settings.json
  • Windows 死代码警告BundledPluginFile.executable 字段仅在 #[cfg(unix)]
    中使用,在 Windows 触发 -D dead-code lint;已通过 cfg_attr 屏蔽。

重构与内部改进

  • find_project_codineer_dir() 公共 helper — 提取祖先目录遍历逻辑,供
    codineer_runtime_dir()ConfigLoader::discover() 和技能路径解析统一复用。
  • ConfigLoader 对齐项目根检测 — 在项目子目录运行时,现在能正确找到最近祖先的
    .codineer/settings.json
  • sandbox_dirs() helper — 消除 sandbox_env()generate_seatbelt_profile()
    中重复的 codineer_runtime_dir() 调用。
  • 移除 .codineer.json 扁平配置 — 仅保留目录式 settings.json;冗余的扁平配置
    及其错误处理代码已全部删除。
  • CODINEER.md 迁入 .codineer/ — 项目记忆文件现位于 .codineer/CODINEER.md
    根目录旧位置仍可回退读取(向后兼容)。
  • .codineer/.gitignore 脚手架init.codineer/ 内生成独立 .gitignore
    追踪 settings.jsonplugins/skills/CODINEER.md,忽略运行时产物;
    根目录 .gitignore 同步清理。
  • 插件 manifest 规范简化 — 废弃 .codineer-plugin/ 子目录,plugin.json 直接位于插件目录根部。
  • OnceLock 替换 lazy_static — vim 检测改用标准库 std::sync::OnceLock
    移除外部 lazy_static 依赖。
  • sandbox 及 agent 目录迁入 .codineer/sandbox-home/sandbox-tmp/agents/
    统一收拢到 .codineer/ 下,工作区更整洁。
  • resolve_skill_path 统一 — 技能发现改用 codineer_runtime_dir()
    与其他运行时产物保持一致;移除遗留的 ~/.agents/skills 路径。

文档

  • 新增完整插件开发教程(crates/plugins/README.md + 中文版 README_CN.md)。
  • CODINEER.md 以真实项目信息重写:crate 布局、工具链、编码规范、关键设计决策、工作协议。
  • 插件发现表格更正:.codineer/plugins/ 不被自动发现,需在
    plugins.externalDirectories 中显式配置。
  • CODINEER_CONFIG_HOME 描述修正(移除对已删除扁平配置的过时说明)。
  • 根目录 README.md/README_CN.md 补充 CODINEER.md 的用途及 monorepo 支持说明。

Full Changelog: v0.6.7...v0.6.8

Full Changelog: v0.6.7...v0.6.8

Full Changelog: v0.6.7...v0.6.8

Codineer v0.6.7

06 Apr 09:30

Choose a tag to compare

✨ New Features

  • Multimodal Input (Image Attachments):

  • Attach images via @image.png, paste from clipboard (Ctrl+V / /image), or drag-and-drop into the terminal.

  • Supports Anthropic, OpenAI, and other multimodal-capable providers.

  • Added support for Google Gemini with a free API key via the OpenAI-compatible endpoint.

  • Customizable Model Aliases:

  • Define your own short model names in settings.json using the modelAliases field.

  • Removed built-in model aliases, giving users full control over model naming.

  • codineer models now displays your configured aliases.

🛠️ Improvements

  • Enhanced Error Reporting: API error messages now include the request URL for easier debugging.
  • Refined @-mention Processing:
  • Support for specifying line numbers or ranges in file attachments (e.g., @src/main.rs:10-50).
  • Binary files are now attached with metadata (size, type) instead of attempting to read their content.
  • General Code Refinements: Various internal code improvements and dependency updates for stability and future enhancements.

🐞 Bug Fixes

  • Addressed an issue where some model aliases were not correctly resolved internally.

✨ 新功能

  • 多模态输入(图片附件):

  • 通过 @image.png 附加图片、从剪贴板粘贴(Ctrl+V / /image)或将文件拖拽到终端。

  • 支持 Anthropic、OpenAI 及其他兼容多模态的 Provider。

  • 新增支持 Google Gemini,可通过 OpenAI 兼容端点使用免费 API Key。

  • 可自定义模型别名:

  • 现在可以在 settings.json 中使用 modelAliases 字段定义自己的模型短名。

  • 移除了内置模型别名,赋予用户完全的模型命名控制权。

  • codineer models 命令现在会显示你配置的别名。

🛠️ 改进

  • 增强错误报告: API 错误消息现在包含请求 URL,以便更轻松地进行调试。
  • 优化 @ 提及处理:
  • 文件附件现在支持指定行号或行范围(例如 @src/main.rs:10-50)。
  • 二进制文件现在会附加元数据(大小、类型),而不再尝试读取其内容。
  • 通用代码优化: 各种内部代码改进和依赖更新,以提高稳定性和为未来的增强做准备。

🐞 Bug 修复

  • 修复了某些模型别名在内部未能正确解析的问题。

Full Changelog: v0.6.6...v0.6.7

Full Changelog: v0.6.6...v0.6.7

Codineer v0.6.6

05 Apr 19:42

Choose a tag to compare

Support using openclaw-zero-token as a provider.

Full Changelog: v0.6.5...v0.6.6

Codineer v0.6.5

05 Apr 18:17

Choose a tag to compare

Full Changelog: v0.6.4...v0.6.5

Full Changelog: v0.6.4...v0.6.5

Codineer v0.6.4

05 Apr 10:11

Choose a tag to compare

Bug Fixes

  • fix(runtime): build_runtime now returns the resolved model name alongside the runtime instance, so the banner and status output always display the actual model (e.g. claude-3-5-sonnet) instead of the raw input alias like "auto".

  • fix(cli/resume): Global flags --model, --permission-mode, and --allowed-tools are now correctly forwarded when combined with --resume; previously they were silently discarded. Additionally, codineer --resume <session> with no trailing slash commands now opens the interactive REPL with the session pre-loaded, instead of falling through to a non-interactive code path.

New Features

  • feat(banner): The startup banner now adapts dynamically to terminal width (minimum 80 cols) and re-renders correctly on window resize. The --resume command in the banner is wrapped across multiple lines using display-width-aware wrapping so it is never truncated regardless of session path length. tilde_session_path is now exported for use across crates.

  • feat(repl/ux): Interactive REPL behaviour aligned with Claude Code:

    • ? inline shortcuts panel — typing ? at the start of the prompt instantly shows a shortcuts reference panel below the prompt; any further input hides it. ? + Enter submits ? to the AI as normal text.
    • Double Ctrl+C to exit — first Ctrl+C on an empty prompt shows an inline "Press Ctrl-C again to exit" hint below the prompt; a second Ctrl+C within 1.5 s exits. Any other key clears the hint.
    • ! bash mode — typing ! <command> (e.g. ! ls -la) sends the shell command to the AI as a run request instead of plain chat input.
    • \ + Enter for newline — pressing Enter with a trailing \ inserts a literal newline (same as Shift+Enter / Ctrl+J).
    • Double-tap Esc to clear — two rapid Esc presses (within 1.5 s) in plain mode clear the current input line.
    • Session restorerun_repl now accepts an optional resume_path; when present the session is activated before the first prompt is drawn.
    • Goodbye message — on exit the resume command for the finished session is printed so users can easily re-attach later.

Tests

  • test: Added 16 new unit tests for the editor covering double Ctrl+C exit, \+Enter newline, double-Esc clear, Ctrl+D behaviour, ? shortcuts panel rendering, InterruptHint action distinctness, and submit_or_toggle logic. CLI tests updated to assert the new resume_path field and added an end-to-end test verifying that --model/--permission-mode survive --resume parsing. Overall unit test coverage ≥ 95%.

Documentation

  • docs: README (EN & CN) interactive REPL keyboard shortcuts table updated to reflect all new shortcuts; prompt character updated from > to .

Chores

  • chore: Version bumped to 0.6.4.

问题修复

  • fix(runtime): build_runtime 现在同时返回运行时实例和已解析的 model 名称,Banner 及状态栏将显示实际 model(如 claude-3-5-sonnet),而非原始别名(如 "auto")。

  • fix(cli/resume):--resume--model--permission-mode--allowed-tools 同时使用时,全局 flag 不再被静默丢弃,均可正常生效。此外,codineer --resume <session> 若未附带 slash 命令,现在将正确进入交互式 REPL 并预加载历史会话,不再走非交互代码路径。

新功能

  • feat(banner): 启动 Banner 自适应终端宽度(最小 80 列),调整窗口大小后实时重绘。--resume 命令按显示宽度自动换行,无论 session 路径多长均不再截断。tilde_session_path 提升为 pub(crate) 供跨模块使用。

  • feat(repl/ux): 交互式 REPL 体验全面对齐 Claude Code:

    • ? 内联快捷键面板 — 在提示符首位输入 ? 即时在提示符下方展示快捷键参考面板;继续输入任意字符自动隐藏;? + Enter 将 ? 正常发送给 AI。
    • 双击 Ctrl+C 退出 — 空提示符下首次按 Ctrl+C 在提示符下方显示"Press Ctrl-C again to exit"提示;1.5 秒内再次按 Ctrl+C 退出;按任意其他键自动隐藏提示。
    • ! bash 模式 — 输入 ! <命令>(如 ! ls -la)会将 shell 命令作为执行请求发送给 AI,而非普通聊天输入。
    • \ + Enter 换行 — 在行尾输入 \ 后按 Enter 插入换行符(等同于 Shift+Enter / Ctrl+J)。
    • 双击 Esc 清空输入 — 普通模式下 1.5 秒内连按两次 Esc 清空当前输入行。
    • 会话恢复run_repl 现在接受可选 resume_path 参数,会在首次显示提示符前自动恢复指定会话。
    • 退出提示 — 退出时打印当前会话的 resume 命令,方便下次快速续接。

测试

  • test: 新增 16 个 editor 单元测试,覆盖双击 Ctrl+C 退出、\+Enter 换行、双击 Esc 清空、Ctrl+D 行为、? 快捷键面板渲染、InterruptHint action 独立性及 submit_or_toggle 逻辑。CLI 测试同步更新以适配新增的 resume_path 字段,并新增端到端测试验证 --model/--permission-mode--resume 解析后的正确透传。整体单测覆盖率 ≥ 95%。

文档

  • docs: README(英文及中文)交互式 REPL 快捷键表更新,反映所有新快捷键;提示符字符由 > 更新为

Full Changelog: v0.6.3...v0.6.4

Full Changelog: v0.6.3...v0.6.4

Codineer v0.6.3

05 Apr 06:04

Choose a tag to compare

Bug Fixes

API / Provider

  • Strip provider prefix from model field in OpenAI-compat requests
    ollama/qwen3-coderqwen3-coder before sending to the upstream API,
    preventing model-not-found errors on strict endpoints.

  • Accept reasoning_content / array content in OpenAI-compat SSE
    DashScope and similar providers that return reasoning_content or array-typed
    content blocks are now parsed and surfaced correctly.

  • Harden OpenAI-compat response handling, model routing & Azure queries

    • Tolerate missing / null fields in streamed delta objects.
    • Azure: append api-version query param when apiVersion is set.
    • Model routing: prefer defaultModel from the provider config when no
      explicit model is given.

CLI

  • DashScope stream resilience — auto-retry with a non-streaming request
    when the assistant stream produces no content (common with some DashScope
    model variants).

  • Fix codineer config set ignoring CODINEER_CONFIG_HOME
    The command now writes to $CODINEER_CONFIG_HOME/settings.json instead of
    the hardcoded ~/.codineer/settings.json.

  • Fix nested Tokio runtime creation
    CliToolExecutor now shares the runtime Arc instead of spawning a new one
    per MCP tool call.

  • Fix pick_best_coding_model panic on empty candidate list.

Refactoring

  • Modularize oversized source files (net −2 800 lines):
    • runtime_client.rs (1 387 L) → runtime_client/ directory module
      (mod / model / stream / messages / permission / tool_executor / tests)
    • main.rs (1 697 L) → main.rs + bootstrap.rs + main_tests.rs
    • live_cli.rs (1 095 L) → live_cli.rs + lsp_detect.rs + turn_helpers.rs
    • openai_compat.rs (1 140 L) → openai_compat.rs + openai_compat_sse.rs
      • openai_compat_stream.rs

UX Improvements

  • @ / / suggestion navigation — Up / Down no longer resets the
    selected item on every keystroke.

  • "Thinking…" indicator position — fixed raw-mode line-ending (\r\n) so
    the spinner always starts at column 0 on a new line.

  • Trailing space after completion — pressing Enter on a @ or /
    suggestion appends a space so the next typed word is cleanly separated.

  • @path mention handling@path tokens are stripped from the text
    sent to the AI; file / directory content is injected as structured XML
    blocks (<attached_file>, <attached_directory>, <not_found>).

  • OS-appropriate config paths in --help — Windows shows
    %USERPROFILE%\.codineer\… with backslashes; Unix / macOS shows
    ~/.codineer/….

  • Claude-style REPL welcome banner — richer context panel on startup.

Documentation

  • Added Actual path column to the settings-files table in both README.md
    and README_CN.md to make clear that .codineer.json lives in the project
    root (not inside .codineer/).

  • Clarified that directory-based and flat config files per scope are not
    duplicates
    : directory form wins when both exist; codineer config set
    always writes the directory form.

  • Documented mcpServers merge semantics: same-name server from a later file
    replaces (does not deep-merge) the earlier definition.

  • Updated CODINEER_CONFIG_HOME description to note the flat config relocates
    to the parent of the custom dir.


缺陷修复

API / Provider

  • OpenAI 兼容请求中剥离 Provider 前缀
    发送给上游 API 时将 ollama/qwen3-coder 裁剪为 qwen3-coder
    避免严格端点返回"模型不存在"错误。

  • 支持 reasoning_content / 数组型 content 的 SSE 解析
    DashScope 等返回 reasoning_content 字段或数组 content 块的
    Provider 现可正确解析并展示。

  • 强化 OpenAI 兼容响应处理、模型路由及 Azure 请求

    • 兼容流式 delta 对象中缺失 / null 字段的情况。
    • Azure:若配置了 apiVersion,自动将 api-version 附加到请求 URL。
    • 模型路由:无显式模型时优先使用 Provider 配置中的 defaultModel

CLI

  • DashScope 流式容错 — 当助手流无内容输出时,自动补发一次
    非流式请求(适配部分 DashScope 模型变体)。

  • 修复 codineer config set 忽略 CODINEER_CONFIG_HOME
    现在写入 $CODINEER_CONFIG_HOME/settings.json,不再硬编码 ~/.codineer/settings.json

  • 修复嵌套 Tokio Runtime 创建
    CliToolExecutor 现在共享同一个 Arc<Runtime>,不再每次 MCP
    工具调用时都新建 Runtime。

  • 修复 pick_best_coding_model 在候选列表为空时 panic

重构

  • 拆分超大源文件(净减少约 2 800 行):
    • runtime_client.rs(1 387 行)→ runtime_client/ 目录模块
    • main.rs(1 697 行)→ main.rs + bootstrap.rs + main_tests.rs
    • live_cli.rs(1 095 行)→ live_cli.rs + lsp_detect.rs + turn_helpers.rs
    • openai_compat.rs(1 140 行)→ openai_compat.rs + openai_compat_sse.rs
      • openai_compat_stream.rs

交互体验

  • @ / / 建议项导航 — 按上下方向键不再每次重置选中项。

  • "Thinking…" 指示器位置 — 修复 raw 模式下换行符(\r\n),
    确保进度指示器始终从新行行首显示。

  • 补全后自动加空格 — 回车确认 @/ 补全项后,
    自动在末尾追加空格,方便继续输入后续内容。

  • @path 引用处理 — 发送给 AI 的文本中剥离原始 @path 标记,
    转而注入结构化 XML 块(<attached_file><attached_directory><not_found>)。

  • --help 中显示操作系统对应的配置路径 — Windows 显示
    %USERPROFILE%\.codineer\…(反斜杠),Unix / macOS 显示 ~/.codineer/…

  • Claude 风格的 REPL 欢迎横幅 — 启动时展示更丰富的上下文面板。

文档

  • README.mdREADME_CN.md 的配置文件表格中新增"路径示意"列,
    明确 .codineer.json 位于项目根目录(而非 .codineer/ 子目录)。

  • 说明目录形式与扁平形式配置文件并非重复:同时存在时目录形式优先;
    codineer config set 始终写入目录形式。

  • 补充 mcpServers 合并语义:同名服务器以后加载的文件完整替换(不深度合并)。

  • 更新 CODINEER_CONFIG_HOME 说明:该变量同时改变全局扁平配置文件的位置。

Full Changelog: v0.6.2...v0.6.3

Full Changelog: v0.6.2...v0.6.3