Commit Graph

714 Commits

Author SHA1 Message Date
xintaofei
fc457725c1 feat(appearance): add 11 shadcn theme color presets to globals.css
新增 zinc / slate / stone / gray / red / rose / orange / green / blue / yellow / violet
共 11 个主题预设的 light + dark CSS 变量定义,配合 [data-theme] 选择器使用。
chart 颜色全预设共用,避免数据可视化随主题色失真。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 15:45:28 +08:00
xintaofei
4b2e6d188a refactor(appearance): migrate base theme tokens to data-theme="neutral"
把现有 :root / .dark 中的 shadcn CSS 变量整体迁移到 [data-theme="neutral"]
和 [data-theme="neutral"].dark 选择器下,并保留 :root:not([data-theme]) 兜底
确保 inline 脚本未生效时仍维持原视觉。这是后续添加 11 个其他主题预设的基础。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 15:40:57 +08:00
xintaofei
2d5b71bf8a feat(appearance): add FOUC prevention inline script
提供同步执行的 inline 脚本字符串,在 hydration 前从 localStorage 读取
themeColor 和 zoomLevel 写入 <html>,避免首次加载时的主题/缩放闪烁。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 15:36:44 +08:00
xintaofei
5298830fb8 feat(appearance): add theme presets constants module
定义 12 个 shadcn 主题预设标识、6 档缩放档位以及 UI 预览代表色,
作为后续 AppearanceProvider 和 globals.css 的共享基础。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 15:35:31 +08:00
xintaofei
28f866e87a docs(dev-design): add appearance enhancement implementation plan
把外观设置增强的设计文档拆分为 10 个 bite-sized 实施任务(含完整代码、命令、
检查点和提交信息),可由 fresh agent 顺序执行。每个任务后留下独立 commit,
任务之间避免出现"半成品"状态。包含一项对设计的微调:默认主题色从 zinc
改为 neutral,因为当前 globals.css 的实际值与 shadcn neutral 预设一致,
保证升级后视觉零差异。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 15:31:26 +08:00
xintaofei
ab49ff43bc docs(dev-design): add appearance settings enhancement design
新增设计文档:外观设置页面增加 Window Zoom Level 和 Theme Color 两项偏好。
采用 shadcn 官方主题化方案(data-theme 属性 + CSS 变量),localStorage 持久化,
FOUC 防闪烁 inline 脚本,12 个预设主题色盘,6 档窗口缩放。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 15:11:18 +08:00
xintaofei
328884c802 # Release version 0.7.2
- feat(chat): show skills list on $ trigger for Codex instead of experts.
- fix(chat): restore ~/.agents/skills/ as additional Codex skill dir.
- fix(chat): support mid-text slash trigger and keyboard scroll in autocomplete.
- fix(chat): stop plan in-progress spinner when agent is not streaming.
-----------------------------
# 发布版本 0.7.2

- 新增(聊天):Codex 输入 $ 时显示技能列表,替代原有的专家列表;
- 修复(聊天):恢复 ~/.agents/skills/ 作为 Codex 额外的技能目录;
- 修复(聊天):支持在文本中间触发斜杠命令,自动补全支持键盘滚动;
- 修复(聊天):当 agent 未在流式响应时停止 plan 进行中的 spinner。
2026-04-11 11:23:30 +08:00
xintaofei
3901c40518 fix(chat): stop plan in-progress spinner when agent is not streaming
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 11:20:28 +08:00
xintaofei
4ba74a06bd fix(chat): support mid-text slash trigger and keyboard scroll in autocomplete
Track the slash trigger position so the menu can open after prose, then
splice only the slash token on selection instead of clobbering the whole
input. Also scroll the highlighted row into view when keyboard navigation
moves past the popup viewport.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 11:08:22 +08:00
xintaofei
b97efb5f72 feat(chat): show skills list on $ trigger for Codex instead of experts
The Codex $ prefix autocomplete now lists skills from
acp_list_agent_skills (excluding ids that match built-in experts), while
experts remain reachable via the dedicated Sparkles button. Non-Codex
agents are unchanged and still show only their native ACP commands on
the / trigger.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 10:20:13 +08:00
xintaofei
1bb8624160 fix(chat): restore ~/.agents/skills/ as additional Codex skill dir
Codex CLI also reads skills from ~/.agents/skills/, so include it
alongside ~/.codex/skills/ in the skill storage spec. The Codex dir
stays first so it remains the preferred write target for new links,
while lookup and unlink scan both locations.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 09:49:33 +08:00
xintaofei
18887d77cb # Release version 0.7.1
- feat(settings): add Skills toggle for Codex CLI and improve config editor UX.
- fix(chat): use ~/.codex/skills/ for Codex expert symlinks and keep expert button always enabled.
- fix(chat): query expert skills via symlinks and use $ prefix for Codex.
- fix(chat): preserve Gemini CLI history sessions on reopen.
- fix(settings): fix Gemini CLI model edit resetting provider fields and not persisting.
-----------------------------
# 发布版本 0.7.1

- 新增(设置):为 Codex CLI 添加技能开关,优化配置编辑器交互体验;
- 修复(聊天):Codex 专家技能改用 ~/.codex/skills/ 符号链接,专家按钮始终可用;
- 修复(聊天):通过符号链接查询专家技能,Codex 使用 $ 前缀;
- 修复(聊天):重新打开时保留 Gemini CLI 历史会话记录;
- 修复(设置):修复 Gemini CLI 编辑模型时重置 provider 字段且未持久化的问题。
2026-04-11 01:17:30 +08:00
xintaofei
1eb9b4872e feat(settings): add Skills toggle for Codex CLI and improve config editor UX
Add "Enable Skills" toggle below "Enable WebSocket" in Codex CLI settings,
writing `skills = true` under [features] in config.toml. Also add max-height
to auth.json and config.toml textareas, and fix TOML section key insertion
to avoid stray blank lines between entries.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 01:14:17 +08:00
xintaofei
19979d50d0 fix(chat): use ~/.codex/skills/ for Codex expert symlinks and keep expert button always enabled
Change Codex skill storage to use only ~/.codex/skills/ instead of
~/.agents/skills/, and never disable the expert skills button so users
can always access the empty-state hint. Also fix stale expert list in
conversation window after linking in the separate settings window by
re-fetching on window focus.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 00:37:31 +08:00
xintaofei
ade59f474c fix(chat): query expert skills via symlinks and use $ prefix for Codex
Expert skills in the chat session were derived by intersecting built-in
experts with ACP availableCommands, which caused Codex experts to never
appear since Codex does not advertise skills through ACP.

- Add `experts_list_for_agent` backend API that checks symlink status
  across all global skill dirs for the given agent type
- Replace availableCommands-based expert filtering with symlink-based
  query, making the settings page the single source of truth
- Use `$` prefix for Codex expert skills while keeping `/` for slash
  commands and other agents' experts
- Disable the expert button when no experts are linked for the agent
- Invalidate per-agent expert cache after link/unlink in settings

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 00:13:42 +08:00
xintaofei
e4eb7f67eb fix(chat): preserve Gemini CLI history sessions on reopen
When reopening a Gemini CLI history session, session/load fails with
"Authentication required" and the fallback session/new overwrites the
DB external_id with a new session ID that has no corresponding file,
causing all historical messages to disappear.

- Skip session/new when session/load returns "Authentication required"
- Add Gemini to the parser fallback so stale external_ids recover via
  folder_path + started_at matching
- Guard externalIdSavedRef for existing conversations to prevent
  session/new from overwriting the persisted external_id
- Only update conversation status on disconnect when user has sent a
  message, avoiding spurious "completed" flips on pure history views

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 22:32:56 +08:00
xintaofei
3dfa913584 fix(settings): fix Gemini CLI model edit resetting provider fields and not persisting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 21:26:55 +08:00
xintaofei
21bbb5492c # Release version 0.7.0
- feat(experts): add built-in expert skills with per-agent activation.
- feat(chat): add experts menu to message input toolbar.
- fix(chat): harden experts menu selection and viewport fit.
- fix(ui): raise input selector collapse breakpoint for responsive layout.
- i18n(settings): translate Agents nav label in zh-CN and zh-TW.
-----------------------------
# 发布版本 0.7.0

- 新增(专家):内置专家技能库,支持按代理分别启用;
- 新增(聊天):消息输入工具栏新增专家菜单入口;
- 修复(聊天):加强专家菜单的选择逻辑与视口适配;
- 修复(UI):提高输入选择器折叠的断点阈值,优化响应式布局;
- 国际化(设置):补全简繁中文的 Agents 导航菜单翻译。
2026-04-10 18:33:50 +08:00
xintaofei
85218b016c docs(readme): add acknowledgments section for LinuxDO and ACP 2026-04-10 18:29:03 +08:00
xintaofei
2d42fa97b3 fix(chat): raise input selector collapse breakpoint to 480px
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 17:10:14 +08:00
xintaofei
0b6a013fd9 fix(chat): harden experts menu selection and viewport fit
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 16:56:37 +08:00
xintaofei
b63fe3f800 feat(chat): add experts menu to message input toolbar
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 16:38:03 +08:00
xintaofei
b876022377 i18n(settings): translate Agents nav label in zh-CN and zh-TW
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 15:22:46 +08:00
xintaofei
5b613daded feat(experts): add built-in expert skills with per-agent activation
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 15:17:51 +08:00
xintaofei
64d4e9c903 fix(ui): increase container query breakpoint for input selector collapse
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 22:52:08 +08:00
xintaofei
3290951b52 Merge remote-tracking branch 'origin/main' 2026-04-09 22:41:36 +08:00
xintaofei
6c48c7bd01 docs: update readme 2026-04-09 22:41:16 +08:00
xintaofei
4277f88ca8 # Release version 0.6.12
- fix(ui): add flex container to sidebar wrapper to enable conversation list scrolling.
- fix(ui): add max-height limit to commit message textarea.
- fix(ui): unify scrollbar styles across scrollable containers.
---
# 发布版本 0.6.12

- 修复(UI):为侧边栏添加 flex 容器,修复会话列表无法滚动的问题;
- 修复(UI):为提交消息文本框添加最大高度限制;
- 修复(UI):统一各滚动容器的滚动条样式;
2026-04-09 19:00:44 +08:00
xintaofei
8ef9c8a9e0 chore: update pnpm-lock.yaml
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 18:51:19 +08:00
xintaofei
150b927610 fix(ui): unify scrollbar styles across scrollable containers
Add .scrollbar-thin and .scrollbar-thin-edge utility classes in
globals.css and apply them to sidebar, file tree, git changes,
git log, session files, diff preview, and message thread panels.
Replace scattered inline webkit-scrollbar overrides with the
shared classes for consistent appearance and gutter behavior.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 18:50:14 +08:00
xintaofei
56cd207801 fix(ui): add max-height limit to commit message textarea
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 18:48:27 +08:00
xintaofei
98691c1d9e fix(ui): add flex container to sidebar wrapper to enable conversation list scrolling
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 14:02:17 +08:00
xintaofei
a02af51f74 # Release version 0.6.11
- 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.11

- 修复:覆盖 Python monarch 分词器,修复三引号字符串高亮显示问题;
- 修复:添加 KaTeX CSS 并规范化 LaTeX 数学公式分隔符,修复公式渲染;
- 维护:更新 ACP 代理 SDK(Claude Code、OpenCode)注册表版本。
2026-04-09 00:31:23 +08:00
xintaofei
2da2913679 fix(ui): add katex package to fix build failure on missing CSS import
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 00:30:19 +08:00
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