abel533
d9ca1c7dd2
chore: add Apache License 2.0
...
- Added LICENSE file (Apache 2.0)
- Added <licenses> section to pom.xml
- Updated README license section
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
4 weeks ago
abel533
f330803af4
chore: bump version to 0.2.0-SNAPSHOT
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
4 weeks ago
abel533
b60a212ad0
release: v0.1.0
...
First official release of Claude Code Java.
- 34 tools, 54 commands, 184 source files, ~26.7K lines
- Jink 0.5.0 full-screen TUI
- Dual API providers (OpenAI + Anthropic)
- Multi-level permission system
- Three-layer context compression
- MCP protocol, plugin system, hook system
- 87 unit tests passing
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
4 weeks ago
abel533
4be570a4f2
chore: upgrade Jink to 0.5.0 and enable mouse tracking, add Jink 0.5.0 TUI framework section to README
...
- Added Jink to tech stack table
- New section: what Jink is, why it was chosen, Ink vs Jink comparison table
- Documents Jink's role in the project (4 TUI files)
- Maven Central dependency + manual build fallback instructions
- Updated architecture diagram with tui/ package
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
4 weeks ago
abel533
b98675f643
feat: Server Mode with WebSocket direct connect (Phase 3A)
...
- DirectConnectServer: lifecycle management, auth token, port config
- DirectConnectWebSocketHandler: WebSocket handler with session management
- ServerSession: per-connection AgentLoop with permission forwarding
- ServerMessage: 7-type JSON protocol (user/assistant/result/control/interrupt/keep_alive/error)
- ServerModeAutoConfiguration: conditional Spring config with @EnableWebSocket
- WebSocketServerConfig: endpoint registration and container settings
- ClaudeCodeApplication: --server flag detection, web-application-type override
- ClaudeCodeRunner: skip TUI in server mode, block on shutdown signal
- pom.xml: added spring-boot-starter-websocket dependency
Server mode: --server [--server-port=12321] [--server-token=xxx]
Env vars: CLAUDE_CODE_SERVER_MODE, CLAUDE_CODE_SERVER_PORT, CLAUDE_CODE_SERVER_TOKEN
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
abel533
601a1c9ea9
feat: add jink TUI framework integration
...
- Add jink dependency (io.mybatis.jink:jink:0.3.0-SNAPSHOT)
- Create UIMessage sealed interface for TUI message model
- Create ClaudeCodeComponent (main jink Component with full layout)
- Header box with rounded magenta border
- Message list with virtual scrolling
- Separator lines above/below input area
- Input area with prompt and placeholder
- Status bar and shortcut key bar
- Create JinkReplSession (jink-based REPL replacing JLine readLine loop)
- AgentLoop integration via callbacks -> setState
- Permission confirmation inline in TUI
- Streaming token display
- Update ClaudeCodeRunner to prefer jink TUI with legacy fallback
- Update AppConfig with JinkReplSession bean
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
liuzh
549cc79dc6
fix: 修复Windows终端UTF-8编码问题,恢复emoji字符
...
根因: System.out使用平台默认编码(CP936/GBK),emoji无法编码显示为?。
修复方案:
1. JVM参数: -Dstdout.encoding=UTF-8 -Dstderr.encoding=UTF-8 -Dfile.encoding=UTF-8
2. 代码层: PrintStream使用StandardCharsets.UTF_8
3. 启动脚本: run.bat添加chcp 65001, run.ps1设置Console编码
同时revert之前的emoji→ASCII替换,恢复原始emoji符号。
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
liuzh
9048cc8b74
fix: 改进终端兼容性 - FFM原生终端支持、dumb终端提示、双重Goodbye修复
...
- 添加jline-terminal-ffm依赖(JDK22+ FFM API原生终端)
- JVM参数增加--enable-native-access=ALL-UNNAMED
- dumb终端模式下显示黄色警告和建议
- 终端尺寸为0时不显示尺寸信息
- ExitCommand不再输出Goodbye(避免与ReplSession重复)
- TerminalBuilder增加streams(System.in, System.out)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
liuzh
70c9ebed2b
fix: 解决ChatModel多Bean冲突和JVM内存不足问题
...
- AppConfig中用@Qualifier指定anthropicChatModel
- spring-boot-maven-plugin配置-Xmx512m限制堆内存
- application.yml关闭web-application-type为none
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
liuzh
6d3f24aad6
fix: 升级Spring Boot到4.1.0-M2以兼容Spring AI 2.0.0-M4
...
Spring AI 2.0.0-M4依赖Spring Framework 7.0(RetryListener类),
需要Spring Boot 4.x作为parent。
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
liuzh
d67f41358d
feat: Phase1 项目骨架 - Maven项目结构、核心AgentLoop、6个工具、命令系统、控制台渲染、REPL会话
...
实现内容:
- pom.xml: JDK25 + Spring AI 2.0.0-M4 + JLine3 + Picocli
- core/AgentLoop: 基于ChatModel的显式工具循环(非ChatClient)
- tool/: Tool接口 + ToolRegistry + ToolCallbackAdapter(适配Spring AI)
- tool/impl/: BashTool, FileReadTool, FileWriteTool, FileEditTool, GlobTool, GrepTool
- command/: SlashCommand接口 + CommandRegistry + /help, /clear, /exit
- console/: AnsiStyle, BannerPrinter, ToolStatusRenderer, ThinkingRenderer, SpinnerAnimation, MarkdownRenderer
- context/: SystemPromptBuilder, ClaudeMdLoader(多级CLAUDE.md加载)
- repl/ReplSession: REPL主循环(Scanner降级方案)
- config/AppConfig: Spring Bean装配
- application.yml: Anthropic/OpenAI双模型配置
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago