Oscar Shaw
80b89fd2ea
feat: implements command management and improve webui feature structure ( #3904 )
...
move mcp management to plugin managemanet page
* feat: 新增命令配置数据库模型
* feat: 实现核心命令管理系统
* feat: 将命令管理集成到 Star 框架
* feat: 新增命令管理后台 API
* feat: 新增命令管理界面页面
* feat: 新增命令管理国际化支持
* test: 新增命令管理相关测试
* refactor(command): 移除指令重命名时的别名功能
* fix(command): 修正指令冲突检测逻辑
* fix(command): 排除已禁用指令的冲突检测
- 只有 `effective_command` 存在且 `enabled` 为 `True` 的指令才会被纳入冲突检测范围。
* feat(command): 优化指令冲突显示与提示
- 【功能】新增指令冲突警告提示,当检测到冲突时显示详细信息及解决方案。
- 【优化】调整指令列表排序逻辑,将冲突指令优先显示并分组。
- 【样式】为冲突指令行添加专属高亮样式,提升视觉识别度。
- 【国际化】更新英文和中文多语言文件,增加指令冲突警告相关的翻译文本。
* chore(command-page): 禁用命令表格部分列的排序功能
* style(command-page): 调整命令页面表格样式和图标大小
* refactor(command): 优化指令页面布局并更新冲突警告
- 【布局优化】重新组织指令管理页面布局,将筛选器移至顶部独立行
- 【信息展示】将搜索栏与总指令数、已禁用指令数合并显示,提升页面空间利用率
- 【视觉更新】更新指令冲突警告样式
* style: UI 细节
* refactor(command): 调整指令管理中的成员权限显示与筛选
- 更新指令筛选逻辑,当选择“所有人”权限筛选时,将同时包含 `everyone` 和 `member` 权限的指令。
* feat(command-management): 新增指令层级管理与UI展示
- 【后端】
- `CommandDescriptor` 新增 `parent_group_handler` 和 `sub_commands` 字段,支持指令层级结构定义。
- `list_commands` 函数重构,实现指令的层级收集与构建,将子指令正确挂载到其父指令组下。
- 新增 `_collect_all_descriptors` 和 `_find_parent_group_handler` 辅助函数,用于全面收集指令并定位父指令组。
- `_build_descriptor` 优化指令类型判断逻辑,明确区分普通指令、指令组和子指令。
- `_descriptor_to_dict` 递归处理子指令,确保 API 返回完整的指令层级数据。
- 【前端】
- 指令管理页面 (`CommandPage.vue`) 增加指令类型筛选器,并支持指令组的展开/折叠功能。
- 表格展示优化,为指令组和子指令添加不同的样式和缩进,提升层级结构的视觉可读性。
- 指令详情对话框新增指令类型、所属指令组和子指令列表的展示。
- 更新 `CommandItem` 接口,以适配后端提供的层级数据结构。
- 【i18n】
- 新增指令类型(指令、指令组、子指令)的国际化文本。
- 更新指令管理相关 UI 文本,包括表格头部、详情对话框字段和筛选器选项。
* style(command): 优化指令组子指令数量显示UI
* refactor(command): 修改指令列表排序逻辑
* style(command-page): 优化命令列表UI
* feat(command): 添加系统插件指令过滤与冲突处理
* refactor(command): 更新指令数展示逻辑
* style(command): 更新空状态描述
* feat(extension): 添加插件指令冲突检测与提示
- 在插件安装或启用后,自动检测并提示指令冲突。
- 当检测到指令冲突时,显示警告对话框,告知用户冲突数量及可能的影响。
* refactor(command): 移除指令表格内部加载指示器
* style(extension): 文案修改
* refactor(command): 模块化指令管理面板前端代码
* refactor(commandPanel): 重命名指令模块目录为 commandPanel
* style(commandPanel): 微调指令面板UI
* fix(command): 确保新命令配置的事务提交
* fix(sidebar): 补全新增侧边栏项后的侧边栏位追加逻辑
* refactor(commands): 重构/help指令以动态显示实际命令并补充部分命令描述
* style(builtin_commands): 补充命令描述
* refactor(commandPanel): 移除未使用的 filterState 常量
* perf(dashboard): 删除多余的CommandPage.vue文件(已被模块化引用)
* perf(command): 优化命令冲突计数逻辑
* perf(command): 优化指令管理辅助函数和配置绑定逻辑
* perf(db): 优化重构command相关数据库操作
* refactor(sidebar): 提取侧边栏项目解析逻辑到工具函数复用
* refactor: move mcp and command page to extension page
* refactor: remove unused imports in component panel
* fix: update terminology for handler management in extension localization
---------
Co-authored-by: Soulter <905617992@qq.com >
2025-12-16 20:24:57 +08:00
Dt8333
f624971613
chore: fix bunches of type checking errors ( #3213 )
...
* chore(core.utils): 🚨 修正错误Lint
* chore(core.provider): 🚨 修复基类错误Lint
* chore(core.utils): 补全session_get()的重载
* chore(core.provider): 🚨 修正实现错误Lint
* chore(core.platform): 🚨 修正platform基类和webchat的错误Lint
* chore(core.platform): 修正错误实现Lint
* fix(core.provider): 修复循环调用和错误assert
* chore(core.platform): 修复部分实现Lint
* chore(core.provider): 补充Dify.text_chat_stream的参数类型
* chore(core.pipeline): 🚨 修复错误Lint
* fix(core.slack): 补充遗漏导入
* chore(core.utils): 修复错误的session_get声明
* chore(core.platform): 移除Lark adapter import中的wildcard
* chore(core.db): 修复声明和部分逻辑
* chore(core.db): 添加typings,使faiss参数能被正确识别。
* chore(core): 修复声明
* chore(core): 修改声明
* chore: 补充faiss声明
* chore(dashboard): 修改实现,减少报错
* chore(package): 修改部分声明与实现,减少报错
* chore(core): 添加Handler的overload,以去除部分assert同时通过类型检查
* chore(core.pipeline): 修改Pipeline Scheduler的execute,将判断属性改为判断类型,通过静态类型检查
* chore(core.config): 添加类型标注,通过类型检查
* chore(core.message): 为File._download_file添加检查,通过类型检查
* fix: 将断言改为条件判断以实现优雅关闭的容错性
* refactor: 移除 discord 客户端中的 assert,改用 if None 判断并抛出异常
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* fix: DiscordPlatformAdapter 对 self.client.user 为 None 做日志并返回,移除断言
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* fix: 增强 Lark 相关空值/异常检查并完善日志输出
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* refactor: 将断言替换为条件检查并加入日志与错误处理
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* chore: 移除LLM生成的无用注释
* refactor: 使用 File.get_file 替换下载逻辑并移除 assert,提供默认 filename
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* fix: Slack Socket 未初始化抛出运行时异常,图片 URL 判空改为非空判断
* refactor: 将 WeChatPadProAdapter 的断言改为空值判断并添加日志
* refactor: 使用 isinstance 替代断言实现类型判断,便于静态检查
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* fix: 去除cast,直接使用字段与字典访问,修正端口解析
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* refactor: 使用 match-case 重构 ProviderManager 加载并通过类型检查抛出 TypeError
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* fix: group_name_display 时若 group 对象为空则记录错误并返回
* fix: 将 _get_current_persona_id 的 assert 替换成 if guard 并返回 None
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* fix: 优化插件目录存在性检查及图片URL非空验证,更新JSON排序配置
* fix: 将 datetime_str 的 assert 替换为显式检查并抛出异常
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* refactor: 移除 cast,改为运行时检查并在找不到调度器时跳过
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* refactor: 移除 cast,改用 isinstance 检查 FaissVecDB 并警告
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* fix: 删除 typing.cast 导入,并在获取文件绝对路径前校验 file_
* refactor: 移除 typing.cast,简化内容安全检查调用
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* refactor: 将 PlatformMetadata.id 设为必填并在注册时传入 id,移除 cast
* refactor: 移除 cast,改用 HasInitialize 与 isinstance 进行初始化
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* fix: 为 ProviderManager.initialize 增加ID类型判断,避免 None 导致 get 失败
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* refactor: 为 OTTSProvider 与 AzureNativeProvider 引入 _client 与 client 属性改进上下文管理
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* fix: 为 Whisper 自托管源添加模型未初始化校验并直接调用 transcribe
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* refactor: 移除未使用的 cast 导入并简化 platform_name 赋值
* refactor: 引入 cast 并对 id 使用 cast(str, ...) 提升类型安全
* fix: 将 _id_to_sid 返回改为 str,空值返回空串;对 id 与 message_id 使用 cast
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* refactor: 重构 Discord 处理逻辑:强制 类型转换、优先斜杠指令并优化提及判断
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* fix: 统一对 id 获取执行 cast,并在微信消息解析失败时抛错
* Revert "fix: 去除cast,直接使用字段与字典访问,修正端口解析"
This reverts commit 1cbfdf9d1b .
* fix: 百炼 Rerank 会话关闭时返回空结果;初始化 request.prompt 避免空值拼接
* fix: 统一处理搜索结果链接为字符串,新增 _get_url 助手并适配 Bing/Sogo
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* refactor: 调整 call_handler 泛型、Discord 通道注解及 FishAudioTTS API 请求类型
* refactor: 使用 col(...) 替代列引用并对结果进行 CursorResult 强转
* chore: ruff format
---------
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
Co-authored-by: Soulter <905617992@qq.com >
2025-12-09 14:13:47 +08:00
Soulter
205024f27a
fix: correct SQL query syntax in SQLiteDatabase class
2025-12-04 12:51:22 +08:00
Soulter
f7a716af43
refactor: message storage format of webchat, support reply and file message segment ( #3845 )
...
* refactor: message storage format of webchat
* refactor: update image and record handling in webchat event processing
* fix: thinking placeholder in webchat
* feat: supports file upload in webchat
* feat: supports to delete attachments when webchat session is deleted
* perf: improve performance of file downloading
* refactor: remove unused import in chat route
* feat: add message timestamp formatting and localization support in chat
* fix: handle missing filename in file upload for chat route
* feat: enhance file handling in chat and webchat, supporting video uploads and improved attachment management
* fix: update property name for embedded files in message handling
* fix: compute variable errors after uninstalling plugins
* feat: supported for reply message and standarlize the message param
* fix: ensure message actions are displayed for the last message in the list
2025-12-02 17:11:08 +08:00
Soulter
95e9da42d6
fix(webchat): webchat session cannot be deleted ( #3759 )
2025-11-23 22:03:07 +08:00
Soulter
cb087b5ff9
refactor: update timestamp handling in session management and chat components
2025-11-20 17:02:01 +08:00
Soulter
1d3928d145
refactor(sqlite): remove auto-generation of session_id in insert method
2025-11-20 16:33:57 +08:00
Soulter
1935ce4700
refactor: update session handling by replacing conversation_id with session_id in chat routes and components
2025-11-19 19:54:29 +08:00
Soulter
be3e5f3f8b
refactor: update message history deletion logic to remove newer records based on offset
2025-11-19 19:41:25 +08:00
Soulter
cf4a5d9ea4
refactor: change to platform session
2025-11-18 22:37:55 +08:00
Soulter
323ec29b02
refactor: Implement WebChat session management and migration from version 4.6 to 4.7
...
- Added WebChatSession model for managing user sessions.
- Introduced methods for creating, retrieving, updating, and deleting WebChat sessions in the database.
- Updated core lifecycle to include migration from version 4.6 to 4.7, creating WebChat sessions from existing platform message history.
- Refactored chat routes to support new session-based architecture, replacing conversation-related endpoints with session endpoints.
- Updated frontend components to handle sessions instead of conversations, including session creation and management.
2025-11-18 22:04:26 +08:00
LIghtJUNction
0b7fc29ac4
style: add ruff lint module of isort and pyupgrade, and some ruff check fix ( #3214 )
...
Co-authored-by: Dt8333 <25431943+Dt8333@users.noreply.github.com >
Co-authored-by: Soulter <905617992@qq.com >
2025-11-01 13:26:19 +08:00
ctrlkk
dcd8a1094c
feat: 优化 SQLite 参数配置,对话和会话管理增加输入防抖机制 ( #2969 )
...
* feat: 优化 SQLite 数据库初始化设置并增强会话搜索功能,会话管理增加输入防抖
* fix: adjust SQLite cache and mmap size
---------
Co-authored-by: Soulter <905617992@qq.com >
2025-10-06 17:13:53 +08:00
ctrlkk
68ff8951de
feat: 添加分页和搜索功能以获取会话列表,优化前端与后端的数据交互 ( #2906 )
...
* feat: 添加分页和搜索功能以获取会话列表,优化前端与后端的数据交互
* fix: 修复会话计数显示,使用总项数替代会话数组长度
* fix: 将参数类型和名称与实现内容匹配。
* perf: convert for loop into list comprehension
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
* fix: type checking error
* fix: 优化 persona_id 的获取逻辑
---------
Co-authored-by: Soulter <37870767+Soulter@users.noreply.github.com >
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
Co-authored-by: Soulter <905617992@qq.com >
2025-09-28 23:25:30 +08:00
Soulter
c2a34475f1
feat: 支持删除指定会话以及部分会话管理优化 ( #2895 )
...
* feat: add toast notification system with snackbar component
* feat: add session deletion functionality
* feat: support batch operations for updating session persona, provider, LLM, and TTS statuses
fix : #2263
* feat: 修复对话状态关闭,删除对话管理库会导致对话无法恢复
fixes : #2309
2025-09-27 20:36:30 +08:00
Soulter
6084abbcfe
feat: add user_id search capability in get_filtered_conversations
2025-09-21 22:45:55 +08:00
Soulter
9f939b4b6f
fix: 修复对话管理页面的关键词搜索功能失效的问题并优化一些 UI 样式 ( #2837 )
...
* fix: 修复对话管理页面的关键词搜索功能失效的问题并优化一些 UI 样式
fixes : #2782
* style: format code
* fix: remove debug print statements from conversation retrieval methods
2025-09-21 20:55:15 +08:00
Soulter
64bcbc9fc0
refactor: 重构 SharedPreference 类并采用数据库存储替换 json 存储 ( #2482 )
2025-08-18 19:12:26 +08:00
Soulter
b1e3018b6b
Improve: 引入全新的人格管理模式以及重构函数工具管理器 ( #2305 )
...
* feat: add persona management
* refactor: 重构函数工具管理器,引入 ToolSet,并让 Persona 支持绑定 Tools
* feat: 更新 Persona 工具选择逻辑,支持全选和指定工具的切换
* feat: 更新 BaseDatabase 中的 persona 方法返回类型,支持返回 None
2025-08-04 00:56:26 +08:00
Soulter
842c3c8ea9
Refactor: using sqlmodel(sqlchemy+pydantic) as ORM framework and switch to async-based sqlite operation ( #2294 )
...
* stage
* stage
* refactor: using sqlchemy as ORM framework, switch to async-based sqlite operation
- using sqlmodel as ORM(based on sqlchemy and pydantic)
- add Persona, Preference, PlatformMessageHistory table
* fix: conversation
* fix: remove redundant explicit session.commit, and fix some type error
* fix: conversation context issue
* chore: remove comments
* chore: remove exclude_content param
2025-08-02 15:44:00 +08:00
Soulter
7098c98dde
fix: 修复 Windows 下部署项目时可能出现的 UnicodeDecodeError
...
fixes : #1548
2025-06-11 00:25:14 +08:00
Soulter
9c9ab50d1a
🎈 perf: 优化 WebUI 对话数据库中文历史检索
2025-03-26 13:50:11 +08:00
Soulter
d4bcb8174e
🐛 fix: 修复部分可能形成 SQL 注入的风险
2025-03-26 13:41:18 +08:00
Soulter
125fc3a622
✨ feat: 支持 WebUI 对话管理
2025-03-25 19:44:46 +08:00
Soulter
49bba9bf98
style: format codes
2025-03-03 13:30:55 +08:00
Soulter
67095f97b1
🐛 fix: delete conversation
...
✨ feat: supports active reply whitelist
2025-02-14 01:43:52 +08:00
Soulter
12f4e1146f
feat: 更好的对话管理
2025-02-05 13:26:53 +08:00
Soulter
480dffb51b
feat: 初步实现 webchat 页面
2025-01-10 21:48:15 +08:00
Soulter
c6bdac8835
format: code lint
...
(ruff, uv 是个好东西)
2024-12-10 22:09:53 +08:00
Soulter
bdfc77d349
refactor: im so tired :)
2024-12-09 22:38:42 +08:00
Soulter
750a93a1aa
remove: 移除了 nakuru-project 库
...
但仍然使用其对 OneBot 的数据格式封装。
2024-12-02 19:31:33 +08:00
Soulter
6ab8114eee
feat: v3.4.0
2024-11-27 15:04:30 +08:00