Add OpenAI Codex CLI session support (#1)
* Add SessionSource type and update SessionFile interface
- Add SessionSource discriminator type ('claude' | 'codex')
- Move SessionFile interface to types.ts with source field
- Export findGitRoot() for reuse by codex-detector
- Add findAllSessions() to merge Claude and Codex sessions
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Add Codex CLI session support
- Add codex-detector.ts to discover sessions in ~/.codex/sessions/
- Add codex-reader.ts to parse Codex JSONL format
- Map Codex tools to Claude equivalents (apply_patch→Edit, shell_command→Bash)
- Handle both function_call and custom_tool_call payload types
- Extract file paths from apply_patch unified diff format
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Add source column to session_summaries table
- Add migration to add source column (defaults to 'claude')
- Update saveSessionSummary() to accept and store source
- Track whether session came from Claude Code or Codex CLI
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Dispatch to correct parser based on session source
- Import parseCodexSessionFile from codex-reader
- Check sessionFile.source to dispatch to Claude or Codex parser
- Pass source to saveSessionSummary for database tracking
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Make verbose output default for process command
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Consolidate dev server into single bun dev command
- Add scripts/dev.ts to run API and Vite together
- Update package.json dev script
- Properly handle process cleanup on SIGINT/SIGTERM
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Restore tools display in ProjectCard component
- Add tools aggregation to useMemo hook
- Add Tools section with purple styling
- Import Wrench icon from lucide-react
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Update documentation for Codex CLI support
- Update CLAUDE.md with multi-source architecture details
- Add gotcha about Codex function_call vs custom_tool_call types
- Update README.md to mention both Claude Code and Codex CLI
- Document session locations and project unification
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Fix PR review issues
- getSessionStats now uses findAllSessions() to include Codex sessions
- upsertProjectFromSession: total_sessions calculated from actual session count (fixes --force inflation)
- upsertProjectFromSession: first_session_date now uses MIN on conflict
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
authored by