aboutsummaryrefslogtreecommitdiffstats
path: root/apps/web/lib
diff options
context:
space:
mode:
authorMohamed Bassem <me@mbassem.com>2025-12-22 16:59:04 +0200
committerGitHub <noreply@github.com>2025-12-22 14:59:04 +0000
commit0bdba54ba24a14e7dc2cfab64084452756bccce7 (patch)
treee7158eec50a462b58f1c25dbd9caf18d483e2e5e /apps/web/lib
parentece68ed078be3f6d66b5dcd7de8ba9853d48be27 (diff)
downloadkarakeep-0bdba54ba24a14e7dc2cfab64084452756bccce7.tar.zst
feat: Add user settings to disable auto tagging/summarization (#2275)
* feat: Add per-user settings to disable auto-tagging and auto-summarization This commit adds user-level controls for AI features when they are enabled on the server. Users can now toggle auto-tagging and auto-summarization on/off from the AI Settings page. Changes: - Added autoTaggingEnabled and autoSummarizationEnabled fields to user table - Updated user settings schemas and API endpoints to handle new fields - Modified inference workers to check user preferences before processing - Added toggle switches to AI Settings page (only visible when server has features enabled) - Generated database migration for new fields - Exposed enableAutoTagging and enableAutoSummarization in client config The settings default to null (use server default). When explicitly set to false, the user's bookmarks will skip the respective AI processing. * revert migration * i18n --------- Co-authored-by: Claude <noreply@anthropic.com>
Diffstat (limited to 'apps/web/lib')
-rw-r--r--apps/web/lib/clientConfig.tsx2
-rw-r--r--apps/web/lib/i18n/locales/en/translation.json5
-rw-r--r--apps/web/lib/userSettings.tsx2
3 files changed, 9 insertions, 0 deletions
diff --git a/apps/web/lib/clientConfig.tsx b/apps/web/lib/clientConfig.tsx
index 9331a7af..ab367be0 100644
--- a/apps/web/lib/clientConfig.tsx
+++ b/apps/web/lib/clientConfig.tsx
@@ -14,6 +14,8 @@ export const ClientConfigCtx = createContext<ClientConfig>({
inference: {
isConfigured: false,
inferredTagLang: "english",
+ enableAutoTagging: false,
+ enableAutoSummarization: false,
},
serverVersion: undefined,
disableNewReleaseCheck: true,
diff --git a/apps/web/lib/i18n/locales/en/translation.json b/apps/web/lib/i18n/locales/en/translation.json
index d05ca702..08dc33e4 100644
--- a/apps/web/lib/i18n/locales/en/translation.json
+++ b/apps/web/lib/i18n/locales/en/translation.json
@@ -222,6 +222,11 @@
},
"ai": {
"ai_settings": "AI Settings",
+ "ai_preferences_description": "Control which AI features are enabled for your account.",
+ "auto_tagging": "Auto-tagging",
+ "auto_tagging_description": "Automatically generate tags for your bookmarks using AI.",
+ "auto_summarization": "Auto-summarization",
+ "auto_summarization_description": "Automatically generate summaries for your bookmarks using AI.",
"tagging_rules": "Tagging Rules",
"tagging_rule_description": "Prompts that you add here will be included as rules to the model during tag generation. You can view the final prompts in the prompt preview section.",
"prompt_preview": "Prompt Preview",
diff --git a/apps/web/lib/userSettings.tsx b/apps/web/lib/userSettings.tsx
index 2bb7c8a5..d35c9e56 100644
--- a/apps/web/lib/userSettings.tsx
+++ b/apps/web/lib/userSettings.tsx
@@ -16,6 +16,8 @@ export const UserSettingsContext = createContext<ZUserSettings>({
readerFontSize: null,
readerLineHeight: null,
readerFontFamily: null,
+ autoTaggingEnabled: null,
+ autoSummarizationEnabled: null,
});
export function UserSettingsContextProvider({