Skip to content

10.11.2.1 (beta)

Pre-release
Pre-release

Choose a tag to compare

@IDisposable IDisposable released this 22 Jun 02:37
· 118 commits to main since this release
ba35cf9

Discogs (new; needs a Discogs token):

  • Complete curated record labels, chosen with the
    type-ahead chip picker (search, pick a match, it
    becomes a removable chip).
  • Complete an owned artist's discography, covering
    artists the MusicBrainz sources cannot (no
    MusicBrainz id), with conservative exact-name artist
    resolution.
  • Resolve real id->label names.
  • Recognize an owned album by a conservative
    artist-and-title name match as well as by Discogs id,
    so it works on MusicBrainz-tagged libraries.

Diagnose (deeper and wider):

  • Deeper analysis compares external ids to tell a real
    misidentification from a coincidental title clash.
  • Episode and season gaps get their own diagnosis
    that spots a same-named reboot mis-tagged onto
    a series (the V 1984 versus V 2009 case).
  • Album and book gaps are diagnosable.
  • The Diagnose button shows on every gap kind.
  • Name-plus-year matching prefers an exact-year hit
    over the one-year tolerance.

Reboot handling:

  • The series cross-checks skip a same-named reboot
    resolved for a series, by year.
  • The library source no longer reports a reboot's later
    seasons as missing episodes of the single-season
    original (it compares against the owned-episode year
    range).

Music and books:

  • The OpenLibrary Books source is hardened using
    real author data: resolve the author from an owned
    work, a conservative shortest-name matcher for the
    name search, works listed via the search endpoint
    so they carry a year, and de-duplication of works
    that share a title. Captured fixtures added for the
    new endpoints.

External calls (stay clear of rate-limit bans, scan faster):

  • Every external API call now goes through a
    read-through memory cache, so a repeated lookup
    within or across scans does not hit the network again.
  • Proactive per-service rate pacing for MusicBrainz
    and Discogs (one request a second).
  • A per-service circuit breaker moves the scan past a
    down service, and each source skips a service once
    it has been given up on.
  • Stable id-to-name lookups (studio, keyword, and
    label names) are cached for far longer.
  • The scan runs its sources concurrently, so a slow
    provider no longer holds up the fast ones, and
    streams results into the report per item, so gaps
    appear as they are found.

Dashboard and UI:

  • The Type chooser always shows every media
    domain, even one with zero entries this scan.
  • The settings panel no longer reloads the report
    on scan-status polls while it is open.
  • The dashboard is authored as separate report,
    settings, CSS, and JS files, concatenated at build
    time.

Housekeeping:

  • Shared TextKey.Normalize for title and name
    matching; one ServiceNames constant for the
    HTTP service names; the Discogs provider-id
    constant for the artist id check; explanatory
    comments removed from the build files;
    README, catalog description, and roadmap
    updated for the grown scope.