feat(eu-umbau): Umschalter fuer den KI-Weg in der Oberflaeche

Im Anlege- und Bearbeiten-Dialog einer Lage laesst sich jetzt waehlen, ob sie
ueber den heutigen Weg (Anthropic) oder den EU-Weg (Bedrock Frankfurt + staan)
laeuft; Standard bleibt die Vorgabe der Organisation. Dazu ai_backend in den
Schemas und den Lagen-Endpunkten (Create, Update, Ausgabe), Leerstring setzt
bewusst auf Standard zurueck. In der Lagen-Kopfzeile zeigt ein Kennzeichen
'EU' an, dass die Verarbeitung europaeisch laeuft.

UI-Sync: bewusst NUR online. Der Lokal-Fork hat kein Bedrock-Backend, dort
waere das Feld funktionslos (wie X-Zugaenge und Studio-Gating).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Dieser Commit ist enthalten in:
claude-dev
2026-07-30 21:25:59 +00:00
Ursprung b32c54b22c
Commit 8f5c0e9e5d
5 geänderte Dateien mit 48 neuen und 3 gelöschten Zeilen

Datei anzeigen

@@ -926,6 +926,11 @@ const App = {
typeBadge.className = 'incident-type-badge ' + (incident.type === 'research' ? 'type-research' : 'type-adhoc');
typeBadge.textContent = incident.type === 'research' ? 'Analyse' : 'Live';
// EU-Kennzeichen: nur bei ausdruecklich auf den EU-Weg gestellten Lagen
{ const _eu = document.getElementById('incident-eu-badge');
if (_eu) { _eu.hidden = incident.ai_backend !== 'bedrock';
_eu.title = 'KI-Verarbeitung in der EU (AWS Bedrock Frankfurt), Recherche ueber den europaeischen Suchindex staan'; } }
// Kachel-Label: 'Recherchebericht' fuer Recherche-Lagen, 'Lagebild' fuer Live-Monitoring
const _tI18n = (k, fb) => (typeof T === 'function') ? T(k, fb) : fb;
const _lbLabel = incident.type === 'research'
@@ -1726,6 +1731,7 @@ const App = {
include_telegram: document.getElementById('inc-telegram').checked,
include_x: document.getElementById('inc-x').checked,
visibility: document.getElementById('inc-visibility').checked ? 'public' : 'private',
ai_backend: (document.getElementById('inc-ai-backend') || {}).value || '',
};
},
@@ -2163,6 +2169,7 @@ async handleRefresh() {
{ const _e = document.getElementById('inc-x'); if (_e) _e.checked = !!incident.include_x; }
{ const _e = document.getElementById('inc-visibility'); if (_e) _e.checked = incident.visibility !== 'private'; }
{ const _e = document.getElementById('inc-ai-backend'); if (_e) _e.value = incident.ai_backend || ''; }
updateVisibilityHint();
updateSourcesHint();
toggleTypeDefaults(true);