Files
liuzhandCopilot 1e35cbe222 docs: 更新文档 - CLI样式升级+i18n+修复重复章节
- 修改记录.md: 新增CLI视觉样式升级+i18n英文统一条目
- 需求文档.md: 工具/命令数量更新为18/28, 新增CLI样式和i18n状态, 删除重复的表格数据

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-02 00:35:37 +08:00

181 lines
10 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 修改记录
## [2026-04-02] - CLI视觉样式升级 + i18n英文统一
- **修改类型**: 功能增强 + 国际化
- **修改详情**:
- **Banner 重新设计**:
- 带边框 `╭╮╰╯` 的启动 Banner(参考 Copilot CLI / Claude Code 样式)
- ASCII 冒烟咖啡杯 Logo + 双列布局(左 Logo 右信息)
- 自动 ANSI 可见宽度计算,确保边框上下对齐
- 右侧显示 Welcome / API URL / Protocol / Model / Work Dir / Tools & Commands
- 窄终端/dumb 模式自动降级为精简 Banner
- **工具状态渲染升级**:
- 彩色 `●` 圆点标识不同消息类型(蓝=工具运行、绿=完成、红=错误、品红=思考)
- `⎿` 前缀显示工具结果(Claude Code 风格)
- 工具参数内联显示: `● ToolName(args)`
- **Thinking 显示升级**:
- `<thought>...</thought>` 标签块格式(Copilot CLI 风格)
- **AI 回复增强**:
- 回复前显示 `●` 前缀
- 回复后显示 `✻ Worked for Xs` 耗时统计
- **i18n 英文统一**:
- 46 个文件中所有用户可见的中文字符串翻译为英文
- 涵盖全部 28 命令、18 工具、Core/MCP/Plugin/REPL/Context 等模块
- AI 提示词(compact/commit/review/security 等)改为英文
- Javadoc 和行内注释保留中文不变
- **Bug 修复**:
- `/help` 改为动态获取全部已注册命令(原来硬编码 6 个)
- `CommandContext` 增加 `commandRegistry` 字段
- `/history` 名称修复(去掉多余的 `/` 前缀)
- `/compact``/history` 描述改为英文
- TODO.md 移出版本控制并加入 .gitignore
- **关联需求**: 2.6 CLI 交互体验, 4.2 交互体验
## [2026-04-03] - P2: MCP协议 + 插件系统 + 任务管理 + CLI增强
- **修改类型**: 功能新增
- **修改详情**:
- **A组 CLI增强**:
- 新增 `DiffRenderer` 彩色 diff 渲染器(行号、stat摘要、unified格式解析)
- 新增 7 个命令: `/hooks`, `/review`(rev), `/stats`, `/branch`, `/rewind`, `/tag`, `/security-review`(sec)
- `/review` 支持 `--staged` 标志和文件路径参数
- `/branch` 支持 save/load/list/delete 子命令管理对话分支
- `/tag` 支持对话位置标签和 goto 跳转
- `/security-review` 发送 AI 安全审查(SQL注入/XSS/认证/凭证泄露检测)
- **B组 任务系统**:
- 新增 `TaskManager` 后台任务管理器(线程安全、ConcurrentHashMap、CachedThreadPool
- 新增 4 个工具: `TaskCreate`/`TaskGet`/`TaskList`/`TaskUpdate`
- 新增 `ConfigTool` 配置读写工具
- 支持自动执行模式和手动状态管理模式
- **C组 MCP协议**:
- 新增 `mcp/` 包: `McpClient``McpTransport``StdioTransport``McpManager``McpException`
- MCP 客户端支持 JSON-RPC 2.0 协议(initialize 握手、tools/list、tools/call、resources/read
- StdIO 传输实现(子进程管理、异步读写、CompletableFuture 请求-响应关联)
- `McpManager` 多服务器管理(从 `.mcp.json` 配置加载、生命周期管理)
- `McpToolBridge` 将 MCP 工具桥接为本地 Tool(名称格式: `mcp__{server}__{tool}`
- 新增 `/mcp` 命令(connect/disconnect/tools/resources/reload
- **D组 插件系统**:
- 新增 `plugin/` 包: `Plugin` 接口、`PluginContext``PluginManager`
- JAR 插件加载(URLClassLoader 隔离、Manifest Plugin-Class 读取)
- 支持全局插件 (`~/.claude-code-java/plugins/`) 和项目插件 (`.claude-code/plugins/`)
- 新增 `OutputStylePlugin` 内置输出样式插件(default/minimal/verbose/markdown
- 新增 `/plugin` 命令(load/unload/reload/info
- **集成**: AppConfig 注册全部 18 工具 + 28 命令 + TaskManager + McpManager + PluginManager
- **关联需求**: 5.2 P2 扩展功能
## [2026-04-03] - P1: Hook系统 + Vim模式 + Banner增强
- **修改类型**: 功能新增
- **修改详情**:
- 新增 `HookManager`: 支持 PreToolUse/PostToolUse/PrePrompt/PostResponse 4 种钩子
- Hook 优先级排序(数字越小优先级越高),PreToolUse 可中止工具执行
- AgentLoop 集成 Hook 系统到 executeToolCalls() 流程
- ReplSession 支持 Vim 编辑模式(`CLAUDE_CODE_VIM=1` 环境变量启用)
- Banner 增强:显示命令数量和 Vim 模式标识
- 修复重复 isDumb 变量
- **关联需求**: 5.2 P1 重要功能
## [2026-04-03] - P1: 3命令 + 代码高亮 + 状态行
- **修改类型**: 功能新增
- **修改详情**:
- 新增 3 个命令: `/resume`(恢复对话), `/export`(导出Markdown, `/commit`AI生成commit
- `MarkdownRenderer` 完全重写:支持 Java/JS/TS/Python/Bash/SQL 6 种语言语法高亮
- 高亮处理:注释 → 字符串保护 → 注解 → 关键字 → 数字 → 布尔/null
- 新增 `StatusLine` 底部状态行(模型、token、费用、API调用、工作目录)
- AppConfig 注册总数达 19 命令
- **关联需求**: 5.2 P1 重要功能
## [2026-04-03] - P0: 5命令 + 2工具 + 权限确认 + Thinking显示
- **修改类型**: 功能新增
- **修改详情**:
- 新增 5 个命令: `/diff`, `/version`(ver), `/skills`, `/memory`(mem), `/copy`
- 新增 `WebSearchTool`: DuckDuckGo HTML 搜索(无需 API Key
- 新增 `AskUserQuestionTool`: AI 向用户提问(通过 ToolContext 回调暂停 agent loop
- AgentLoop 新增权限确认机制: 非只读工具调用前提示 [Y/n/always]
- AgentLoop 新增 Thinking 内容提取和显示(从 ChatResponse metadata 读取)
- 新增 `PermissionRequest` record 和 `onPermissionRequest`/`onThinkingContent` 回调
- ReplSession 新增 `promptPermission()` UI 和 `readUserInputDuringAgentLoop()` 方法
- **关联需求**: 5.2 P0 核心功能
## [2026-04-02] - Phase 5: 流式输出与高级功能
- **修改类型**: 功能新增
- **修改详情**:
- **5A 流式输出**: AgentLoop 新增 `runStreaming()` 方法,使用 `chatModel.stream()``Flux<ChatResponse>` 逐 token 实时输出到终端。流式失败自动降级到阻塞模式。重构核心循环统一阻塞/流式两种模式
- **5B 对话持久化**: 新增 `ConversationPersistence` 类,退出 REPL 时自动保存对话到 `~/.claude-code-java/conversations/` 目录(JSON 格式)。新增 `/history` 命令查看历史对话
- **5C /compact AI 摘要**: 增强 `/compact` 命令,用 AI 生成对话摘要注入上下文,替代简单清空历史。保留系统提示+AI 摘要+最后一轮对话
- **5D 多行输入**: JLine 配置反斜杠续行(`\`),续行提示符 ` ... `
- **关联需求**: 2.1 核心 REPL 循环, 2.6 流式输出
## [2026-04-02] - 双 API 提供者支持
- **修改类型**: 功能新增
- **修改详情**:
- 支持 OpenAI 和 Anthropic 双 API 提供者,通过 `CLAUDE_CODE_PROVIDER` 环境变量切换
- 统一环境变量: `AI_API_KEY` / `AI_BASE_URL` / `AI_MODEL` 两种提供者通用
- Banner 启动时显示当前 Provider、Model、API URL
- 修复 ProviderInfo 读取旧环境变量名的 bug
- **关联需求**: 2.1 核心 REPL 循环
## [2026-04-02] - Phase 4: 命令系统与上下文增强
- **修改类型**: 功能新增
- **修改详情**:
- 新增 `TokenTracker` 真实 token 追踪(含模型定价)
- 新增 `SkillLoader` 技能加载(3 个目录扫描、YAML frontmatter 解析)
- 新增 `GitContext` Git 上下文收集(分支、状态、最近提交)
- 新增 4 个命令: `/init`, `/status`, `/context`, `/config`
- 增强 3 个命令: `/cost`(真实 token, `/model`(可切换), `/compact`(显示统计)
- `SystemPromptBuilder` 集成 Skills 和 Git 上下文
- `AgentLoop` 记录 token 使用量
- **关联需求**: 2.4 命令系统, 2.5 上下文构建
## [2026-04-02] - Phase 3: 完整工具集
- **修改类型**: 功能新增
- **修改详情**:
- 新增 5 个工具: `ListFilesTool`, `WebFetchTool`, `TodoWriteTool`, `AgentTool`, `NotebookEditTool`
- 修复 `WebFetchTool` 编译错误(replaceAll lambda → Pattern 匹配器)
- `AgentTool` 子 Agent 工厂通过 `ToolContext` 注入
- **关联需求**: 2.2 工具系统
## [2026-04-02] - Phase 2: JLine 终端交互增强
- **修改类型**: 功能新增
- **修改详情**:
- 使用 JLine 3 重写 REPL(行编辑、历史、Tab 补全)
- 新增 `ClaudeCodeCompleter` Tab 补全器
- 新增 `/model`, `/compact`, `/cost` 命令
- JLine FFM 原生终端支持(JDK 22+
- Windows 终端 UTF-8 编码修复(PrintStream + JVM 参数 + 启动脚本)
- `run.ps1` / `run.bat` 启动脚本
- **关联需求**: 2.3 终端交互
## [2026-04-02] - Phase 1: 项目骨架与基础循环
- **修改类型**: 功能新增
- **修改详情**:
- Maven 项目结构: Spring Boot 4.1.0-M2, Spring AI 2.0.0-M4, JDK 25
- 核心 `AgentLoop` 显式工具调用循环(ChatModel + 手动工具循环)
- 6 个基础工具: `BashTool`, `FileReadTool`, `FileWriteTool`, `FileEditTool`, `GlobTool`, `GrepTool`
- 控制台组件: `BannerPrinter`, `ToolStatusRenderer`, `ThinkingRenderer`, `SpinnerAnimation`, `MarkdownRenderer`
- 命令系统: `SlashCommand` 接口, `CommandRegistry`, `/help`, `/clear`, `/exit`
- 修复 Spring AI 兼容性: Spring Boot 4.x 升级, ChatModel Bean 冲突, JVM 内存
- **关联需求**: 全部章节
## [2026-04-02] - 项目初始化与需求分析
- **修改类型**: 文档更新
- **修改详情**:
- 创建 `需求文档.md`,完成需求分析和技术设计
- 创建 `修改记录.md`,记录项目变更历史
- 完成 claude-code TypeScript 源码的主线逻辑分析
- 完成 claude-code-learn Java 参考实现的架构分析
- 确定 Java 重写的技术栈:JDK 25 + Spring Boot 4.1.0-M2 + Spring AI 2.0.0-M4 + JLine 3 + Picocli
- 设计包结构和类映射关系
- 划分 6 个实现阶段
- **关联需求**: 全部章节