diff --git a/packages/client/src/components/hermes/chat/ChatPanel.vue b/packages/client/src/components/hermes/chat/ChatPanel.vue index 7414a7e..b1afa2b 100644 --- a/packages/client/src/components/hermes/chat/ChatPanel.vue +++ b/packages/client/src/components/hermes/chat/ChatPanel.vue @@ -61,11 +61,9 @@ let mobileQuery: MediaQueryList | null = null; const isMobile = ref(false); function sessionHref(sessionId: string) { - const profile = sessionProfile(sessionId); return router.resolve({ name: "hermes.session", params: { sessionId }, - query: profile ? { profile } : undefined, }).href; } @@ -75,11 +73,9 @@ function openSessionInNewTab(sessionId: string) { } async function handleSessionClick(sessionId: string) { - const session = chatStore.sessions.find((item) => item.id === sessionId); await router.push({ name: "hermes.session", params: { sessionId }, - query: session?.profile ? { profile: session.profile } : undefined, }); if (mobileQuery?.matches) showSessions.value = false; } @@ -283,7 +279,6 @@ async function confirmNewChat() { await router.push({ name: "hermes.session", params: { sessionId: session.id }, - query: session.profile ? { profile: session.profile } : undefined, }); showNewChatModal.value = false; } diff --git a/packages/client/src/i18n/locales/de.ts b/packages/client/src/i18n/locales/de.ts index 64c94ef..764568e 100644 --- a/packages/client/src/i18n/locales/de.ts +++ b/packages/client/src/i18n/locales/de.ts @@ -273,7 +273,7 @@ export default { monitorRoleUser: 'Benutzer', monitorRoleAssistant: 'Assistent', copySessionLink: 'Sitzungslink kopieren', - openSessionInNewTab: 'Open in new tab', + openSessionInNewTab: 'In neuem Tab öffnen', sessionLinkCopied: 'Session link copied', copySessionId: 'Sitzungs-ID kopieren', export: 'Exportieren', diff --git a/packages/client/src/i18n/locales/es.ts b/packages/client/src/i18n/locales/es.ts index 6c690c9..9c2b3bb 100644 --- a/packages/client/src/i18n/locales/es.ts +++ b/packages/client/src/i18n/locales/es.ts @@ -273,7 +273,7 @@ export default { monitorRoleUser: 'Usuario', monitorRoleAssistant: 'Asistente', copySessionLink: 'Copiar enlace de sesión', - openSessionInNewTab: 'Open in new tab', + openSessionInNewTab: 'Abrir en una nueva pestaña', sessionLinkCopied: 'Session link copied', copySessionId: 'Copiar ID de sesión', export: 'Exportar', diff --git a/packages/client/src/i18n/locales/fr.ts b/packages/client/src/i18n/locales/fr.ts index 1ad31ce..9f5648e 100644 --- a/packages/client/src/i18n/locales/fr.ts +++ b/packages/client/src/i18n/locales/fr.ts @@ -273,7 +273,7 @@ export default { monitorRoleUser: 'Utilisateur', monitorRoleAssistant: 'Assistant', copySessionLink: 'Copier le lien de session', - openSessionInNewTab: 'Open in new tab', + openSessionInNewTab: 'Ouvrir dans un nouvel onglet', sessionLinkCopied: 'Session link copied', copySessionId: "Copier l'ID de session", export: 'Exporter', diff --git a/packages/client/src/i18n/locales/ja.ts b/packages/client/src/i18n/locales/ja.ts index 58cc5d1..e7964b9 100644 --- a/packages/client/src/i18n/locales/ja.ts +++ b/packages/client/src/i18n/locales/ja.ts @@ -273,7 +273,7 @@ export default { monitorRoleUser: 'ユーザー', monitorRoleAssistant: 'アシスタント', copySessionLink: 'セッションリンクをコピー', - openSessionInNewTab: 'Open in new tab', + openSessionInNewTab: '新しいタブで開く', sessionLinkCopied: 'Session link copied', copySessionId: 'セッション ID をコピー', export: 'エクスポート', diff --git a/packages/client/src/i18n/locales/ko.ts b/packages/client/src/i18n/locales/ko.ts index aada66b..5956f84 100644 --- a/packages/client/src/i18n/locales/ko.ts +++ b/packages/client/src/i18n/locales/ko.ts @@ -273,7 +273,7 @@ export default { monitorRoleUser: '사용자', monitorRoleAssistant: '어시스턴트', copySessionLink: '세션 링크 복사', - openSessionInNewTab: 'Open in new tab', + openSessionInNewTab: '새 탭에서 열기', sessionLinkCopied: 'Session link copied', copySessionId: '세션 ID 복사', export: '내보내기', diff --git a/packages/client/src/i18n/locales/pt.ts b/packages/client/src/i18n/locales/pt.ts index 527508e..f7fe68f 100644 --- a/packages/client/src/i18n/locales/pt.ts +++ b/packages/client/src/i18n/locales/pt.ts @@ -273,7 +273,7 @@ export default { monitorRoleUser: 'Usuário', monitorRoleAssistant: 'Assistente', copySessionLink: 'Copiar link da sessão', - openSessionInNewTab: 'Open in new tab', + openSessionInNewTab: 'Abrir em nova aba', sessionLinkCopied: 'Session link copied', copySessionId: 'Copiar ID da sessão', export: 'Exportar', diff --git a/packages/client/src/i18n/locales/zh-TW.ts b/packages/client/src/i18n/locales/zh-TW.ts index ce7d103..36cf1ed 100644 --- a/packages/client/src/i18n/locales/zh-TW.ts +++ b/packages/client/src/i18n/locales/zh-TW.ts @@ -287,7 +287,7 @@ export default { monitorRoleUser: '使用者', monitorRoleAssistant: '助手', copySessionLink: '複製工作階段連結', - openSessionInNewTab: 'Open in new tab', + openSessionInNewTab: '在新分頁開啟', sessionLinkCopied: 'Session link copied', copySessionId: '複製工作階段 ID', export: '匯出', diff --git a/packages/client/src/i18n/locales/zh.ts b/packages/client/src/i18n/locales/zh.ts index 1cc2327..bd8088a 100644 --- a/packages/client/src/i18n/locales/zh.ts +++ b/packages/client/src/i18n/locales/zh.ts @@ -289,7 +289,7 @@ export default { monitorRoleUser: '用户', monitorRoleAssistant: '助手', copySessionLink: '复制会话链接', - openSessionInNewTab: 'Open in new tab', + openSessionInNewTab: '在新标签页打开', sessionLinkCopied: 'Session link copied', copySessionId: '复制会话 ID', export: '导出', diff --git a/packages/client/src/views/hermes/ChatView.vue b/packages/client/src/views/hermes/ChatView.vue index 7bcf3ce..9f92331 100644 --- a/packages/client/src/views/hermes/ChatView.vue +++ b/packages/client/src/views/hermes/ChatView.vue @@ -25,7 +25,7 @@ const routeProfile = computed(() => { }) async function loadRouteSession() { - await chatStore.loadSessions(routeProfile.value, routeSessionId.value) + await chatStore.loadSessions(chatStore.sessionProfileFilter, routeSessionId.value) if (routeSessionId.value && chatStore.activeSessionId !== routeSessionId.value) { await router.replace({ name: 'hermes.chat' }) } @@ -45,19 +45,14 @@ onMounted(async () => { watch([routeSessionId, routeProfile], async ([sessionId]) => { if (!chatStore.sessionsLoaded) return if (!sessionId) { - await chatStore.loadSessions(routeProfile.value) - return - } - if (chatStore.activeSessionId === sessionId && (!routeProfile.value || chatStore.activeSession?.profile === routeProfile.value)) return - - if (routeProfile.value) { - await loadRouteSession() + await chatStore.loadSessions(chatStore.sessionProfileFilter) return } + if (chatStore.activeSessionId === sessionId) return const exists = chatStore.sessions.some(session => session.id === sessionId) if (!exists) { - await router.replace({ name: 'hermes.chat' }) + await loadRouteSession() return } diff --git a/tests/e2e/native-navigation.spec.ts b/tests/e2e/native-navigation.spec.ts index e24befe..7ab571a 100644 --- a/tests/e2e/native-navigation.spec.ts +++ b/tests/e2e/native-navigation.spec.ts @@ -32,6 +32,6 @@ test('session rows expose native session links', async ({ page }) => { await page.goto('/#/hermes/chat') const sessionLink = page.locator('.session-items a.session-item').first() - await expect(sessionLink).toHaveAttribute('href', '#/hermes/session/session-native-1?profile=research') + await expect(sessionLink).toHaveAttribute('href', '#/hermes/session/session-native-1') await expect(sessionLink).toContainText('Native Link Session') })