Comprehensive fix for test suite warnings across multiple issue test files:
### SQLite3 Date Adapter Warnings (Python 3.12)
- Fixed 101 warnings in Issue 113 (activity_tracker.py)
- Fixed 55 warnings in Issue 114 (allocation_engine.py)
- Fixed 148 warnings in Issue 122 (worktime_tracker.py + test file)
- Fixed 18 warnings in Issue 124 (day_wrapup_commands.py + worktime_tracker.py)
### Pytest-asyncio Configuration
- Added asyncio_default_fixture_loop_scope = function to pytest.ini
- Eliminates pytest-asyncio deprecation warning
### Runtime Warnings for Unawaited Coroutines
- Fixed 2 warnings in Issue 59 (gitea plugin async mocking)
- Enhanced AsyncTestCase with better coroutine cleanup
- Improved async mock management in test utilities
### Technical Changes
- Convert Python date/datetime objects to ISO strings before SQLite queries
- Use .isoformat() with defensive hasattr() checks for backward compatibility
- Simplified async test mocking to avoid coroutine creation
- Enhanced cleanup_async_mocks() function for comprehensive cleanup
### Results
- Before: ~324 warnings across test suite
- After: 0 warnings - completely clean test suite
- All 216+ tests pass with zero warning noise
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Enhanced IssueActivity dataclass with convenient methods and properties:
- Added activity_type_value, activity_type_display properties
- Added formatted_date, formatted_datetime properties
- Added truncated_details property for display
- Added contains_keyword() and has_implementation_activity() methods
- Added to_dict() method for clean serialization
Simplified code across the codebase:
- Reduced JSON serialization from 18 lines to 1 line (94% reduction)
- Reduced implementation detection from 13 lines to 3 lines (77% reduction)
- Improved table formatting using property access
- Fixed test inconsistencies using proper IssueActivity objects
- Removed complex helper code for dict/dataclass handling
Benefits:
- Single source of truth for all IssueActivity operations
- Consistent interface across all usage patterns
- Better encapsulation and maintainability
- Enhanced code readability and reliability
- All tests passing (1329/1329)
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add comprehensive IssueActivityTracker service with ActivityType enum and IssueActivity dataclass
- Implement full CLI interface with log, show, list, summary, delete, and import-activities commands
- Support activity logging with automatic period detection and cost allocation integration
- Add activity retrieval by issue, by period, with filtering and pagination
- Include activity summaries with statistics and breakdowns across issues and time periods
- Support bulk operations for activity import from JSON/CSV formats
- Integrate with existing finance schema using cost_periods and issue_activity_log tables
- Add 28 comprehensive test cases covering all functionality with 100% pass rate
- Enable both table and JSON output formats for all CLI commands
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>