From 5107ac207eb2f0c6429129f955ae84e1a6c25743 Mon Sep 17 00:00:00 2001 From: Shantur Rathore Date: Wed, 8 Apr 2026 16:09:17 +0100 Subject: [PATCH] feat(ui): show background process notify state --- packages/server/src/api-types.ts | 1 + .../src/background-processes/manager.ts | 1 + .../shell/right-panel/tabs/StatusTab.tsx | 20 ++++++++++++++++++- .../ui/src/lib/i18n/messages/en/instance.ts | 2 ++ .../ui/src/lib/i18n/messages/es/instance.ts | 2 ++ .../ui/src/lib/i18n/messages/fr/instance.ts | 2 ++ .../ui/src/lib/i18n/messages/he/instance.ts | 2 ++ .../ui/src/lib/i18n/messages/ja/instance.ts | 2 ++ .../ui/src/lib/i18n/messages/ru/instance.ts | 2 ++ .../src/lib/i18n/messages/zh-Hans/instance.ts | 2 ++ 10 files changed, 35 insertions(+), 1 deletion(-) diff --git a/packages/server/src/api-types.ts b/packages/server/src/api-types.ts index c024cb53..b2a1e577 100644 --- a/packages/server/src/api-types.ts +++ b/packages/server/src/api-types.ts @@ -391,6 +391,7 @@ export interface BackgroundProcess { exitCode?: number outputSizeBytes?: number terminalReason?: BackgroundProcessTerminalReason + notifyEnabled?: boolean } export interface BackgroundProcessListResponse { diff --git a/packages/server/src/background-processes/manager.ts b/packages/server/src/background-processes/manager.ts index 37f2afbf..3c62f7b1 100644 --- a/packages/server/src/background-processes/manager.ts +++ b/packages/server/src/background-processes/manager.ts @@ -582,6 +582,7 @@ export class BackgroundProcessManager { exitCode: record.exitCode, outputSizeBytes: record.outputSizeBytes, terminalReason: record.terminalReason, + notifyEnabled: Boolean(record.notify), } } diff --git a/packages/ui/src/components/instance/shell/right-panel/tabs/StatusTab.tsx b/packages/ui/src/components/instance/shell/right-panel/tabs/StatusTab.tsx index 74741ae5..f618bf03 100644 --- a/packages/ui/src/components/instance/shell/right-panel/tabs/StatusTab.tsx +++ b/packages/ui/src/components/instance/shell/right-panel/tabs/StatusTab.tsx @@ -4,7 +4,7 @@ import { Accordion } from "@kobalte/core" import { Tooltip } from "@kobalte/core/tooltip" import Switch from "@suid/material/Switch" -import { ChevronDown, Info, TerminalSquare, Trash2, XOctagon } from "lucide-solid" +import { BellRing, ChevronDown, Info, TerminalSquare, Trash2, XOctagon } from "lucide-solid" import type { Instance } from "../../../../../types/instance" import type { BackgroundProcess } from "../../../../../../../server/src/api-types" @@ -187,6 +187,24 @@ const StatusTab: Component = (props) => {
{process.title}
+ + + {props.t("instanceShell.backgroundProcesses.status", { status: process.status })} diff --git a/packages/ui/src/lib/i18n/messages/en/instance.ts b/packages/ui/src/lib/i18n/messages/en/instance.ts index a7b3baba..d56f481c 100644 --- a/packages/ui/src/lib/i18n/messages/en/instance.ts +++ b/packages/ui/src/lib/i18n/messages/en/instance.ts @@ -160,6 +160,8 @@ export const instanceMessages = { "instanceShell.backgroundProcesses.empty": "No background processes.", "instanceShell.backgroundProcesses.status": "Status: {status}", "instanceShell.backgroundProcesses.output": "Output: {sizeKb}KB", + "instanceShell.backgroundProcesses.notify.enabled": "Completion notification enabled", + "instanceShell.backgroundProcesses.notify.disabled": "Completion notification disabled", "instanceShell.backgroundProcesses.actions.output": "Output", "instanceShell.backgroundProcesses.actions.stop": "Stop", "instanceShell.backgroundProcesses.actions.terminate": "Terminate", diff --git a/packages/ui/src/lib/i18n/messages/es/instance.ts b/packages/ui/src/lib/i18n/messages/es/instance.ts index 2eaa5532..e0293f1f 100644 --- a/packages/ui/src/lib/i18n/messages/es/instance.ts +++ b/packages/ui/src/lib/i18n/messages/es/instance.ts @@ -150,6 +150,8 @@ export const instanceMessages = { "instanceShell.backgroundProcesses.empty": "No hay procesos en segundo plano.", "instanceShell.backgroundProcesses.status": "Estado: {status}", "instanceShell.backgroundProcesses.output": "Salida: {sizeKb} KB", + "instanceShell.backgroundProcesses.notify.enabled": "Notificacion de finalizacion activada", + "instanceShell.backgroundProcesses.notify.disabled": "Notificacion de finalizacion desactivada", "instanceShell.backgroundProcesses.actions.output": "Salida", "instanceShell.backgroundProcesses.actions.stop": "Detener", "instanceShell.backgroundProcesses.actions.terminate": "Terminar", diff --git a/packages/ui/src/lib/i18n/messages/fr/instance.ts b/packages/ui/src/lib/i18n/messages/fr/instance.ts index dfaa3fe3..26c56844 100644 --- a/packages/ui/src/lib/i18n/messages/fr/instance.ts +++ b/packages/ui/src/lib/i18n/messages/fr/instance.ts @@ -150,6 +150,8 @@ export const instanceMessages = { "instanceShell.backgroundProcesses.empty": "Aucun processus en arrière-plan.", "instanceShell.backgroundProcesses.status": "Statut : {status}", "instanceShell.backgroundProcesses.output": "Sortie : {sizeKb}KB", + "instanceShell.backgroundProcesses.notify.enabled": "Notification de fin activee", + "instanceShell.backgroundProcesses.notify.disabled": "Notification de fin desactivee", "instanceShell.backgroundProcesses.actions.output": "Sortie", "instanceShell.backgroundProcesses.actions.stop": "Arrêter", "instanceShell.backgroundProcesses.actions.terminate": "Terminer", diff --git a/packages/ui/src/lib/i18n/messages/he/instance.ts b/packages/ui/src/lib/i18n/messages/he/instance.ts index 483ca767..1db1b29c 100644 --- a/packages/ui/src/lib/i18n/messages/he/instance.ts +++ b/packages/ui/src/lib/i18n/messages/he/instance.ts @@ -158,6 +158,8 @@ export const instanceMessages = { "instanceShell.backgroundProcesses.empty": "אין תהליכי רקע.", "instanceShell.backgroundProcesses.status": "סטטוס: {status}", "instanceShell.backgroundProcesses.output": "פלט: {sizeKb}KB", + "instanceShell.backgroundProcesses.notify.enabled": "התראת סיום פעילה", + "instanceShell.backgroundProcesses.notify.disabled": "התראת סיום כבויה", "instanceShell.backgroundProcesses.actions.output": "פלט", "instanceShell.backgroundProcesses.actions.stop": "עצור", "instanceShell.backgroundProcesses.actions.terminate": "סיים", diff --git a/packages/ui/src/lib/i18n/messages/ja/instance.ts b/packages/ui/src/lib/i18n/messages/ja/instance.ts index b3fe6ded..546a22ef 100644 --- a/packages/ui/src/lib/i18n/messages/ja/instance.ts +++ b/packages/ui/src/lib/i18n/messages/ja/instance.ts @@ -150,6 +150,8 @@ export const instanceMessages = { "instanceShell.backgroundProcesses.empty": "バックグラウンドプロセスはありません。", "instanceShell.backgroundProcesses.status": "状態: {status}", "instanceShell.backgroundProcesses.output": "出力: {sizeKb}KB", + "instanceShell.backgroundProcesses.notify.enabled": "完了通知が有効", + "instanceShell.backgroundProcesses.notify.disabled": "完了通知が無効", "instanceShell.backgroundProcesses.actions.output": "出力", "instanceShell.backgroundProcesses.actions.stop": "停止", "instanceShell.backgroundProcesses.actions.terminate": "終了", diff --git a/packages/ui/src/lib/i18n/messages/ru/instance.ts b/packages/ui/src/lib/i18n/messages/ru/instance.ts index 042c7ddd..8a4b6a89 100644 --- a/packages/ui/src/lib/i18n/messages/ru/instance.ts +++ b/packages/ui/src/lib/i18n/messages/ru/instance.ts @@ -150,6 +150,8 @@ export const instanceMessages = { "instanceShell.backgroundProcesses.empty": "Нет фоновых процессов.", "instanceShell.backgroundProcesses.status": "Статус: {status}", "instanceShell.backgroundProcesses.output": "Вывод: {sizeKb}KB", + "instanceShell.backgroundProcesses.notify.enabled": "Уведомление о завершении включено", + "instanceShell.backgroundProcesses.notify.disabled": "Уведомление о завершении выключено", "instanceShell.backgroundProcesses.actions.output": "Вывод", "instanceShell.backgroundProcesses.actions.stop": "Остановить", "instanceShell.backgroundProcesses.actions.terminate": "Завершить", diff --git a/packages/ui/src/lib/i18n/messages/zh-Hans/instance.ts b/packages/ui/src/lib/i18n/messages/zh-Hans/instance.ts index f06f344c..10675d0a 100644 --- a/packages/ui/src/lib/i18n/messages/zh-Hans/instance.ts +++ b/packages/ui/src/lib/i18n/messages/zh-Hans/instance.ts @@ -150,6 +150,8 @@ export const instanceMessages = { "instanceShell.backgroundProcesses.empty": "没有后台进程。", "instanceShell.backgroundProcesses.status": "状态:{status}", "instanceShell.backgroundProcesses.output": "输出:{sizeKb}KB", + "instanceShell.backgroundProcesses.notify.enabled": "已启用完成通知", + "instanceShell.backgroundProcesses.notify.disabled": "已禁用完成通知", "instanceShell.backgroundProcesses.actions.output": "输出", "instanceShell.backgroundProcesses.actions.stop": "停止", "instanceShell.backgroundProcesses.actions.terminate": "终止",