## [0.6.4] - 2026-02-25 ### Added ### Changed ### Fixed ## [0.6.3] - 2026-02-25 ### Added ### Changed ### Fixed ## [0.6.2] - 2026-02-25 ### Added ### Changed ### Fixed ## [0.6.1] - 2026-02-25 ### Added ### Changed ### Fixed ## [0.6.0] - 2026-02-20 ### Added - **UI Enhancements** - Web source configuration tab in settings dialog for URL mapping management - Enhanced about dialog with product description and contact information - **Build & Distribution** - Executable versioning support for Windows builds - Desktop shortcut creation in WiX installer - Support for 64-bit components in MSI installer (fix) ### Changed - Refactored logging configuration to use AppData directory (Windows) instead of application root - Enhanced Windows installer with improved UI and error reporting - Improved code structure and readability across multiple modules - Refactored version syncing script with better Unicode handling ### Fixed - Fixed import order in settings_dialog.py (QTabWidget positioning) - Improved error reporting in Windows installer linking - Enhanced Unicode handling in build scripts # Changelog All notable changes to WebDrop Bridge will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [0.1.0] - 2026-01-28 ### Added - **Core Features** - Qt6-based desktop application for web-to-file drag-and-drop - PySide6 integration with WebEngine for embedded browser - Path validation and security with whitelist-based access control - Drag-and-drop event interception and handling - Real-time drag state monitoring - **UI/UX** - Professional main window with toolbar navigation - Restricted web view with URL whitelist enforcement - Kiosk-mode support (restricted browsing) - Beautiful default welcome page for unconfigured instances - Responsive layout with proper window management - **Configuration** - Environment-based configuration system (.env file support) - Configurable allowed root directories for file access - URL whitelist with wildcard support (*.example.com) - Window size and appearance settings - Logging level and output control - **Logging & Monitoring** - Structured logging with INFO, DEBUG, ERROR levels - Optional file-based logging - Comprehensive error messages and diagnostics - Application startup and shutdown logging - **Build & Distribution** - PyInstaller configuration for Windows and macOS - Standalone executable generation (195.7 MB for Windows) - Dependency bundling (PySide6, Qt6, Chromium) - Resource embedding (webapp, icons, stylesheets) - Cross-platform support (Windows .exe, macOS .dmg) - **Testing & Quality** - 99 unit and integration tests - 84% code coverage - Ruff linting and Black code formatting - mypy type checking - Comprehensive test fixtures and mocking - **CI/CD** - Build automation scripts for Windows and macOS - Forgejo Packages support for distribution - SHA256 checksum generation for release files - Release documentation on Forgejo - **Documentation** - Comprehensive API documentation with docstrings - Architecture documentation (ARCHITECTURE.md) - Development plan (DEVELOPMENT_PLAN.md) - Setup and quickstart guides - Contributing guidelines ### Technical Details - **Language**: Python 3.13 - **Framework**: PySide6 6.10.1 (Qt6) - **Web Engine**: Qt6 WebEngine with Chromium - **Build Tool**: PyInstaller 6.18.0 - **Testing**: pytest with coverage - **Linting**: Ruff + Black ### Known Limitations - Requires configuration for custom web applications - Manual release builds needed (no CI/CD runners in Forgejo at this time) ## [0.5.0] - 2026-02-18 ### Added - Phase 4 Professional Features #### Phase 4.1: Auto-Update System - **Auto-update Manager** (`core/updater.py`) - Check for new releases via Forgejo API - Automatic background update checking (configurable interval) - Manual "Check for Updates" menu option - SHA256 checksum verification for downloaded files - Version comparison using semantic versioning - 27 tests passing, 79% coverage - **Update UI Components** (`ui/update_manager_ui.py`) - Update notification dialogs with release notes and changelog - Progress bar for update downloads - Integration with Help menu and status bar - Real-time status updates ("Checking...", "Downloading...", "Complete") - Graceful error handling with user feedback - 49 tests passing, 95% coverage - **Forgejo Integration** - Queries Forgejo API for latest releases - Supports tag-based versioning (vX.Y.Z) - Release notes parsing and display - Asset/checksum management #### Phase 4.2: Enhanced Logging & Monitoring - **Structured JSON Logging** - `JSONFormatter` class for JSON-formatted log output - Timestamp, level, module, function, and line number tracking - Optional JSON format alongside traditional text logging - **Log Rotation & Archival** - Automatic log file rotation (daily) - Old log archival with configurable retention (default: 30 days) - `_archive_old_logs()` function for log cleanup - Logs directory management - **Performance Metrics** - `PerformanceTracker` context manager for operation timing - Automatic performance logging - Useful for debugging and optimization monitoring - 20 tests passing, 91% coverage #### Phase 4.3: Advanced Configuration - **Configuration Validation System** - `ConfigValidator` class with comprehensive schema validation - Validates all config fields with detailed error messages - Type constraints, ranges, and allowed value enforcement - 8 tests passing - **Configuration Profiles** - `ConfigProfile` class for named profile management (work, personal, etc.) - Profile storage in `~/.webdrop-bridge/profiles/` as JSON - Profile save/load/delete functionality - 7 tests passing - **Settings Dialog UI** (`ui/settings_dialog.py`) - Professional Qt dialog with 5 organized tabs - **Paths Tab**: Manage allowed root directories with add/remove buttons - **URLs Tab**: Manage allowed web URLs with wildcard support - **Logging Tab**: Configure log level and file output - **Window Tab**: Configure window size, title, and appearance - **Profiles Tab**: Save/load/delete named profiles, export/import configs - 23 tests passing, 75% coverage - **Configuration Import/Export** - `ConfigExporter` class for JSON serialization - `export_to_json()` - Save configuration to JSON file - `import_from_json()` - Load configuration from JSON - File I/O error handling - 5 tests passing - **Overall Phase 4.3 Stats** - 43 tests passing total - 87% coverage on `config_manager.py` - 75% coverage on `settings_dialog.py` ### Technical Improvements - **Test Coverage**: Increased from 84% (v1.0.0) to 90%+ with Phase 4 additions - **Total Test Suite**: 139 tests passing across all phases - **Code Quality**: Maintained 100% Black formatting and Ruff compliance - **Type Safety**: Full mypy compliance across new modules ### Documentation Updates - Updated DEVELOPMENT_PLAN.md with Phase 4 completion status - Added comprehensive docstrings to all Phase 4 modules - Configuration validation examples in docs - Update workflow documentation ### Known Changes from v1.0.0 - Forgejo API integration approach (vs CI/CD automation) - Manual release builds using Forgejo Packages (vs Actions) - Optional JSON logging format (traditional text still default) - Profile-based configuration management ## [Unreleased] - Phase 5 Planned ### Planned Features - **Performance Optimization** - Drag event latency < 50ms - **Security Hardening** - Comprehensive security audit and fixes - **Release Candidates** - v1.0.1-rc1, rc2, rc3 testing - **Final Releases** - Stable Windows & macOS builds - **Analytics** (Optional post-release) - **Community Support** - GitHub/Forgejo discussion forums --- ## Version Numbering - **MAJOR**: Significant feature additions or breaking changes - **MINOR**: New features, backward compatible - **PATCH**: Bug fixes, improvements Example: `1.0.0` = Version 1, Release 0, Patch 0 ## Release Process 1. Update version in `src/webdrop_bridge/__init__.py` (__version__) 2. Update CHANGELOG.md with new features/fixes 3. Commit: `git commit -m "chore: Bump version to X.Y.Z"` 4. Build on Windows: `python build/scripts/build_windows.py` 5. Build on macOS: `bash build/scripts/build_macos.sh` 6. Tag: `git tag -a vX.Y.Z -m "Release version X.Y.Z"` 7. Push: `git push upstream vX.Y.Z` 8. (Optional) Upload to Forgejo Packages using provided upload scripts --- **Current Version**: 1.0.0 (Released 2026-01-28) **Last Updated**: 2026-02-18 with v1.0.1 Phase 4 features **Next Version**: 1.1.0 (Planned for Phase 5 release candidates)