- Modified cvs_client.py get_file_history() to parse and extract tags from CVS log
- Updated ui.js displayHistory() to render tags for each revision
- Added CSS styling for history tags with proper theming support
- Tags are displayed inline with revision information in history view
- Modified ui.js displayHistory() to pass previous revision to click handler
- Added showHistoryItemDiff() method in app.js to generate and display diff
- Diff compares selected revision with previous revision (Option A)
- First revision shows message instead of diff (no previous to compare)
- Modified cvs_client.py to skip tags with value '(none)' using case-insensitive comparison
- Updated ui.js to also check for '(none)' tags when displaying patchsets
- Patchsets without tags no longer show any tag badge in the UI
- Add cvsps package to Docker dependencies
- Implement patchset retrieval and diff endpoints in API
- Add _run_cvsps_command() helper for cvsps integration
- Enhance file history parsing with log message extraction
- Improve UI with enhanced styling and patchset functionality