Manage the built-in daemon from one place in settings (#1938)
* feat(settings): consolidate daemon management into the host page The app-level Daemon section and the localhost host page rendered the same daemon card in two places. The host page is now the single home: the Host sidebar group leads with Overview, and a desktop-only "Enable built-in daemon" option in the host switcher recovers a removed localhost connection. Old settings/daemon deep links redirect (COMPAT-tagged). * fix(settings): hide daemon recovery option when the server id probe fails Review feedback: !query.isLoading treated an errored IPC probe as resolved, so the recovery affordance could show without knowing the local server id. Replace the resolved-boolean hook with a single discriminated state hook (loading | error | resolved) — errors hide the affordance and fall back to the settings root in the redirect. Also collapses the two query subscriptions per caller into one. * fix(settings): keep daemon recovery reachable when no hosts remain Review feedback: removing localhost as the only host takes the settings sidebar down its no-host branch, which never mounts the host picker — so the "Enable built-in daemon" option was unreachable in the most common recovery case. The sidebar now owns the single hook call, passes it to the picker, and renders the same action as a sidebar row next to "Add host" when no hosts exist. * test(e2e): update settings host header to Overview Test drift: the host section's sidebar/header label was intentionally renamed to "Overview"; the spec still asserted the old "Host" title. Also assert the retired app-level Daemon row stays absent.
This commit is contained in:
@@ -1404,6 +1404,7 @@ export const ar: TranslationResources = {
|
||||
},
|
||||
backToWorkspace: "خلف",
|
||||
addHost: "أضف مضيفًا",
|
||||
enableBuiltInDaemon: "تفعيل البرنامج الخفي المدمج",
|
||||
projects: "المشاريع",
|
||||
projectList: {
|
||||
hostLoadFailed: "تعذر تحميل المشاريع من المضيف{{hostName}}:{{message}}",
|
||||
@@ -1412,7 +1413,6 @@ export const ar: TranslationResources = {
|
||||
groupInfo: "حول{{title}}",
|
||||
sections: {
|
||||
general: "عام",
|
||||
daemon: "Daemon",
|
||||
appearance: "مظهر",
|
||||
shortcuts: "الاختصارات",
|
||||
integrations: "التكامل",
|
||||
@@ -1427,7 +1427,7 @@ export const ar: TranslationResources = {
|
||||
providers: "مقدمي الخدمات",
|
||||
usage: "الاستخدام",
|
||||
terminals: "Terminals",
|
||||
host: "Host",
|
||||
host: "نظرة عامة",
|
||||
},
|
||||
general: {
|
||||
title: "عام",
|
||||
|
||||
@@ -1412,6 +1412,7 @@ export const en = {
|
||||
},
|
||||
backToWorkspace: "Back",
|
||||
addHost: "Add host",
|
||||
enableBuiltInDaemon: "Enable built-in daemon",
|
||||
projects: "Projects",
|
||||
projectList: {
|
||||
hostLoadFailed: "Couldn't load projects from host {{hostName}}: {{message}}",
|
||||
@@ -1420,7 +1421,6 @@ export const en = {
|
||||
groupInfo: "About {{title}}",
|
||||
sections: {
|
||||
general: "General",
|
||||
daemon: "Daemon",
|
||||
appearance: "Appearance",
|
||||
shortcuts: "Shortcuts",
|
||||
integrations: "Integrations",
|
||||
@@ -1435,7 +1435,7 @@ export const en = {
|
||||
providers: "Providers",
|
||||
usage: "Usage",
|
||||
terminals: "Terminals",
|
||||
host: "Host",
|
||||
host: "Overview",
|
||||
},
|
||||
general: {
|
||||
title: "General",
|
||||
|
||||
@@ -1443,6 +1443,7 @@ export const es: TranslationResources = {
|
||||
},
|
||||
backToWorkspace: "Atrás",
|
||||
addHost: "Agregar anfitrión",
|
||||
enableBuiltInDaemon: "Activar el demonio integrado",
|
||||
projects: "Proyectos",
|
||||
projectList: {
|
||||
hostLoadFailed: "No se pudieron cargar proyectos desde el host{{hostName}}:{{message}}",
|
||||
@@ -1451,7 +1452,6 @@ export const es: TranslationResources = {
|
||||
groupInfo: "Acerca de{{title}}",
|
||||
sections: {
|
||||
general: "General",
|
||||
daemon: "Daemon",
|
||||
appearance: "Apariencia",
|
||||
shortcuts: "Atajos",
|
||||
integrations: "Integraciones",
|
||||
@@ -1466,7 +1466,7 @@ export const es: TranslationResources = {
|
||||
providers: "Proveedores",
|
||||
usage: "Uso",
|
||||
terminals: "Terminals",
|
||||
host: "Host",
|
||||
host: "Resumen",
|
||||
},
|
||||
general: {
|
||||
title: "General",
|
||||
|
||||
@@ -1446,6 +1446,7 @@ export const fr: TranslationResources = {
|
||||
},
|
||||
backToWorkspace: "Dos",
|
||||
addHost: "Ajouter un hôte",
|
||||
enableBuiltInDaemon: "Activer le démon intégré",
|
||||
projects: "Projets",
|
||||
projectList: {
|
||||
hostLoadFailed: "Impossible de charger les projets depuis l'hôte{{hostName}}:{{message}}",
|
||||
@@ -1454,7 +1455,6 @@ export const fr: TranslationResources = {
|
||||
groupInfo: "À propos de{{title}}",
|
||||
sections: {
|
||||
general: "Général",
|
||||
daemon: "Daemon",
|
||||
appearance: "Apparence",
|
||||
shortcuts: "Raccourcis",
|
||||
integrations: "Intégrations",
|
||||
@@ -1469,7 +1469,7 @@ export const fr: TranslationResources = {
|
||||
providers: "Fournisseurs",
|
||||
usage: "Utilisation",
|
||||
terminals: "Terminals",
|
||||
host: "Host",
|
||||
host: "Aperçu",
|
||||
},
|
||||
general: {
|
||||
title: "Général",
|
||||
|
||||
@@ -1421,6 +1421,7 @@ export const ja: TranslationResources = {
|
||||
},
|
||||
backToWorkspace: "戻る",
|
||||
addHost: "ホストを追加",
|
||||
enableBuiltInDaemon: "組み込みデーモンを有効にする",
|
||||
projects: "プロジェクト",
|
||||
projectList: {
|
||||
hostLoadFailed: "ホスト{{hostName}}からプロジェクトを読み込めませんでした: {{message}}",
|
||||
@@ -1429,7 +1430,6 @@ export const ja: TranslationResources = {
|
||||
groupInfo: "{{title}}について",
|
||||
sections: {
|
||||
general: "一般",
|
||||
daemon: "デーモン",
|
||||
appearance: "外観",
|
||||
shortcuts: "ショートカット",
|
||||
integrations: "連携",
|
||||
@@ -1444,7 +1444,7 @@ export const ja: TranslationResources = {
|
||||
providers: "プロバイダー",
|
||||
usage: "使用状況",
|
||||
terminals: "ターミナル",
|
||||
host: "ホスト",
|
||||
host: "概要",
|
||||
},
|
||||
general: {
|
||||
title: "一般",
|
||||
|
||||
@@ -1429,6 +1429,7 @@ export const ptBR: TranslationResources = {
|
||||
},
|
||||
backToWorkspace: "Voltar",
|
||||
addHost: "Adicionar host",
|
||||
enableBuiltInDaemon: "Ativar o daemon integrado",
|
||||
projects: "Projetos",
|
||||
projectList: {
|
||||
hostLoadFailed: "Não foi possível carregar projetos do host {{hostName}}: {{message}}",
|
||||
@@ -1437,7 +1438,6 @@ export const ptBR: TranslationResources = {
|
||||
groupInfo: "Sobre {{title}}",
|
||||
sections: {
|
||||
general: "Geral",
|
||||
daemon: "Daemon",
|
||||
appearance: "Aparência",
|
||||
shortcuts: "Atalhos",
|
||||
integrations: "Integrações",
|
||||
@@ -1452,7 +1452,7 @@ export const ptBR: TranslationResources = {
|
||||
providers: "Provedores",
|
||||
usage: "Uso",
|
||||
terminals: "Terminais",
|
||||
host: "Host",
|
||||
host: "Visão geral",
|
||||
},
|
||||
general: {
|
||||
title: "Geral",
|
||||
|
||||
@@ -1435,6 +1435,7 @@ export const ru: TranslationResources = {
|
||||
},
|
||||
backToWorkspace: "Назад",
|
||||
addHost: "Добавить хост",
|
||||
enableBuiltInDaemon: "Включить встроенный демон",
|
||||
projects: "Проекты",
|
||||
projectList: {
|
||||
hostLoadFailed: "Не удалось загрузить проекты с хоста{{hostName}}:{{message}}.",
|
||||
@@ -1443,7 +1444,6 @@ export const ru: TranslationResources = {
|
||||
groupInfo: "О{{title}}",
|
||||
sections: {
|
||||
general: "Общий",
|
||||
daemon: "Daemon",
|
||||
appearance: "Появление",
|
||||
shortcuts: "Ярлыки",
|
||||
integrations: "Интеграции",
|
||||
@@ -1458,7 +1458,7 @@ export const ru: TranslationResources = {
|
||||
providers: "Провайдеры",
|
||||
usage: "Использование",
|
||||
terminals: "Terminals",
|
||||
host: "Host",
|
||||
host: "Обзор",
|
||||
},
|
||||
general: {
|
||||
title: "Общий",
|
||||
|
||||
@@ -1387,6 +1387,7 @@ export const zhCN: TranslationResources = {
|
||||
},
|
||||
backToWorkspace: "返回",
|
||||
addHost: "添加主机",
|
||||
enableBuiltInDaemon: "启用内置 daemon",
|
||||
projects: "项目",
|
||||
projectList: {
|
||||
hostLoadFailed: "无法从 Host {{hostName}} 加载 projects:{{message}}",
|
||||
@@ -1395,7 +1396,6 @@ export const zhCN: TranslationResources = {
|
||||
groupInfo: "关于 {{title}}",
|
||||
sections: {
|
||||
general: "通用",
|
||||
daemon: "Daemon",
|
||||
appearance: "外观",
|
||||
shortcuts: "快捷键",
|
||||
integrations: "集成",
|
||||
@@ -1410,7 +1410,7 @@ export const zhCN: TranslationResources = {
|
||||
providers: "Providers",
|
||||
usage: "使用情况",
|
||||
terminals: "Terminals",
|
||||
host: "Host",
|
||||
host: "概览",
|
||||
},
|
||||
general: {
|
||||
title: "通用",
|
||||
|
||||
Reference in New Issue
Block a user