feat: add session authorization mode configuration (#446)

Add approvals.mode configuration to allow users to enable/disable
session operation authorization. Mode can be 'off' (no auth) or 'manual'
(require auth). Changes trigger automatic gateway restart for config
to take effect.

- Add ApprovalConfig type with mode: 'off' | 'manual'
- Add approvals section to settings store
- Add session authorization toggle in SessionSettings UI
- Add approvals to PLATFORM_SECTIONS for auto-restart
- Add i18n support for all 8 languages

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
ekko
2026-05-04 21:29:39 +08:00
committed by GitHub
parent 99f9dcb2fe
commit d47abf1533
12 changed files with 94 additions and 29 deletions
+2
View File
@@ -475,6 +475,8 @@ jobTriggered: 'Job ausgelost',
liveMonitorHumanOnly: 'Live-Monitor: nur menschliche Sitzungen anzeigen',
liveMonitorHumanOnlyHint: 'Im Live-Monitor Unteragenten- und Sitzungsmonitor-Rauschen standardmäßig ausblenden',
atHourHint: 'Sitzung taglich zu dieser Stunde zurucksetzen',
requireAuth: 'Sitzungsautorisierung',
requireAuthHint: 'Erfordert Autorisierung für Sitzungsvorgänge',
},
privacy: {
redactPii: 'Personliche Daten maskieren',
+2
View File
@@ -526,6 +526,8 @@ export default {
liveMonitorHumanOnly: 'Live monitor: show human sessions only',
liveMonitorHumanOnlyHint: 'Hide sub-agent/session monitor noise in the Live monitor by default',
atHourHint: 'Reset session at this hour daily',
requireAuth: 'Session Authorization',
requireAuthHint: 'Require authorization for session operations',
},
privacy: {
redactPii: 'Redact PII',
+2
View File
@@ -475,6 +475,8 @@ jobTriggered: 'Job ejecutado',
liveMonitorHumanOnly: 'Monitor en vivo: mostrar solo sesiones humanas',
liveMonitorHumanOnlyHint: 'Oculta por defecto el ruido de subagentes y del monitor de sesiones en el monitor en vivo',
atHourHint: 'Reiniciar sesion a esta hora todos los dias',
requireAuth: 'Autorización de sesión',
requireAuthHint: 'Requiere autorización para operaciones de sesión',
},
privacy: {
redactPii: 'Ocultar informacion personal',
+2
View File
@@ -475,6 +475,8 @@ jobTriggered: 'Job declenche',
liveMonitorHumanOnly: 'Moniteur live : nafficher que les sessions humaines',
liveMonitorHumanOnlyHint: 'Masquer par défaut le bruit des sous-agents et du moniteur de session dans le moniteur live',
atHourHint: 'Reinitialiser la session a cette heure chaque jour',
requireAuth: 'Autorisation de session',
requireAuthHint: 'Requiere l\'autorisation pour les operations de session',
},
privacy: {
redactPii: 'Masquer les DPI',
+2
View File
@@ -475,6 +475,8 @@ export default {
liveMonitorHumanOnly: 'ライブモニター: 人間のセッションのみ表示',
liveMonitorHumanOnlyHint: 'ライブモニターでサブエージェントやセッション監視ノイズを既定で隠します',
atHourHint: '毎日指定時刻にセッションをリセット',
requireAuth: 'セッション認証',
requireAuthHint: 'セッション操作に認証を必要とする',
},
privacy: {
redactPii: '個人情報のマスキング',
+2
View File
@@ -475,6 +475,8 @@ export default {
liveMonitorHumanOnly: '라이브 모니터: 사람 세션만 표시',
liveMonitorHumanOnlyHint: '라이브 모니터에서 하위 에이전트 및 세션 모니터 노이즈를 기본으로 숨깁니다',
atHourHint: '매일 지정한 시간에 세션 초기화',
requireAuth: '세션 인증',
requireAuthHint: '세션 작업에 인증 필요',
},
privacy: {
redactPii: '개인정보 마스킹',
+2
View File
@@ -475,6 +475,8 @@ jobTriggered: 'Job acionado',
liveMonitorHumanOnly: 'Monitor ao vivo: mostrar apenas sessões humanas',
liveMonitorHumanOnlyHint: 'Oculta por padrão o ruído de subagentes e do monitor de sessões no monitor ao vivo',
atHourHint: 'Reiniciar sessao neste horario diariamente',
requireAuth: 'Autorização de sessão',
requireAuthHint: 'Requer autorização para operações de sessão',
},
privacy: {
redactPii: 'Ocultar dados pessoais',
+2
View File
@@ -518,6 +518,8 @@ export default {
liveMonitorHumanOnly: '实时监看:仅显示人类会话',
liveMonitorHumanOnlyHint: '在实时监看中默认隐藏子代理和会话监看噪音',
atHourHint: '每天在指定小时重置会话',
requireAuth: '会话授权',
requireAuthHint: '修改会话操作是否授权',
},
privacy: {
redactPii: '脱敏 PII',