Timeline
- (Context) AI Detective scanned 6 tools but lacked summaries, models, and visual reporting
- (Action) Added summary and model fields to ArtifactRecord dataclass
- (Action) Updated 4 existing parsers (Gemini, Claude Code, OpenCode, Antigravity) with summary/model extraction
- (Action) Fixed Gemini parser key mismatch — sessions use type/content keys, not role/parts
- (Action) Created Continue IDE parser for sessions.json index and individual session files
- (Action) Created Aider parser scanning recent-activity directories for chat history markdown
- (Action) Created Presence scanner for 8 additional AI tool directories
- (Action) Wired 3 new parsers into scan pipeline and updated KNOWN_TOOLS
- (Action) Built self-contained HTML dashboard generator with dark glassmorphism design
- (Action) Implemented live search, tool filter pills, expandable session cards, activity timeline
- (Action) Added report subcommand to CLI for dashboard generation
- (Action) Created ctxkeeper:// protocol handler with Windows registry registration
- (Action) Implemented session resume, copy command, open directory, and refresh from dashboard
- (Action) Added bat file creator with spinner/success/error visual states in UI
- (Observation) Live scan detected 263 sessions across 10 tools in 7-day window
- (Observation) Summary extraction yielded 33/263 sessions; model identification 44/263
- (Observation) Presence scanner detected factory and cagent as active AI directories
- (Open Thread) Codex and Copilot sessions lack local conversation storage — summaries unavailable
- (Open Thread) Skill Bridge integration (ai-session-tracker skill) deferred to next session
Context
- AI Detective previously scanned 6 tools via file-system parsers producing flat Markdown reports
- 10 unscanned AI directories identified on disk including Continue, Aider, Grok, Jules, Factory
- No session summaries or model identification existed in the ArtifactRecord schema
- User requested human-first design with layered UI, search, and HTML output
Actions
- Extended ArtifactRecord in records.py with summary (str, nullable) and model (str, nullable) fields
- Updated to_dict serialization to include new fields
- Modified gemini.py to use correct Gemini CLI message format (type=user, content as list of text dicts)
- Modified claude_code.py to extract first human message as summary and model from assistant events
- Modified opencode.py to derive summary from title/slug fields and model from message metadata
- Modified antigravity.py to populate model from detected models list
- Created parsers/continue_.py parsing sessions.json index with workspace dirs and individual session files
- Created parsers/aider.py scanning recently-active directories for .aider.chat.history.md files
- Created parsers/presence.py performing lightweight mtime checks on 8 AI tool directories
- Wired new parsers into scan.py scan_all function and added continue/aider to KNOWN_TOOLS in query.py
- Added report subcommand to main.py with —days, —output, and —no-open flags
- Built html_report.py generating single-file HTML dashboard with embedded CSS/JS and session JSON
- Dashboard design: dark gradient background, glassmorphism cards, Inter font, tool-specific accent colors
- Implemented live search filtering across summaries, tools, directories, and models
- Implemented tool filter pills with toggle behavior and color-coded active states
- Implemented expandable session cards showing details, files touched, and commands on click
- Implemented activity timeline as day-by-day bar chart with hover tooltips
- Created context_keeper_launcher.py handling ctxkeeper:// protocol for launch, bat, refresh, and open actions
- Created context_keeper_refresh.py for dashboard re-scan and regeneration
- Created register_protocol.bat for HKCU registry registration of ctxkeeper:// handler
- Registered ctxkeeper:// protocol in Windows registry (HKCU, no admin required)
- Added resume button generating ctxkeeper://launch URLs with tool-specific resume commands
- Added copy command button with clipboard API and execCommand fallback
- Added bat creator button with CSS spinner animation, success/error visual states, and toast notifications
- Bat files saved to launchers/ subdirectory with timestamped filenames derived from session summaries
Observations
- Gemini CLI session format differs from expected: messages use type/content keys instead of role/parts
- OpenCode sessions store title and slug at top level of session JSON, enabling summary without message parsing
- Claude Code JSONL contains human-type events with content as either string or content-block array
- Antigravity logs already contained model detection; only needed field assignment in ArtifactRecord
- Continue sessions.json provides rich structured data (title, workspace dir, timestamps) without per-message parsing
- Presence scanner found factory and cagent as recently active from 8 candidate directories
- Dashboard HTML file is fully self-contained at 547KB including all session data as embedded JSON
- Protocol handler approach works for HTML-to-CLI bridge but browser shows permission prompt on first use
- Bat files include ASCII art header with tool name for visual clarity when launched
Open Threads
- Codex and Copilot store no local conversation content — summary extraction impossible without API integration
- Skill Bridge ai-session-tracker skill creation deferred
- Aider parser search roots hardcoded to OneDrive/Desktop/Documents plus drive root children — may need expansion
- Continue parser assumes ~/.continue/sessions/ path structure — untested on non-Windows systems
- Summary coverage at 13% (33/263) could improve with deeper message parsing across all tools
Boundary Reminder:
Seeds. No maintenance. No roadmap.