dev@bfd:~/dev-diary$ git show 2026-02
commit 2026-02-23-build-context-keeper-interactive-dashboard
Author: MJ
Date: Feb 23, 2026

2026-02-23 - Build Context Keeper Interactive Dashboard

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.