You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
4.1 KiB
80 lines
4.1 KiB
# 修改记录
|
|
|
|
## [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 个实现阶段
|
|
- **关联需求**: 全部章节
|
|
|