| title | Changelog |
|---|---|
| description | Release history of Honeymelon with highlights for each public version. |
All notable changes to Honeymelon are documented here. The format follows Keep a Changelog and the project adheres to Semantic Versioning.
- BREAKING: Transitioned from proprietary license to GNU General Public License v3.0 or later (GPL-3.0-or-later)
- BREAKING: Removed all proprietary licensing and activation code from codebase
- Updated all license references throughout the codebase (package.json, Cargo.toml, README, AboutDialog)
- Repository is now fully open-source under GPLv3
- Changed repository visibility from private to public
- Removed proprietary license restrictions; software now freely distributable and modifiable under GPL terms
- GPL v3 copyright headers to all main source files (TypeScript, Vue, Rust)
- Developer Certificate of Origin (DCO) requirement for all contributions
- NOTICE file documenting trademarks and attribution requirements
- THIRD_PARTY_NOTICES.md with comprehensive dependency licensing information
- License compliance documentation for FFmpeg LGPL process separation
- SHA256 checksum verification for FFmpeg binary downloads
docs/FFMPEG_SOURCES.md- Comprehensive FFmpeg installation and sourcing guideGPL_V3_READINESS.md- Complete open source readiness checklistOPEN_SOURCE_VERIFICATION.md- Final verification report- PRs Welcome badge to README
- License key validation system
- License activation dialogs and UI components
- License activation strings from all locales (EN, FR, ES, DE, RU)
isBypassLicensing()function (replaced withisDevelopmentMode())- All references to proprietary licensing in documentation and comments
- Documentation cleanup:
docs/legal/eula.md- Proprietary End-User License Agreementdocs/legal/commercial-license.md- Commercial licensing termsdocs/guide/licensing.md- License activation guide with Ed25519 verification instructions- All EULA references from
docs/ROADMAP.md,docs/development/enhancement-plan.md,docs/changelog.md - Proprietary license references from
docs/architecture/ffmpeg.mdanddocs/development/contributing.md
- Updated
lodash-esfrom 4.17.21 to 4.17.23 to address prototype pollution vulnerability in_.unsetand_.omitfunctions (CVE-2020-8203) - Enhanced FFmpeg binary download security with checksum verification
- Added TruffleHog secret scanning to CI/CD pipeline
- Updated CONTRIBUTING.md with open-source contribution guidelines and DCO
- Updated SECURITY.md to reflect open-source context
- Updated README.md Legal & Licensing section for GPL-3.0-or-later
- Added trademark usage guidelines in NOTICE file
- Enhanced scripts/README.md with licensing and security information
- Fixed outdated MIT reference in LICENSES/FFMPEG-LGPL.txt
- First stable production release of Honeymelon
- Enterprise-grade release audit with comprehensive quality gates
- Expanded job lifecycle test coverage for state transitions
- Promoted from beta (0.x) to stable (1.0) after passing all release criteria:
- 670 frontend tests and 121 backend tests passing
- Zero production security vulnerabilities
- Full CI/CD pipeline with pre-release validation
- Ed25519 cryptographic license verification
- Hardened macOS runtime with minimal entitlements
- Skip link for keyboard navigation now has proper tabindex attribute to prevent focus trap
- macOS close (red button) and quit (Cmd+Q) now respond reliably by adding Rust-side fallbacks for window close and app exit
- Multi-language support for window and quit confirmation dialogs (EN/ES/FR/DE/RU)
- Dock badge showing active job count when window is hidden
- System notifications when window is hidden with jobs running in background
- Dynamic dock badge updates as jobs complete or new ones are queued
- Window close button now hides window instead of quitting app (standard macOS behavior)
- App continues running in background when window is closed with active jobs
- Quit confirmation (Cmd+Q) now properly warns about running/queued jobs before exiting
- Menu items "Show All" and "Bring All to Front" now restore hidden window
- Keyboard shortcuts (Cmd+C, Cmd+V, Cmd+A, etc.) now work in all dialogs including license activation
- Edit menu now uses native predefined items that properly integrate with webview
- Event emissions now log errors instead of silently failing
- Window focus failures are now logged for debugging
- Expanded FFmpeg pipeline coverage with additional test media formats and representative conversion outputs.
- Added planner/runner contract tests for output paths and filename collision handling.
- Added capability regression tests for missing encoders and formats.
- Refined DMG installer layout with a custom background and adjusted icon placement.
- Ensured BMP/TIFF image conversions use an FFmpeg-compatible output format mapping.
- Enforced major-version licensing: licenses now validate the running app’s major version (with lifetime licenses represented as
255for all majors) - Reinstall-friendly activation: stable device ID per machine + idempotent re-activation on the same device
- Prevented “burning” one-time activation on ineligible licenses by validating locally before calling the activation API
- Improved license activation error handling: response parsing now falls back to
messagefield whenerroris absent, and provides clearer parse failure messages
- Expanded localization coverage across uploader prompts, queue controls, destination chooser, and job item actions for all supported languages (EN/ES/FR/DE/RU)
- Added i18n fallback locale and normalized locale handling to keep UI strings consistent
- Language selection now persists reliably across sessions with normalization of stored locales
- Main window close button now falls back to closing the window if the process plugin exit call fails, preventing no-op close attempts
- Persist user settings and job history via the Tauri store (preferences, color mode, language, jobs), including automatic initialization of saved state on startup
- Show richer job metadata in the queue (size, duration, resolution, codecs) by probing files in the background as they are enqueued
- Indicate batch processing and block manual starts while auto-start is running to avoid double-starting queued jobs
- Constrain recursive media discovery with allowed extensions plus depth and file-count limits to prevent runaway scans
- Hardened Tauri security: production devtools disabled, CSP enabled, asset scope narrowed, and devtools menu kept behind debug builds with capability permissions trimmed
- Refreshed job queue UI with a clearer empty state, inline actions (Finder/open, copy path, cancel/remove), and refined card layout with metadata chips
- Use locally bundled Inter font via
@fontsourcefor consistent typography without external font fetches
- On reopen, interrupted running/probing jobs are restored as failed instead of getting stuck, preventing phantom in-progress entries
- CRITICAL: Fixed output file validation checking wrong path (directory instead of temp file)
- Conversions were succeeding but reporting "something went wrong"
- Output files were left as
.tmpfiles instead of being renamed to final destination - Root cause:
validate_output()was called withfinal_path.parent()instead oftemp_path
- FFmpeg pipeline integration test suite with 16 regression tests
- Test media generation script (
npm run generate-test-media) for CI - CI enforcement: tests now fail (instead of skip) when dependencies are missing in CI environment
- Expanded format support (ported from Comet):
- Video containers: AVI, FLV, M4V, TS, OGV, MPEG (now 11 total)
- Audio containers: OGG, AAC, AIFF, Opus (now 8 total)
- Image containers: BMP, TIFF (now 5 total)
- Video codecs: VP8, Theora, MPEG-4, FLV1, MPEG-2
- Audio codecs: MP2, AC3, PCM (24-bit)
- New container compatibility rules for all added formats
- Encoder strategies for legacy codecs (Theora, MPEG-2, FLV1)
- UI animations for better user experience:
- Theme switcher: horizontal flip on hover
- Language switcher (globe): spin animation on hover
- Destination folder: folder-open tilt on hover
- Job queue items: entrance animations and hover effects
- Progress bar: shimmer effect during conversion
- Status badges: pulse for completed, shake for failed
- Removed all emojis and Unicode symbols from codebase for better cross-platform compatibility
- Replaced arrows and checkmarks with ASCII equivalents (>, <>, [OK], [PASS], [FAIL])
- Removed footer from app shell, integrated controls into job queue toolbar
- Toolbar now uses icon buttons with tooltips instead of text buttons
- Updated presets system with dynamic generation from target profiles
- Container rules refactored with comprehensive codec compatibility matrix
- Fixed Clippy dead code warnings in FFmpeg pipeline test file
- Fixed CI pipeline tests that were silently skipping instead of failing
- Updated supported formats documentation with all 24 containers
- Added detailed codec compatibility matrices for each container
- Updated README with accurate format lists and line counts
- Synced VitePress docs with expanded format support
- Added FFMPEG_PIPELINE_TESTS.md documenting test infrastructure
This is the initial public release. See [Unreleased] section for complete feature list.
- Initial public release of Honeymelon media converter
- Remux-first FFmpeg workflow for lossless stream copying
- Three-stage conversion pipeline: Probe > Plan > Execute
- Preset system with quality tiers (fast, balanced, high)
- Support for H.264, HEVC, VP9, AV1, VP8, Theora, MPEG-4, FLV1, and MPEG-2 video codecs
- Support for AAC, MP3, Opus, Vorbis, FLAC, PCM, MP2, and AC3 audio codecs
- MP4, MOV, MKV, WebM, GIF, AVI, FLV, M4V, TS, OGV, and MPEG container support
- PNG, JPEG, WebP, BMP, and TIFF image format support
- Real-time progress tracking with FFmpeg process management
- Job queue with concurrency limiting
- Drag-and-drop media file interface
- FFmpeg capability detection and automatic preset filtering
- Batch conversion support with exclusive locks for heavy codecs (AV1, ProRes)
- Subtitle handling (keep, convert, drop)
- Color metadata preservation during transcoding
- Custom FFmpeg path configuration
- Output directory settings
- Recursive media file discovery for dropped folders
- Rust backend now loads
.envat build time and forwardsLICENSE_SIGNING_PUBLIC_KEYto the compiler for license verification (viabuild.rsanddotenvy). - Added
dotenvyto Rust build dependencies. - Improved license key verification: key available at both build and runtime; temporary test for key loading added and removed after verification.
- Replaced all dynamic imports of Tauri API modules with static imports in frontend files to resolve Vite warnings:
src/stores/license.tssrc/composables/use-file-handler.tssrc/composables/use-job-orchestrator.tssrc/lib/file-discovery.tssrc/components/DestinationChooser.vue
- Added and improved docblocks and comments in Rust modules for clarity and maintainability (
lib.rs,license.rs,ffmpeg_capabilities.rs). - Embedded custom macOS
Info.plistoverrides to require native arm64 execution, enforce Retina support, and predeclare camera/microphone usage descriptions for notarization. - Limited bundling to DMG artifacts to avoid redundant
.apparchives on Apple Silicon builds.
- Initial README with feature overview
- BUILD.md with compilation instructions for macOS
- CONTRIBUTING.md with development guidelines
- CODE_OF_CONDUCT.md (Contributor Covenant)
- CLAUDE.md for AI code assistant context
- AGENTS.md for commit/PR guidelines
- THIRD_PARTY_NOTICES.md for dependencies
- LICENSE_COMPLIANCE.md for LGPL compliance details
- README now highlights the Apple Silicon-focused packaging, bundled arm64 FFmpeg sidecars, and adds a release checklist step to verify their architecture.
- macOS only (Apple Silicon / arm64 target)
- Image-based subtitle burn-in not yet implemented
- JavaScript automated tests framework pending (use Vitest)
- Subtitle mode configuration not exposed in UI (can be set via presets)
- Vue 3 frontend with TypeScript and Tailwind CSS
- Tauri 2 desktop framework
- Rust backend for FFmpeg integration
- Pinia state management
- shadcn-vue UI components