Commit Graph

630 Commits

Author SHA1 Message Date
xintaofei
6d199c9f83 # Release version 0.6.10
- fix: override Python monarch tokenizer to fix triple-quoted string highlighting.
- fix: add KaTeX CSS and normalize LaTeX math delimiters for proper formula rendering.
- chore: bump ACP agent SDK (Claude Code, OpenCode) versions in registry.
-----------------------------
# 发布版本 0.6.10

- 修复:覆盖 Python monarch 分词器,修复三引号字符串高亮显示问题;
- 修复:添加 KaTeX CSS 并规范化 LaTeX 数学公式分隔符,修复公式渲染;
- 维护:更新 ACP 代理 SDK(Claude Code、OpenCode)注册表版本。
2026-04-09 00:22:40 +08:00
xintaofei
0f38b8ee32 fix(ui): override Python monarch tokenizer to fix triple-quoted string highlighting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 23:42:25 +08:00
xintaofei
c367117392 fix(ui): add KaTeX CSS and normalize LaTeX math delimiters for proper formula rendering
Import KaTeX CSS in layout.tsx to ensure math formulas display correctly
in both dev and production modes. Convert LaTeX-style `\[...\]` / `\(...\)`
delimiters to `$$...$$` / `$...$` since remark-math only supports dollar
sign delimiters, fixing formula rendering for agents like Codex.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 23:27:40 +08:00
xintaofei
0b866eddb4 chore: bump ACP agent SDK (Claude code, OpenCode) versions in registry 2026-04-08 22:11:01 +08:00
xintaofei
55aadb3b65 # Release version 0.6.9
- feat: add responsive layout support for mobile and small screens.
- feat: upgrade @lobehub/icons to v5 and update agent icon colors.
- feat: add version detection and upgrade support to install scripts.
-----------------------------
# 发布版本 0.6.9

- 新增:支持移动端和小屏幕的响应式布局适配;
- 新增:升级 @lobehub/icons 至 v5,更新代理图标配色;
- 新增:安装脚本增加版本检测与升级支持。
2026-04-07 22:30:19 +08:00
xintaofei
923303f516 feat(install): add version detection and upgrade support to install scripts
Add --version flag to codeg-server binary and enhance both install.sh
and install.ps1 with version detection (skip if already up-to-date),
running process stop before upgrade, and post-upgrade restart guidance.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 21:53:29 +08:00
xintaofei
8d97ba6f44 feat(ui): upgrade @lobehub/icons to v5 and update agent icon colors
Upgrade @lobehub/icons from v4 to v5.3.0, adopt new icon components (ClaudeCode, Codex, GeminiCLI) with Color variants, and align fallback AGENT_COLORS with official brand colors.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 21:42:22 +08:00
xintaofei
768d1326b1 feat(ui): add responsive layout support for mobile and small screens
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 15:47:16 +08:00
xintaofei
dd659dcaa5 # Release version 0.6.8
- feat: add model provider management with full CRUD support.
- feat: refactor agent auth modes and add model provider authentication.
- feat: add model selection combobox for OpenCode agent configuration.
- feat: protect model provider deletion and cascade credential updates.
- feat: add slash command dropdown button in message input toolbar.
- fix: improve error message when exporting long conversations as image.
- fix: disable "auto" config option for Claude Code to prevent errors.
- fix: improve codex CLI auth mode switching to preserve auth.json keys.
- fix: update chat channel icons to Play/Square and SendHorizontal.
- chore: bump ACP agent SDK versions in registry.
-----------------------------
# 发布版本 0.6.8

- 新增:模型提供商管理,支持完整的增删改查操作;
- 新增:重构代理认证模式,新增模型提供商认证支持;
- 新增:OpenCode 代理配置增加模型选择下拉框;
- 新增:模型提供商删除保护及级联更新凭证;
- 新增:消息输入工具栏添加斜杠命令下拉按钮;
- 修复:导出长会话为图片时改进错误提示;
- 修复:禁用 Claude Code 的 "auto" 配置选项以防止错误;
- 修复:Codex CLI 认证模式切换时保留 auth.json 密钥;
- 修复:更新聊天频道图标为 Play/Square 和 SendHorizontal;
- 升级:更新注册表中 ACP agent SDK 版本。
2026-04-07 13:06:16 +08:00
xintaofei
0401319281 fix(settings): update chat channel icons to Play/Square and SendHorizontal
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 12:58:12 +08:00
xintaofei
94946bbe0c chore: bump ACP agent SDK versions in registry 2026-04-07 12:40:08 +08:00
xintaofei
ad3f393e92 fix(settings): reorder nav menu to place Agents below Skills
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 11:23:48 +08:00
xintaofei
8362bdf2c7 fix(settings): limit model provider agent types and adjust card layout
Restrict supported agent types to Claude Code, Codex CLI, and Gemini CLI. Reposition agent type badges to be vertically centered beside the name and API URL block in provider cards.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 11:20:12 +08:00
xintaofei
faf8ff0731 feat(settings): add model selection combobox for OpenCode agent configuration
Replace plain text inputs for model and small_model with searchable
combobox dropdowns that list models from configured providers, while
still supporting custom text entry on blur.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 10:55:42 +08:00
xintaofei
a3d5335e7f feat(settings): protect model provider deletion and cascade credential updates
- Block deletion of a model provider when it is referenced by any agent,
  returning an error that lists the agent names so the user knows what to unlink first
- When a provider's api_url or api_key is updated, automatically propagate
  the new credentials to all dependent agents: updates env_json in the database
  and patches on-disk config files (Claude Code settings.json, Gemini settings.json,
  Codex auth.json + config.toml, OpenCode auth.json) using the same field names
  and structure as the agent settings UI
- Fix error message display in provider dialogs for both Tauri and web transports,
  which throw plain objects rather than Error instances

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-07 00:25:01 +08:00
xintaofei
4245df2f4a fix(settings): improve codex CLI auth mode switching to preserve auth.json keys
- Patch only `OPENAI_API_KEY` and `auth_mode` in auth.json when switching
  auth modes, instead of resetting the entire file
- Clean up `OPENAI_BASE_URL` from env when codex loads in official
  subscription mode
- Hide API URL and API Key inputs when model provider mode is selected

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 23:05:52 +08:00
xintaofei
b64976e4d6 feat(settings): refactor agent auth modes and add model provider authentication
- 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>
2026-04-06 22:10:18 +08:00
xintaofei
d28c54a038 fix(settings): reorder nav menu to place model providers after skills
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-05 16:40:37 +08:00
xintaofei
ba19299696 feat(settings): add model provider management with full CRUD support
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>
2026-04-05 16:35:14 +08:00
xintaofei
6359651247 feat(chat): add slash command dropdown button in message input toolbar
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 13:24:26 +08:00
xintaofei
576944ac1f # Release version 0.6.7
- feat: add export conversation to image, markdown, and HTML formats.
- feat: add copy button on hover for user messages in conversation.
- feat: add favicon for web/server mode browser tabs.
- chore: upgrade sacp to 11.0.0 stable and agent-client-protocol-schema to 0.11.
- chore: bump ACP agent SDK versions in registry.
-----------------------------
# 发布版本 0.6.7

- 新增:支持将会话导出为图片、Markdown 和 HTML 格式;
- 新增:用户消息悬停时显示复制按钮;
- 新增:Web/服务器模式浏览器标签页显示 favicon;
- 升级:sacp 升级至 11.0.0 稳定版,agent-client-protocol-schema 升级至 0.11;
- 升级:更新注册表中 ACP agent SDK 版本。
2026-04-03 23:47:51 +08:00
xintaofei
32a1c5adc0 fix: improve error message when exporting long conversations as image
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 23:38:25 +08:00
xintaofei
40d0a4b995 fix: disable "auto" config option for Claude Code to prevent errors
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>
2026-04-03 22:54:48 +08:00
xintaofei
ac0d849a7b chore: upgrade sacp to 11.0.0 stable and agent-client-protocol-schema to 0.11
- Upgrade sacp/sacp-tokio from 11.0.0-alpha.1 to 11.0.0 stable
- Upgrade agent-client-protocol-schema from 0.10 to 0.11
- Rebase vendor/sacp-tokio patches (kill_tree, CREATE_NO_WINDOW, stderr
  truncation) onto official 11.0.0 baseline
- Adapt renamed types: FileSystemCapability → FileSystemCapabilities,
  KillTerminalCommandRequest/Response → KillTerminalRequest/Response

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 22:10:15 +08:00
xintaofei
56d6db7866 chore: bump ACP agent SDK versions in registry
Update Claude Code 0.25.0, Codex 0.11.1, Gemini 0.36.0, OpenClaw 2026.4.2, Cline 2.13.0, OpenCode 1.3.13

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 21:01:48 +08:00
xintaofei
c06e854975 feat: add favicon for web/server mode browser tabs
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 19:03:55 +08:00
xintaofei
4c36369dd2 feat: add export conversation to image, markdown, and HTML formats
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 18:56:37 +08:00
xintaofei
1282dcee19 feat: add copy button on hover for user messages in conversation
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 15:22:34 +08:00
xintaofei
c1158bf669 # Release version 0.6.6
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 镜像。
2026-04-03 14:40:14 +08:00
xintaofei
743b2a97ac docs: update AGENTS.md and CLAUDE.md with enriched project documentation
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 14:33:46 +08:00
xintaofei
858ea9d10a fix: fix terminal not opening in Docker and slim down Docker image
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 13:59:30 +08:00
xintaofei
ae93cc062b fix: optimize communication flow diagram icons and layout
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 11:46:12 +08:00
xintaofei
ea3b20b2d9 fix: update run button state when terminal tab is closed directly
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 10:42:50 +08:00
xintaofei
9396127cd9 feat: add @ file mention support in chat input and unify directory attachment
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>
2026-04-02 22:43:27 +08:00
xintaofei
e87f930ec1 # Release version 0.6.5
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 回退方案。
2026-04-02 19:35:35 +08:00
xintaofei
4f394ea521 fix: use randomUUID fallback for non-secure contexts in terminal-context
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>
2026-04-02 19:21:56 +08:00
xintaofei
e7bd12e16f fix: sync run button state with terminal process via centralized exit tracking
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>
2026-04-02 19:02:01 +08:00
xintaofei
ef94687c87 # Release version 0.6.4
WeChat channel support — connect your WeChat account via QR code scan, then interact with agents directly from WeChat. All session commands (/folder, /agent, /task, etc.) work seamlessly in WeChat conversations.

- feature: supports WeChat channel.
- feature: add click-to-preview for image attachments in chat.
- feature: add commit and push option to git commit window.
- fix: skip rendering img element when src is empty in image preview dialog.
- fix: disable macOS overscroll bounce, Thanks to @isYangs https://github.com/xintaofei/codeg/pull/54.
- optimize: terminal spawn lifecycle to eliminate output race condition.
- optimize: WeChat QR code auth flow and channel reliability.
- optimize: WeChat channel message handling and error resilience.

-----------------------------

# 发布版本 0.6.4

支持微信消息通道 — 通过扫描二维码连接微信账号,即可直接在微信中与代理交互。所有会话指令(/folder、/agent、/task 等)均可在微信对话中无缝使用。

- 功能:支持微信消息通道;
- 功能:聊天中的图片附件支持点击预览;
- 功能:Git 提交窗口新增提交并推送选项;
- 修复:图片预览对话框中 src 为空时跳过渲染 img 元素;
- 修复:禁用 macOS 过度滚动回弹效果,感谢 @isYangs https://github.com/xintaofei/codeg/pull/54;
- 优化:终端进程生命周期管理,消除输出竞态条件;
- 优化:微信二维码认证流程及通道可靠性;
- 优化:微信通道消息处理及错误恢复能力。
2026-04-02 16:50:27 +08:00
xintaofei
236f0ed5e3 Merge branch 'main-fix' 2026-04-02 16:25:00 +08:00
xintaofei
efd8e1104f features: add commit and push option to git commit window
- 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>
2026-04-02 16:22:41 +08:00
xintaofei
9b50d75266 fix: skip rendering img element when src is empty in image preview dialog
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 15:26:17 +08:00
xintaofei
f23ed12650 feat: add click-to-preview for image attachments in chat
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 15:23:48 +08:00
XinTaoFei
2a3b4b1908 Merge pull request #54 from isYangs/main
fix: disable macOS overscroll bounce
2026-04-02 14:55:04 +08:00
xintaofei
d3d53c8b8d docs: add animated communication flow diagram to README
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 14:51:23 +08:00
xintaofei
1287dab37c docs: add iLink (Weixin) to supported chat channels in README
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 14:11:12 +08:00
xintaofei
b2d10fa008 optimize: terminal spawn lifecycle to eliminate output race condition
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>
2026-04-02 13:55:38 +08:00
xintaofei
d0e0aad525 optimize: WeChat QR code auth flow and channel reliability
- 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>
2026-04-02 11:22:51 +08:00
isYangs
03a6f8b5eb Merge remote-tracking branch 'origin/main' 2026-04-02 10:40:50 +08:00
isYangs
92dd5b1bbe fix: disable macOS overscroll bounce 2026-04-02 09:54:23 +08:00
xintaofei
0ef36ee918 optimize: WeChat channel message handling and error resilience
- 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>
2026-04-02 00:29:01 +08:00