8.8 KiB
[0.7.0] - 2026-02-25
Added
Changed
Fixed
[0.6.5] - 2026-02-25
Added
Changed
Fixed
[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, and this project adheres to Semantic Versioning.
[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
JSONFormatterclass 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
PerformanceTrackercontext 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
ConfigValidatorclass with comprehensive schema validation- Validates all config fields with detailed error messages
- Type constraints, ranges, and allowed value enforcement
- 8 tests passing
-
Configuration Profiles
ConfigProfileclass 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
ConfigExporterclass for JSON serializationexport_to_json()- Save configuration to JSON fileimport_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
- Update version in
src/webdrop_bridge/__init__.py(version) - Update CHANGELOG.md with new features/fixes
- Commit:
git commit -m "chore: Bump version to X.Y.Z" - Build on Windows:
python build/scripts/build_windows.py - Build on macOS:
bash build/scripts/build_macos.sh - Tag:
git tag -a vX.Y.Z -m "Release version X.Y.Z" - Push:
git push upstream vX.Y.Z - (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)