[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-81667":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":13,"stars30d":13,"stars90d":15,"forks30d":15,"starsTrendScore":17,"compositeScore":18,"rankGlobal":10,"rankLanguage":10,"license":19,"archived":20,"fork":20,"defaultBranch":21,"hasWiki":22,"hasPages":20,"topics":23,"createdAt":10,"pushedAt":10,"updatedAt":34,"readmeContent":35,"aiSummary":36,"trendingCount":15,"starSnapshotCount":15,"syncStatus":16,"lastSyncTime":37,"discoverSource":38},81667,"CodeAuto","Yulin-Bi\u002FCodeAuto","Yulin-Bi","CodeAuto is an intelligent programming assistant developed using Java, drawing inspiration from Claude Code and Minicode.","",null,"Java",44,3,41,0,2,6,47.61,"MIT License",false,"main",true,[24,25,26,27,28,29,30,31,32,33],"ai","cli","code-assistant","coding-agent","developer-tools","java","mcp","skills","terminal","tui","2026-06-12 04:01:34","# CodeAuto\n\n当前主流的 AI Coding 工具几乎全部基于 TypeScript 或 Python 实现，JVM 生态严重缺位。\n\n对于以 Java 为主力语言的开发者来说，想学习或二次开发 AI Coding Agent，往往需要越过语言壁垒，门槛极高。\n\nCodeAuto 参考 Claude Code 源码的设计思路，融合 MINICODE 的轻量可扩展理念，用 **Java 21** 构建了一个简单、可扩展、贴近 JVM 开发者的 AI 编程代理运行时。\n\n提供普通 CLI 和全屏 TUI 两种交互方式，内置工具调用、权限审批、文件 diff review、会话保存与恢复、上下文压缩、Skills、MCP、持久化记忆、多级项目指令加载、自反思（Reflexion）和 ACE 结构化经验记忆。\n\n## 环境要求\n\n- JDK 21\n- Maven 3.9 或更高版本\n- 推荐终端：Windows Terminal \u002F PowerShell、macOS Terminal、Linux 终端\n\n## 快速开始\n\n运行测试：\n\n```bash\nmvn test\n```\n\n离线 mock 模式启动 TUI，不需要 API Key：\n\n```bash\nmvn exec:java \"-Dexec.args=--mock --tui\"\n```\n\n真实模型模式启动 TUI：\n\n```bash\nmvn exec:java \"-Dexec.args=--tui\"\n```\n\n普通 CLI 模式：\n\n```bash\nmvn exec:java\n```\n\n构建 shaded JAR：\n\n```bash\nmvn package -DskipTests\njava -jar target\u002Fcodeauto-0.1.0-SNAPSHOT-shaded.jar --tui\n```\n\n也可以使用启动脚本，**从任意目录运行**，自动以当前目录为工作目录：\n\n```bash\nbin\u002Fcodeauto --tui\nbin\u002Fcodeauto.bat --tui\n```\n\n指定其他目录作为工作目录：\n\n```bash\nbin\u002Fcodeauto --cwd \u002Fpath\u002Fto\u002Fproject --tui\n```\n\n### 随处运行\n\n将 `bin` 目录添加到 `PATH` 后，可直接在任何目录调用：\n\n```bash\ncodeauto --tui                    # 当前目录为工作目录\ncodeauto --mock --tui             # 离线 Mock 模式\ncodeauto --cwd D:\u002Fother-project   # 指定其他工作目录\n```\n\n**Windows PowerShell（管理员）添加到 PATH：**\n\n```powershell\n[Environment]::SetEnvironmentVariable(\"Path\", [Environment]::GetEnvironmentVariable(\"Path\", \"User\") + \";$env:USERPROFILE\\CodeAuto\\bin\", \"User\")\n```\n\n## 模型配置\n\nCodeAuto 当前内置 Anthropic Messages API 适配器和离线 Mock 适配器。\n\n配置优先级从低到高：\n\n1. 默认值\n2. 环境变量\n3. 项目级 `.codeauto\u002Fsettings.json`\n4. 用户级 `~\u002F.codeauto\u002Fsettings.json`\n5. CLI 参数\n\nPowerShell 示例：\n\n```powershell\n$env:CODEAUTO_BASE_URL=\"https:\u002F\u002Fapi.anthropic.com\"\n$env:CODEAUTO_AUTH_TOKEN=\"your-api-key\"\n$env:CODEAUTO_MODEL=\"your-model-name\"\n$env:CODEAUTO_STRIP_THINKING=\"true\"   # Anthropic extended thinking: true; DeepSeek: false\n```\n\nmacOS \u002F Linux 示例：\n\n```bash\nexport CODEAUTO_BASE_URL=\"https:\u002F\u002Fapi.anthropic.com\"\nexport CODEAUTO_AUTH_TOKEN=\"your-api-key\"\nexport CODEAUTO_MODEL=\"your-model-name\"\nexport CODEAUTO_STRIP_THINKING=\"true\"   # Anthropic extended thinking: true; DeepSeek: false\n```\n\n用户级配置示例：\n\n```json\n{\n  \"baseUrl\": \"https:\u002F\u002Fapi.anthropic.com\",\n  \"authToken\": \"your-api-key\",\n  \"model\": \"your-model-name\",\n  \"maxOutputTokens\": 4096,\n  \"maxRetries\": 4,\n  \"modelTimeoutSeconds\": 600,\n  \"contextWindow\": 200000,\n  \"stripThinking\": false\n}\n```\n\nTUI 和 CLI 中可以直接切换并持久化模型：\n\n```text\n\u002Fmodel \u003Cname>\n```\n\n### Extended Thinking 兼容性\n\n不同 API 对 extended thinking（思考块）的处理要求不同：\n\n- **DeepSeek v4**：开启 extended thinking 时，必须将 thinking 块原样传回 API，否则返回 400 错误。设置 `stripThinking: false`（默认）。\n- **Anthropic**：如果开启了 extended thinking，thinking 块不能传回 API，需要剥离。设置 `stripThinking: true`。\n- **GLM \u002F MiniMax**：当前未开启 extended thinking，不产生 thinking 块，两种设置均无影响。\n\n配置方式（优先级从高到低）：\n\n```bash\n# CLI 参数\ncodeauto --strip-thinking\n\n# 环境变量\nexport CODEAUTO_STRIP_THINKING=true\n\n# settings.json\n{ \"stripThinking\": true }\n```\n\n## 核心能力\n\n### CLI 和 TUI\n\n- 普通 CLI 对话模式\n- JLine 3 全屏 TUI\n- Header \u002F Transcript \u002F Prompt \u002F Footer 面板\n- Markdown 到 ANSI 渲染\n- CJK 显示宽度和中文输入支持\n- 鼠标滚轮、PageUp\u002FPageDown、Alt\u002FCtrl 方向键滚动\n- 斜杠菜单、Tab 补全、输入历史\n- 斜杠菜单限高显示，避免命令提示铺满屏幕\n- 长文本优先自动换行，减少窄窗口下行尾被截断成 `...`\n- Anthropic 文本回复支持流式输出，TUI 原地刷新，CLI 边收边打印\n- 权限审批弹窗和 Deny with Feedback\n\n### AgentLoop\n\n- 支持模型 final response、progress message、tool call 循环\n- 支持工具结果回填和最大步骤限制\n- 支持 provider usage token 统计，缺失时使用本地估算\n- 支持自动上下文压缩和微压缩\n\n### 内置工具\n\n默认注册 23 个内置工具：\n\n- 文件：`list_files`、`grep_files`、`read_file`、`write_file`、`edit_file`、`patch_file`、`modify_file`\n- 命令和交互：`run_command`、`ask_user`、`background_tasks`\n- 网络：`web_fetch`、`web_search`\n- 扩展：`load_skill`\n- 记忆：`save_memory`、`list_memory`、`delete_memory`\n- 任务：`todo_create`、`todo_update`、`todo_list`\n- MCP helper：`list_mcp_resources`、`read_mcp_resource`、`list_mcp_prompts`、`get_mcp_prompt`\n\nTUI 还支持直接绕过模型的本地快捷命令：\n\n```text\n\u002Fls [path]\n\u002Fgrep \u003Cpattern>::[path]\n\u002Fread \u003Cpath>\n\u002Fwrite \u003Cpath>::\u003Ccontent>\n\u002Fmodify \u003Cpath>::\u003Ccontent>\n\u002Fedit \u003Cpath>::\u003Csearch>::\u003Creplace>\n\u002Fpatch \u003Cpath>::\u003Csearch>::\u003Creplace>...\n\u002Fcmd \u003Ccommand>\n```\n\n## 会话管理\n\n会话按 workspace 隔离，保存在：\n\n```text\n~\u002F.codeauto\u002Fprojects\u002F\n```\n\n常用命令：\n\n```text\n\u002Fsessions\n\u002Fresume\n\u002Fresume \u003Cid>\n\u002Ffork\n\u002Frename \u003Cname>\n\u002Fnew\n\u002Fcompact\n```\n\nCLI 参数：\n\n```bash\nmvn exec:java \"-Dexec.args=--resume\"\nmvn exec:java \"-Dexec.args=--resume \u003Cid>\"\nmvn exec:java \"-Dexec.args=--fork \u003Cid>\"\n```\n\n## 持久化记忆\n\nCodeAuto 支持跨会话记忆，默认存储在：\n\n```text\n~\u002F.codeauto\u002Fmemory\u002F\n```\n\n记忆使用 frontmatter Markdown 文件保存，类型包括：\n\n- `user`\n- `feedback`\n- `project`\n- `reference`\n\n启动新会话时，相关记忆会被注入 system prompt 的 `\u003Csystem-reminder>` 区域。超过 24 小时未更新的记忆会标记为 `[stale]`，提醒模型先核实再依赖。\n\n用户命令：\n\n```text\n\u002Fmemory list [query]\n\u002Fmemory add \u003Ctype>::\u003Ctitle>::\u003Ccontent>\n\u002Fmemory delete \u003Cid>\n```\n\n记忆保存由 AI 驱动：system prompt 会提示 AI 在用户表达偏好、项目约定、架构决策时主动调用 `save_memory`。保存前 AI 会先 `list_memory` 检查是否有矛盾或过时的旧记忆，有则 `delete_memory` 清理。AI 会询问用户选择保存位置：\n\n- `project`：写入当前 workspace 的 `CLAUDE.md`\n- `global`：写入 `~\u002F.claude\u002FCLAUDE.md`\n- `codeauto`：写入 `~\u002F.codeauto\u002FCLAUDE.md`\n- `store`：写入 `~\u002F.codeauto\u002Fmemory\u002F`\n\n模型通过内置工具管理记忆：\n\n```text\nsave_memory destination=store|project|global|codeauto\nlist_memory\ndelete_memory\n```\n\n## 多级指令加载\n\nCodeAuto 会在构建 system prompt 时加载多级 Markdown 指令：\n\n1. `~\u002F.claude\u002FCLAUDE.md`\n2. `~\u002F.codeauto\u002FCLAUDE.md`\n3. `\u003Cproject>\u002FCLAUDE.md`\n4. `\u003Cproject>\u002FCLAUDE.local.md`\n\n越靠后的本地指令优先级越高。`CLAUDE.local.md` 适合放不提交到仓库的私有偏好。\n\n## 权限与安全\n\nCodeAuto 对敏感命令和文件编辑走权限层：\n\n- 危险命令检测\n- 文件编辑前生成 unified diff review\n- allow once \u002F always \u002F turn\n- deny once \u002F always \u002F with feedback\n- 权限持久化到 `~\u002F.codeauto\u002Fpermissions.json`\n\n查看权限状态：\n\n```text\n\u002Fpermissions\n```\n\n权限规则支持精确匹配和通配匹配，例如：\n\n```text\nBash(npm run *)\nBash(python scripts\u002F*)\nBash(git push --force*)\nEdit(src\u002F*.java)\nEdit(secret\u002F*)\n```\n\n## Skills\n\nSkills 会从项目级目录发现，也支持用户级管理配置。通过 `load_skill` 加载后，skill 的完整指令会在当前会话的每一轮 system prompt 中注入，确保 AI 在整个会话中遵循 skill 指令。\n\n```text\n.codeauto\u002Fskills           # 项目级 skills 目录\n.claude\u002Fskills             # 项目级 .claude skills 目录\n~\u002F.codeauto\u002Fskills.json    # 用户级 managed skills (skills add\u002Fremove CLI)\n```\n\n管理命令：\n\n```bash\nmvn exec:java \"-Dexec.args=skills list\"\nmvn exec:java \"-Dexec.args=skills add my-skill \u002Fpath\u002Fto\u002Fskill\"\nmvn exec:java \"-Dexec.args=skills remove my-skill\"\n```\n\n## MCP\n\nCodeAuto 支持 stdio MCP 和 Streamable HTTP MCP。启动时自动发现所有配置的 MCP 服务器，将其工具注册到工具注册表，Agent Loop 可自动调用，无需手动指定。\n\n### 配置文件\n\nMCP 配置可以放在：\n\n```text\n~\u002F.codeauto\u002Fmcp.json          # 用户级全局配置\n\u003Cproject>\u002F.mcp.json            # 项目级配置（不会覆盖用户级同名 server）\n```\n\n### 快速添加 MCP Server\n\n```bash\n# stdio 方式（最常用）\ncodeauto mcp add fs npx -- -y @modelcontextprotocol\u002Fserver-filesystem \u002Ftmp\n\n# HTTP 方式（手动编辑 mcp.json，添加 url 字段）\n```\n\n配置示例（`~\u002F.codeauto\u002Fmcp.json`）：\n\n```json\n{\n  \"local-node\": {\n    \"protocol\": \"auto\",\n    \"command\": \"node\",\n    \"args\": [\"server.js\"],\n    \"env\": { \"API_KEY\": \"xxx\" }\n  },\n  \"remote-api\": {\n    \"url\": \"https:\u002F\u002Fmcp.example.com\u002Fapi\",\n    \"headers\": { \"Authorization\": \"Bearer xxx\" }\n  }\n}\n```\n\n### 管理命令\n\n```bash\ncodeauto mcp list\ncodeauto mcp add \u003Cname> \u003Ccommand> [args...] [--protocol auto|content-length|newline-json] [--env KEY=VALUE...]\ncodeauto mcp login \u003Cname> --token \u003Cbearer-token>\ncodeauto mcp logout \u003Cname>\ncodeauto mcp remove \u003Cname>\n```\n\nTOKEN 会自动注入为 `MCP_BEARER_TOKEN` 和 `MCP_AUTH_TOKEN` 环境变量，无需在 env 中重复配置。\n\nTUI 内查看 MCP 状态：\n\n```text\n\u002Fmcp\n```\n\n### 协议\n\nstdio 协议支持 `auto`（默认）、`content-length`、`newline-json`。`auto` 会先尝试 `content-length`，失败后回退到 `newline-json`。\n\n如果 MCP 服务器初始化慢，建议显式指定协议避免超时等待：\n\n```json\n{\n  \"fs\": {\n    \"protocol\": \"newline-json\",\n    \"command\": \"npx\",\n    \"args\": [\"-y\", \"@modelcontextprotocol\u002Fserver-filesystem\", \"\u002Ftmp\"]\n  }\n}\n```\n\n### 系统指令一览\n\u003Csystem-reminder>\n  # CLAUDE.md 多级指令\n  # Todo summary\n  # Available skills (索引，按需加载)\n  # Loaded skill instructions (已加载的全量)\n  # Relevant persistent memories (最多 5 条)\n  # Past experience   ← 新增：告诉模型去哪找，不注入内容\n    遇到错误 → grep .codeauto\u002Fbullets\u002F (compact 经验)\n    需要全量分析 → read .codeauto\u002Freflections\u002F (详细复盘)\n\u003C\u002Fsystem-reminder>\n\n\n### Windows 兼容性\n\nWindows 下 Java `ProcessBuilder` 无法直接执行 `.cmd`\u002F`.bat` 文件。CodeAuto 会自动检测并解析 `.cmd` 包装脚本，提取出底层真实可执行文件（如 `node.exe`）直接调用，无需用户手动处理。\n\n直接使用 `npx`、`node`、`python` 等命令即可，无需指定完整路径。建议显式指定 `protocol` 为 `newline-json`，避免 `auto` 模式下 content-length 协商超时等待。\n\n## 常用斜杠命令\n\n```text\n\u002Fhelp\n\u002Ftools\n\u002Fskills\n\u002Fsessions\n\u002Fprojects\n\u002Fmcp\n\u002Fmemory\n\u002Fstatus\n\u002Fmodel\n\u002Fmodel \u003Cname>\n\u002Fpermissions\n\u002Fnew\n\u002Fresume\n\u002Fresume \u003Cid>\n\u002Ffork\n\u002Frename \u003Cname>\n\u002Fcompact\n\u002Fconfig-paths\n\u002Fexit\n```\n\n## 项目结构\n\n```text\nsrc\u002Fmain\u002Fjava\u002Fcom\u002Fcodeauto\u002F\n  background\u002F     后台任务\n  cli\u002F            Picocli CLI\n  config\u002F         配置加载\n  context\u002F        token 估算和上下文压缩\n  core\u002F           AgentLoop 和核心消息类型\n  curator\u002F        ACE Bullet 确定性合并引擎\n  instructions\u002F   多级指令加载\n  manage\u002F         管理配置存储\n  mcp\u002F            MCP 客户端和服务\n  memory\u002F         持久化记忆系统\n  model\u002F          模型适配器\n  permissions\u002F    权限管理\n  reflection\u002F     Reflexion 自反思服务\n  session\u002F        会话存储\n  skills\u002F         Skills 发现\n  tool\u002F           工具接口和注册表\n  todo\u002F           TodoList 任务追踪\n  tools\u002F          内置工具\n  tui\u002F            全屏终端界面\n```\n\n## 测试状态\n\n当前测试：\n\n```text\nTests run: 111, Failures: 0, Errors: 0, Skipped: 0\nBUILD SUCCESS\n```\n\n主要覆盖：\n\n- AgentLoop + 流式输出 + 取消打断\n- ToolRegistry 和内置工具（含参数兼容性）\n- SessionStore + 压缩边界\n- Context 压缩 + 微压缩 + 压缩产物落盘\n- PermissionManager + 通配规则\n- MCP client\u002Fservice\n- MemoryManager + bullet 序列化往返\n- InstructionLoader + 多级指令加载 + Skill 会话注入 + ACE Playbook 注入\n- TodoStore\n- CLI 编码和 workspace 解析\n- TUI escape sequence + diff 高亮\n- ReflectionService + 4 种触发检测 + FEEDBACK 记忆保存 + Bullet 自动创建\n- Curator + BulletDelta ADD\u002FREMOVE\u002FTAG\u002F计数器\u002F项目过滤\u002F内容更新 + Jaccard 去重\n\n## 常见问题\n\n### PowerShell 输出中文乱码\n\n建议在当前 PowerShell 会话设置 UTF-8：\n\n```powershell\n[Console]::OutputEncoding = [System.Text.Encoding]::UTF8\n$OutputEncoding = [System.Text.Encoding]::UTF8\n```\n\n### CLI 模式中文输入被模型误解\n\nCLI 普通模式会优先使用 JLine `LineReader` 读取终端输入；如果 JLine 初始化失败，会回退到 Scanner，并按以下顺序选择 stdin 字符集：`-Dcodeauto.cli.charset`、`CODEAUTO_CLI_CHARSET`、真实 console charset、`native.encoding`、JVM 默认 charset。\n\nWindows \u002F Maven exec 环境下如果仍遇到中文输入被模型误解，可以显式指定：\n\n```powershell\n$env:CODEAUTO_CLI_CHARSET=\"GBK\"\n```\n\n或：\n\n```bash\nmvn exec:java \"-Dexec.jvmArgs=-Dcodeauto.cli.charset=UTF-8\"\n```\n\n### 启动时出现 JLine deprecated provider 警告\n\nCodeAuto 已在 CLI 入口默认设置 `org.jline.terminal.disableDeprecatedProviderWarning=true`，正常运行时不应再显示该警告。\n\n### 鼠标滚轮不能滚动聊天记录\n\n请确认使用支持 SGR mouse 的终端。Windows 下推荐 Windows Terminal + PowerShell。\n\n### session 保存失败\n\n检查 `~\u002F.codeauto\u002Fprojects\u002F` 是否可写。保存失败只会显示警告，不会中断当前回答。\n\n### web_search 没有结果\n\n`web_search` 默认会尝试使用 DuckDuckGo HTML 搜索，无需 API Key。如果你的网络环境无法访问默认搜索页，或想接入自己的搜索代理，可以配置：\n\n```powershell\n$env:CODEAUTO_SEARCH_URL=\"https:\u002F\u002Fexample\u002Fsearch?q={query}\"\n```\n\n## 最近更新（2026-05-07）\n\n### Extended Thinking 显示 + API 兼容配置\n\n- 支持模型 extended thinking 流式输出，TUI 底部实时显示最新 3 行思考内容（浅黄色标注），CLI 静默忽略。\n- 新增 `stripThinking` 配置开关，兼容不同 API 对 thinking 块的传回要求（Anthropic 开启 extended thinking 时需剥离 → 设 `true`；DeepSeek v4 必须传回 → 设 `false` 默认）。\n- 配置优先级：CLI `--strip-thinking` > 环境变量 `CODEAUTO_STRIP_THINKING` > `settings.json` 的 `stripThinking` 字段。\n- `AnthropicModelAdapter` 在构建请求时根据 `stripThinking` 自动过滤\u002F保留 assistant 消息中的 thinking 块。\n\n## 最近更新（2026-05-06）\n\n### Reflexion 自反思 + ACE Bullet 结构化经验记忆\n\n- 每轮对话结束后自动检测失败信号（工具错误 \u002F 达到最大步数 \u002F 用户取消 \u002F 用户不满），触发模型反思并保存 `FEEDBACK` 记忆。\n- 反思结构包含 What Went Wrong \u002F Root Cause \u002F What Should Have Been Done Differently \u002F Reusable Lesson。\n- 反思提取 Reusable Lesson 后自动创建 ACE Bullet（带 `[bullet:\u003Cid>]` ID 和 helpful\u002Fharmful 计数器）。\n- Curator 确定性增量引擎：支持 BulletDelta Add\u002FUpdate\u002FTag\u002FRemove，Jaccard 相似度去重（阈值 0.55），section 范围匹配。\n- 文件分离：reflections → `\u003Cproject>\u002F.codeauto\u002Freflections\u002F`，bullets → `\u003Cproject>\u002F.codeauto\u002Fbullets\u002F`，memories → `~\u002F.codeauto\u002Fmemory\u002F`。\n- `InstructionLoader` 独立注入 ACE Playbook（最多 10 条），bullet 以单行紧凑索引显示，不占用普通记忆配额。\n- 反思异步执行（`CompletableFuture.runAsync` + `List.copyOf` 防御性拷贝），不阻塞用户交互。\n- `detectTrigger` 仅扫描本轮增量消息（`turnStartIndex` 限定），避免历史错误重复触发。\n- 模型答复中引用 bullet 时标注 `[bullet:\u003Cid>]`，ReflectionService 自动解析 Bullet Tags 并更新计数器。\n\n### Windows MCP 自动命令解析\n\n- `McpClient` 在 Windows 下自动检测 `.cmd`\u002F`.bat` 包装脚本，解析并提取底层可执行文件（如 `node.exe`）直接调用。\n- 用户可直接用 `npx`、`node`、`python` 等命令配置 MCP Server，无需手动拼接完整路径。\n- 修复 `initialize` 缺失 `capabilities` 字段导致新版 MCP Server 拒绝握手的问题。\n- `redirectErrorStream(true)` + JSON 噪声过滤，防止 stderr 管道死锁。\n- 建议显式指定 `\"protocol\": \"newline-json\"` 跳过 `auto` 模式的 content-length 协商等待。\n\n## 最近更新（2026-05-05）\n\n### 上下文压缩模型辅助摘要\n\n- `CompactService.compactWithStats()` 新增 `ModelAdapter` 参数，压缩时优先让模型生成结构化摘要。\n- 摘要包含 6 个结构化 section：User Intent \u002F Key Decisions \u002F File Changes \u002F Errors & Fixes \u002F TODOs \u002F Important Context。\n- 模型不可用或调用失败时自动 fallback 到改进的启发式摘要（按消息类型分组：User Requests \u002F Tools Called \u002F Key Outputs \u002F Assistant Responses）。\n- 压缩产物始终落盘到 `.codeauto\u002Fcompacted\u002Fcompact-*.md`，保证完整上下文可回溯。\n- 自动压缩和手动 `\u002Fcompact` 均生效。\n\n### Ctrl+C 打断对话\n\n- Ctrl+C 在 AgentLoop 执行中会中断当前对话，不会退出 TUI。空闲状态下仍退出 TUI。\n- `AgentLoop` 内置可取消检查点（每轮开始、API 调用前、工具执行前），确保快速响应。\n- JLine INT 信号处理器提供 OS 层兜底拦截。\n- 打断后状态完全重置：流式缓冲、progress trace、工具状态均清理干净。\n\n### 上下文压缩产物落盘\n\n- 压缩时完整消息保存到 `.codeauto\u002Fcompacted\u002Fcompact-\u003Ctimestamp>.md`。\n- 摘要末尾自动注入文件路径，AI 发现摘要信息不足时可自行 `read_file` 查阅。\n- 自动压缩和手动 `\u002Fcompact` 均生效。\n\n### 记忆系统简化\n\n- 移除主动记忆自动捕获弹窗，记忆保存完全由 AI 驱动。\n- system prompt 增强 `Memory behavior:` 指引，AI 保存前先检查矛盾\u002F过时记忆。\n\n### Skills 会话注入\n\n- `load_skill` 加载后，skill 指令在每轮 system prompt 中注入，标记 `[loaded]`。\n- Skill 列表展示名称和描述，减少 `list_skills` 调用。\n\n### TodoList 功能\n\n- 新增 `todo_create`、`todo_update`、`todo_list` 工具，TUI header 展示进度。\n\n### 验证状态\n\n```\nTests run: 111, Failures: 0, Errors: 0, Skipped: 0\nBUILD SUCCESS\n```\n\n如果地址包含 `{query}`，工具会替换为 URL 编码后的搜索词；否则会自动追加 `q=\u003Cquery>` 参数。\n","CodeAuto 是一个用 Java 开发的智能编程助手，旨在为 JVM 生态系统中的开发者提供便捷的 AI 编程支持。该项目的核心功能包括代码生成、文件差异审查、会话管理和上下文压缩等，支持通过普通命令行界面（CLI）或全屏终端用户界面（TUI）与用户交互。它还具备技能扩展、多级项目指令加载以及自反思能力，使开发者能够更高效地进行编码工作。CodeAuto 适用于以 Java 为主要开发语言的场景，特别是对于希望在熟悉的环境中探索或定制 AI 辅助工具的程序员而言，是一个理想的选择。","2026-06-11 04:05:54","CREATED_QUERY"]