Commit Graph

  • 9b1f4939a1 fix(ui): update German, Finnish, Galician, Polish, Portuguese (BR), Thai, Chinese (traditional) translations from POEditor update-translations navidrome-bot 2026-08-03 11:07:43 +00:00
  • 279ff98e0d fix(ui): stop precaching index.html so logins can't show the wrong user (#5882) master Deluan Quintão 2026-08-02 19:46:05 -04:00
  • a4e78d949f fix(ui): keep the placeholder for a cover whose fetch failed artwork-blurhash Deluan 2026-08-02 14:21:35 -04:00
  • a4ab19d605 Merge remote-tracking branch 'origin/master' into artwork-blurhash Deluan 2026-08-02 13:07:10 -04:00
  • f853ca604a refactor(db): migrate all ids to a uniform canonical 128-bit base62 encoding (#5824) Deluan Quintão 2026-08-02 12:58:53 -04:00
  • b40b41584a feat(subsonic): Implement OpenSubsonic topSongsByArtistId extension (#5853) Kendall Garner 2026-08-02 09:39:51 -07:00
  • 810b14ed57 fix(plugins): confine plugin filesystem mounts to their root (#5881) Deluan Quintão 2026-08-02 12:27:08 -04:00
  • 233818659f fix(ui): show the placeholder when a refresh swaps in an uncached cover Deluan 2026-08-02 00:59:36 -04:00
  • 362941fb5c refactor(artwork): drop the orphaned store remover, aggregate sweep failures Deluan 2026-08-01 21:28:01 -04:00
  • d704587eb5 refactor(artwork): split the repository's deletes from its purges by name Deluan 2026-08-01 21:10:01 -04:00
  • cdb9f44735 refactor(model): name the artwork mime lookup for what it is keyed by Deluan 2026-08-01 21:04:26 -04:00
  • 3be5fbd222 refactor(artwork): let the sweep reclaim orphan files instead of prune Deluan 2026-08-01 20:59:33 -04:00
  • 1344e6e660 fix(artwork): keep sweeping past a store file that cannot be removed Deluan 2026-08-01 20:54:13 -04:00
  • a48bdefdc7 refactor(persistence): simplify the artwork dangling-row purge helper Deluan 2026-08-01 20:43:08 -04:00
  • 9c20c83617 Merge branch 'master' into artwork-blurhash Deluan Quintão 2026-07-31 19:20:51 -04:00
  • 8f82a8deaa refactor(model): keep the blurhash off native JSON and fold its specs Deluan 2026-07-31 18:42:27 -04:00
  • df301ae1a8 test(thumbhash): assert against reference goldens, drop the Go port Deluan 2026-07-31 18:25:39 -04:00
  • b13e8d7057 test(thumbhash): drop the shipped-vs-reference benchmark Deluan 2026-07-31 18:10:56 -04:00
  • 9084685fbc test(artwork): benchmark both hash encoders from one file Deluan 2026-07-31 17:58:55 -04:00
  • ecf12b269f test(artwork): drop the decodeArtwork benchmark Deluan 2026-07-31 17:49:04 -04:00
  • a34be43042 perf(artwork): hand both hash encoders one NRGBA thumbnail Deluan 2026-07-31 17:34:14 -04:00
  • 9bba4abc07 feat(ui): use thumbhash for the cover loading placeholder Deluan 2026-07-31 16:34:01 -04:00
  • 4b966ccaea feat(artwork): encode blurhash and thumbhash from one 100px thumbnail Deluan 2026-07-31 16:29:07 -04:00
  • 82b9538bff feat(artwork): hydrate and expose thumbHash on every entity Deluan 2026-07-31 16:27:15 -04:00
  • 313e93c3d9 feat(artwork): persist a thumbhash alongside the blurhash Deluan 2026-07-31 16:24:47 -04:00
  • a4d979c49c test(thumbhash): benchmark against blurhash at the pipeline input size Deluan 2026-07-25 16:32:11 -04:00
  • 4b3a861303 test(thumbhash): fuzz the opaque path and drop an ill-conditioned golden Deluan 2026-07-25 16:14:30 -04:00
  • 3dea79ec29 feat(thumbhash): add a two-pass separable ThumbHash encoder Deluan 2026-07-25 15:56:31 -04:00
  • 6604f8186a test(thumbhash): dither the fixtures so no DCT coefficient is degenerate Deluan 2026-07-25 15:56:02 -04:00
  • 02d253b2b0 fix(thumbhash): re-condition alpha fixture and assert solid.png header Deluan 2026-07-25 15:36:26 -04:00
  • 0c78c65b3c test(thumbhash): add a faithful reference port as the differential oracle Deluan 2026-07-25 15:28:15 -04:00
  • b71ee86fb4 test(thumbhash): vendor the reference and generate golden vectors Deluan 2026-07-25 15:11:28 -04:00
  • d23b68a438 fix: typo in description of --prometheus.enabled (#5878) Mateusz Piotrowski 2026-07-31 14:54:29 +02:00
  • 600ea5482c fix(ui): update Chinese (Simplified) translation (#5873) fxj368 2026-07-31 00:36:37 +08:00
  • fb3efe8a61 refactor(persistence): name the backoff-preserving enqueue for what it does Deluan 2026-07-30 12:16:17 -04:00
  • 3ce92cc055 refactor(artwork): unexport what nothing outside the package calls Deluan 2026-07-30 11:46:53 -04:00
  • d25b11dd53 refactor(artwork): drop the unused Bump/wake path from the worker Deluan 2026-07-30 11:33:30 -04:00
  • 97035c4e1c fix(ui): stop the album grid blanking its covers on refresh Deluan 2026-07-30 08:59:00 -04:00
  • 3ce4a018e0 fix(ui): stop artwork refreshes reloading the whole page Deluan 2026-07-30 01:05:05 -04:00
  • fa8cc91698 test(artwork): cover the album-root and artist-folder path arithmetic Deluan 2026-07-29 22:29:03 -04:00
  • b876bdf28e Merge branch 'master' into artwork-blurhash Deluan 2026-07-29 21:58:43 -04:00
  • 7ea88b974e refactor(artwork): call the album e2e helpers by their real names Deluan 2026-07-29 21:50:30 -04:00
  • 4f29465d27 fix(artwork): do not promote artist folder to album folder (#5856) Kendall Garner 2026-07-30 01:48:42 +00:00
  • 1e0a55a793 refactor(artwork): name the hashed image store folder for how it is addressed Deluan 2026-07-29 21:29:16 -04:00
  • 34f6684922 refactor(config): make the artwork tuning options dev flags Deluan 2026-07-29 21:29:04 -04:00
  • 187c6e117a fix(scanner): keep album tag order from the files instead of alphabetical fix-5871-genre-display Deluan 2026-07-29 18:23:01 -04:00
  • fbcda30473 fix(ui): keep the album grid working outside the Random list Deluan 2026-07-29 17:21:36 -04:00
  • 07a7d76e19 Merge branch 'master' into artwork-blurhash Deluan Quintão 2026-07-29 16:31:29 -04:00
  • 0b629858f7 fix(ui): keep the Random grid blank while a refresh re-rolls Deluan 2026-07-29 16:25:23 -04:00
  • add0a6dc9b feat(config): warn about unrecognized options in the config file (#5870) Deluan Quintão 2026-07-29 13:44:42 -04:00
  • 56a36e4da4 feat(persistence): log SQLite result codes on failed statements Deluan 2026-07-29 08:47:52 -04:00
  • 0dfe460be6 Merge branch 'master' into artwork-blurhash Deluan Quintão 2026-07-28 23:18:48 -04:00
  • d94bf0953e fix(artwork): refresh songs when their album's artwork changes Deluan 2026-07-28 22:37:38 -04:00
  • 2bee12f2fb refactor: simplify the artwork enqueue and blurhash paths Deluan 2026-07-28 22:08:28 -04:00
  • 69291edda7 refactor(ui): replace the blurhash package with a local decoder Deluan 2026-07-28 21:51:32 -04:00
  • d4399d9492 refactor(artwork): derive blurhash components inside Encode Deluan 2026-07-28 21:39:13 -04:00
  • 9349c54ac5 perf(scanner): stop reprocessing album and artist artwork on every full scan Deluan 2026-07-28 21:39:12 -04:00
  • 23548f40a0 fix(share): give visual feedback when downloading from a share (#5865) Deluan Quintão 2026-07-28 16:13:44 -04:00
  • 88d4e8f9de refactor(persistence): collapse the four hydrateArtwork copies into one generic Deluan 2026-07-27 21:58:54 -04:00
  • 8c65931ba7 refactor: use stdlib slices/maps and utils helpers in artwork code Deluan 2026-07-27 21:56:44 -04:00
  • 13659f2c30 test(artwork): make the artists-first backfill assertion non-vacuous Deluan 2026-07-27 21:50:26 -04:00
  • 02fcf8bea7 style(artwork): trim verbose comments to the 1-2 line budget Deluan 2026-07-27 18:57:31 -04:00
  • 20c40521c6 fix(playlist): rebuild the generated cover only when the tracks change Deluan 2026-07-27 17:55:44 -04:00
  • 4cac0b1401 fix(artwork): stop serving artwork for entities that no longer exist Deluan 2026-07-27 16:10:31 -04:00
  • 0669f23471 fix(subsonic): stop serving artwork for a deleted radio Deluan 2026-07-27 15:04:31 -04:00
  • e646ce5065 refactor(artwork): log decoded dimensions as fields, not a formatted string Deluan 2026-07-27 14:51:44 -04:00
  • e0f1acd1a2 feat(artwork): prefix every log message and time the slow steps Deluan 2026-07-27 14:18:27 -04:00
  • 764bf55723 fix(log): stop ShortDur eating significant trailing zeros Deluan 2026-07-27 14:15:57 -04:00
  • fd8df3a51e chore(deps): bump github.com/prometheus/client_golang dependabot/go_modules/github.com/prometheus/client_golang-1.24.1 dependabot[bot] 2026-07-27 17:43:14 +00:00
  • d7f7362ce4 chore(deps): bump github.com/lestrrat-go/jwx/v3 from 3.1.1 to 3.2.0 dependabot/go_modules/github.com/lestrrat-go/jwx/v3-3.2.0 dependabot[bot] 2026-07-27 17:43:01 +00:00
  • 259960a193 chore(deps): bump github.com/pressly/goose/v3 from 3.27.2 to 3.27.3 dependabot/go_modules/github.com/pressly/goose/v3-3.27.3 dependabot[bot] 2026-07-27 17:42:49 +00:00
  • 3a0190dff3 refactor(artwork): unexport artwork.HashImage function Deluan 2026-07-27 10:33:13 -04:00
  • fa879e1576 refactor(artwork): move fakeFolderRepo to artwork_suite_test.go Deluan 2026-07-26 22:25:52 -04:00
  • bf9d328c2a docs(artwork): give each Worker housekeeping method its own godoc Deluan 2026-07-26 22:14:23 -04:00
  • 0ba89dae49 refactor(artwork): name the service for its domain, not its role Deluan 2026-07-26 22:10:31 -04:00
  • 1ceb8ca723 refactor(artwork): expose housekeeping through the Worker Deluan 2026-07-26 22:03:51 -04:00
  • 7efb4d1468 refactor(artwork): accumulate priority-chain state in one place Deluan 2026-07-26 21:59:10 -04:00
  • 85b5f2e76c refactor(artwork): fold Refresh into housekeeping Deluan 2026-07-26 21:54:02 -04:00
  • f9b0717086 refactor(artwork): move resizedItem next to the interface it implements Deluan 2026-07-26 21:51:47 -04:00
  • a5cec6e887 refactor(artwork): put the whole playlist grid in playlist_cover.go Deluan 2026-07-26 21:50:06 -04:00
  • ab5aa03b9f refactor(artwork): collect the external gate contract in one file Deluan 2026-07-26 21:48:24 -04:00
  • eecb7434d3 refactor(artwork): make acquisition a processor with its own receiver Deluan 2026-07-26 21:38:59 -04:00
  • f893690cb6 refactor(artwork): give workerDeps only what the processor uses Deluan 2026-07-26 21:15:23 -04:00
  • b71a40f654 style(artwork): use one log prefix, spelled the way the codebase does Deluan 2026-07-26 21:11:44 -04:00
  • 02b9cc1354 refactor(artwork): funnel every served representation through one path Deluan 2026-07-26 21:08:03 -04:00
  • 1e054cdd28 refactor(artwork): give the resolver a receiver and one capability field Deluan 2026-07-26 20:57:22 -04:00
  • 99ea8d2428 test(artwork): pin that a request never fetches or samples album art Deluan 2026-07-26 20:48:16 -04:00
  • 2ea853248b refactor(artwork): drop queue repository methods only tests called Deluan 2026-07-26 20:30:45 -04:00
  • 1bb1c7464e refactor(artwork): remove dead plumbing from the serving path Deluan 2026-07-26 20:25:48 -04:00
  • 28f3c720da fix(artwork): never settle absent for a kind no recheck job revisits Deluan 2026-07-26 20:16:18 -04:00
  • c9c363523b refactor(artwork): narrow the prune lock and drop redundant in-flight tracking Deluan 2026-07-26 20:07:44 -04:00
  • 9dba0e1106 refactor(tests): enhance database handling with resettable tables and truncation Deluan 2026-07-26 15:59:32 -04:00
  • 04c00fa7ed refactor(artwork): move fingerprint property key const to consts package Deluan 2026-07-26 14:50:30 -04:00
  • 20d155ba58 fix(ui): stop the Random album grid collapsing on every keystroke Deluan 2026-07-26 12:35:29 -04:00
  • 40153bd434 fix(ui): anchor detail pages to the top when opened from a list Deluan 2026-07-26 12:16:01 -04:00
  • ff010f8db1 refactor(model): give ItemImage an AspectRatio method Deluan 2026-07-26 11:26:57 -04:00
  • 09b647c9d0 feat(jellyfin): expose PrimaryImageAspectRatio Deluan 2026-07-26 11:14:09 -04:00
  • d732e5419a fix(artwork): shape the blurhash placeholder to the artwork's aspect ratio Deluan 2026-07-26 10:21:45 -04:00
  • 18f1236595 fix(cache): keep the in-place truncate on windows Deluan 2026-07-26 01:28:38 -04:00
  • 4b9d2178cc fix(cache): give a re-created cache entry its own file Deluan 2026-07-26 01:19:13 -04:00