Commit Graph

750 Commits

Author SHA1 Message Date
xintaofei
7f935bf649 fix(chat-input): raise toolbar collapse threshold to 34rem 2026-04-24 23:59:34 +08:00
xintaofei
675f97af94 fix(acp): prevent Windows terminal hangs from pipe orphans and .cmd shims 2026-04-24 23:54:11 +08:00
xintaofei
8405aa5dc8 chore(acp): bump claude-code to 0.31.0
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-24 23:32:16 +08:00
xintaofei
230539233a fix(sidebar): clarify empty state when completed conversations are hidden 2026-04-24 22:42:30 +08:00
xintaofei
6d1a87a1e5 chore(acp): bump codex to 0.12.0, opencode to 1.14.23, gemini to 0.39.1 2026-04-24 22:32:35 +08:00
xintaofei
9bb3f3b84c fix(acp): defer auto-connect until historical session id resolves
When reopening a historical conversation, the ACP auto-connect fired before
the detail fetch resolved external_id, so the backend fell back to
session/new and the agent lost prior context. Gate both the auto-connect
effect and the focus-triggered reconnect on the session id being ready.
2026-04-24 22:11:53 +08:00
xintaofei
8d5ec464d9 # Release version 0.10.2
- feat(settings): add quick messages management with drag-and-drop sorting and place nav below agents.
- feat(message-input): turn plus button into menu with attach files and quick messages entries.
- feat(codex-skills): surface built-in .system skills as read-only.
- feat(sidebar-conversation-list): show empty-state hint inside expanded folders with no visible conversations.
- fix(sidebar): restrict folder reorder drag to the folder header row.
- fix(message-input): persist draft across restarts by keying on conversation id.
- fix(acp): prevent memory blowup from streaming terminal tool output.
- fix(web-server): release port reliably on stop by awaiting graceful shutdown.
- fix(experts): recognize Windows junction links to central store.
- perf(workspace-state): compress delta history, cache gitignore lookups, and tighten debounce.

-----------------------------
# 发布版本 0.10.2

- 新增(设置):新增快捷消息管理,支持拖拽排序,并将入口置于智能体下方;
- 新增(消息输入):将加号按钮改为菜单,集成附加文件与快捷消息入口;
- 新增(Codex 技能):将内置 .system 技能以只读方式展示;
- 新增(侧边栏会话列表):在展开的空文件夹中显示空态提示;
- 修复(侧边栏):将文件夹重排拖拽限制在文件夹标题行;
- 修复(消息输入):按会话 id 持久化草稿,重启后保留未发送内容;
- 修复(ACP):避免流式终端工具输出导致的内存膨胀;
- 修复(Web 服务器):停止时等待优雅关闭,确保端口可靠释放;
- 修复(专家):识别指向中央仓库的 Windows 联接点(junction link);
- 性能(工作区状态):压缩增量历史、缓存 gitignore 查询并收紧防抖。
2026-04-24 19:56:18 +08:00
xintaofei
8946575600 fix(sidebar): restrict folder reorder drag to folder header row 2026-04-24 16:57:33 +08:00
xintaofei
59f2fd3bbf Merge branch 'cv-main' 2026-04-24 16:02:30 +08:00
xintaofei
8385837640 perf(workspace-state): compress delta history, cache gitignore lookups, tighten debounce 2026-04-24 16:02:06 +08:00
xintaofei
6a0425239f fix(web-server): release port reliably on stop by awaiting graceful shutdown 2026-04-24 15:23:12 +08:00
xintaofei
b79f06f7ae fix(experts): recognize Windows junction links to central store
On Windows the expert enable-status check compared `fs::read_link` output
against the central path, which silently failed for junctions: the link
state fell back to Broken/LinkedElsewhere, so enabled experts kept
reappearing as disabled and disappeared from the message-input expert
list. Switch the link verification to canonicalize both sides (which
transparently follows junctions and symlinks) and add a case-insensitive
path comparison on Windows. Also prefer `junction::get_target` for the
displayed target path.
2026-04-24 14:59:14 +08:00
xintaofei
51598f3b12 Merge branch 'cv-main' 2026-04-24 14:29:44 +08:00
xintaofei
bcfaba10c7 fix(acp): prevent memory blowup from streaming terminal tool output
Large raw_output snapshots from tool_call_update notifications caused
O(N²) traffic through the event pipeline, multi-GB transient allocations
and WKWebView crashes. The fix turns cumulative snapshots into bounded
incremental deltas and removes redundant payload copies.

- Add ToolCallOutputCache keyed by tool_call_id with a 8KB tail
  fingerprint and total length. Detects cumulative extensions by
  matching the cached tail at the expected offset in the incoming
  snapshot, so it works even when the full output grows into the MB
  range. Emits suffix deltas with raw_output_append=true; falls back
  to a truncated replacement when content diverges.
- Cap any single emitted raw_output chunk at 64KB (MAX_SINGLE_EMIT_BYTES)
  with a UTF-8 char-boundary-safe tail and ANSI-sequence-safe trimming.
  Apply the same cap to emit_terminal_output_update.
- Bound the cache at 256 entries with FIFO eviction, and clear entries
  when the tool call reaches completed / failed / cancelled / error.
- Seed the cache via a dedicated seed() method on SessionUpdate::ToolCall
  so the initial event never emits an accidental append.
- Share emit payloads as Arc<serde_json::Value> across broadcast
  receivers and skip the Tauri-side clone: serialize once and hand the
  same Arc to both the webview emit and the WebSocket broadcaster.
- Add 14 unit tests covering boundary cases: identity, prefix extension
  past the cached tail, divergence, oversized deltas, multibyte UTF-8
  truncation, final-status cleanup, FIFO eviction, seed semantics, and
  ANSI-safe trimming.
2026-04-24 14:28:41 +08:00
xintaofei
0e09711e56 feat(codex-skills): surface built-in .system skills as read-only
Scan ~/.codex/skills/.system so Codex CLI's bundled skills (imagegen,
skill-creator, etc.) appear in the $ autocomplete and Skills settings.
Mark them read_only on the API; the save/delete handlers refuse writes
to that path, and the UI shows a system badge with a tooltip and
disables edit/delete/save for those entries.
2026-04-24 14:18:36 +08:00
xintaofei
e9c3076197 fix(message-input): persist draft across restarts by keying on conversation id 2026-04-24 12:32:35 +08:00
xintaofei
f8d7c8966a feat(settings): place quick messages nav below agents 2026-04-24 11:10:31 +08:00
xintaofei
7caf730369 feat(message-input): turn plus button into menu with attach files and quick messages 2026-04-24 11:07:56 +08:00
xintaofei
61778f152b feat(settings): add quick messages management with drag-and-drop sorting
Adds a new "Quick Messages" settings page below Experts for managing reusable title/content snippets, backed by SQLite via SeaORM and exposed through both Tauri commands and the Axum web router. The list supports drag-to-reorder using the same motion/react Reorder pattern as the agent list, with translations provided across all 10 supported locales.
2026-04-24 10:46:33 +08:00
xintaofei
fbe272de4f Merge branch 'cv-main' 2026-04-24 10:05:36 +08:00
xintaofei
089cc7c34e feat(sidebar-conversation-list): show empty-state hint inside expanded folders with no visible conversations 2026-04-24 10:05:20 +08:00
xintaofei
49aee458d2 feat(sidebar): default new folders to neutral foreground color 2026-04-24 09:50:49 +08:00
xintaofei
46764ee53c # Release version 0.10.1
- feat(sidebar): add per-folder color swatch with color picker and neutral conversation rail.
- feat(conversation-context-bar): unify selectors and attachments into a horizontal scrolling row.
- fix(conversation-context-bar): hide selectors divider when no attachments are present.
- fix(conversation-manage-dialog): sort conversations by created_at and display creation time.
- fix(icons): regenerate multi-resolution Windows ICO for crisp desktop icon.
- chore(acp-registry): bump opencode to 1.14.21 and gemini-cli to 0.39.0.

-----------------------------
# 发布版本 0.10.1

- 新增(侧边栏):为每个文件夹添加颜色色块与颜色选择器,会话轨道采用中性色;
- 新增(会话上下文栏):将选择器与附件统一为横向滚动行;
- 修复(会话上下文栏):无附件时隐藏选择器分隔线;
- 修复(会话管理对话框):按 created_at 排序会话并显示创建时间;
- 修复(图标):重新生成多分辨率 Windows ICO 以获得清晰的桌面图标;
- 依赖(ACP 注册表):升级 opencode 至 1.14.21、gemini-cli 至 0.39.0。
2026-04-24 00:38:33 +08:00
xintaofei
211d589160 fix(conversation-context-bar): hide selectors divider when no attachments are present 2026-04-23 23:38:40 +08:00
xintaofei
1148319eba feat(conversation-context-bar): unify selectors and attachments into a horizontal scrolling row
- Pin folder/branch selectors to the left with a subtle divider so they stay visible while scrolling
- Redirect vertical wheel input to horizontal scroll within the bar
- Auto-scroll to the end when new attachments are appended
2026-04-23 23:36:24 +08:00
xintaofei
e80c9e69a9 chore(acp-registry): bump opencode to 1.14.21 and gemini-cli to 0.39.0 2026-04-23 23:12:52 +08:00
xintaofei
1eeb5041a8 feat(sidebar): add per-folder color swatch with picker and neutral conversation rail
- Add `color` column to folder table with migration backfill and hash-based assignment on folder creation
- Expose `update_folder_color` via Tauri command and `/update_folder_color` HTTP route
- Render a color swatch before each folder name in the sidebar header; offer a 10-color palette (9 hues plus a theme-aware foreground sentinel) through the folder context menu
- Show the folder header "new conversation" button only on hover
- Drop the expanded-state tint on folder name and count badge; use a fixed neutral rail color for conversation items
2026-04-23 23:02:58 +08:00
xintaofei
b7eeeb0be4 fix(conversation-manage-dialog): sort conversations by created_at and display creation time 2026-04-23 21:17:27 +08:00
xintaofei
1d3dd0dcd4 fix(icons): regenerate multi-resolution Windows ICO for crisp desktop icon 2026-04-23 21:04:11 +08:00
xintaofei
72e5694632 docs(images): update main light and dark screenshots 2026-04-23 16:28:50 +08:00
xintaofei
7e243412e1 # Release version 0.10.0
- feat(workspace): migrate from per-folder windows to a unified single-window workspace.
- feat(sidebar): overhaul sidebar with draggable folder reorder, per-folder new/import actions, conversation sort toggle, completed filter, and bulk-action management dialog.
- feat(acp-agent-settings): expand OpenCode provider.npm options with additional AI SDK providers.
- fix(transport): replace Tauri listen() to avoid unlisten race crashing on WKWebView.

-----------------------------
# 发布版本 0.10.0

- 新增(工作区):从每文件夹独立窗口迁移到统一的单窗口工作区;
- 新增(侧边栏):全面重构,支持拖拽排序文件夹组、按文件夹新建/导入会话、会话排序切换、已完成筛选,以及带批量操作的会话管理对话框;
- 新增(ACP 代理设置):扩展 OpenCode 的 provider.npm 选项,补全更多 AI SDK 提供商;
- 修复(传输层):替换 Tauri listen() 调用,避免 WKWebView 下 unlisten 竞态导致崩溃。
2026-04-23 16:05:46 +08:00
xintaofei
022172a9ea chore(lint): clean up frontend and Rust lint issues 2026-04-23 15:56:41 +08:00
xintaofei
1dd40d0baf feat(conversation-context-bar): show descriptive tooltips for folder and branch selectors 2026-04-23 15:21:18 +08:00
xintaofei
ba7f3c598b fix(branch-dropdown): show "No branch" label when folder is not a git repository 2026-04-23 15:12:46 +08:00
xintaofei
ec115e5a12 feat(acp-agent-settings): expand OpenCode provider.npm options with additional AI SDK providers 2026-04-23 15:00:59 +08:00
xintaofei
7aec93e922 feat(search-dialog): show active folder in search popup header 2026-04-23 14:11:54 +08:00
xintaofei
c7cd94a01b Merge branch 'cv-main' 2026-04-23 14:03:01 +08:00
xintaofei
50c5b12d53 refactor(branch-dropdown): drop worktree parent-branch merge shortcut
Remove the parent-branch button shown beside the branch selector along
with its supporting API, command, service, model, and i18n strings.
Add migration m20260423 to drop the now-unused folder.parent_branch
column.
2026-04-23 14:02:46 +08:00
xintaofei
c67e145837 feat(sidebar): add workspace actions to conversation list context menu 2026-04-23 13:49:45 +08:00
xintaofei
377ae6d8e6 fix(command-dropdown): preserve running command status across folder switches 2026-04-23 11:45:25 +08:00
xintaofei
e489925567 Merge branch 'cv-main' 2026-04-23 11:37:18 +08:00
xintaofei
bcd457c823 refactor(conversation-status): share sidebar status glyphs across menus, search, and manage dialog 2026-04-23 11:35:38 +08:00
xintaofei
5f4c26c480 fix(message-input): scale selector collapse breakpoint with appearance zoom 2026-04-23 11:30:49 +08:00
xintaofei
f9dfc64009 Merge branch 'cv-main' 2026-04-23 11:26:02 +08:00
xintaofei
cd15813f34 refactor(tooltip): use native title for folder picker and sidebar more-options 2026-04-23 11:25:16 +08:00
xintaofei
1323d3e883 fix(mode-tabs): use rem heights so workspace mode tabs scale with zoom 2026-04-23 11:24:24 +08:00
xintaofei
d7113f6ed0 fix(resizable): clip panel group overflow to block programmatic scroll shift 2026-04-23 11:15:05 +08:00
xintaofei
02434b6e1d refactor(sidebar): align folder and conversation rail on a shared axis 2026-04-23 10:33:42 +08:00
xintaofei
6665b1902b fix(sidebar): prevent sibling folder overlap and nudge conversation rail 2026-04-23 09:59:46 +08:00
xintaofei
35265c766a fix(shadcn-launcher): point preview iframe to radix/preview-02 2026-04-23 01:02:37 +08:00