修复了在 tokio 后台线程中调用 macOS UI 操作导致的崩溃:
- 使用 run_on_main_thread() 将更新窗口创建操作调度到主线程
- 解决 "Must only be used from the main thread" 断言失败
- 修复测试代码中过时的 iflow 字段引用
- 更新版本号到 0.48.0
- Add updateProviderEnvVars function to sync Claude Code env vars
- Improve API Server page with provider selection and env var updates
- Update codex provider with better error handling
- Fix provider pool service credential lookup
- Format UI components with Prettier
- Fix test files for custom_models field
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
## Terminal AI Features
- Add Terminal AI panel with command execution support
- Add term_get_scrollback tool for reading terminal output history
- Add terminal tool with command approval workflow
- Add auto-execute mode for trusted commands
- Add duplicate command detection to prevent AI loops
- Improve command response format with clear success markers
## Screenshot Chat (Experimental)
- Add screenshot chat window for quick AI conversations
- Add global shortcut support for screenshot capture
- Add experimental settings page
## Code Quality
- Fix all compiler warnings with proper analysis
- Remove unused imports and dead code
- Add #[allow(dead_code)] for reserved/planned features
- Remove deprecated terminal-plugin from recommendations
## Other Changes
- Update model registry with new capabilities
- Improve config observer system
- Add webview panel position fields (reserved)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Allow binding to 0.0.0.0 or :: to enable LAN access, with security
requirements:
1. Add is_valid_bind_host() and is_non_local_bind() helper functions
2. Allow 0.0.0.0 and :: as valid bind addresses
3. Require non-default API key when binding to all interfaces
4. Update validation in:
- save_config command
- hot_reload validation
- bootstrap validation
Security: When using 0.0.0.0 or ::, users must set a custom API key
(not the default "proxy_cast") to prevent unauthorized access.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Improve AWS Event Stream parsing to fix streaming response interruption:
1. Change JSON start detection to search for specific patterns instead of
simple '{' character. AWS Event Stream contains binary headers that may
have '{' in unexpected positions. Now searches for valid JSON patterns:
- {"content": - text content
- {"name": - tool call start
- {"toolUseId": - tool use event
- {"input": - tool input continuation
- {"stop": - stop event
- {"usage": - usage info
- {"contextUsagePercentage": - context usage
2. Handle standalone {"input":...} events for tool call input continuation.
Kiro may send tool calls in multiple events:
- {"name":"xxx","toolUseId":"xxx"} - start
- {"input":"..."} - input data (may be multiple)
- {"stop":true} - end
3. Handle standalone {"stop":true} events that close active tool calls.
This mirrors the fix from AIClient-2-API project.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Fixed 20 translation entries with concatenated words and incorrect formatting
- Fixed critical bug in DOM replacer that caused partial translations
- Sort translation patches by length (longest first) to prevent substring replacement issues
- Fixed TypeScript and ESLint errors
- Added comprehensive documentation of fixes
- Fix ProviderType::from_str to support 'anthropic' and 'gemini_api_key' mappings
- Fix ChatNavbar provider selection to respect server default provider
- Fix duplicate KeyRound export in plugin-components
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>