chore: bump version to 0.4.2-beta.1 and improve chat UX (#122)
* chore: bump version to 0.4.2-beta.1 and improve chat UX - Bump version to 0.4.2-beta.1 - Fix live monitor session selected style to match chat session style - Add thin scrollbar with stable gutter to live monitor sidebar - Fix live monitor detail scroll on mobile - Show new chat button as icon-only on mobile using JS detection Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * chore: fix version to 0.4.2 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "hermes-web-ui",
|
"name": "hermes-web-ui",
|
||||||
"version": "0.4.1",
|
"version": "0.4.2",
|
||||||
"description": "Web dashboard for Hermes Agent — multi-platform AI chat, session management, scheduled jobs, usage analytics & channel configuration (Telegram, Discord, Slack, WhatsApp)",
|
"description": "Web dashboard for Hermes Agent — multi-platform AI chat, session management, scheduled jobs, usage analytics & channel configuration (Telegram, Discord, Slack, WhatsApp)",
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ const showSessions = ref(
|
|||||||
)
|
)
|
||||||
const lastChatSessionsVisibility = ref(showSessions.value)
|
const lastChatSessionsVisibility = ref(showSessions.value)
|
||||||
let mobileQuery: MediaQueryList | null = null
|
let mobileQuery: MediaQueryList | null = null
|
||||||
|
const isMobile = ref(false)
|
||||||
|
|
||||||
function handleSessionClick(sessionId: string) {
|
function handleSessionClick(sessionId: string) {
|
||||||
chatStore.switchSession(sessionId)
|
chatStore.switchSession(sessionId)
|
||||||
@@ -47,6 +48,7 @@ function handleModeChange(mode: 'chat' | 'live') {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function handleMobileChange(e: MediaQueryListEvent | MediaQueryList) {
|
function handleMobileChange(e: MediaQueryListEvent | MediaQueryList) {
|
||||||
|
isMobile.value = e.matches
|
||||||
if (e.matches && showSessions.value) {
|
if (e.matches && showSessions.value) {
|
||||||
showSessions.value = false
|
showSessions.value = false
|
||||||
}
|
}
|
||||||
@@ -432,11 +434,11 @@ async function handleRenameConfirm() {
|
|||||||
</template>
|
</template>
|
||||||
{{ t('chat.copySessionId') }}
|
{{ t('chat.copySessionId') }}
|
||||||
</NTooltip>
|
</NTooltip>
|
||||||
<NButton size="small" @click="handleNewChat">
|
<NButton size="small" :circle="isMobile" @click="handleNewChat">
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
|
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
|
||||||
</template>
|
</template>
|
||||||
{{ t('chat.newChat') }}
|
<template v-if="!isMobile">{{ t('chat.newChat') }}</template>
|
||||||
</NButton>
|
</NButton>
|
||||||
</template>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -191,6 +191,20 @@ onUnmounted(() => {
|
|||||||
border-right: 1px solid $border-color;
|
border-right: 1px solid $border-color;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
|
scrollbar-gutter: stable;
|
||||||
|
|
||||||
|
&::-webkit-scrollbar {
|
||||||
|
width: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&::-webkit-scrollbar-thumb {
|
||||||
|
background: rgba($text-muted, 0.3);
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&::-webkit-scrollbar-thumb:hover {
|
||||||
|
background: rgba($text-muted, 0.5);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.conversation-monitor__session {
|
.conversation-monitor__session {
|
||||||
@@ -204,7 +218,13 @@ onUnmounted(() => {
|
|||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
|
||||||
&.active {
|
&.active {
|
||||||
background: rgba($accent-primary, 0.08);
|
background: rgba(var(--accent-primary-rgb), 0.12);
|
||||||
|
color: $text-primary;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.active .conversation-monitor__session-title {
|
||||||
|
color: $accent-primary;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -294,6 +314,12 @@ onUnmounted(() => {
|
|||||||
max-height: 220px;
|
max-height: 220px;
|
||||||
border-right: 0;
|
border-right: 0;
|
||||||
border-bottom: 1px solid $border-color;
|
border-bottom: 1px solid $border-color;
|
||||||
|
flex-shrink: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.conversation-monitor__detail {
|
||||||
|
min-height: 0;
|
||||||
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
Reference in New Issue
Block a user