-
Notifications
You must be signed in to change notification settings - Fork 0
Feature / TODO list — session detection, status, detail view, and more #66
Copy link
Copy link
Open
Description
Feature / TODO List
Collected from recent sessions. Ordered by suggested priority.
High Priority
1. Rewrite detection with ~/.claude/sessions/ (#65) ✅ Done (PR #67)
~/.claude/sessions/ (#65)- Replace
ps aux+ regex + lsof + cross-reference with reading~/.claude/sessions/<PID>.json - Direct PID → sessionId mapping, ~5ms vs ~200-450ms
- Solves "unsolvable" bare
claude+ no/renamecase (for iTerm2/cmux with TTY) - Enables VS Code session detection (
entrypoint: "claude-vscode") namefield gives-nsession names without parsing process args- Handles
/clearcorrectly (updates session ID — see c9watch PR #73) - Fallback to current approach if
sessions/doesn't exist (old Claude Code versions) - Reference: agent-sessions, claude-control, claude-sessions
2. Active session status: idle / needs-attention (#63 related)
- Show different colored dots on first screen (not just purple = active)
- Purple: active + idle (ready)
- Orange/amber: needs attention (tool permission or user question)
- Working indicator: currently processing
- Approach A — Hook-based (preferred): inject Claude Code hook config → on
Stopevent, write to SQLite or send HTTP to CodeV (port 55688). Near-zero CPU when idle. - Approach B — Polling JSONL: read last N lines of session JSONL periodically (c9watch approach, 5-9% CPU at 3.75s interval)
- Reference: c9watch PR #66 — NeedsPermission → NeedsAttention,
AskUserQuestiondetection, question mark heuristic with 20s grace period - Reference: c9watch PR #14 — CPU optimization from 15% → 5-9%
3. Detail view (Space key preview)
- Press
Spaceon a session item → full detail view (like macOS Finder Quick Look) Escto 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
- 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)
- Currently only active sessions show blue assistant response text
- Extend to all sessions via async
tail -n 200+ grep on JSONL - 100 sessions parallel: ~400ms (SWR pattern, acceptable)
- Future optimization: use Node.js
fs.readwith seek instead of spawningtailprocesses, or Rust native module for large-scale
5. VS Code Claude Code session support
- Detection: via
~/.claude/sessions/withentrypoint: "claude-vscode"(comes free with feat: add UI part of delete button #1) - Display: show
[VSCODE]badge, useai-titlefrom session JSONL as display name - Switch: activate VS Code window only (cannot focus specific Claude tab — VS Code limitation, no URI handler registered)
- Launch:
code --gotooropen -a "Visual Studio Code" - Limitation: no
/renamesupport (#33165), not inhistory.jsonl(#24579, #18619)
6. Quick launch via search bar
- Type
!ghost ~/git/projectin CodeV search → open new session in Ghostty at that path - Shortcuts:
!ghost,!iterm,!cmux,!code(VS Code),!tmux - Path completion (autocomplete from working directory)
- Support multiple Claude accounts/endpoints (different
CLAUDE_CONFIG_DIRenv vars)
7. In-app update check ✅ Done (PR #73 + PR #74)
update-electron-app+update.electronjs.org(Squirrel.Mac) — no need forelectron-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
onMouseEnterbriefly 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-jsonenables 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
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels