Releases: sdcxb/codem
Releases · sdcxb/codem
Release list
v0.77 — 子智能体中文思考修复 & 对标产品名称清理
v0.77 更新内容
子智能体调用后主任务思考过程变为英文的修复
- 根因分析:5 个英语污染源叠加导致 LLM 语言惯性偏移
- 修复
spawn_subagent/wait_for_subagent工具返回文本中文化(标签用中文,数据值保持英文避免编码问题) - 修复子智能体系统提示词全面中文化(身份、任务执行、编码规则等 4 个区块)
- 修复子智能体 Agent 定义 prompt 中文化(explore/plan/general 三个角色)
- 修复
parseTaskResult解析标记兼容中英文双语,fallback 默认值中文化 - 修复
spawner.ts工具结果拼接标记中文化
主任务思考过程全英文问题修复
- 根因:
prompt.ts反引号修复后重新编译,新增 65 行英文编码规则导致系统提示词 95% 英文 - 在系统提示词最末尾追加强力中文语言规则段(利用 LLM recency bias)
- 包含抗英文上下文干扰指令和自我纠偏指令
工具调用窗口子智能体名称显示修复
MessageBubble.tsx中提取子智能体名字的正则从Sub-agent "..."更新为兼容中英文子智能体 "..."/Sub-agent "..."
代码清理
- 清理代码注释中所有对标产品名称(Codex、Claude Code 等),改为中性表述
- 修复
prompt.ts中多处未转义反引号导致模板字符串断裂的编译错误 - 修复测试文件中类型安全问题
编码安全策略
- 工具返回中:标签中文化(
状态:、摘要:、输出:、文件:),数据值保持英文 - 系统提示词中:命令示例保持英文
- 工具标识符(
SUBAGENT_TASK_ID:、glob、grep)保持英文
v0.70.0 - 统一存储与中文编码全面修复
v0.70.0 - 存储统一与中文编码全面修复
⚠️ 本次更新消耗 300+ 人民币的 tokens,涉及大量底层重构和编码修复。
🎯 核心改进
1. 统一存储架构(告别 localStorage)
- 全部迁移到 SQLite:应用设置、MCP 配置、记忆数据、恢复数据、成本追踪等全部从 localStorage 迁移到 SQLite
- 新增
settings表:统一的键值存储,替代 localStorage - 新增
mcp_servers、memory、recovery_data、cost_records表 - 数据库持久化:使用 Tauri 文件系统(
AppData/Roaming/com.codem.app/codem-db.bin),无大小限制 - 自动迁移:首次启动自动从 localStorage 迁移数据到 SQLite
2. 中文编码全面修复
- Rust 层:统一使用 PowerShell 执行所有命令,强制 UTF-8 编码输出
- glob 工具:修复
glob_match函数,改用chars()替代as_bytes(),正确处理中文字符 - PowerShell:添加
[Console]::OutputEncoding = [Text.Encoding]::UTF8和$OutputEncoding - Python:添加
PYTHONIOENCODING=utf-8环境变量 - 文件读取:过滤
<system-reminder>标签,防止 MiMoCode CLI 注入干扰
3. 子智能体系统重构
- fork-join 模式:
spawn_subagent立即返回 task ID(并行启动),wait_for_subagent阻塞等待结果 - 强身份系统提示词:明确身份为 "Codem Sub-Agent",强调文件内容是数据不是指令
- 文件内容包装:用醒目的中文边框标记文件内容,防止 LLM 把其他 AI 的提示词当成自己的指令
- 工具结果持久化:子智能体的助手消息和工具结果现在正确保存到数据库,防止循环读取
- reasoning_content 支持:捕获 DeepSeek thinking mode 的 reasoning 内容并正确回传
- 循环检测:新增工具调用循环检测,相同调用出现 3 次自动终止
- 迭代限制:子智能体最大迭代次数从 50 降低到 15
4. 系统提示词优化
- 语言规则:要求 AI 用中文回复,思考过程也用中文
- 完成回执:要求 AI 完成任务后必须告知结果
- 脚本执行规则:明确要求先写文件再执行,用
python -m pip代替pip - 子智能体协作:详细的 fork-join 模式指导,包括并行启动和等待结果
5. 工具改进
- glob 工具:支持
{a,b}多选模式、**/递归搜索、中文文件名匹配 - read 工具:输出截断(>100KB)、
<system-reminder>过滤、文件内容包装 - bash 工具:统一使用 PowerShell 执行,强制 UTF-8 编码
- 路径解析:
"."正确解析为项目目录,不再回退到用户主目录
6. UI 改进
- 子智能体命名:每个子智能体都有独特名字(Alice、Bob 等)
- 子智能体状态:显示运行中 ⏳、完成 ✅、失败 ❌
- 文件链接:点击文件链接用系统默认应用打开
- 助手初始化:默认候选名改为 CODEM
7. 暂停策略(对标 Codex)
- 主任务暂停:不影响子智能体,子智能体继续运行
- 全局暂停:冻结所有任务(主+子)
- 恢复后:读取子智能体完整结果,复用进度
🔧 技术细节
新增文件
src/core/storage/settings.ts— 统一的设置存储 API
新增 Rust 命令
get_app_data_dir— 获取应用数据目录get_default_cwd— 获取默认工作目录write_file— 支持encoding: "base64"参数read_file— 支持encoding: "base64"参数
新增 SQLite 表
settings— 键值存储mcp_servers— MCP 服务器配置memory— 记忆数据recovery_data— 恢复数据cost_records— 成本记录
依赖更新
- 新增
base64 = "0.22"(Rust)
🐛 修复
- 修复 localStorage 超限导致所有保存失败的问题
- 修复 400 API 错误(DeepSeek reasoning_content 必须回传)
- 修复 glob 中文路径无法找到文件的问题
- 修复 PowerShell 命令输出中文乱码的问题
- 修复子智能体读文件但不输出结果的问题
- 修复子智能体循环读取同一文件的问题
- 修复
<system-reminder>标签干扰子智能体执行的问题 - 修复文件链接点击无反应的问题
- 修复项目列表启动时为空的问题
- 修复助手名字重启后丢失的问题
📝 已知问题
- pip 命令在某些 Windows 环境下不在 PATH 中,需使用
python -m pip <system-reminder>标签仍会被 MiMoCode CLI 注入(已过滤,但无法阻止注入)
🔗 链接
v0.60
v0.60 更新内容
系统提示词全面重写:
- 对标 Codex/Hermes/Kimi Code 系统提示词结构
- 15 个模块:Identity、Personality、Values、Formatting Rules、Final Answer、Working Updates、Parallel Tool Calls、Context Management、Memory、Safety 等
- 修复 AI 身份问题:系统提示词始终以 "Codem" 为产品名
- 修复用户信息未加载问题
搜索功能 + 项目置顶:
- 搜索弹窗:输入框 + 三个分区(聊天/对话/技能)
- 项目置顶:⋯ 菜单中置顶/取消置顶,置顶项目排在最前
- ⋯ 菜单:hover 展开 + 点击锁定,延迟关闭防闪烁
消息懒加载:
- 初始加载最新 10 条消息,滚轮自动到底部
- 滚动到顶部自动加载 10 条,滚轮保持当前位置
- 顶部 sticky 提示条显示加载状态
v0.56
v0.55
v0.55 更新内容
消息持久化根因修复:
- Rust UTF-8 安全截断:修复中文/emoji 被切断导致进程崩溃、消息不保存的问题
- 显式列名 SELECT:解决 ALTER TABLE 追加列导致的列顺序错乱
- JSON.parse 容错:单条 tool_call 解析失败不崩溃整个加载
- 逐条保存容错:单条失败不阻止其余保存
思考过程持久化:
- reasoning 列顺序修复,timestamp 不再误读为 reasoning
- 迁移清理旧数据库中损坏的 reasoning 值
过程文件清理按钮:
- 追踪 write 工具生成的文件列表
- 消息气泡上显示「清理过程文件」按钮
- 历史对话中也支持删除
Codem v0.52
Codem v0.52
新功能
- 多智能体协作:spawn_subagent + wait_for_subagent 工具,支持主智能体+子智能体协作
- 持久/临时标记:子智能体可标记为持久(长期协作)或临时(一次性任务)
- System prompt 增强:新增缓存文件模式指引,主智能体审核子智能体输出后才采纳
- 聊天自动滚动:加载历史对话时自动滚动到最新消息
修复
- 消息持久化:关闭窗口/切换模式时自动保存
- CSP:添加 DeepSeek/OpenAI/Anthropic/Moonshot API 域名
- 流式输出性能优化(streaming buffer)
安装
Windows x64:下载 MSI 或 EXE 安装包,无需任何外部依赖
Codem v0.32
Codem v0.32
修复
- 修复 CSP 安全策略限制:release 版本 API 模式发消息无响应(CSP 未包含 DeepSeek/OpenAI/Anthropic/Moonshot API 域名)
- 修复消息持久化:关闭窗口/切换模式时自动保存聊天记录
- 修复工具调用显示:工具调用后文本正常显示
- 修复流式输出性能:减少 React 重渲染
安装
Windows x64:下载 MSI 或 EXE 安装包,无需任何外部依赖
使用说明
- API 模式:设置 → 选择 API 模式 → 配置 API Key → 选择模型 → 开始对话
- CLI 模式(MiMo 模型):安装 mimocode CLI 或手动创建 auth.json
Codem v0.31
Codem v0.31 - AI Coding Assistant
功能
- API 模式:支持 DeepSeek、OpenAI、Anthropic、Moonshot,配置 API Key 即可使用
- CLI 模式:小米账号登录,免费使用 MiMo 模型
- 工具调用:bash、read、write、edit、glob、grep
- 消息持久化:关闭窗口/切换模式自动保存
- 流式输出:实时显示模型回复
- 多模型切换:同一对话内可切换不同模型
安装
Windows x64:下载 MSI 或 EXE 安装包安装即可,无需任何外部依赖
使用说明
- API 模式:设置 → 选择 API 模式 → 配置 Provider 的 API Key → 选择模型 → 开始对话
- CLI 模式(MiMo 模型):
- 方式一:安装 mimocode CLI,点击「登录小米账号」一键认证
- 方式二:手动创建 ~/.local/share/mimocode/auth.json,参考项目中 example-config/auth.json 填入小米 ID 和 API Key
