Skip to content

Feature / TODO list — remaining: detail view, AI Assistant cleanup, remote control #66

@grimmerk

Description

@grimmerk

Feature / TODO List

Collected from recent sessions. Ordered by suggested priority.

High Priority

1. Rewrite detection with ~/.claude/sessions/ (#65) ✅ Done (PR #67)

2. Active session status: idle / needs-attention (#63 related) ✅ Done (PR #92)

3. Detail view (Space key preview)

  • Press Space on a session item → full detail view (like macOS Finder Quick Look)
  • Esc to return to list
  • Content: full first/last prompt, session ID (click to copy resume command), terminal selector, entrypoint badge
  • Platform for future features: in-session search, session history, terminal choice, input capability, open in IDE button
  • Reference: c9watch history → click item → shows session ID at top, click to copy

Medium Priority

4. Show final assistant message for all sessions (not just active) ✅ Done (PR #98)

  • tail -n 100 + grep per session, 100 sessions via Promise.all = ~150ms
  • SWR pattern: list shows first, blue text appears async
  • Benchmark: tail -n 100 has same hit rate as -n 200 (77/100), 18% faster

5. VS Code Claude Code session support ✅ Done (PR #103)

  • Detection: via ~/.claude/sessions/ with entrypoint: "claude-vscode" (comes free with feat: rewrite detection with sessions/ PID files + cross-ref fallback #67)
  • Display: show [VSCODE] badge, use ai-title from session JSONL as display name
  • Switch: activate VS Code window only (cannot focus specific Claude tab — VS Code limitation, no URI handler registered) → URI handler vscode://anthropic.claude-code/open?session=<UUID> (v2.1.72+) enables precise session tab switching
  • Launch: code --goto or open -a "Visual Studio Code"
  • Limitation: no /rename support (#33165), not in history.jsonl (#24579, #18619) — workaround via JSONL scan + hooks index

6. Quick launch via search bar → Replaced by embedded Terminal tab (PR #84)

  • Original plan: !ghost ~/git/project in search bar to launch sessions
  • Alternative implemented: built-in Terminal tab (xterm.js + node-pty) covers all use cases — cd, git, code, open, claude commands with full shell autocomplete and output
  • Search bar command mode (> prefix) may be added later as a companion feature

7. In-app update check ✅ Done (PR #73 + PR #74)

  • update-electron-app + update.electronjs.org (Squirrel.Mac) — no need for electron-builder
  • PR feat: in-app auto-update via update-electron-app #73: auto-update infra (notifyUser: true, CI signed zip)
  • PR feat: custom update UI in Settings popup #74: custom update UI in Settings popup (notifyUser: false)
    • "Check for Update" manual button + auto check every 1 hour in background
    • States: Checking → Downloading → Install & Restart / Latest / Retry
    • 30s timeout for dev mode / network issues

8. UX improvements ✅ Done (PR #72)

  • 8a. Mouse hover on background return: when CodeV returns from background with mouse in middle of screen, selected item jumps to mouse position → fix by ignoring onMouseEnter briefly after window focus
  • 8b. Assistant message color: blue (#64B5F6) is slightly too prominent → tone down to a subtler shade
  • 8c. Settings in switcher: copy some menu bar settings (IDE Preference, etc.) to the Settings panel in the switcher's top-right corner

9. Custom keyboard shortcuts ✅ Done (PR #72)

  • Let users rebind global shortcuts (⌃+⌘+R, ⌃+⌘+E, ⌃+⌘+C)
  • Conflict detection:
Scope Can detect? How
macOS system shortcuts Partially Read ~/Library/Preferences/com.apple.symbolichotkeys.plist
CodeV's own shortcuts Fully Internal map
Other apps' global shortcuts No reliable way No unified API; apps use CGEventTap/MASShortcut independently
  • Practical approach: use Electron's globalShortcut.register() — if registration fails, the shortcut is occupied → show "already in use by another app"
  • Effort: small to medium

10. Remote control (mobile monitoring)

  • Let users monitor/control sessions from phone
  • Final assistant message + input capability
  • Claude Code's --input-format stream-json / --output-format stream-json enables programmatic I/O
  • Requires: relay server + auth + mobile UI
  • Colleague's request: "don't need full chat history, final message is enough, focus on remote control"
  • Effort: large

Lower Priority

11. AI Assistant cleanup / optimization

  • Insight Chat + Smart Chat features are rarely used
  • Three directions:
Option Description Effort Risk
A. Remove entirely Delete Insight Chat + Smart Chat code + UI + API key settings Small Sunk cost; some users may use occasionally
B. Accessibility API (like Bob Translate) Use macOS Accessibility API to read selected text directly (no ⌘+C needed), popup on shortcut Large Needs Accessibility permission; MAS review risk (Apple strict on Accessibility API)
C. Simplify (recommended) Remove Insight Chat prompt settings; keep Smart Chat as quick Claude chat; ⌃+⌘+E reads clipboard directly Small Minimal
  • Recommendation: Option C short-term. Long-term, Claude Code's VS Code extension chat may make CodeV's AI Assistant redundant → remove entirely.
  • If doing Option B: need Swift native module for AXUIElementCopyAttributeValue, not feasible for MAS version.

🤖 On behalf of @grimmerk — generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions