File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -15,18 +15,32 @@ Show active session status (working / idle / needs-attention) via colored dots i
1515
1616## Architecture
1717
18- ```
19- Claude Code session
20- → hook fires (Stop/PermissionRequest/UserPromptSubmit/etc.)
21- → runs ~/.claude/codev-status-hook.sh
22- → writes ~/.claude/codev-status/{sessionId}.json
18+ ### Normal flow (CodeV already running)
2319
24- CodeV (main process)
25- ← fs.watch(~/.claude/codev-status/) detects file change
26- ← reads status file
20+ ``` text
21+ Claude Code session starts/receives prompt/stops
22+ → hook event fires (Stop/UserPromptSubmit/PermissionRequest/etc.)
23+ → runs ~/.claude/codev-status-hook.sh
24+ → writes ~/.claude/codev-status/{sessionId}.json (atomic: tmp + mv)
25+ → CodeV fs.watch detects file change
2726 → IPC to renderer → dot color update
2827```
2928
29+ ### CodeV late-start flow (sessions already running)
30+
31+ ``` text
32+ CodeV starts
33+ → get-session-statuses IPC handler:
34+ 1. readAllStatuses() — read existing status files
35+ 2. detectActiveSessions() — find active sessions (PID files)
36+ 3. Compare: which active sessions have no status file?
37+ 4. scanInitialStatuses() — read JSONL tail (100 lines) for those
38+ → find last assistant entry → determine idle / needs-attention
39+ 5. writeStatusFile() — persist scan results as status files
40+ (so fs.watch replace won't lose them)
41+ 6. cleanupStaleStatuses() — delete files for sessions no longer active
42+ ```
43+
3044### On CodeV startup (catch-up for sessions started before CodeV)
3145
3246```
You can’t perform that action at this time.
0 commit comments