ui: simplify settings planned sections

This commit is contained in:
a.tolmachev
2026-04-12 02:00:25 +03:00
parent e628720e7a
commit cf3cadce6c
3 changed files with 20 additions and 48 deletions
+6 -7
View File
@@ -2,20 +2,19 @@
## Current
### `feat/frontend-settings-honesty-pass`
### `feat/frontend-command-palette-decision`
Status: in_progress
DoD:
- settings page does not present non-functional controls as if they were interactive
- planned notification capabilities are collapsed into an honest informational block
- page subtitle stays user-facing and describes the live settings surface
- EN and RU copy remain aligned after the cleanup
- existing working settings actions keep their current behavior
- the `⌘K` affordance in the shell either works end-to-end or is removed everywhere
- no dead command-palette trigger remains in desktop navigation
- EN and RU copy stay aligned for the chosen outcome
- the chosen outcome is verified in the UI smoke path
## Next
- `feat/frontend-command-palette-decision`
- `feat/frontend-xss-hardening`
## Backlog
+4 -31
View File
@@ -277,15 +277,14 @@
<div style="padding: 4px 20px 16px;">
<div class="settings-section-divider" style="margin-top:0;"></div>
<div class="planned-section-title">
<span data-i18n="settings.security.capabilities_title">Planned security capabilities</span>
<span class="planned-badge" data-i18n="settings.planned_badge">Planned</span>
<span data-i18n="settings.security.capabilities_title">More security options</span>
</div>
<div class="callout warning" style="margin-bottom:0;">
<svg class="callout-icon" width="15" height="15" viewBox="0 0 16 16" fill="none" stroke="var(--amber)" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round">
<polygon points="8,1.5 15.5,14.5 0.5,14.5" fill="none"/><path d="M8 6v4M8 11.5v.5"/>
</svg>
<div>
<strong data-i18n="settings.security.not_available">Not available in this build.</strong> <span data-i18n="settings.security.capabilities_body">Two-factor authentication, passkeys and multi-session inventory are planned, but the current live flow is password-based login with one HttpOnly browser session.</span>
<strong data-i18n="settings.security.not_available">Available later.</strong> <span data-i18n="settings.security.capabilities_body">Two-factor authentication, passkeys, and multi-session controls will be added later. The current live flow uses password sign-in with one HttpOnly browser session.</span>
</div>
</div>
</div>
@@ -310,10 +309,7 @@
<div id="section-notifications" class="section-anchor">
<div class="section-card" style="margin-bottom: 20px;">
<div class="section-card-header">
<div class="planned-section-title" style="margin-bottom:0;">
<span class="section-card-title" data-i18n="settings.notifications.title">Notification preferences</span>
<span class="planned-badge" data-i18n="settings.planned_badge">Planned</span>
</div>
<div class="section-card-title" data-i18n="settings.notifications.title">Notifications</div>
</div>
<div style="padding: 8px 20px 16px;">
<div class="callout info" style="margin-bottom:14px;">
@@ -322,30 +318,7 @@
<path d="M8 11V8M8 5.5V5"/>
</svg>
<div>
<strong data-i18n="settings.notifications.not_ready_title">Notifications are not wired yet.</strong> <span data-i18n="settings.notifications.not_ready_body">Alert routing and per-user preferences are planned, but this build does not persist or deliver notification settings.</span>
</div>
</div>
<div class="planned-list">
<div class="planned-item">
<div class="planned-item-head">
<div class="planned-item-title" data-i18n="settings.notifications.spike_title">Operation error spike</div>
<span class="planned-badge small" data-i18n="settings.planned_badge">Planned</span>
</div>
<div class="planned-item-desc" data-i18n="settings.notifications.spike_body">Alert when error rate exceeds a rolling threshold for a published tool.</div>
</div>
<div class="planned-item">
<div class="planned-item-head">
<div class="planned-item-title" data-i18n="settings.notifications.latency_title">Upstream latency degradation</div>
<span class="planned-badge small" data-i18n="settings.planned_badge">Planned</span>
</div>
<div class="planned-item-desc" data-i18n="settings.notifications.latency_body">Notify operators when p99 latency rises sharply above the baseline.</div>
</div>
<div class="planned-item">
<div class="planned-item-head">
<div class="planned-item-title" data-i18n="settings.notifications.digest_title">Quota and usage digests</div>
<span class="planned-badge small" data-i18n="settings.planned_badge">Planned</span>
</div>
<div class="planned-item-desc" data-i18n="settings.notifications.digest_body">Deliver periodic summaries for quota consumption, errors and workspace activity.</div>
<strong data-i18n="settings.notifications.not_ready_title">Available later.</strong> <span data-i18n="settings.notifications.not_ready_body">Notification routing and personal preferences will be added later.</span>
</div>
</div>
</div>
+10 -10
View File
@@ -396,9 +396,9 @@ var TRANSLATIONS = {
'settings.security.mismatch': 'New password and confirmation do not match.',
'settings.security.saved': 'Password updated.',
'settings.security.save_error': 'Failed to change password',
'settings.security.capabilities_title': 'Planned security capabilities',
'settings.security.capabilities_body': 'Two-factor authentication, passkeys and multi-session inventory are planned, but the current live flow is password-based login with one HttpOnly browser session.',
'settings.security.not_available': 'Not available in this build.',
'settings.security.capabilities_title': 'More security options',
'settings.security.capabilities_body': 'Two-factor authentication, passkeys, and multi-session controls will be added later. The current live flow uses password sign-in with one HttpOnly browser session.',
'settings.security.not_available': 'Available later.',
'settings.session.title': 'Current session',
'settings.session.browser': 'Browser session',
'settings.session.current': 'current',
@@ -406,8 +406,8 @@ var TRANSLATIONS = {
'settings.session.unavailable': 'Session details are unavailable. Use Log out to revoke the current browser session.',
'settings.session.current_workspace': 'current workspace',
'settings.session.summary': '{email} · {role} in {workspace}. Use Log out to revoke the current browser session.',
'settings.notifications.title': 'Notification preferences',
'settings.notifications.not_ready_title': 'Notifications are coming later.',
'settings.notifications.title': 'Notifications',
'settings.notifications.not_ready_title': 'Available later.',
'settings.notifications.not_ready_body': 'Notification routing and per-user preferences will be added later.',
'settings.planned_badge': 'Planned',
'settings.notifications.spike_title': 'Operation error spike',
@@ -1403,9 +1403,9 @@ var TRANSLATIONS = {
'settings.security.mismatch': 'Новый пароль и подтверждение не совпадают.',
'settings.security.saved': 'Пароль обновлен.',
'settings.security.save_error': 'Не удалось изменить пароль',
'settings.security.capabilities_title': 'Запланированные возможности безопасности',
'settings.security.capabilities_body': 'Двухфакторная аутентификация, passkeys и инвентарь нескольких сессий запланированы, но в текущем live-flow используется логин по паролю и одна HttpOnly browser session.',
'settings.security.not_available': 'Недоступно в этой сборке.',
'settings.security.capabilities_title': 'Дополнительные параметры безопасности',
'settings.security.capabilities_body': 'Двухфакторная аутентификация, passkeys и управление несколькими сессиями появятся позже. Сейчас доступен вход по паролю с одной HttpOnly browser session.',
'settings.security.not_available': 'Появится позже.',
'settings.session.title': 'Текущая сессия',
'settings.session.browser': 'Сессия браузера',
'settings.session.current': 'текущая',
@@ -1413,8 +1413,8 @@ var TRANSLATIONS = {
'settings.session.unavailable': 'Детали сессии недоступны. Используйте «Выйти», чтобы отозвать текущую browser session.',
'settings.session.current_workspace': 'текущий воркспейс',
'settings.session.summary': '{email} · {role} в {workspace}. Используйте «Выйти», чтобы отозвать текущую browser session.',
'settings.notifications.title': 'Настройки уведомлений',
'settings.notifications.not_ready_title': 'Уведомления пока не подключены.',
'settings.notifications.title': 'Уведомления',
'settings.notifications.not_ready_title': 'Появятся позже.',
'settings.notifications.not_ready_body': 'Маршрутизация уведомлений и персональные настройки появятся позже.',
'settings.planned_badge': 'Запланировано',
'settings.notifications.spike_title': 'Всплеск ошибок операции',