Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PMDA — issue tracker

Public bug tracker and feature backlog for PMDA, a self-hosted tool for auditing and maintaining messy music libraries.

This repository holds no source code — only issues. The code lives in a private repository; access is granted individually. Everything else about the project happens here in the open: what is broken, what is planned, and where each report stands.

Where things stand

A report is resolved only when the person who filed it confirms the fix — shipped code waits in orange until its reporter says so. These charts count reports only; improvements we opened ourselves are tallied separately so they cannot flatter the number.

Progress

All reports by status

Open bugs by severity

Open work by area

Shortcutsready to test · not started · confirmed fixed

Every report, one table per area

153 fixed · 3 open — regenerated automatically. FIXED names the version that shipped it; IN BETA means the fix is on :beta awaiting its reporter; BACKLOG is not started.

UI / UX — 27 report(s), 1 open
# Issue Reporter Status Fix Validation
#86 Onboarding should scan first, then let the user choose the scope arty_ai BACKLOG
#157 Identify step headline hijacked by per-artist index refreshes (0 of 0 folders, then 1 of 2) meaning_1 FIXED v401 Shipped & closed — reopen welcome
#156 Light theme: hovered rows in quick-search suggestions turn white and become invisible meaning_1 FIXED v400 Shipped & closed — reopen welcome
#154 Every duplicates number must name its scope (sidebar 0 vs fine-check 632 vs top bar 631) ovizii FIXED v396 Shipped & closed — reopen welcome
#150 Edition review modal: a single glued to its parent album offers only KEEP/DELETE — no way to … Hodel1 FIXED v399 Shipped & closed — reopen welcome
#149 Workers panel: provider states and icon grid need a legend, and busy/idle accounting disagree… ovizii FIXED v391 Shipped & closed — reopen welcome
#148 Broken-album review showed a 'Run AI shadow' button with no explanation (removed) ovizii FIXED Shipped & closed — reopen welcome
#146 Scan card step count grows mid-run: 'Step 4 of 4' becomes 'of 5' when enrichment starts meaning_1 FIXED v389 Shipped & closed — reopen welcome
#92 Library export label is truncated, and its relationship to the Export stage is unclear ovizii FIXED v392 Shipped & closed — reopen welcome
#89 Nothing says which features stay inert until the first scan finalizes edith1775 FIXED v396 Shipped & closed — reopen welcome
#88 Scan History: a resumed scan looks like a string of short failed runs ovizii FIXED v391 Shipped & closed — reopen welcome
#84 Heart and Like do the same thing: pick one, or make the rating model explicit bitsofbitsofbits FIXED 1.0.5 Shipped & closed — reopen welcome
#79 Scan vocabulary is undocumented: SKIPPED, FLAGGED, SOFT_MATCH, Files-safe, live index, backlog ovizii FIXED Shipped & closed — reopen welcome
#77 Artwork cache: missing .webp raises a traceback mid-scan ovizii FIXED v399 Shipped & closed — reopen welcome
#48 Search results: play a track directly from the results page cissoubaka FIXED v398 Shipped & closed — reopen welcome
#45 Statistics: library size on disk and total playtime (years/months/days/hours) meaning_1 FIXED v398 Shipped & closed — reopen welcome
#41 No version number anywhere in the product — testers cannot tell which build they are on cissoubaka, foggymtndrifter FIXED v345 Shipped & closed — reopen welcome
#39 Concerts: process newly added artists/genres against providers immediately meaning_1 FIXED v396 Shipped & closed — reopen welcome
#37 Liked page caps at 96 songs while all likes are stored foggymtndrifter FIXED v396 Shipped & closed — reopen welcome
#29 After an update the library reads 0 artists / 0 albums with no explanation FIXED v396 Shipped & closed — reopen welcome
#22 PMDA advertises "no AI" but shows AI prompts and an AI health row ovizii FIXED v391 Shipped & closed — reopen welcome
#17 Backend logs are unreadable in light mode lewis91 FIXED v396 Shipped & closed — reopen welcome
#16 Not enough padding between the Library heading and THE COLLECTION line lewis91 FIXED v396 Shipped & closed — reopen welcome
#14 A popup flashes on screen for a split second when PMDA loads lewis91 FIXED v396 Shipped & closed — reopen welcome
#13 Player bar covers the bottom of Search results and Tools lewis91 FIXED v396 Shipped & closed — reopen welcome
#11 Right half of the tile size slider on the Artists page does nothing lewis91 FIXED v345 Shipped & closed — reopen welcome
#9 Opening History before any scan has run shows a 404 page lewis91 FIXED v345 Shipped & closed — reopen welcome
Scanner & pipeline — 41 report(s), 0 open
# Issue Reporter Status Fix Validation
#145 Finalize export pace is bounded by per-album bookkeeping, not I/O meaning_1 FIXED v401 Shipped & closed — reopen welcome
#137 A scan in its preparation phases reports zero progress on every surface, and reads as hung meaning_1 FIXED v387 Shipped & closed — reopen welcome
#136 Startup resume has been silently dead: reconciliation clears the exact status the picker requ… meaning_1 FIXED v387 Shipped & closed — reopen welcome
#105 A full scan silently resumes a partial plan and reports it as the total FIXED v333 Shipped & closed — reopen welcome
#98 SQLite 'database is locked' raises a traceback mid-scan instead of retrying FIXED Shipped & closed — reopen welcome
#97 Full scan segfaults on a large library, four seconds into filesystem discovery FIXED v350 Shipped & closed — reopen welcome
#96 Stale pipeline job is flagged but never cleared: library_index stuck for 8.8 hours FIXED v339 Shipped & closed — reopen welcome
#95 Scan emits no heartbeat during filesystem discovery, so a healthy scan looks stalled FIXED v335 Shipped & closed — reopen welcome
#82 [scanner] One pacer for MusicBrainz, not two FIXED Shipped & closed — reopen welcome
#81 [scanner] Only look up a table of contents when the folder came off a disc FIXED Shipped & closed — reopen welcome
#78 Incomplete albums: the scan count and the review queue disagree ovizii FIXED v391 Shipped & closed — reopen welcome
#76 [scanner] Wire every improvement into the live pipeline FIXED Shipped & closed — reopen welcome
#75 [scanner] Install the MusicBrainz call discipline on every call site FIXED Shipped & closed — reopen welcome
#73 [scanner] Key classical identity on the performance, not the work FIXED Shipped & closed — reopen welcome
#72 [scanner] Batch the Postgres writes instead of one round trip per row FIXED Shipped & closed — reopen welcome
#71 [scanner] Narrow the provider query rather than widening the results FIXED Shipped & closed — reopen welcome
#69 [scanner] Wire AcoustID escalation into the scan pipeline FIXED Shipped & closed — reopen welcome
#68 [scanner] Optimal track alignment instead of greedy pairing FIXED Shipped & closed — reopen welcome
#67 [scanner] Various Artists inferred at a dominance threshold FIXED Shipped & closed — reopen welcome
#66 [scanner] Album identity derived from content, not from the path FIXED Shipped & closed — reopen welcome
#65 [scanner] Per-folder manifest hash for incremental scans FIXED Shipped & closed — reopen welcome
#64 [scanner] Tag-based grouping cross-checked against folder grouping FIXED Shipped & closed — reopen welcome
#63 [scanner] Album-aware keeper cascade for duplicates FIXED Shipped & closed — reopen welcome
#62 [scanner] Call discipline for the public MusicBrainz web service FIXED Shipped & closed — reopen welcome
#61 [scanner] Fuzzy MusicBrainz TOC lookup identifies the exact release FIXED Shipped & closed — reopen welcome
#60 [scanner] AcoustID escalation with album-level consensus FIXED Shipped & closed — reopen welcome
#59 [scanner] Rip evidence from cue sheets and EAC/XLD logs FIXED Shipped & closed — reopen welcome
#58 [scanner] Three provider outcomes, circuit breaker and token bucket FIXED Shipped & closed — reopen welcome
#57 [scanner] Match distance with per-penalty veto and runner-up margin FIXED Shipped & closed — reopen welcome
#56 [scanner] Audio identity: stream hash and duration vector FIXED Shipped & closed — reopen welcome
#55 [scanner] Classical completeness judged by work structure, not file count FIXED Shipped & closed — reopen welcome
#54 [scanner] Detect albums truncated at the tail FIXED Shipped & closed — reopen welcome
#52 [scanner] Scan worker width raised to match provider-first FIXED Shipped & closed — reopen welcome
#51 [scanner] MusicBrainz quarantine per release group FIXED Shipped & closed — reopen welcome
#50 [scanner] Watchdog for zombie scan jobs FIXED Shipped & closed — reopen welcome
#49 [scanner] Post-scan export no longer re-runs discovery FIXED Shipped & closed — reopen welcome
#47 Scan roots: three competing sources of truth, and Settings changes can be silently ignored FIXED v391 Shipped & closed — reopen welcome
#32 Identify with providers first, MusicBrainz asynchronously after FIXED v301 Shipped & closed — reopen welcome
#7 Scanning is extremely slow — over a week for 100k tracks lewis91 FIXED v396 Shipped & closed — reopen welcome
#6 FutureTimeout - Export failed Hodel1 FIXED v396 Shipped & closed — reopen welcome
#1 Stuck with error on first album FIXED Shipped & closed — reopen welcome
Duplicates — 4 report(s), 0 open
# Issue Reporter Status Fix Validation
#104 Duplicate keeper drops the copy that has cover art FIXED Shipped & closed — reopen welcome
#103 Export arbitration quarantines a split album's tail as a duplicate loser FIXED Shipped & closed — reopen welcome
#15 Duplicate detection calls different editions an exact duplicate lewis91 FIXED v396 Shipped & closed — reopen welcome
#12 Sidebar reports duplicates found, but the Duplicates page is empty edith1775, lewis91 FIXED v391 Shipped & closed — reopen welcome
Metadata & matching — 11 report(s), 0 open
# Issue Reporter Status Fix Validation
#144 A persistent needs_ai_review quality flag on profiles, set at ingestion and queryable via MCP meaning_1 FIXED v388 Shipped & closed — reopen welcome
#143 Artist bios assigned to the wrong entity when scraping resolves a homonym meaning_1 FIXED v388 Shipped & closed — reopen welcome
#142 About 12,500 curator profile rows are empty placeholders that mask albums from missing-descri… meaning_1 FIXED v388 Shipped & closed — reopen welcome
#141 Curator ingestion stores full tracklists, sometimes with lyrics, as the album description meaning_1 FIXED v388 Shipped & closed — reopen welcome
#138 MusicBrainz provider shows error: release-group lookups 404 on the mirror for ids the public … meaning_1 FIXED v388 Shipped & closed — reopen welcome
#101 No way to match an album by hand when automatic matching fails bitsofbitsofbits FIXED v404 Shipped & closed — reopen welcome
#99 Track titles that start with a number lose it: "100 Bad Days" becomes "Bad Days" bitsofbitsofbits FIXED v396 Shipped & closed — reopen welcome
#90 Albums silently un-match when MusicBrainz deletes the release they matched iecj FIXED v404 Shipped & closed — reopen welcome
#34 Unmatchable folder names (abbreviated compilations): automatic AcoustID / OCR escalation cissoubaka FIXED v407 Shipped & closed — reopen welcome
#26 Matching fails on a large share of the library bitsofbitsofbits FIXED v302 Shipped & closed — reopen welcome
#10 Artist names containing '&' are split, and the albums land on the wrong artist lewis91 FIXED v396 Shipped & closed — reopen welcome
Mobile apps — 5 report(s), 0 open
# Issue Reporter Status Fix Validation
#94 No documented route into the Android beta foggymtndrifter FIXED Shipped & closed — reopen welcome
#44 Android app: Liked music list has no play or shuffle button foggymtndrifter FIXED 1.0.4 Shipped & closed — reopen welcome
#43 Android app: no Download button on playlists foggymtndrifter FIXED 1.0.4 Shipped & closed — reopen welcome
#36 Android app: proper offline support (cached lists, offline filtering) foggymtndrifter FIXED 1.0.5 Shipped & closed — reopen welcome
#35 Mobile apps cannot log in when MFA is enabled iecj FIXED 1.0.4 Shipped & closed — reopen welcome
Player & playback — 1 report(s), 0 open
# Issue Reporter Status Fix Validation
#83 Web player stays at 0:00 on some albums while the mobile app plays them bitsofbitsofbits FIXED v401 Shipped & closed — reopen welcome
Providers & integrations — 4 report(s), 0 open
# Issue Reporter Status Fix Validation
#140 Last.fm bios keep the Creative Commons boilerplate and arrive unformatted meaning_1 FIXED v388 Shipped & closed — reopen welcome
#139 Discogs pressing notes are stored as the album review meaning_1 FIXED v388 Shipped & closed — reopen welcome
#19 Incompletes page says acquisition is disabled although Lidarr is configured and on foggymtndrifter FIXED v396 Shipped & closed — reopen welcome
#18 Spotify setup shows a redirect URI that PMDA never actually sends bitsofbitsofbits, foggymtndrifter FIXED v396 Shipped & closed — reopen welcome
Settings & onboarding — 11 report(s), 0 open
# Issue Reporter Status Fix Validation
#102 Setting up the AI integrations is enough friction that testers give up bitsofbitsofbits FIXED Shipped & closed — reopen welcome
#100 Reset PMDA returns a 400 and does nothing bitsofbitsofbits FIXED v396 Shipped & closed — reopen welcome
#91 Database-only mode, with an opt-in write-through to files iecj FIXED v408 Shipped & closed — reopen welcome
#85 No dry-run mode: nothing lets a user see what PMDA would do before it does it arty_ai FIXED Shipped & closed — reopen welcome
#80 Web searches during scan are not disclosed or configurable ovizii FIXED v391 Shipped & closed — reopen welcome
#74 [scanner] Report which item the scan is on, not just how far along FIXED Shipped & closed — reopen welcome
#53 [scanner] Self-hosted error telemetry, strictly opt-in FIXED Shipped & closed — reopen welcome
#46 MCP: like artists, genres and labels through the PMDA MCP server meaning_1 FIXED v398 Shipped & closed — reopen welcome
#25 Worker count and batch size display 0 while a manual override is still active ovizii FIXED v396 Shipped & closed — reopen welcome
#20 Spotify Client ID has to be set as a Docker variable, but the docs point at the UI bitsofbitsofbits, foggymtndrifter FIXED v396 Shipped & closed — reopen welcome
#8 Onboarding asks only for the Last.fm API key, settings also asks for the secret lewis91 FIXED v396 Shipped & closed — reopen welcome
Deployment & docs — 15 report(s), 1 open
# Issue Reporter Status Fix Validation
#33 Legacy cleanup campaign: dead modes, dead vars, dead log lines, monolith factoring, security … BACKLOG
#93 Document whether PMDA and Jellyfin can share one music library bitsofbitsofbits FIXED Shipped & closed — reopen welcome
#87 Cache layers are undocumented: which paths want NVMe, and how much each will consume ovizii FIXED Shipped & closed — reopen welcome
#70 [scanner] Test container disk leak filled the Docker pool FIXED Shipped & closed — reopen welcome
#42 Beta instructions point testers at :latest, but the fixes ship on :beta foggymtndrifter FIXED v388 Shipped & closed — reopen welcome
#40 Unraid reuses the cached image when switching to :beta — testers test the old build believing… foggymtndrifter FIXED v388 Shipped & closed — reopen welcome
#38 OOM crashes during first big scan (4G container limit) ovizii FIXED v388 Shipped & closed — reopen welcome
#28 Lost web UI access after updating FIXED Shipped & closed — reopen welcome
#27 Ollama is not detected when it runs in the same Docker stack FIXED Shipped & closed — reopen welcome
#24 Container CPU limit ignored — PMDA sizes itself from the host's CPU count ovizii FIXED v388 Shipped & closed — reopen welcome
#23 Repeated PostgreSQL error: relation "files_albums" does not exist ovizii FIXED v396 Shipped & closed — reopen welcome
#21 Bootstrap is refused over Tailscale — 100.x addresses are treated as public ovizii FIXED v396 Shipped & closed — reopen welcome
#5 UnRAID 7.1.2 inability to create PMDA docker container from default settings related to confi… FIXED Shipped & closed — reopen welcome
#4 KeyError 'Missing required configuration key' FIXED Shipped & closed — reopen welcome
#2 'pull access denied for silkyclouds/pmda' through compose FIXED Shipped & closed — reopen welcome
Sharing & social — 1 report(s), 0 open
# Issue Reporter Status Fix Validation
#31 Device-link check crashes: 'sqlite3.Row' object has no attribute 'get' cissoubaka FIXED v396 Shipped & closed — reopen welcome
Other — 35 report(s), 1 open
# Issue Reporter Status Fix Validation
#134 Resume granularity is per-artist, so a 9,382-album Various Artists bucket restarts from zero … BACKLOG
#155 enhance the "composition" analysis FIXED v404 Shipped & closed — reopen welcome
#153 Manually starting background enrichment process from tools menu leads to API Error: 409 CONFLICT FIXED v396 Shipped & closed — reopen welcome
#152 How to handle "incompletes" without a pmda handbook? FIXED v398 Shipped & closed — reopen welcome
#151 Enrichment vocabulary is undocumented FIXED v396 Shipped & closed — reopen welcome
#135 MusicBrainz local still reports timeouts while the mirror answers the same query in 30 ms FIXED v387 Shipped & closed — reopen welcome
#133 Segfault located: a werkzeug request thread dies in the auth guard, and runtime binding has n… FIXED v367 Shipped & closed — reopen welcome
#132 A resumed scan restores its plan, reports the plan size as albums scanned, and identifies zer… FIXED v366 Shipped & closed — reopen welcome
#131 Export moved the entire intake root (3.8 TB) into Music_matched as a single album on tag-trus… FIXED v362 Shipped & closed — reopen welcome
#130 Three runs claim status running at once, and resume ranks candidates by plan size instead of … FIXED v362 Shipped & closed — reopen welcome
#129 Consider a review-gated tool to contribute releases PMDA finds elsewhere back to MusicBrainz FIXED Shipped & closed — reopen welcome
#128 The loose MusicBrainz search sends fielded syntax to dismax, which cannot parse it: 3 of 40 a… FIXED v387 Shipped & closed — reopen welcome
#127 Run duplicate detection after the MBID backfill, not during the scan FIXED v391 Shipped & closed — reopen welcome
#126 Workers panel: show which providers answered for each in-flight album, as a grid FIXED v391 Shipped & closed — reopen welcome
#125 The MusicBrainz row measures different things from the other providers under the same column … FIXED v396 Shipped & closed — reopen welcome
#124 98% of the MusicBrainz lookup cache is negative, written while MB was deferred or throttled, … FIXED v388 Shipped & closed — reopen welcome
#123 Stopping during the walk loses all folder-probing progress, and the API still reports resume_… FIXED v355 Shipped & closed — reopen welcome
#122 Local MusicBrainz mirror is still paced at the public API's 1 req/s: 25 timeouts against 20 m… FIXED v387 Shipped & closed — reopen welcome
#121 No hard rescan: a bad match can be cached in a way nothing in the UI can clear FIXED v389 Shipped & closed — reopen welcome
#120 Public share pages use a reduced player with no PMDA branding FIXED v400 Shipped & closed — reopen welcome
#119 Request-available notifications are not clickable and do not open the album FIXED v396 Shipped & closed — reopen welcome
#118 Check the MusicBrainz mirror's replication lag before a scan starts matching FIXED v353 Shipped & closed — reopen welcome
#117 Stop snapshot can overwrite every artist name in the resume plan with "Unknown", collapsing t… FIXED v352 Shipped & closed — reopen welcome
#116 Stopping a scan waits for the current artist to finish — three days on a 9,819-album compilat… FIXED v367 Shipped & closed — reopen welcome
#115 Profile backfill dies on a 64 MB /dev/shm and reports it as "No space left on device" FIXED v387 Shipped & closed — reopen welcome
#114 Album progress commits only when an artist completes, so an interrupted scan loses the entire… FIXED v352 Shipped & closed — reopen welcome
#113 Scan parallelism is keyed on artist, so a compilation-heavy intake runs 76% of the plan on a … FIXED v352 Shipped & closed — reopen welcome
#112 Scan progress overstates itself when one artist dominates the plan: 12,792 of 12,950 shown ag… FIXED v352 Shipped & closed — reopen welcome
#111 Three duplicate counts on screen at once, none of them labelled FIXED v391 Shipped & closed — reopen welcome
#110 Duplicate engine evicts a library album on a generic title alone, bypassing the relationship … FIXED v367 Shipped & closed — reopen welcome
#109 Artist MusicBrainz IDs are almost never stored (666 of 115,793) FIXED v388 Shipped & closed — reopen welcome
#108 TheAudioDB is queried by name when the MusicBrainz ID is already known FIXED Shipped & closed — reopen welcome
#107 Worker activity is never published, so a stuck worker is invisible FIXED v335 Shipped & closed — reopen welcome
#106 Discovery emits no durable heartbeat: the scan job goes stale while the scan is healthy FIXED v335 Shipped & closed — reopen welcome
#30 [BUG] numpy error cissoubaka FIXED v396 Shipped & closed — reopen welcome

What PMDA is

PMDA is not a music player, and it is not meant to replace Plex, Plexamp, Navidrome, Jellyfin, beets, Picard, SongKong or Lidarr. The goal is more modest: help you inspect the library behind them.

It currently helps with:

  • finding possible duplicate releases
  • spotting incomplete albums
  • surfacing missing or weak metadata
  • showing missing covers
  • scanning messy intake folders
  • optionally preparing a cleaner destination library

The safest way to try it is read-only first — no deletes or file moves are required.

Links

Testing on Unraid — read this first

Switching a container to the :beta tag does not always pull the new image: Unraid may reuse the cached one, and its update checker can say "up to date" while a newer beta exists (#40). Before every test:

  1. Edit the container, set the repository tag to meaning/pmda:beta, then use Force Update on the Docker page.
  2. Open the web UI and check the bottom of the expanded sidebar: it shows the version actually running (pmda v30x). Every test protocol on this tracker names the version it needs — if the sidebar shows an older one, the image did not update.

Reporting something

Open an issue here, or post on the Discord or the subreddit — reports from both are collected and filed here automatically, so nothing gets lost either way. If your report already exists, you will be pointed at the existing issue rather than getting a duplicate.

Useful things to include: what you expected, what happened, a screenshot, your PMDA version, and how your library is stored (folder structure, tag quality, compilation handling). Large or messy collections are the interesting cases — old rips, bad tags, multiple editions, bootlegs, live albums, classical, partial downloads.

How issues are labelled

Every issue carries up to four labels, so the backlog stays readable:

Axis Labels
Type bug · enhancement · question · documentation
Area area: scan · area: metadata · area: duplicates · area: player · area: mobile · area: sharing · area: settings · area: providers · area: deployment · area: ui
Severity severity: blocker · severity: major · severity: minor · severity: cosmetic
Source source: discord · source: reddit · source: both

Two more mark a state rather than a category: needs-info when a report is waiting on its author, and fix-shipped when a fix has been released and is awaiting confirmation. An issue is closed only once the person who reported it confirms it is actually fixed.

PMDA is still early. Bug reports, screenshots, logs, workflow feedback and criticism are all welcome — the point is to find out where it gets things wrong.

About

Public issue tracker and backlog for PMDA — a self-hosted tool for auditing messy music libraries. No source code here.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors