From 4186c4c64c68892248ce8671d9b8e67fc7f884a0 Mon Sep 17 00:00:00 2001 From: Mohamed Bassem Date: Mon, 9 Feb 2026 00:09:10 +0000 Subject: feat(ai): Support restricting AI tags to a subset of existing tags (#2444) * feat(ai): Support restricting AI tags to a subset of existing tags Co-authored-by: Claude --- packages/trpc/models/tags.ts | 4 ++++ packages/trpc/models/users.ts | 3 +++ 2 files changed, 7 insertions(+) (limited to 'packages/trpc/models') diff --git a/packages/trpc/models/tags.ts b/packages/trpc/models/tags.ts index 55532077..1d8f90b9 100644 --- a/packages/trpc/models/tags.ts +++ b/packages/trpc/models/tags.ts @@ -85,6 +85,7 @@ export class Tag { ctx: AuthedContext, opts: { nameContains?: string; + ids?: string[]; attachedBy?: "ai" | "human" | "none"; sortBy?: "name" | "usage" | "relevance"; pagination?: { @@ -119,6 +120,9 @@ export class Tag { opts.nameContains ? like(bookmarkTags.name, `%${opts.nameContains}%`) : undefined, + opts.ids && opts.ids.length > 0 + ? inArray(bookmarkTags.id, opts.ids) + : undefined, ), ) .groupBy(bookmarkTags.id, bookmarkTags.name) diff --git a/packages/trpc/models/users.ts b/packages/trpc/models/users.ts index 671f7d74..3340956a 100644 --- a/packages/trpc/models/users.ts +++ b/packages/trpc/models/users.ts @@ -447,6 +447,7 @@ export class User { autoTaggingEnabled: true, autoSummarizationEnabled: true, tagStyle: true, + curatedTagIds: true, inferredTagLang: true, }, }); @@ -471,6 +472,7 @@ export class User { autoTaggingEnabled: settings.autoTaggingEnabled, autoSummarizationEnabled: settings.autoSummarizationEnabled, tagStyle: settings.tagStyle ?? "as-generated", + curatedTagIds: settings.curatedTagIds ?? null, inferredTagLang: settings.inferredTagLang, }; } @@ -500,6 +502,7 @@ export class User { autoTaggingEnabled: input.autoTaggingEnabled, autoSummarizationEnabled: input.autoSummarizationEnabled, tagStyle: input.tagStyle, + curatedTagIds: input.curatedTagIds, inferredTagLang: input.inferredTagLang, }) .where(eq(users.id, this.user.id)); -- cgit v1.2.3-70-g09d2