Skip to content

Releases: sdcxb/codem

v0.77 — 子智能体中文思考修复 & 对标产品名称清理

Choose a tag to compare

@sdcxb sdcxb released this 07 Jul 10:53

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:globgrep)保持英文

v0.70.0 - 统一存储与中文编码全面修复

Choose a tag to compare

@sdcxb sdcxb released this 06 Jul 12:06

v0.70.0 - 存储统一与中文编码全面修复

⚠️ 本次更新消耗 300+ 人民币的 tokens,涉及大量底层重构和编码修复。

v0.70 更新

🎯 核心改进

1. 统一存储架构(告别 localStorage)

  • 全部迁移到 SQLite:应用设置、MCP 配置、记忆数据、恢复数据、成本追踪等全部从 localStorage 迁移到 SQLite
  • 新增 settings:统一的键值存储,替代 localStorage
  • 新增 mcp_serversmemoryrecovery_datacost_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

Choose a tag to compare

@sdcxb sdcxb released this 03 Jul 09:40

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

Choose a tag to compare

@sdcxb sdcxb released this 03 Jul 05:58

v0.56 更新内容

SessionManager 迁移到 SQLite:

  • agentic loop 的 V2 格式会话从 localStorage 迁移到 SQLite
  • 新增 v2_sessions 表,启动时自动迁移旧数据
  • 数据库初始化后再加载会话,避免白屏

系统提示词修复:

  • buildSystemPrompt() 加入用户身份信息(默认 "Codem")

版本号统一:

  • package.jsonCargo.tomltauri.conf.json 统一为 0.56.0

v0.55

Choose a tag to compare

@sdcxb sdcxb released this 03 Jul 05:04

v0.55 更新内容

消息持久化根因修复:

  • Rust UTF-8 安全截断:修复中文/emoji 被切断导致进程崩溃、消息不保存的问题
  • 显式列名 SELECT:解决 ALTER TABLE 追加列导致的列顺序错乱
  • JSON.parse 容错:单条 tool_call 解析失败不崩溃整个加载
  • 逐条保存容错:单条失败不阻止其余保存

思考过程持久化:

  • reasoning 列顺序修复,timestamp 不再误读为 reasoning
  • 迁移清理旧数据库中损坏的 reasoning 值

过程文件清理按钮:

  • 追踪 write 工具生成的文件列表
  • 消息气泡上显示「清理过程文件」按钮
  • 历史对话中也支持删除

Codem v0.52

Choose a tag to compare

@sdcxb sdcxb released this 02 Jul 08:45

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

Choose a tag to compare

@sdcxb sdcxb released this 28 Jun 05:15

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

Choose a tag to compare

@sdcxb sdcxb released this 28 Jun 03:05

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