- Create shared fileUtils.ts with getFileExtension and getFileName functions
- Replace duplicate .split('.').pop()?.toLowerCase() logic across codebase
- Update imports in imageUtils.ts, SimpleSyntaxHighlighter.tsx, PrismSyntaxHighlighter.tsx, and server.ts
- Add null/undefined handling for edge cases
- Update tsconfig.cli.json to include src/utils
- Fix tests to use new utility functions
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Update package.json engines.node to >=21.0.0
- Update TypeScript target and lib to ES2022 in tsconfig.json and tsconfig.cli.json
- Update GitHub Actions to use Node.js 21
- Add Node.js 21 to mise.toml for consistent development environment
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* feat: add TUI mode for terminal-based diff viewing
- Add React Ink-based terminal UI with --tui option
- Support side-by-side and unified diff views
- Navigate files with Tab/Shift+Tab (with looping)
- Vim-style keybindings (j/k for scroll)
- Default to showing uncommitted changes (working directory)
- Add --staged and --dirty flags for TUI mode
- Share core git-diff functionality between web and TUI
- Display file preview navigation and remaining lines count
Usage:
reviewit --tui # Show uncommitted changes
reviewit --tui --staged # Show staged changes
reviewit --tui HEAD~3 # Show specific commit
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Fix TUI runtime errors and add proper error handling
- Add error handling for empty files array in SideBySideDiffViewer
- Add display for when no files are found
- Add TTY environment check before starting TUI mode
- Prevent crashes when currentFile is undefined
* Improve file navigation display in TUI
- Rename git-diff-simple.ts to git-diff-tui.ts for clarity
- Add 'r' key to reload diff data
- Improve file navigation display with 2-line limit
- Show current file in brackets with surrounding files
- Dim inactive files and handle overflow gracefully
- Update help text to show reload key
* Fix CLI build configuration
- Add explicit noEmit: false and declaration: true
- Restore proper CLI build output to dist/cli/
* Add type definitions for CLI options
- Define CliOptions interface for better type safety
- Remove unsafe any type usage in CLI action handler
---------
Co-authored-by: Claude <noreply@anthropic.com>