diff --git a/mateclaw-ui/src/i18n/locales/en-US.ts b/mateclaw-ui/src/i18n/locales/en-US.ts index 792dfe47..cd1e304a 100644 --- a/mateclaw-ui/src/i18n/locales/en-US.ts +++ b/mateclaw-ui/src/i18n/locales/en-US.ts @@ -181,6 +181,7 @@ export default { startNewChat: 'Start a new chat above', messages: '{count} messages', configModel: 'Configure Model', + openSessions: 'Session Admin', clearMessages: 'Clear Messages', goToModelSettings: 'Go to Model Settings', configModelFirst: 'Please configure a model first', diff --git a/mateclaw-ui/src/i18n/locales/zh-CN.ts b/mateclaw-ui/src/i18n/locales/zh-CN.ts index 6f3ee367..b46f577c 100644 --- a/mateclaw-ui/src/i18n/locales/zh-CN.ts +++ b/mateclaw-ui/src/i18n/locales/zh-CN.ts @@ -181,6 +181,7 @@ export default { startNewChat: '开始新对话吧', messages: '{count} 条消息', configModel: '配置模型', + openSessions: '会话管理', clearMessages: '清空消息', goToModelSettings: '前往模型设置', configModelFirst: '请先配置模型', diff --git a/mateclaw-ui/src/router/index.ts b/mateclaw-ui/src/router/index.ts index 10738145..5b357441 100644 --- a/mateclaw-ui/src/router/index.ts +++ b/mateclaw-ui/src/router/index.ts @@ -274,8 +274,17 @@ const router = createRouter({ component: () => import('@/views/Forbidden.vue'), meta: { title: 'Forbidden' }, }, + // ==================== Sessions admin ==================== + // Cross-channel conversation manager. Surfaced from ChatConsole's + // header overflow menu so the user can audit / switch model per + // conversation without leaving the chat surface. + { + path: 'sessions', + name: 'Sessions', + component: () => import('@/views/Sessions.vue'), + meta: { title: 'sessions.title' }, + }, // ==================== Redirects (backward compatibility) ==================== - { path: 'sessions', redirect: '/chat' }, { path: 'workspace', redirect: '/settings/agent-context' }, { path: 'security/workspaces', redirect: '/settings/workspaces' }, { path: 'security/members', redirect: '/settings/members' }, diff --git a/mateclaw-ui/src/views/ChatConsole.vue b/mateclaw-ui/src/views/ChatConsole.vue index df6cf904..9b325eb8 100644 --- a/mateclaw-ui/src/views/ChatConsole.vue +++ b/mateclaw-ui/src/views/ChatConsole.vue @@ -366,12 +366,14 @@ const headerBtnRef = ref(null) const headerMenuItems = computed(() => [ { key: 'config', label: t('chat.configModel') }, + { key: 'sessions', label: t('chat.openSessions') }, { divider: true }, { key: 'clear', label: t('chat.clearMessages'), danger: true }, ]) function onHeaderMenuSelect(item: DropdownMenuItem) { if (item.key === 'config') goToModelSettings() + else if (item.key === 'sessions') router.push('/sessions') else if (item.key === 'clear') clearMessages() }