Skip to content

Releases: iuliandita/digarr

v0.12.30

01 Apr 08:40

Choose a tag to compare

Fixes

  • AI name confusion detection (#42): Add two new filters for AI recommendations that catch hallucinated artist names:
    1. Name similarity check -- rejects when the recommended artist name is suspiciously similar to (substring of) a top listened artist. Catches patterns like the AI outputting "Sonic Youth Junior" when the user listens to "Sonic Youth".
    2. Reasoning cross-check -- rejects when the AI reasoning text explicitly mentions a different top artist by name. Catches patterns like recommending "Digital Underground" with a description that references "The Velvet Underground".

These checks add a third defense layer alongside the existing genre overlap rejection (v0.12.24) and top artist exclusion (v0.12.25). Particularly effective for smaller/faster models (e.g. gemini-flash) that are more prone to name confusion hallucinations.

Tests

  • Added test coverage for name confusion detection (substring match, reasoning cross-check, short name false positive avoidance)

v0.12.29

01 Apr 08:28

Choose a tag to compare

Fixes

  • Subscription runner: wire topArtistNames exclusion so subscriptions no longer recommend artists the user already listens to heavily
  • AI response parser: track JSON string context when matching brackets -- fixes truncation on responses containing [Deluxe Edition], [feat. X], etc.
  • AI response parser: handle escaped backslashes correctly (\\\" vs \\")
  • Webhook stats: report pre-filter candidate count as discovered instead of duplicating the added count
  • Library seed shuffle: replace biased sort(() => Math.random() - 0.5) with Fisher-Yates for uniform distribution
  • Deploy manifests: update stale image tags to 0.12.28 in k8s deployment, docker-compose comment, and bug report template

Tests

  • Added test coverage for brackets inside JSON string values
  • Added test coverage for escaped backslash edge case

v0.12.28

31 Mar 11:08

Choose a tag to compare

Bug Fixes

  • Settings link -- user dropdown Settings link now navigates correctly (was silently failing due to programmatic navigate() inside a conditionally-rendered dropdown)
  • Subscription presets -- "Switch to a preset" button in ai-only mode now shows the presets panel (empty state guard was blocking it)

Fixes #47

v0.12.27

31 Mar 00:19

Choose a tag to compare

Changes

  • Docker: Add alpine container variant. Tags: 0.12.27-alpine, 0.12-alpine, alpine
  • Docker: Harden production compose -- resource limits, logging rotation, read-only rootfs, no-new-privileges, cap_drop ALL, explicit healthcheck on app
  • Docker: Switch compose to env_file pattern (replaces 20+ inline env vars)
  • Docker: Pin default image to 0.12 minor track instead of :latest
  • Docker: Add BuildKit syntax pragma, clean bun install cache
  • Docker: Postgres gets minimal capabilities (SETUID/SETGID/CHOWN/FOWNER/DAC_READ_SEARCH)

Bug Fixes

  • pipeline: Reject resolved artists with zero genre overlap (catches AI name confusion). Closes #42.
  • pipeline: Exclude top listened artists from recommendations server-side (backstop for models ignoring prompt). Ref #42.

Other

  • Bug report template now asks for listening sources, targets, and AI provider/model
  • Default theme switched from Tokyo Night to Youtarr for new users

v0.12.26

30 Mar 23:36

Choose a tag to compare

Changes

  • Bug report template: now asks for listening sources, targets/integrations, and AI provider/model
  • Default theme: switched from Tokyo Night to Youtarr for new users (existing users keep their preference)

v0.12.25

30 Mar 23:20

Choose a tag to compare

Bug Fixes

  • pipeline: Exclude top listened artists from recommendations server-side. The AI prompt tells models to skip the user's top artists, but smaller models (e.g. gemini-flash) ignore the instruction. The filter stage now checks resolved artist names (case-insensitive) against the taste profile's top artists, and folds their MBIDs into the library exclusion set. Ref #42.

v0.12.24

30 Mar 22:38

Choose a tag to compare

Bug Fixes

  • pipeline: Reject resolved artists when AI-provided genres have zero overlap with the MusicBrainz candidate's tags. Catches cases where the AI confuses similarly-named artists (e.g. "Digital Underground" vs "The Velvet Underground"). Closes #42.
  • pipeline: Fix pre-existing edge case where candidates with no MB tags were silently dropped instead of accepted during genre-based disambiguation.
  • prompt: Add explicit name/description consistency warning to AI recommendation and mood prompts.

v0.12.23

30 Mar 18:07

Choose a tag to compare

docs: add Docker Desktop installation guide (macOS/Windows)

v0.12.22

30 Mar 18:06

Choose a tag to compare

docs: add Synology NAS installation guide

v0.12.21

30 Mar 18:03

Choose a tag to compare

feat(deploy): add Unraid Community Applications template