|
|
0d6cade56c
|
feat: Add comprehensive configuration persistence system
- Implemented ConfigService with file-based JSON persistence
- Atomic file writes using temporary files
- Configuration validation with detailed error reporting
- Schema versioning with migration support
- Singleton pattern for global access
- Added backup management functionality
- Automatic backup creation before updates
- Manual backup creation with custom names
- Backup restoration with pre-restore backup
- Backup listing and deletion
- Automatic cleanup of old backups (max 10)
- Updated configuration API endpoints
- GET /api/config - Retrieve configuration
- PUT /api/config - Update with automatic backup
- POST /api/config/validate - Validation without applying
- GET /api/config/backups - List all backups
- POST /api/config/backups - Create manual backup
- POST /api/config/backups/{name}/restore - Restore backup
- DELETE /api/config/backups/{name} - Delete backup
- Comprehensive test coverage
- 27 unit tests for ConfigService (all passing)
- Integration tests for API endpoints
- Tests for validation, persistence, backups, and error handling
- Updated documentation
- Added ConfigService documentation to infrastructure.md
- Marked task as completed in instructions.md
Files changed:
- src/server/services/config_service.py (new)
- src/server/api/config.py (refactored)
- tests/unit/test_config_service.py (new)
- tests/api/test_config_endpoints.py (enhanced)
- infrastructure.md (updated)
- instructions.md (updated)
|
2025-10-17 20:26:40 +02:00 |
|
|
|
71207bc935
|
feat: Complete WebSocket integration with core services
- Enhanced DownloadService broadcasts for all queue operations
- Download progress, complete, and failed broadcasts with full metadata
- Queue operations (add, remove, reorder, retry, clear) broadcast queue status
- Queue control (start, stop, pause, resume) broadcasts state changes
- AnimeService scan progress fully integrated with ProgressService
- Scan lifecycle events (start, update, complete, fail) broadcasted
- Progress tracking via ProgressService to scan_progress room
- ProgressService WebSocket integration
- Broadcast callback registered during application startup
- All progress types route to appropriate rooms
- Throttled broadcasts for performance (>1% changes)
- Comprehensive integration tests
- Test download progress and completion broadcasts
- Test queue operation broadcasts
- Test scan progress lifecycle
- Test progress service integration
- End-to-end flow testing
- Updated infrastructure documentation
- Detailed broadcast message formats
- Room structure and subscription patterns
- Production deployment considerations
- Architecture benefits and scalability notes
|
2025-10-17 11:51:16 +02:00 |
|
|
|
94de91ffa0
|
feat: implement WebSocket real-time progress updates
- Add ProgressService for centralized progress tracking and broadcasting
- Integrate ProgressService with DownloadService for download progress
- Integrate ProgressService with AnimeService for scan progress
- Add progress-related WebSocket message models (ScanProgress, ErrorNotification, etc.)
- Initialize ProgressService with WebSocket callback in application startup
- Add comprehensive unit tests for ProgressService
- Update infrastructure.md with ProgressService documentation
- Remove completed WebSocket Real-time Updates task from instructions.md
The ProgressService provides:
- Real-time progress tracking for downloads, scans, and queue operations
- Automatic progress percentage calculation
- Progress lifecycle management (start, update, complete, fail, cancel)
- WebSocket integration for instant client updates
- Progress history with size limits
- Thread-safe operations using asyncio locks
- Support for metadata and custom messages
Benefits:
- Decoupled progress tracking from WebSocket broadcasting
- Single reusable service across all components
- Supports multiple concurrent operations efficiently
- Centralized progress tracking simplifies monitoring
- Instant feedback to users on long-running operations
|
2025-10-17 11:12:06 +02:00 |
|
|
|
42a07be4cb
|
feat: implement WebSocket real-time communication infrastructure
- Add WebSocketService with ConnectionManager for connection lifecycle
- Implement room-based messaging for topic subscriptions (e.g., downloads)
- Create WebSocket message Pydantic models for type safety
- Add /ws/connect endpoint for client connections
- Integrate WebSocket broadcasts with download service
- Add comprehensive unit tests (19/26 passing, core functionality verified)
- Update infrastructure.md with WebSocket architecture documentation
- Mark WebSocket task as completed in instructions.md
Files added:
- src/server/services/websocket_service.py
- src/server/models/websocket.py
- src/server/api/websocket.py
- tests/unit/test_websocket_service.py
Files modified:
- src/server/fastapi_app.py (add websocket router)
- src/server/utils/dependencies.py (integrate websocket with download service)
- infrastructure.md (add WebSocket documentation)
- instructions.md (mark task completed)
|
2025-10-17 10:59:53 +02:00 |
|
|
|
028d91283e
|
feat: implement download queue service with persistence, priority, and retry logic
- Added comprehensive download queue service (download_service.py)
- Priority-based queue management (HIGH, NORMAL, LOW)
- Concurrent download processing with configurable limits
- Automatic queue persistence to JSON file
- Retry logic for failed downloads with max retry limits
- Real-time progress tracking and WebSocket broadcasting
- Queue operations: add, remove, reorder, pause, resume
- Statistics tracking: download speeds, sizes, ETA calculations
- Created comprehensive unit tests (test_download_service.py)
- 23 tests covering all service functionality
- Tests for queue management, persistence, retry logic
- Broadcast callbacks, error handling, and lifecycle
- Added structlog dependency for structured logging
- Updated infrastructure.md with download service documentation
- Removed completed task from instructions.md
All tests passing (23/23)
|
2025-10-17 10:07:16 +02:00 |
|
|
|
3ffab4e70a
|
feat(server): add anime_service wrapper, unit tests, update docs
|
2025-10-14 21:57:20 +02:00 |
|
|
|
aec6357dcb
|
feat(auth): add AuthService with JWT, lockout and tests
|
2025-10-13 00:03:02 +02:00 |
|
|
|
539dd80e14
|
removed old stff
|
2025-10-12 23:45:02 +02:00 |
|
|
|
7a71715183
|
backup
|
2025-10-12 18:05:31 +02:00 |
|
|
|
6d0c3fdf26
|
backup
|
2025-10-06 12:59:27 +02:00 |
|
|
|
3f98dd6ebb
|
Implement application setup and flow middleware
- Add SetupService for detecting application setup completion
- Create ApplicationFlowMiddleware to enforce setup auth main flow
- Add setup processing endpoints (/api/auth/setup, /api/auth/setup/status)
- Add Pydantic models for setup requests and responses
- Integrate middleware into FastAPI application
- Fix logging paths to use ./logs consistently
- All existing templates (setup.html, login.html) already working
|
2025-10-06 12:48:18 +02:00 |
|