save with verify and restart new session

This commit is contained in:
2026-03-13 18:02:44 +01:00
parent cd9d8cda1f
commit 1d48dbe7d5
2 changed files with 57 additions and 8 deletions
+28 -5
View File
@@ -581,8 +581,16 @@
if (msg.type === 'permissions_saved') {
const s = document.getElementById('perms-status');
s.style.display = 'block';
if (msg.ok) { s.style.color = '#34C759'; s.textContent = 'Berechtigungen gespeichert!'; loadPermissions(); }
else { s.style.color = '#FF6B6B'; s.textContent = 'Fehler: ' + (msg.error || '?'); }
if (msg.ok) {
s.style.color = '#34C759';
s.innerHTML = (msg.info || 'Berechtigungen gespeichert!')
+ '<br><span style="color:#FFD60A;font-size:10px;">Aenderungen werden erst bei einer neuen Session wirksam.</span>'
+ ' <button class="btn secondary" onclick="restartAriaSession()" style="padding:2px 8px;font-size:10px;margin-left:4px;">Session neu starten</button>';
loadPermissions();
} else {
s.style.color = '#FF6B6B';
s.textContent = 'Fehler: ' + (msg.error || '?');
}
return;
}
if (msg.type === 'model_info') {
@@ -1222,12 +1230,12 @@
status.style.display = 'none';
}
// Merge: Server-Daten als Basis, unbekannte Tools default an
// Merge: Server-Daten als Basis
permState = {};
const serverPerms = data.permissions || {};
const hasExplicitList = Array.isArray(data.allowedTools) && data.allowedTools.length > 0;
for (const tool of TOOL_DEFS) {
// Wenn Server explizit sagt: check allowedTools
if (data.allowedTools && data.allowedTools.length > 0) {
if (hasExplicitList) {
permState[tool.id] = data.allowedTools.includes(tool.id);
} else if (serverPerms[tool.id] !== undefined) {
permState[tool.id] = !!serverPerms[tool.id];
@@ -1235,6 +1243,12 @@
permState[tool.id] = true; // Default: an
}
}
// Hinweis wenn kein expliziter Filter gesetzt ist
if (!hasExplicitList && !Object.keys(serverPerms).length) {
status.style.display = 'block';
status.style.color = '#FFD60A';
status.textContent = (data.info || '') + ' — Kein Tool-Filter gesetzt: alle Tools sind erlaubt. Speichern um explizit zu setzen.';
}
// Gruppieren nach Kategorie
const cats = {};
@@ -1272,6 +1286,15 @@
document.getElementById('btn-save-perms').disabled = true;
}
function restartAriaSession() {
if (!confirm('Neue Session starten? Die aktuelle Session bleibt erhalten aber wird inaktiv.')) return;
const ts = Date.now().toString(36);
send({ action: 'create_session', sessionName: `aria-${ts}` });
const s = document.getElementById('perms-status');
s.style.color = '#34C759';
s.textContent = 'Neue Session wird gestartet...';
}
// ── Einstellungen: Model ────────────────────────────────
function loadModel() {