feat(summary): add auto-summary preference for message previews

- Add new preference option to enable automatic AI summarization
- Update all localization files with new preference text
- Implement preference check in message display script
- Add default preference setting in options configuration
- Include preference toggle in options UI

This adds a user-configurable option to automatically generate and display AI summaries when viewing email messages, with appropriate warnings about data transmission to AI services.
This commit is contained in:
Ronald Klarenbeek 2025-12-26 22:20:13 +01:00
parent dcbf9d3dcd
commit bd66a37d35
14 changed files with 100 additions and 0 deletions

View file

@ -1166,5 +1166,11 @@
},
"prefs_OptionText_get_calendar_event_Sparks_wrong_version": {
"message": "Pro používání funkcí událostí v kalendáři a úloh, nainstalujte aktualizovanou verzi doplňku ThunderAI Sparks."
},
"prefs_OptionText_auto_summary": {
"message": "Povolit automatické AI shrnutí pro náhledy zpráv"
},
"prefs_OptionText_auto_summary_Info": {
"message": "Pokud je zaškrtnuto, ThunderAI automaticky vygeneruje a zobrazí AI shrnutí nad e-mailovými zprávami, když jsou otevřeny. Mějte na paměti, že to znamená, že všechny zprávy, které si prohlížíte, budou okamžitě odeslány do nakonfigurované AI služby."
}
}

View file

@ -1311,5 +1311,13 @@
},
"Optional_Permission_Denied_Model_Fetching": {
"message": "Sie haben die optionale Berechtigung verweigert, die zum Abrufen der Modelle für diese Integration erforderlich ist."
},
"prefs_OptionText_auto_summary": {
"message": "Automatische KI-Zusammenfassung für Nachrichten-Vorschau aktivieren",
"description": ""
},
"prefs_OptionText_auto_summary_Info": {
"message": "Wenn aktiviert, wird ThunderAI automatisch KI-Zusammenfassungen über E-Mail-Nachrichten generieren und anzeigen, wenn sie geöffnet werden. Beachten Sie, dass dies bedeutet, dass alle Nachrichten, die Sie in der Vorschau anzeigen, sofort an den konfigurierten KI-Dienst gesendet werden.",
"description": ""
}
}

View file

@ -1700,5 +1700,13 @@
"Optional_Permission_Denied_Model_Fetching": {
"message": "You have denied the optional permission needed to fetch models for this integration.",
"description": ""
},
"prefs_OptionText_auto_summary": {
"message": "Enable automatic AI summarization for message previews",
"description": ""
},
"prefs_OptionText_auto_summary_Info": {
"message": "If checked, ThunderAI will automatically generate and display AI summaries above email messages when they are opened. Note that this means all messages you preview will immediately be sent to the configured AI service.",
"description": ""
}
}

View file

@ -187,5 +187,13 @@
},
"chatgpt_win_model_warning": {
"message": "Por alguna razón, no es posible verificar si el modelo correcto está cargado. Por ahora, puedes pulsar el botón azul para continuar."
},
"prefs_OptionText_auto_summary": {
"message": "Habilitar resumen automático de IA para vistas previas de mensajes",
"description": ""
},
"prefs_OptionText_auto_summary_Info": {
"message": "Si está activado, ThunderAI generará y mostrará automáticamente resúmenes de IA sobre los mensajes de correo electrónico cuando se abran. Ten en cuenta que esto significa que todos los mensajes que previsualices se enviarán inmediatamente al servicio de IA configurado.",
"description": ""
}
}

View file

@ -1311,5 +1311,13 @@
},
"Optional_Permission_Denied_Model_Fetching": {
"message": "Vous avez refusé lautorisation facultative nécessaire pour récupérer les modèles pour cette intégration."
},
"prefs_OptionText_auto_summary": {
"message": "Activer la synthèse automatique par IA pour les aperçus de messages",
"description": ""
},
"prefs_OptionText_auto_summary_Info": {
"message": "Si cette option est cochée, ThunderAI générera et affichera automatiquement des synthèses par IA au-dessus des messages électroniques lorsqu'ils sont ouverts. Notez que cela signifie que tous les messages que vous prévisualisez seront immédiatement envoyés au service IA configuré.",
"description": ""
}
}

View file

@ -1314,5 +1314,13 @@
},
"Optional_Permission_Denied_Model_Fetching": {
"message": "Hai negato lautorizzazione necessaria per recuperare i modelli per questa integrazione."
},
"prefs_OptionText_auto_summary": {
"message": "Abilita il riassunto automatico AI per le anteprime dei messaggi",
"description": ""
},
"prefs_OptionText_auto_summary_Info": {
"message": "Se abilitata, ThunderAI genererà e mostrerà automaticamente i riassunti AI sopra le email quando vengono aperte. Nota che questo significa che tutte le email che visualizzi in anteprima verranno immediatamente inviate al servizio AI configurato.",
"description": ""
}
}

View file

@ -908,5 +908,13 @@
},
"placeholder_selected_html": {
"message": "Zaznaczony HTML"
},
"prefs_OptionText_auto_summary": {
"message": "Włącz automatyczne podsumowanie AI dla podglądów wiadomości",
"description": ""
},
"prefs_OptionText_auto_summary_Info": {
"message": "Jeśli zaznaczone, ThunderAI automatycznie wygeneruje i wyświetli podsumowania AI nad wiadomościami e-mail, gdy zostaną otwarte. Pamiętaj, że oznacza to, że wszystkie wiadomości, które przeglądasz, zostaną natychmiast wysłane do skonfigurowanej usługi AI.",
"description": ""
}
}

View file

@ -854,5 +854,11 @@
},
"SpamFilter_PageTitle": {
"message": "Gerenciar configurações do filtro de spam"
},
"prefs_OptionText_auto_summary": {
"message": "Mostrar resumo automático na visualização de mensagens"
},
"prefs_OptionText_auto_summary_Info": {
"message": "Se marcado, um resumo gerado por IA será exibido automaticamente acima das mensagens na visualização."
}
}

View file

@ -172,5 +172,13 @@
},
"chatgpt_win_send": {
"message": "Enviar"
},
"prefs_OptionText_auto_summary": {
"message": "Ativar resumo automático de IA para pré-visualizações de mensagens",
"description": ""
},
"prefs_OptionText_auto_summary_Info": {
"message": "Se ativado, o ThunderAI gerará e mostrará automaticamente resumos de IA acima das mensagens de e-mail quando forem abertas. Note que isso significa que todas as mensagens que você visualizar serão enviadas imediatamente para o serviço de IA configurado.",
"description": ""
}
}

View file

@ -1223,5 +1223,11 @@
},
"OpenAIComp_ClearModelsList_Confirm": {
"message": "Вы уверены, что хотите очистить список моделей? Это действие не может быть отменено."
},
"prefs_OptionText_auto_summary": {
"message": "Показывать автоматическое резюме в просмотре сообщений"
},
"prefs_OptionText_auto_summary_Info": {
"message": "Если отмечено, резюме, сгенерированное ИИ, будет автоматически отображаться над сообщениями в просмотре."
}
}

View file

@ -919,5 +919,11 @@
},
"customPrompts_form_label_use_diff_viewer_title": {
"message": "当操作设置为“替换文本”时,可以选择差异查看器。"
},
"prefs_OptionText_auto_summary": {
"message": "在消息预览中显示自动摘要"
},
"prefs_OptionText_auto_summary_Info": {
"message": "如果选中AI生成的摘要将自动显示在消息预览上方。"
}
}

View file

@ -1,4 +1,12 @@
async function showSummaryPane() {
// Check if auto-summary is enabled in user preferences
const result = await browser.storage.sync.get('auto_summary_enabled');
// If auto-summary is disabled or not set, don't show anything
if (!result.auto_summary_enabled) {
return;
}
// Create the summary pane element
const summaryPane = document.createElement("div");
summaryPane.className = "thunderai-summary-pane";

View file

@ -90,4 +90,5 @@ export const prefs_default = {
spamfilter_openai_comp_model: '',
spamfilter_google_gemini_model: '',
spamfilter_anthropic_model: '',
auto_summary_enabled: false, // Enable automatic AI summarization for message previews
}

View file

@ -125,6 +125,17 @@
</label>
</td>
</tr>
<tr>
<td style="width:20em"><label>
<span class="opt_title">__MSG_prefs_OptionText_auto_summary__</span>
</label></td>
<td>
<label>
<input type="checkbox" id="auto_summary_enabled" name="auto_summary_enabled" class="option-input" />
&nbsp;<span>__MSG_prefs_OptionText_auto_summary_Info__</span>
</label>
</td>
</tr>
<tr class="add_tags_tr">
<td><span class="opt_title">__MSG_prefs_OptionText_add_tags__</span>
<br><button id="btnManageTagsInfo" class="btn_small">__MSG_prefs_OptionText_btnManageTagsInfo__</button></td>