From fd0bb6aaa0d8035a3b36bdd096d33caa5e629317 Mon Sep 17 00:00:00 2001 From: Jonathan Date: Mon, 13 Jul 2026 00:33:49 +0200 Subject: [PATCH] feat(web): surface discover.listenBrainzUrl; swap maxSeeds->chunkSize in Discovery tab --- web/src/app/api/discover/config/route.test.ts | 8 ++++---- web/src/app/api/discover/config/route.ts | 3 ++- web/src/app/settings/settings-form.tsx | 7 ++++++- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/web/src/app/api/discover/config/route.test.ts b/web/src/app/api/discover/config/route.test.ts index ce85771..86b7adf 100644 --- a/web/src/app/api/discover/config/route.test.ts +++ b/web/src/app/api/discover/config/route.test.ts @@ -13,17 +13,17 @@ describe("discover config API", () => { const body = await (await GET()).json(); expect(body).toMatchObject({ "discover.enabled": "false", "discover.intervalHours": "168", - "discover.maxSeeds": "50", "discover.similarPerSeed": "20", - "discover.albumsPerArtist": "1", "discover.minScore": "0", + "discover.similarPerSeed": "20", "discover.albumsPerArtist": "1", + "discover.minScore": "0", "discover.chunkSize": "5", "discover.listenBrainzUrl": "", }); }); it("PATCH upserts known keys and ignores unknown ones", async () => { - const res = await patch({ "discover.enabled": "true", "discover.maxSeeds": 25, "nope": "x" }); + const res = await patch({ "discover.enabled": "true", "discover.chunkSize": 25, "nope": "x" }); expect((await res.json()).updated).toBe(2); const body = await (await GET()).json(); expect(body["discover.enabled"]).toBe("true"); - expect(body["discover.maxSeeds"]).toBe("25"); + expect(body["discover.chunkSize"]).toBe("25"); expect(await prisma.config.findUnique({ where: { key: "nope" } })).toBeNull(); }); }); diff --git a/web/src/app/api/discover/config/route.ts b/web/src/app/api/discover/config/route.ts index 8dfbfd6..69094a6 100644 --- a/web/src/app/api/discover/config/route.ts +++ b/web/src/app/api/discover/config/route.ts @@ -3,10 +3,11 @@ import { prisma } from "@/lib/db"; const DEFAULTS: Record = { "discover.enabled": "false", "discover.intervalHours": "168", - "discover.maxSeeds": "50", "discover.similarPerSeed": "20", "discover.albumsPerArtist": "1", "discover.minScore": "0", + "discover.chunkSize": "5", + "discover.listenBrainzUrl": "", }; export async function GET() { diff --git a/web/src/app/settings/settings-form.tsx b/web/src/app/settings/settings-form.tsx index 9309b78..4ca599c 100644 --- a/web/src/app/settings/settings-form.tsx +++ b/web/src/app/settings/settings-form.tsx @@ -17,7 +17,7 @@ const TABS: Tab[] = ["Qobuz", "Soulseek", "Library", "Monitor", "Discovery"]; const DISCOVERY_FIELDS: [string, string][] = [ ["discover.intervalHours", "Interval (hours)"], - ["discover.maxSeeds", "Max seeds per sweep"], + ["discover.chunkSize", "Seeds per chunk"], ["discover.similarPerSeed", "Similar per seed"], ["discover.albumsPerArtist", "Albums per artist"], ["discover.minScore", "Min score"], @@ -323,6 +323,11 @@ export function SettingsForm() { ))} +
{discoverSaved ? Saved : null}