-
v1.2.0 Stable
released this
2026-07-22 23:34:10 +02:00 | 17 commits to main since this releasemusicfix v1.2.0
Highlights
Version 1.2.0 introduces universal Apprise notification templates, configurable message formats, richer run summaries, and a clearer README introduction that explains the complete musicfix workflow.
Notifications are now designed to remain readable across email, Telegram, Discord, Slack, ntfy, Gotify, and plain-text destinations without depending on fragile service-specific formatting. A rare outbreak of sensible interoperability.
Added
Universal notification templates
musicfix now sends structured notifications for:
- successful runs
- failed runs
- Apprise test messages
The templates are available in German and English and include:
- run mode
- run ID
- runtime
- audio-file count
- folder count
- total library size
- new files
- modified files
- deleted files
- selected audio files
- affected albums
- log path
- manifest path
- installed musicfix version
Failure notifications additionally include:
- failed maintenance step
- exit code
Configurable notification format
The notification format can now be selected in the configuration:
[notifications] enabled = true notify_on_success = true notify_on_failure = true format = "markdown" urls = [ "apprise://172.16.3.150:8000/jarvis/?tags=all", ]Supported values:
format = "text" format = "markdown" format = "html"Recommended usage:
textfor maximum compatibilitymarkdownas the default for mixed serviceshtmlmainly for email and other rich-content destinations
Cross-service compatibility
Notification templates intentionally avoid:
- Markdown tables
- complex nesting
- service-specific markup
- formatting that becomes unreadable as plain text
The same message structure can therefore be used with:
- Telegram
- Discord
- Slack
- ntfy
- Gotify
- other Apprise-supported services
- plain-text notification targets
Apprise notification types
musicfix now sends the appropriate Apprise notification type:
successfor successful runsfailurefor failed runsinfofor test messages
Services that support notification types may use their own icons, colors, priorities, or visual indicators.
Realistic Apprise template preview
The existing test command now sends the same structured template used by real maintenance runs:
musicfix apprise testThe test message contains realistic example data, including:
- write mode
- example run ID
- example runtime
- library statistics
- incremental change counts
- example log path
- example manifest path
- installed musicfix version
This makes it possible to preview the selected format without running library maintenance.
Improved README introduction
The README now includes a concise English description of the project:
musicfixis a safety-focused command-line toolkit for maintaining large,
folder-based music libraries on Linux. It can validate and repair FLAC files,
clean metadata and titles, normalize filenames, manage album and artist
artwork, quarantine unwanted files, and keep detailed logs, reports, backups,
and reversible run manifests.The introduction also explains:
- dry-run and write behavior
- incremental SQLite indexing
- configurable cleanup protection
- support for audio, image, lyrics, video, and custom formats
- optional Apprise notifications
- compatibility with multiple notification services
Changed
- Markdown is now the default Apprise message format
- notification messages use a clearer section-based layout
- run notifications now include incremental change statistics
- failure notifications now identify the failed step and exit code
- notification details now include the manifest path
- notification footers now include the installed musicfix version
- the Apprise test command now previews the real notification template
- README documentation now reflects the complete current feature set
- notification configuration examples now include the
formatoption
Configuration example
[notifications] # Enable automatic notifications after complete musicfix runs. enabled = true # Send a notification when a run completes successfully. notify_on_success = true # Send a notification when a run fails. notify_on_failure = true # Message format: text, markdown or html. # Markdown is the recommended default across mixed services. format = "markdown" # One or more Apprise service URLs. urls = [ "apprise://172.16.3.150:8000/jarvis/?tags=all", ]Example Markdown notification
✅ musicfix completed successfully ## Run **Mode:** `Write` **Run ID:** `20260722-224502-815491` **Runtime:** `12 min 38 s` ## Library **Audio files:** `8,197` **Folders:** `705` **Library size:** `157.80 GiB` ## Changes **New:** `12` **Modified:** `4` **Deleted:** `1` **Selected audio files:** `23` **Affected albums:** `6` ## Details **Log:** `/home/user/.local/share/musicfix/logs/musicfix.log` **Manifest:** `/home/user/.local/share/musicfix/runs/example/manifest.json` --- musicfix 1.2.0Example failure notification
❌ musicfix failed ## Run **Mode:** `Write` **Run ID:** `20260722-224502-815491` **Runtime:** `8 s` ## Library **Audio files:** `8,197` **Folders:** `705` **Library size:** `157.80 GiB` ## Changes **New:** `2` **Modified:** `1` **Deleted:** `0` **Selected audio files:** `7` **Affected albums:** `2` ## Details **Failed step:** `flac-repair` **Exit code:** `1` **Log:** `/home/user/.local/share/musicfix/logs/musicfix.log` **Manifest:** `/home/user/.local/share/musicfix/runs/example/manifest.json` --- musicfix 1.2.0Testing
Verify the active configuration:
musicfix config --checkCheck required dependencies:
musicfix doctorPreview the selected notification format:
musicfix apprise testRun an incremental dry run:
musicfix allRun incremental maintenance with changes enabled:
musicfix all --writeForce a complete library pass:
musicfix all --full musicfix all --full --writeSafety
- notifications do not modify the music library
- notification failures do not change the maintenance run result
- dry runs remain read-only
- write operations still require
--write - failed or interrupted runs do not update the incremental index
- unsupported files are moved to quarantine instead of being deleted directly
- logs, reports, backups, and manifests remain available for inspection and recovery
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads