Commit Graph

757 Commits

Author SHA1 Message Date
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
xintaofei
5ea812405f fix(theme): use neutral sidebar primary for grayscale dark themes 2026-04-23 00:55:18 +08:00
xintaofei
f1ce7179ea feat(sidebar): reorder folder groups by drag and persist sort order 2026-04-23 00:42:58 +08:00
xintaofei
2dbdaa9c74 feat(branch-dropdown): add switch-to-branch entry for local and remote branches 2026-04-22 23:29:36 +08:00
xintaofei
3030bb7981 feat(conversation-detail): auto-scroll active tile into view and theme its highlight 2026-04-22 23:18:34 +08:00
xintaofei
7a03cfff36 fix(branch-picker): strip remote prefix when checking out remote branches 2026-04-22 22:56:36 +08:00
xintaofei
5ac9cee2ff feat(sidebar): add conversation sort mode toggle with created-time default 2026-04-22 22:34:23 +08:00
xintaofei
8ef29680d2 refactor(sidebar): shrink conversation status badges to match folder count pill 2026-04-22 22:10:52 +08:00
xintaofei
b74f698c0d fix(scroll-area): raise overlay scrollbar z-index to prevent occlusion 2026-04-22 22:05:53 +08:00
xintaofei
aea652af76 refactor(sidebar): tighten list padding and round conversation and folder rows into pills 2026-04-22 21:59:55 +08:00
xintaofei
8095a75b5f fix(conversation-detail-panel): keep tab subtree mounted across tile-mode layout switch 2026-04-22 21:25:09 +08:00
xintaofei
c11a57921d fix(conversation-context-bar): exclude removed folders from folder picker 2026-04-22 19:36:33 +08:00
xintaofei
4440249678 refactor(conversation-context-bar): slim folder and branch pickers to selection only
- Match popover corner styling of folder picker with branch picker
- Drop 'open folder from disk' entry from folder picker
- Drop 'new branch' entry and dialog from branch picker
2026-04-22 19:30:58 +08:00
xintaofei
d26c0b91c9 fix(sidebar): hide folder groups after removing from workspace 2026-04-22 19:02:14 +08:00
xintaofei
1904013dac refactor(sidebar): emphasize active-tab conversations via rail color and status icon
- Highlight the vertical rail on conversations open in tabs with a darker primary tint and bleed 1px at both ends to stay continuous across cards
- Add emphasized state to SidebarStatusIcon mirroring the rail, deepening color when the conversation is open in a tab
- Redesign done icon as outlined circle + check, unify all status icons to sidebar-primary with consistent 0.75rem size and sidebar-tinted backdrop so they mask the rail
2026-04-22 18:39:17 +08:00
xintaofei
1d40308f52 refactor(sidebar): simplify folder header styling and fix arrow pixel alignment
- Drop the expanded-state background and border on folder headers; keep the unified hover background
- Swap the arrow to a ChevronRight/ChevronDown toggle and remove the rotation animation to avoid subpixel rendering drift
- Size the arrow icon at 11px so its vertical center lands on an integer pixel
- Round the sticky overlay's top offset so it stays pixel-aligned with the virtual list items
2026-04-22 18:39:17 +08:00
xintaofei
10922dd71a fix(acp): reconnect agent when folder selector switches working directory 2026-04-22 12:38:31 +08:00
xintaofei
d3d3a66263 fix(tabs): show "new conversation" title for draft tabs on hydration 2026-04-22 12:24:31 +08:00
xintaofei
5dd1deb986 fix(transport): replace Tauri listen() to avoid unlisten race crashing on WKWebView
Call plugin:event|listen/unlisten directly and guard the client-side listener
registry cleanup, so unsubscribe always reaches the backend even when the
registration eval has not yet populated window.__TAURI_EVENT_LISTENERS__.
Prevents the intermittent `listeners[eventId].handlerId` TypeError and the
resulting leaked listener.
2026-04-22 11:25:38 +08:00
xintaofei
3f3a325848 fix(sidebar): compute sticky folder offsets from uniform item height to avoid NaN scroll height 2026-04-22 11:08:17 +08:00
xintaofei
78caf4d827 refactor(sidebar): always render folder groups regardless of conversation count 2026-04-22 10:53:22 +08:00
xintaofei
f0b3ec20a8 fix(folders): add open_folder Tauri command for path-based opens 2026-04-22 10:53:17 +08:00
xintaofei
c691fb0c07 feat(workspace): add no-folder empty states and gate folder-only actions
- Sidebar: replace the "no conversations" placeholder with Open Folder, Clone Repository, and Project Boot buttons when the workspace has no open folders.
- Title bar: disable the terminal and auxiliary-panel toggle buttons while no folder is active.
- Aux panel: show a shared localized "no folder open" prompt in the file tree, git changes, and git log tabs when no folder is active.
- Add auxPanel.noFolderTitle / noFolderHint translations across all ten supported locales.
2026-04-22 10:36:27 +08:00
xintaofei
14fb231dcc feat(sidebar): add conversation management dialog with filtering and bulk actions 2026-04-22 09:31:38 +08:00
xintaofei
ae88b2256f refactor(sidebar): scope folder-header menu to per-folder new/import, drop import from card and blank-area menus 2026-04-22 08:16:39 +08:00
xintaofei
fc174d8692 refactor(conversation): add horizontal scrollbar and min width to tiled tabs 2026-04-22 01:20:21 +08:00
xintaofei
72b8817bb2 refactor(sidebar): highlight expanded folder and add per-folder new-conversation button
- Replace the branch badge with a compact count badge; recolor the
  folder name and badge to sidebar-primary on a tinted row background
  when expanded
- Lighten the selected conversation item background so the expanded
  folder row stays the strongest signal
- Add a "+" button on each folder header that reuses a single new-
  conversation tab across folders, disconnecting the old ACP session
  so the connection lifecycle reconnects against the target folder's
  working directory
2026-04-22 01:01:18 +08:00
xintaofei
f3bdf94723 feat(title-bar): add folder-actions menu and branch dropdown with git operations 2026-04-22 00:23:27 +08:00
xintaofei
08fb508736 refactor(branch-picker): fix popover corner radius, remove local branch delete, move new-branch to top 2026-04-21 23:14:57 +08:00
xintaofei
67c837901d refactor(workspace): remove welcome page and render conversation panel directly 2026-04-21 22:52:07 +08:00
xintaofei
eec47b3b12 refactor(title-bar): move sidebar toggle to left and swap terminal/aux-panel order 2026-04-21 22:29:51 +08:00
xintaofei
1bf2c2afce refactor(tabs): drop sidebar count and terminal-tab folder badge, show folder in tab tooltip 2026-04-21 22:23:23 +08:00
xintaofei
dd2b542df9 refactor(tabs): remove close-folder-tabs and reveal-in-sidebar menu items 2026-04-21 22:14:19 +08:00
xintaofei
b77842ee66 fix(conversation): derive ACP working dir from tab folder, not active folder 2026-04-21 22:03:57 +08:00
xintaofei
753e312c13 fix(workspace): resolve folder lookups against all folders for branch and file tree 2026-04-21 21:44:33 +08:00
xintaofei
256ebb7368 fix(sidebar): guard virtualizer itemSize against non-finite zoom level 2026-04-21 21:28:40 +08:00
xintaofei
dc75020e1c refactor(chat-input): embed conversation context bar inside input container
Folder/branch pickers now render at the top of the input's rounded box
instead of a separate strip above it. Restyled as xs outlined buttons
matching the config selectors, always rendering the folder picker
chevron (dimmed when not editable). Removed the right-side commit/push
git action buttons and their unused imports. Scoped the bar to its
owning tab via a tabId prop so tile mode shows each tab's own folder
and disabled state independent of which tab is globally active.
2026-04-21 19:26:04 +08:00
xintaofei
e567181b58 fix(sidebar): center guide line under folder chevron and tighten list paddings
- Align conversation guide line and status icon to the folder chevron center (left: 0.875rem)
- Use fixed 1px guide line with darker shade (sidebar-primary/15) for better visibility
- Add bottom border to sidebar title and a top gap above the folder list
- Tighten list horizontal padding to px-2 with matching pt-2 for consistency
- Fill the done status icon frame directly to avoid sub-pixel off-centering
2026-04-21 18:44:20 +08:00
xintaofei
7a6e19097e fix(sidebar): align title/folder/item start position and stabilize status icon rendering 2026-04-21 17:47:35 +08:00
xintaofei
f0d530e1cb refactor(sidebar): streamline conversation list with completed filter and expand toggle
Replace flat/grouped view toggle with a show-completed filter dropdown,
add expand/collapse-all control, extract status icon component, and
simplify the sidebar header.
2026-04-21 17:07:40 +08:00
xintaofei
58b48e2bfe Merge branch 'main' into one-folder 2026-04-21 09:27:55 +08:00
xintaofei
a2333e6bb4 # Release version 0.9.5
- feat(message-input): add search box to slash-command popups.
- fix(file-tree): keep aux-panel tree in sync with filesystem changes.
- fix(file-tree): invalidate both cached target and ancestor, skip collapsed refetches.
- chore(acp): bump claude-agent-acp to 0.30.0 and opencode to 1.14.19.

-----------------------------
# 发布版本 0.9.5

- 新增(消息输入):在斜杠命令弹窗中增加搜索框,方便快速定位命令;
- 修复(文件树):辅助面板的文件树与文件系统变更保持同步;
- 修复(文件树):同时失效缓存目标及其祖先节点,跳过已折叠节点的重复拉取;
- 杂项(ACP):升级 claude-agent-acp 至 0.30.0、opencode 至 1.14.19。
2026-04-21 00:34:30 +08:00
xintaofei
98792a696c feat(message-input): add search box to slash-command popups
Both the inline autocomplete (triggered by `/` in the textarea) and the
dropdown popup (triggered by the slash-command button) now show a search
field at the top. Matching uses substring on name and description, and
ranks name matches above description/id-only matches.
2026-04-21 00:26:00 +08:00
xintaofei
692b700c0d fix(file-tree): invalidate both cached target and ancestor, skip collapsed refetches
When a deep directory was renamed or deleted externally and both the
directory itself and a parent directory were cached, only the self entry
was cleared — leaving the parent's children list holding a ghost reference
to the old child. Walk up to the nearest cached ancestor in addition to
the direct hit so both stale entries are dropped together.

Also gate the follow-up getFileTree refetch on the directory still being
expanded. Collapsed branches only need their cache cleared; they will
re-hydrate naturally on the next expansion, which avoids unnecessary IPC
traffic during FS event bursts.
2026-04-20 23:20:08 +08:00