Soulter
241f1c26d3
feat: context compress ( #4322 )
...
* feat: context compressor
Co-authored-by: kawayiYokami <289104862@qq.com >
* Add comprehensive tests for ContextManager and ContextTruncator
- Implemented a full test suite for ContextManager covering initialization, message processing, token-based compression, and error handling.
- Added tests for ContextTruncator focusing on message fixing, truncation by turns, dropping oldest turns, and halving.
- Ensured that both test suites validate edge cases and maintain expected behavior with various message types, including system and tool messages.
* feat: add MockProvider for LLM compression tests
* chore: remove lock
* ruff fix
* fix
* perf
* feat: enhance context compression with token tracking and logging
* feat: update logging for context compression trigger
* feat: implement context compression logic with dynamic threshold and token tracking
* fix: reorder import statements for consistency
* feat: add token_usage tracking to conversations and update related processing logic
---------
Co-authored-by: kawayiYokami <289104862@qq.com >
2026-01-05 17:26:10 +08:00
RC-CHN
9eafd7b44a
feat: add features for chunked upload and backup file management to the backup section ( #4237 )
...
* feat: 添加分片上传备份文件功能
* feat: 为上传备份文件添加异步并发以提升速度
* feat: 使用浏览器原生下载方式以显示进度条
* feat: 添加从已上传备份列表恢复的功能
* feat: 允许重命名备份文件
* feat: 在后端校验可用备份文件后在前端部分显示备份版本号,添加手动上传提示
* style: format code
* fix: 更新备份部分测试
* fix: 修复浏览器原生下载鉴权问题,通过url传参的方式完成认证
* feat(backup): 改进备份系统的分片上传和下载鉴权
- 修复浏览器原生下载鉴权问题,支持 URL 参数传递 token
- 修复上传会话过期判断,使用 last_activity 避免活跃上传被清理
- 延迟启动后台清理任务,避免 asyncio 事件循环问题
- 统一由后端计算 chunk_size 和 total_chunks,避免前后端不一致
- 更新 generate_unique_filename 文档注释与实际行为一致
- 更新测试用例以验证 origin 字段
修复问题:
- 浏览器下载时显示"需要授权"
- 大文件上传可能因会话过期失败
- __init__ 中 asyncio.create_task 可能失败
* style: format code
2025-12-29 12:30:59 +08:00
RC-CHN
aa38fe776a
feat: supports data backup ( #4105 )
...
* feat: 添加数据迁移功能
* test: 添加迁移相关测试
* feat: 备份插件及相关持久化目录
* fix: 修复版本号比较逻辑,添加相关测试
* fix: 清洗文件名,添加相关测试
* fix: 修复安全文件名测试用例断言
* refactor: 优化代码,为备份模块提取公用常量
* feat: 修改备份版本校验逻辑,允许强制小版本间导入
* fix: 修复备份创建时间读取,修复备份相关i18n
* refactor(backup): 使用 astrbot_path 统一管理备份目录路径
* fix(backup): 清理备份模块中未使用的导入
* refactor(backup): 统一备份路径与参数并移除未用附件目录
- 通过 astrbot_path 动态获取备份/知识库/数据相关路径
- 移除 exporter/importer 未使用的 attachments_dir/data_root 传参
- 更新备份路由与测试用例的构造参数
* fix(dashboard): alias mermaid to dist entry for Vite prebundle
* fix(backup): 放行start-time接口到白名单以处理备份导入后jwt token变化导致无法自动刷新webui的问题
* chore(backup): 统一配置路径以使用动态数据目录
* refactor(backup): 使用 VersionComparator 替代重复的版本比较函数
* style(backup test): format code
---------
Co-authored-by: Soulter <905617992@qq.com >
2025-12-26 15:47:50 +08:00
Yokami
fc5b520f9b
perf(agent): add max step limit to prevent infinite tool call loops ( #4110 )
...
* perf(agent): add max step limit to prevent infinite tool call loops
* feat: implement max step limit handling in main agent runner
- Enhanced the agent runner to enforce a maximum step limit, logging a warning and forcing a final response when the limit is reached.
- Updated message handling to append a user prompt when the tool call limit is exceeded.
- Refactored tool response handling to yield appropriate messages based on the response type, including handling cases with no response or unsupported types.
- Improved conversation message formatting to ensure consistent output in the assistant's responses.
* chore: ruff format
---------
Co-authored-by: Soulter <905617992@qq.com >
2025-12-21 12:30:43 +08:00
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
RC-CHN
46528391c2
feat: add pre-chunk import strategy for knowledge base ( #3973 )
...
* feat: 添加文档导入功能及相关测试
* feat: 优化文档上传功能,支持从文件名推断文件类型,并增强文档切片验证
* feat: 添加文档导入功能的无效输入测试,验证 chunks 类型和内容的错误处理
* refactor: 重构文档上传和导入任务的状态管理,添加任务初始化、结果设置和进度更新方法
2025-12-12 23:15:11 +08:00
Dt8333
758ce40cc1
chore: fix test ( #3787 )
2025-11-27 14:02:42 +08:00
Copilot
a04993a2bb
Replace insecure random with secrets module in cryptographic contexts ( #3248 )
...
* Initial plan
* Security fixes: Replace insecure random with secrets module and improve SSL context
Co-authored-by: LIghtJUNction <106986785+LIghtJUNction@users.noreply.github.com >
* Address code review feedback: fix POST method and add named constants
Co-authored-by: LIghtJUNction <106986785+LIghtJUNction@users.noreply.github.com >
* Improve documentation for random number generation constants
Co-authored-by: LIghtJUNction <106986785+LIghtJUNction@users.noreply.github.com >
* Update astrbot/core/utils/io.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Update astrbot/core/platform/sources/wecom_ai_bot/WXBizJsonMsgCrypt.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Update tests/test_security_fixes.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Update astrbot/core/utils/io.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Update astrbot/core/utils/io.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Fix: Handle path parameter in SSL fallback for download_image_by_url
Co-authored-by: LIghtJUNction <106986785+LIghtJUNction@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: LIghtJUNction <106986785+LIghtJUNction@users.noreply.github.com >
Co-authored-by: LIghtJUNction <lightjunction.me@gmail.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-11-03 02:43:00 +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
RC-CHN
19d7438499
fix: unit tests ( #2760 )
...
* fix:修复了main和plugin_manager部分单元测试
* fix: 修复了dashboard部分测试
* remove: 删除暂无用的配置测试脚本
* perf:拆分插件增查删改为独立的单元测试
* refactor: 重构插件管理器测试,使用临时环境隔离测试实例
* test: 增加对仪表板文件检查的单元测试,涵盖不同情况
* style: format code
* remove: 删除未使用的导入语句
* delete: remove unused test file for pipeline
---------
Co-authored-by: Soulter <905617992@qq.com >
2025-09-27 14:43:04 +08:00
Soulter
49bba9bf98
style: format codes
2025-03-03 13:30:55 +08:00
Soulter
461f1bb07c
feat: 支持插件handler优先级
2025-02-06 12:35:43 +08:00
Soulter
c0911921c7
feat: 配置Schema以及插件支持配置
2025-01-29 16:54:57 +08:00
Soulter
4c9fe016bf
fix: test_pipeline
2025-01-09 16:00:43 +08:00
Soulter
3ff3c9e144
perf: 检测到docker不可用时自动禁用本插件
2025-01-08 23:32:49 +08:00
Soulter
aa49539e3e
chore: fix test
2024-12-26 23:33:40 +08:00
Soulter
7b4118493b
chore: fix test
2024-12-26 23:15:10 +08:00
Soulter
62039392bb
chore: fix test workflow
2024-12-26 23:06:30 +08:00
Soulter
b72c69892e
test: dashboard test
2024-12-26 22:59:17 +08:00
Soulter
b8a6fb1720
chore: update tests
2024-12-25 12:50:29 +08:00
Soulter
6ab8114eee
feat: v3.4.0
2024-11-27 15:04:30 +08:00
Soulter
017426501c
fix: test
2024-11-22 11:20:55 +08:00
Soulter
c1d070186e
fix: test
2024-10-04 00:17:55 +08:00
Soulter
8a50786e61
feat: 支持设置控制台日志级别;
...
refactor: 重写了后端与仪表盘的日志通信
2024-09-22 10:23:26 -04:00
Soulter
6883de0f1c
feat: partially test http server api
2024-09-21 12:19:49 -04:00
Soulter
bdde0fe094
refactor: HTTP 请求全部异步化,移除了 baidu_aip, request 依赖
2024-09-21 11:36:02 -04:00
Soulter
292a3a43ba
perf: 完善覆盖率测试
2024-09-10 03:56:44 -04:00
Soulter
6dfbaf1b88
bugfixes
2024-09-10 01:57:13 -04:00
Soulter
dcec3f5f84
feat: unit test
...
perf: func call improvement
2024-08-17 04:46:23 -04:00