- Split env vars and config file persistence into separate save operations
- Add model_provider_id field to agent_setting for tracking selected provider
- Add "Model Provider" auth mode for Claude Code, Codex CLI, and Gemini CLI
- Add "Custom Endpoint" auth mode for Claude Code (previously only official subscription)
- Unify auth mode labels across all three agents (official subscription / custom endpoint / model provider)
- When model provider is selected, fill api_url and api_key into env and config automatically
- Resolve model provider credentials at ACP connect time as a backend fallback
- Clear provider deletion cascades to agent_setting.model_provider_id
- Claude Code writes API credentials to config.env (ANTHROPIC_BASE_URL / ANTHROPIC_AUTH_TOKEN)
- Codex: switching auth modes patches config.toml instead of clearing it
- Add i18n keys for new auth modes in all 10 supported languages
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add a new settings page for managing API model providers (name, API URL,
API key, applicable agent types). Includes database migration, SeaORM
entity, backend CRUD commands/handlers, frontend settings UI with agent
type filter, add/edit/delete dialogs, and i18n support for all 10 locales.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Claude Code errors when setting config options to "auto". Strip "auto"
values from config options returned to frontend and skip set requests
with "auto" value for Claude Code agent.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
New @ file mention support in chat and fixes for terminal and Docker stability.
- feat: add @ file mention support in chat input and unify directory attachment.
- fix: update run button state when terminal tab is closed directly.
- fix: fix terminal not opening in Docker and slim down Docker image.
-----------------------------
# 发布版本 0.6.6
新增聊天输入框 @ 文件提及功能,并修复终端与 Docker 稳定性问题。
- 新增:聊天输入框支持 @ 文件提及,并统一目录附件处理逻辑;
- 修复:终端标签页直接关闭时正确更新运行按钮状态;
- 修复:修复 Docker 环境下终端无法打开的问题,并精简 Docker 镜像。
Support typing "@" in the chat input to trigger a file list popup with
filtering, keyboard navigation, and file/directory attachment. Directories
from the sidebar file tree now attach as resource links instead of injecting
text into the input.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Bug fixes for terminal stability — fixed run button state synchronization and UUID generation in non-secure contexts.
- fix: sync run button state with terminal process via centralized exit tracking.
- fix: use randomUUID fallback for non-secure contexts in terminal-context.
-----------------------------
# 发布版本 0.6.5
终端稳定性修复 — 修复了运行按钮状态同步问题及非安全上下文中的 UUID 生成问题。
- 修复:通过集中式退出追踪机制同步运行按钮与终端进程状态;
- 修复:在非安全上下文中为 terminal-context 添加 randomUUID 回退方案。
Replace crypto.randomUUID() with the existing randomUUID() utility
that falls back to crypto.getRandomValues() over plain HTTP.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Centralize terminal process lifecycle in terminal-context as single
source of truth. TerminalView reports exit/failure via callback,
context maintains exitedTerminals set, command-dropdown reacts to it.
Removes redundant polling and per-component exit event subscriptions
that raced with deferred spawn introduced in b2d10fa.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add split button with dropdown in commit dialog supporting both
"Commit" and "Commit and Push" actions
- Pass folderId through gitCommit/gitPush API calls so backend emits
events that the folder window can receive for toast notifications
- Update Tauri git_commit and git_push commands to accept folder_id
parameter with window label fallback for cross-window compatibility
- Wrap commit page with GitCredentialProvider for push authentication
- Keep commit window open when push fails so user can see the error
- Add i18n translations for all 10 locales
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Move PTY spawn from context layer to view layer so event subscription
happens before spawn, preventing loss of initial terminal output.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Generate QR code server-side when iLink API returns SPA page URL
(added qrcode + image crates for PNG generation)
- Strip bot_token from frontend response (new WeixinQrcodeStatusPublic type)
- Add request timeouts and shared HTTP client for QR code endpoints
- Fix TOCTOU race on reply_context double-lock (single lock scope)
- Extract do_send() helper to deduplicate sendmessage logic; resend now
checks ret field for context expiry instead of HTTP status only
- Cap pending_messages buffer at 50 to prevent unbounded memory growth
- Generate stable X-WECHAT-UIN per backend instance instead of per request
- Extract ILINK_CHANNEL_VERSION constant (was hardcoded in 4 places)
- Add 5-minute client-side QR expiry timeout in frontend dialog
- Track consecutive polling errors and show warning after 3 failures
- Stabilise onAuthSuccess/onClose callback refs to prevent polling restarts
- Replace dead i18n key weixinOpenQrcode with weixinPollError
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Filter messages by message_type=1 to skip bot echo and prevent loops
- Add voice message support (type=3) with voice-to-text extraction
- Check resend results and re-buffer failed messages to prevent loss
- Handle session expiry (ret=-14) with 30s pause in polling loop
- Use exponential backoff (5s–30s) for network errors instead of fixed 5s
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Supports conversational Interaction — run full agent sessions from your chat app: /folder to pick a project, /agent to choose an agent, /task <description> to start a task, then send follow-up messages as plain text. /resume to continue a previous session, /cancel to abort, /sessions to list active sessions
- feature: messaging channels now support session-related commands.
- fix: enable inline math formula rendering with single dollar signs.
-----------------------------
发布版本 0.6.3
支持会话交互 — 在聊天应用中运行完整代理会话:/folder 选择项目、/agent 选择代理、/task <描述> 启动任务,然后直接发送纯文本作为后续消息。/resume 恢复历史会话、/cancel 取消任务、/sessions 查看活跃会话
- 功能:消息通道现已支持会话相关指令;
- 修复:启用单美元符号行内数学公式渲染。
- Display specific file paths, commands, and patterns in tool call messages
instead of generic titles (e.g. ">> Read: src/main.rs")
- Show tool call details only on completion to ensure raw_input availability
- Enrich permission request messages with tool details from rawInput
- Localize stop_reason in turn_complete messages for all 10 languages
- Fix UTF-8 byte-slice panic in format_completion for multi-byte content
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>