diff --git a/src/renderer/src/components/activity/activity-thread-list-toolbar.tsx b/src/renderer/src/components/activity/activity-thread-list-toolbar.tsx index c39d14c7de5..7ad28b4c72e 100644 --- a/src/renderer/src/components/activity/activity-thread-list-toolbar.tsx +++ b/src/renderer/src/components/activity/activity-thread-list-toolbar.tsx @@ -74,11 +74,11 @@ export function ActivityThreadListToolbar({ value={query} onChange={(event) => onQueryChange(event.target.value)} placeholder={translate( - 'auto.components.activity.ActivityPrototypePage.795cbf26e2', - 'Filter...' + 'auto.components.activity.ActivityPrototypePage.searchAgent', + 'Search for agents...' )} className={cn( - 'h-7 w-full pl-6 text-[11px] shadow-none focus-visible:ring-0', + 'h-7 w-full border border-border/80 bg-background pl-6 text-xs shadow-none placeholder:text-xs focus-visible:border-ring/70 focus-visible:ring-0 dark:border-white/15 dark:bg-white/[0.04]', query ? 'pr-6' : '' )} /> @@ -109,7 +109,7 @@ export function ActivityThreadListToolbar({ > @@ -212,7 +212,7 @@ export function ActivityThreadListToolbar({ type="button" variant="ghost" size="sm" - className="h-7 gap-1 px-2 text-[11px] text-muted-foreground hover:text-foreground" + className="h-7 gap-1 px-2 text-xs text-muted-foreground hover:text-foreground" onClick={onClearCompleted} disabled={!hasCompletedThreads} > diff --git a/src/renderer/src/components/dashboard-popout/AgentMapWorkspaceContextMenu.test.tsx b/src/renderer/src/components/dashboard-popout/AgentMapWorkspaceContextMenu.test.tsx index bc4958408a2..a03329e1a91 100644 --- a/src/renderer/src/components/dashboard-popout/AgentMapWorkspaceContextMenu.test.tsx +++ b/src/renderer/src/components/dashboard-popout/AgentMapWorkspaceContextMenu.test.tsx @@ -300,7 +300,7 @@ describe('Agent Map workspace context menu', () => { fireEvent.click(setParent) // Candidate rows are virtualized and measure 0 in happy-dom; the mounted // search input is the picker's lifecycle signal. - expect(await screen.findByPlaceholderText('Search worktrees...')).toBeInTheDocument() + expect(await screen.findByPlaceholderText('Search for worktrees...')).toBeInTheDocument() }) it('opens the existing worktree composer from a project ring', async () => { diff --git a/src/renderer/src/components/new-workspace/ComposerParentWorktreePicker.tsx b/src/renderer/src/components/new-workspace/ComposerParentWorktreePicker.tsx index 41c22978f14..4e63832595d 100644 --- a/src/renderer/src/components/new-workspace/ComposerParentWorktreePicker.tsx +++ b/src/renderer/src/components/new-workspace/ComposerParentWorktreePicker.tsx @@ -358,7 +358,7 @@ function ParentWorktreeCandidateList({ wrapperClassName="shrink-0" placeholder={translate( 'auto.components.ComposerParentWorktreePicker.searchPlaceholder', - 'Search workspaces...' + 'Search for workspaces...' )} /> diff --git a/src/renderer/src/components/sidebar/SidebarAgentsList.test.tsx b/src/renderer/src/components/sidebar/SidebarAgentsList.test.tsx index 41b9c122fa8..f38dadf1254 100644 --- a/src/renderer/src/components/sidebar/SidebarAgentsList.test.tsx +++ b/src/renderer/src/components/sidebar/SidebarAgentsList.test.tsx @@ -42,7 +42,9 @@ it('preserves workspace focus on mount and focuses search only when explicitly e ) - expect(view.getByRole('textbox', { name: 'Search' })).toBeTruthy() + const searchInput = view.getByRole('textbox', { name: 'Search' }) + expect(searchInput).toBeTruthy() + expect(searchInput.getAttribute('placeholder')).toBe('Search for agents...') expect(document.activeElement).toBe(workspaceInput) fireEvent.keyDown(view.getByRole('textbox', { name: 'Search' }), { key: 'Escape' }) diff --git a/src/renderer/src/components/sidebar/SidebarAgentsList.tsx b/src/renderer/src/components/sidebar/SidebarAgentsList.tsx index cd782457d64..9d2b1171c77 100644 --- a/src/renderer/src/components/sidebar/SidebarAgentsList.tsx +++ b/src/renderer/src/components/sidebar/SidebarAgentsList.tsx @@ -124,10 +124,10 @@ export default function SidebarAgentsList({ } }} placeholder={translate( - 'auto.components.activity.ActivityPrototypePage.795cbf26e2', - 'Filter...' + 'auto.components.activity.ActivityPrototypePage.searchAgent', + 'Search for agents...' )} - className="h-7 w-full text-[11px] shadow-none focus-visible:ring-0" + className="h-7 w-full border border-border/80 bg-background text-[11px] shadow-none placeholder:text-[10px] focus-visible:border-ring/70 focus-visible:ring-0 dark:border-white/15 dark:bg-white/[0.04]" aria-label={translate( 'auto.components.activity.ActivityPrototypePage.search', 'Search' diff --git a/src/renderer/src/components/sidebar/WorkspaceKanbanSearchField.tsx b/src/renderer/src/components/sidebar/WorkspaceKanbanSearchField.tsx index d55b9d084f8..aee64e2ebb0 100644 --- a/src/renderer/src/components/sidebar/WorkspaceKanbanSearchField.tsx +++ b/src/renderer/src/components/sidebar/WorkspaceKanbanSearchField.tsx @@ -104,11 +104,11 @@ export default function WorkspaceKanbanSearchField({ value={query} aria-label={translate( 'auto.components.sidebar.WorkspaceKanbanSearchField.c0cd6bdf6c', - 'Search workspaces' + 'Search for workspaces...' )} placeholder={translate( 'auto.components.sidebar.WorkspaceKanbanSearchField.c0cd6bdf6c', - 'Search workspaces' + 'Search for workspaces...' )} aria-invalid={isTooLarge || undefined} className="h-7 border-worktree-sidebar-border bg-background pl-7 text-xs" diff --git a/src/renderer/src/components/sidebar/WorktreeParentPickerPopover.tsx b/src/renderer/src/components/sidebar/WorktreeParentPickerPopover.tsx index 8647dabbcdd..1fbd2ef9af8 100644 --- a/src/renderer/src/components/sidebar/WorktreeParentPickerPopover.tsx +++ b/src/renderer/src/components/sidebar/WorktreeParentPickerPopover.tsx @@ -357,7 +357,7 @@ export function WorktreeParentPickerPopover({ wrapperClassName="shrink-0" placeholder={translate( 'auto.components.sidebar.WorktreeParentPickerPopover.searchPlaceholder', - 'Search worktrees...' + 'Search for worktrees...' )} /> diff --git a/src/renderer/src/i18n/locales/en.json b/src/renderer/src/i18n/locales/en.json index fb1f37eab9b..ec1cd9986f0 100644 --- a/src/renderer/src/i18n/locales/en.json +++ b/src/renderer/src/i18n/locales/en.json @@ -6032,7 +6032,7 @@ "WorktreeParentPickerPopover": { "failedSetParent": "Failed to set parent worktree", "current": "Current", - "searchPlaceholder": "Search worktrees...", + "searchPlaceholder": "Search for worktrees...", "empty": "No matching eligible worktrees.", "setParentFor": "Set parent for" }, @@ -6167,7 +6167,7 @@ "WorkspaceKanbanSearchField": { "bdb753c78d": "No workspaces match", "4d96c209d6": "{{value0}} of {{value1}} workspaces match", - "c0cd6bdf6c": "Search workspaces", + "c0cd6bdf6c": "Search for workspaces...", "3b7ea51793": "Clear search", "7f1c2e94a5": "Search text is too long — the board is unfiltered", "9a4d0f6b21": "Too long" @@ -16253,6 +16253,7 @@ "clearCompleted": "Clear completed", "none": "None", "search": "Search", + "searchAgent": "Search for agents...", "showUnreadOnly": "Show unread only", "showChildAgents": "Show child agents", "activityOptions": "Activity options", @@ -16879,7 +16880,7 @@ "label": "Parent worktree", "noParent": "No parent", "description": "Nests this workspace under another in the sidebar. Does not change the base branch.", - "searchPlaceholder": "Search workspaces...", + "searchPlaceholder": "Search for workspaces...", "noMatches": "No matches." }, "browserPane": { diff --git a/src/renderer/src/i18n/locales/es.json b/src/renderer/src/i18n/locales/es.json index cc2f2140612..7ff5e81fe24 100644 --- a/src/renderer/src/i18n/locales/es.json +++ b/src/renderer/src/i18n/locales/es.json @@ -14190,6 +14190,7 @@ "clearCompleted": "Borrar completados", "none": "Ninguno", "search": "Buscar", + "searchAgent": "Buscar agentes...", "showUnreadOnly": "Mostrar solo no leídos", "showChildAgents": "Mostrar agentes secundarios", "activityOptions": "Opciones de actividad", diff --git a/src/renderer/src/i18n/locales/fr.json b/src/renderer/src/i18n/locales/fr.json index db35a124c7d..02e6c8eeac4 100644 --- a/src/renderer/src/i18n/locales/fr.json +++ b/src/renderer/src/i18n/locales/fr.json @@ -15458,6 +15458,7 @@ "4a3986b200": "Statut", "770d458144": "Grouper l'activité des agents par", "795cbf26e2": "Filtrer...", + "searchAgent": "Rechercher des agents...", "4616ea39fd": "Aller à l'espace de travail", "threadListOptionsFiltered": "Options de la liste des fils, filtres actifs", "showSearch": "Afficher la recherche", diff --git a/src/renderer/src/i18n/locales/ja.json b/src/renderer/src/i18n/locales/ja.json index f5a8c53a8c5..e092a289502 100644 --- a/src/renderer/src/i18n/locales/ja.json +++ b/src/renderer/src/i18n/locales/ja.json @@ -14190,6 +14190,7 @@ "clearCompleted": "完了済みをクリア", "none": "なし", "search": "検索", + "searchAgent": "エージェントを検索...", "showUnreadOnly": "未読のみ表示", "showChildAgents": "子 Agent を表示", "activityOptions": "アクティビティのオプション", diff --git a/src/renderer/src/i18n/locales/ko.json b/src/renderer/src/i18n/locales/ko.json index 9267742bb1c..cd28035639f 100644 --- a/src/renderer/src/i18n/locales/ko.json +++ b/src/renderer/src/i18n/locales/ko.json @@ -14268,6 +14268,7 @@ "clearCompleted": "완료된 항목 지우기", "none": "없음", "search": "검색", + "searchAgent": "에이전트 검색...", "showUnreadOnly": "읽지 않은 항목만 표시", "showChildAgents": "하위 에이전트 표시", "activityOptions": "활동 옵션", diff --git a/src/renderer/src/i18n/locales/zh.json b/src/renderer/src/i18n/locales/zh.json index 85bfdc384db..1724721a33e 100644 --- a/src/renderer/src/i18n/locales/zh.json +++ b/src/renderer/src/i18n/locales/zh.json @@ -14268,6 +14268,7 @@ "clearCompleted": "清除已完成", "none": "无", "search": "搜索", + "searchAgent": "搜索 Agent...", "showUnreadOnly": "仅显示未读", "showChildAgents": "显示子智能体", "activityOptions": "活动选项",