Merge remote-tracking branch 'origin/master' into feat/agent-runner

This commit is contained in:
Soulter
2025-11-23 22:06:52 +08:00
6 changed files with 18 additions and 9 deletions

View File

@@ -173,7 +173,7 @@ class PlatformSession(SQLModel, table=True):
max_length=100,
nullable=False,
unique=True,
default_factory=lambda: f"webchat_{uuid.uuid4()}",
default_factory=lambda: str(uuid.uuid4()),
)
platform_id: str = Field(default="webchat", nullable=False)
"""Platform identifier (e.g., 'webchat', 'qq', 'discord')"""

View File

@@ -794,7 +794,7 @@ class SQLiteDatabase(BaseDatabase):
await session.execute(
update(PlatformSession)
.where(col(PlatformSession.session_id == session_id))
.where(col(PlatformSession.session_id) == session_id)
.values(**values),
)
@@ -805,6 +805,6 @@ class SQLiteDatabase(BaseDatabase):
async with session.begin():
await session.execute(
delete(PlatformSession).where(
col(PlatformSession.session_id == session_id),
col(PlatformSession.session_id) == session_id,
),
)

View File

@@ -64,7 +64,7 @@
@click.stop="$emit('editTitle', item.session_id, item.display_name)" />
<v-btn icon="mdi-delete" size="x-small" variant="text"
class="delete-conversation-btn" color="error"
@click.stop="$emit('deleteConversation', item.session_id)" />
@click.stop="handleDeleteConversation(item)" />
</div>
</template>
</v-list-item>
@@ -85,7 +85,7 @@
<script setup lang="ts">
import { ref } from 'vue';
import { useI18n, useModuleI18n } from '@/i18n/composables';
import { useModuleI18n } from '@/i18n/composables';
import type { Session } from '@/composables/useSessions';
interface Props {
@@ -109,7 +109,6 @@ const emit = defineEmits<{
}>();
const { tm } = useModuleI18n('features/chat');
const { t } = useI18n();
const sidebarCollapsed = ref(true);
const sidebarHovered = ref(false);
@@ -159,6 +158,14 @@ function handleSidebarMouseLeave() {
}
sidebarHoverExpanded.value = false;
}
function handleDeleteConversation(session: Session) {
const sessionTitle = session.display_name || tm('conversation.newConversation');
const message = tm('conversation.confirmDelete', { name: sessionTitle });
if (window.confirm(message)) {
emit('deleteConversation', session.session_id);
}
}
</script>
<style scoped>

View File

@@ -51,7 +51,8 @@
"editDisplayName": "Edit Session Name",
"displayName": "Session Name",
"displayNameUpdated": "Session name updated",
"displayNameUpdateFailed": "Failed to update session name"
"displayNameUpdateFailed": "Failed to update session name",
"confirmDelete": "Are you sure you want to delete \"{name}\"? This action cannot be undone."
},
"modes": {
"darkMode": "Switch to Dark Mode",

View File

@@ -51,7 +51,8 @@
"editDisplayName": "编辑会话名称",
"displayName": "会话名称",
"displayNameUpdated": "会话名称已更新",
"displayNameUpdateFailed": "更新会话名称失败"
"displayNameUpdateFailed": "更新会话名称失败",
"confirmDelete": "确定要删除“{name}”吗?此操作无法撤销。"
},
"modes": {
"darkMode": "切换到夜间模式",

View File

@@ -43,7 +43,7 @@ class ConversationCommands:
async def reset(self, message: AstrMessageEvent):
"""重置 LLM 会话"""
umo = message.unified_msg_origin
cfg = self.context.get_config(umo=umo)
cfg = self.context.get_config(umo=message.unified_msg_origin)
is_unique_session = cfg["platform_settings"]["unique_session"]
is_group = bool(message.get_group_id())