You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Session search only covers the ~100 loaded sessions, and the main-side search API is dead code:
Display path: the renderer loads getClaudeSessions(100) (src/switcher-ui.tsx:397) — the merged multi-account timeline sliced to the global top-100 by recency.
Search path: the search box filters that same loaded list client-side via filterSessionsLocally (src/switcher-ui.tsx:384-393), matching against projectName/project/firstUserMessage/lastUserMessage/customTitle/branch/PR/assistantResponse/terminalBadge.
Dead code: searchClaudeSessions (src/claude-session-utility.ts:186, pool = readClaudeSessions(500), result cap 50) is fully wired — IPC handler search-claude-sessions (src/main.ts:2329) + preload (src/preload.ts:81) — but no renderer code ever calls it.
Impact
With 414 unique sessions currently in history.jsonl (measured), ~314 sessions are unreachable: they are neither displayed nor searchable, no matter what keywords match them. This is a silent gap — the UI gives no hint that older sessions exist.
Notes
Widening the underlying pool is effectively free: readClaudeSessions caches the FULL unsliced session list (src/claude-session-utility.ts:178); the limits are applied per-call via slice.
Enrichment fields (branch/PR/AI response/custom title) only exist renderer-side for the loaded 100 — a full fix needs main-side search over all sessions (and all prompts, not just first/last), unioned with the client-side filter, with lazy enrichment for matches outside the loaded set.
Current behavior (verified 2026-07-12)
Session search only covers the ~100 loaded sessions, and the main-side search API is dead code:
getClaudeSessions(100)(src/switcher-ui.tsx:397) — the merged multi-account timeline sliced to the global top-100 by recency.filterSessionsLocally(src/switcher-ui.tsx:384-393), matching against projectName/project/firstUserMessage/lastUserMessage/customTitle/branch/PR/assistantResponse/terminalBadge.searchClaudeSessions(src/claude-session-utility.ts:186, pool =readClaudeSessions(500), result cap 50) is fully wired — IPC handlersearch-claude-sessions(src/main.ts:2329) + preload (src/preload.ts:81) — but no renderer code ever calls it.Impact
With 414 unique sessions currently in history.jsonl (measured), ~314 sessions are unreachable: they are neither displayed nor searchable, no matter what keywords match them. This is a silent gap — the UI gives no hint that older sessions exist.
Notes
readClaudeSessionscaches the FULL unsliced session list (src/claude-session-utility.ts:178); the limits are applied per-call viaslice.docs/session-finding-plan.md(§4.2) — implemented by PR feat(sessions): Batch 1 — full-prompt search, match snippets, junk fold, highlight fix #132 (the deadsearchClaudeSessionspath was rewritten into the real main-side full-prompt search).🤖 On behalf of @grimmerk — generated with Claude Code