+ {tr('botDefaults.ownerReminderTitle')}
+
+
+
+
+
+
{tr('botDefaults.ownerReminderStates')}
+
+ {OWNER_REMINDER_STATE_OPTIONS.map(option => (
+
+ ))}
+
+
+
+
+
+
+
+
+
+
+ );
+}
+
/** console 头像上传只实测过 512×512 PNG,前端统一归一化成这一形态再上传。 */
const AVATAR_UPLOAD_SIDE = 512;
diff --git a/src/dashboard/web/bot-defaults.ts b/src/dashboard/web/bot-defaults.ts
index 424dcddc2..773cbdfd8 100644
--- a/src/dashboard/web/bot-defaults.ts
+++ b/src/dashboard/web/bot-defaults.ts
@@ -100,6 +100,12 @@ export type BotDefaultsRow = {
logicalSessionCount?: number;
residentSessionCount?: number;
dormantSessionCount?: number;
+ sessionOwnerReminder?: {
+ enabled: boolean;
+ intervalMinutes: number;
+ text: string;
+ states: Array<'idle' | 'dormant' | 'pending_repo' | 'tui_prompt' | 'agent_attention' | 'limited'>;
+ } | null;
startupCommands?: string;
customPassthroughCommands?: string;
canTalkDaemonCommands?: string;
diff --git a/src/dashboard/web/i18n.ts b/src/dashboard/web/i18n.ts
index 06f5c2daf..fa65c819e 100644
--- a/src/dashboard/web/i18n.ts
+++ b/src/dashboard/web/i18n.ts
@@ -2172,6 +2172,24 @@ const zh = {
'botDefaults.maxLiveWorkersStateOn': '当前:最多常驻 {count} 个会话',
'botDefaults.overloadAlert': '机器过载告警',
'botDefaults.overloadAlertHelp': '开启后,本 Bot 的 daemon 会每 30 秒检查整机负载/内存,越过过载线(默认 load15 > 核数×1.5 或内存≥92%)时给本 Bot 的管理员发一条飞书私信提醒,恢复后再发一条。机器过载会导致 botmux 会话冷启动超时假死,这个提醒能让你及时清理会话或调低常驻上限。负载是整机指标,指定一个 Bot 开启即可;多个 Bot 同时开也会自动去重、整机每次过载只发一次。默认关闭。',
+ 'botDefaults.ownerReminderTitle': '会话 Owner 定时提醒',
+ 'botDefaults.ownerReminderHelp': '会话持续处于选中的状态时,在原飞书话题下定时 @ 该会话记录的 owner。仅话题会话生效。',
+ 'botDefaults.ownerReminderEnabled': '启用定时提醒',
+ 'botDefaults.ownerReminderEnabledHelp': '首次等待和后续重复提醒都使用同一个间隔;会话有新动作或状态变化后重新计时。',
+ 'botDefaults.ownerReminderInterval': '提醒间隔(分钟)',
+ 'botDefaults.ownerReminderStates': '需要提醒的会话状态',
+ 'botDefaults.ownerReminderText': '提醒文本',
+ 'botDefaults.ownerReminderTextHelp': 'Botmux 会自动在文本前 @ 会话 owner。固定文本不支持变量,也不能包含额外的