Commit Graph

78 Commits

Author SHA1 Message Date
1242999888 test: 添加多个渠道适配器的单元测试用例
本次提交新增了超过20个单元测试文件,覆盖Twitch、Telegram、WeChat、Discord、Slack、Mattermost等多个渠道适配器以及核心组件的测试:
1.  新增Twitch令牌工具、限流器、去重器相关测试
2.  新增Telegram分块、格式、安全策略、流媒体相关测试
3.  新增微信适配器、限流、会话、链接格式、监控等测试
4.  新增Discord命令、会话、格式化、Webhook相关测试
5.  新增Slack、Mattermost、Nostr、Signal、Zalo、NextcloudTalk等渠道的测试用例
6.  新增核心路由、会话路由、文本分块器的冒烟测试
2026-05-13 18:03:43 +08:00
69fe97a90d test: 批量修复并新增单元测试用例
1. 移除Telegram格式化测试中未使用的导入项
2. 修复Teams测试用例,添加monkeypatch参数并配置通配符开关
3. 更新钉钉适配器测试,替换弃用的流属性检查
4. 修正Twitch规范化测试,更新ROOMSTATE测试逻辑
5. 重构会话映射测试,完善数据库执行结果模拟
6. 格式化Slack块构建测试的长参数调用
7. 修复LINE适配器测试,更新能力断言和异步锁使用
8. 修正Slack会话解析测试,修复聊天类型判断错误
9. 更新能力测试,补充缺失的字段检查
10. 修复Matrix适配器测试,修正位置参数和配置校验逻辑
11. 为飞书分析模块测试添加跳过标记
12. 新增微信能力、限流、链接格式、会话路由等模块的单元测试
13. 修复Twitch适配器导入路径和测试断言
14. 新增Discord Webhook、Nextcloud Talk、Signal多账户等模块的单元测试
15. 修复Manager阶段测试的导入路径
16. 新增iMessage异常和命令处理的单元测试
17. 新增Nostr健康检查和相关模块的单元测试
18. 新增Signal守护进程和SSE重连相关测试
2026-05-13 16:43:01 +08:00
fbe47b6393 refactor(webhook,tests): 完善webhook日志与多适配器测试修复
1.  webhook路由新增记录请求源IP与请求头
2.  修复多个适配器单元测试:更新配置断言、补全async测试装饰器、重构测试调用逻辑
3.  新增Nostr适配器测试通用fixture
4.  更新NextcloudTalk签名相关测试与函数命名
2026-05-12 14:52:12 +08:00
3264900bc9 test: 新增多渠道单元测试用例并配置测试环境变量
新增了Twitch、Telegram、Discord、Slack、Mattermost、WeChat、Zalo等多渠道的单元测试用例,覆盖了令牌处理、速率限制、消息去重、会话解析、格式转换、安全策略等模块
同时在测试配置中添加了测试用的OpenAI API密钥环境变量
2026-05-12 00:56:47 +08:00
Wenjie Zhang
7fbefc0963
Merge branch 'main' into feat/workspace 2026-05-04 10:51:41 +08:00
Wenjie Zhang
1e8b20e30b fix: 修复身份认证绕过问题
Refs GHSA-6959-99pq-c56x
2026-05-04 09:33:47 +08:00
Wenjie Zhang
a450be57e3 fix(workspace): 修改文件上传逻辑,新增上传工具函数,支持文件大小限制和错误处理 2026-05-04 08:24:13 +08:00
Wenjie Zhang
cbd265fea8 feat(workspace): 增强工作区功能,处理符号链接和非 UTF-8 文本文件的预览支持 2026-05-04 08:18:37 +08:00
Wenjie Zhang
596eeeaaac feat(workspace): 新增工作区文件内容编辑功能,支持 Markdown 和 TXT 文件的保存与预览 2026-05-04 08:18:37 +08:00
Wenjie Zhang
981fd3170d feat(workspace): 增强工作区功能,新增默认 agents 文件创建及路径管理 2026-05-04 08:18:37 +08:00
郭诣
75b5f36f09 fix(knowledge): 修复 general parser 分块超限导致 LightRAG 索引失败
naive_merge 不保证输出 chunk 在 token 上限内,当单行内容超过
chunk_token_num 时会产生超大 chunk,导致 LightRAG 报错
"Chunk token length 3140 exceeds chunk_token_size 1200"。

- nlp.py: 新增 hard_split_by_token_limit 公共硬切分函数
- general.py: 新增 _ensure_chunk_token_limit 兜底保护
- laws.py: 删除本地重复函数,改用 nlp 版本(DRY)
2026-05-01 22:31:58 +08:00
Wenjie Zhang
2e0b4a8358 refactor: 增强模型提供程序管理和 UI 组件
- 在 PostgresManager 中添加了用于嵌入和重新排序基本 URL 的新列。
- 更新了模型提供程序数据结构,以包含新的端点。
- 重构了模型提供程序服务和路由器中的凭据状态检查。
- 引入了一个可重用的组件,用于跨组件进行模型状态检查。
- 通过调整页面内边距的 CSS 变量,提高了 UI 的响应速度。
- 重构了模型选择器组件,以利用新的模型状态组件。
- 更新了模型配置视图,以处理响应式编辑模型状态。
- 清理了未使用的代码,并改进了模型状态检查中的错误处理。
2026-04-26 19:59:15 +08:00
Wenjie Zhang
db13abaa63 feat(model): 增强模型配置功能,支持手动添加模型及源字段,优化远端模型加载逻辑 2026-04-26 15:03:20 +08:00
Wenjie Zhang
d177506d15 refactor(models): 重构模型配置[WIP] 2026-04-25 23:58:01 +08:00
Wenjie Zhang
743b5b03c4
Merge pull request #652 from Flying-Henanese/feat/add-semantic-chunking
feat: 增加基于自然语义的文本切分功能
2026-04-24 19:41:48 +08:00
Wenjie Zhang
be39d118fd chore(release): bump version to 0.6.1
- 单一版本来源:__version__ 改为从 pyproject.toml 动态读取
- Docker Compose 镜像标签环境变量化 (${YUXI_VERSION:-0.6.1})
- info.template.yaml 版权信息支持版本号动态注入
- 测试断言改为动态比较,不再硬编码版本号
- 新增 bump-version.sh 发版脚本,一键同步所有版本位置
- 更新 changelog.md,记录 v0.6.1 变更内容
2026-04-24 19:32:16 +08:00
zhou shujian
2b48190b25 chore: 标准化NLTK数据卷并清理测试文件
- 将docker-compose.yml中的NLTK数据挂载从主机路径改为命名卷,确保跨平台一致性
- 移除测试中生成临时文件的副作用,改为控制台输出切分结果
- 修复语义切分工具中NLTK资源检查逻辑,避免重复下载并提供明确错误提示
- 优化语义切分函数签名,支持embed_fn为None时的退化处理
2026-04-24 16:18:01 +08:00
zhou shujian
32fef0893c fix(knowledge/chunking): 修复列表和数学块切分时丢失上下文的问题
注释掉列表和数学块前的强制切分调用,避免在遇到有序列表、无序列表或数学块时过早中断当前内容块。这确保了列表项和数学公式能够与其前面的标题和段落保持在同一语义单元中,从而保留完整的上下文信息,提高后续检索的准确性。
2026-04-23 11:22:17 +08:00
zhou shujian
edf66bbe38 docs: 为知识分块工具函数添加详细注释
- 为 html_table_to_key_value 函数添加处理逻辑说明,解释如何应对过长表格的切分问题
- 为 infer_heading_level 函数添加层级推断规则说明,包括数字序号和中文序号的处理
- 为 extract_table_block 函数添加表格提取算法的详细步骤说明
- 为 split_text_by_length_and_newline 函数添加分块逻辑的详细注释,解释段落和行的处理流程
- 为语义分块相关函数添加中文文档,包括句子分割、聚类算法和整体流程说明
- 更新测试用例,使用更清晰的测试文档并添加结果保存功能
2026-04-22 17:14:10 +08:00
ZHOU Shujian
a2ed3d9a10 test(semantic_chunking): replace mock embedding with real model
Use a real embedding model from SiliconFlow for more realistic testing.
Update test assertions to validate LaTeX formula preservation and semantic clustering of distinct chapters.
2026-04-22 16:48:11 +08:00
ZHOU Shujian
6934e19030 feat(chunking): 新增语义分块预设,支持基于嵌入和聚类的智能切分
- 添加语义分块预设选项,使用嵌入模型和聚类算法进行语义切分
- 实现标题路径增强、表格转换和图像标题处理等语义增强功能
- 新增NLTK相关依赖并持久化数据包,避免重复下载
- 添加完整的单元测试验证语义切分逻辑
2026-04-22 16:48:11 +08:00
JunghwanNA
c0f17b1fe8 fix: 避免 OIDC 已绑定账号在带冒号的 subject 下被误判为冲突账号
OIDC 原始用户名绑定使用 `oidc:{sub}:{target_user_id}` 记录占位关系,
但读取时按固定下标拆分字符串,导致 `sub` 自身包含冒号时无法回到
真实用户,回调流程会把已绑定用户误判成冲突账号。

本次改动保持现有占位格式不变,只把目标用户 ID 的解析改为从右侧
拆分,并补充覆盖 `sub` 包含冒号的单元测试;同时在 roadmap 中记录
这个回归修复,方便和 OIDC 功能演进保持同一条线索。

Constraint: 保持 OIDC 现有占位 user_id 设计,不引入新表或大范围重构
Rejected: 新增专用绑定表 | 变更范围过大,不符合当前最小修复目标
Rejected: 继续按固定位置 split | 无法兼容 subject 中合法出现的冒号
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: 后续若继续沿用字符串占位格式,解析必须始终从尾部提取 target_user_id
Tested: OPENAI_API_KEY=dummy YUXI_SKIP_APP_INIT=1 uv run --group test pytest test/unit/services/test_oidc_service.py
Tested: OPENAI_API_KEY=dummy YUXI_SKIP_APP_INIT=1 uv run --group test ruff check package/yuxi/services/oidc_service.py test/unit/services/test_oidc_service.py
Not-tested: Docker compose 环境下的端到端 OIDC 登录流程
2026-04-17 01:40:32 +09:00
Wenjie Zhang
9c8998699c fix(summary): 修复对话摘要中间件的工具结果卸载链路,修正路径拼接错误并补充单元测试 2026-04-12 23:38:13 +08:00
Wenjie Zhang
63786b7c66 fix: 更新知识库检索工具,支持 Dify 和 LightRAG 类型,优化结果处理逻辑 Fix Error: query_kb不支持查询dify知识库了?
Fixes #622
2026-04-09 23:05:22 +08:00
Wenjie Zhang
d209c58b5d fix(parser): 修复 DOCX 图片回插顺序 2026-04-08 15:21:20 +08:00
Wenjie Zhang
8a3094cb1e feat(milvus): 增加 BM25 支持,优化混合检索功能及相关参数配置 2026-04-07 20:39:10 +08:00
Wenjie Zhang
a62077b693 feat: workspace 目录下支持新建文件夹以及上传文件 2026-04-06 18:49:13 +08:00
Wenjie Zhang
0e5456aae3 feat(agent): 统一知识库检索结果文件路径注入 2026-04-05 23:52:10 +08:00
Wenjie Zhang
6df070ddb6 fix: 修复 MCP worker 配置加载不一致 2026-04-04 14:47:23 +08:00
Wenjie Zhang
2100edfd6e fix: 调整部门删除逻辑,迁移用户至默认部门并清理相关配置,更新前端提示信息 Error: 部门删除限制
Fixes #607
2026-04-04 11:10:30 +08:00
Wenjie Zhang
872e61946c fix: 添加用户登录失败锁定机制及相关测试用例 #604 2026-04-03 23:15:20 +08:00
Wenjie Zhang
4a98969d0e fix: 修复包管理的导入问题 #603 2026-04-03 13:09:12 +08:00
Wenjie Zhang
a828d7154b feat(skill): 添加远程技能安装服务及相关功能更新
- 新增 remote_skill_install_service.py 支持远程技能安装
- 更新 skill_service.py 增强技能管理功能
- 更新 skill_router.py 添加相关路由
- 更新前端组件 SkillsManagerComponent.vue
- 更新 ExtensionsView.vue
- 添加对应单元测试

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-02 16:09:02 +08:00
Wenjie Zhang
8ba4f7050d feat(skill): 支持直接上传单个 SKILL.md 文件,更新导入功能描述 2026-04-02 16:07:58 +08:00
Wenjie Zhang
1f792fa914 feat: 增加 Argon2 密码哈希支持,优化文件系统安全性,修复 frontmatter 解析 2026-04-02 16:03:01 +08:00
Wenjie Zhang
2aeb1a86d7 fix: 修复沙盒共享权限配置错误的问题 #594 2026-04-02 11:17:30 +08:00
Wenjie Zhang
783513f2ba chore: 0.6.0 预发布 2026-04-01 16:55:29 +08:00
Wenjie Zhang
9bc86c070c feat(filesystem): 增强文件删除功能,支持递归删除目录并添加保护路径检查 2026-04-01 04:04:55 +08:00
Wenjie Zhang
70c61aa53e feat(agent): 添加流式消息处理功能,支持实时更新智能体状态 2026-04-01 03:17:43 +08:00
Wenjie Zhang
62d763a1a0 feat(agent): 交付物卡片新增“保存到工作区”能力:支持将单个交付物复制到共享目录 workspace/saved_artifacts/,并复用现有文件树/预览/mention 体系立即可见 2026-03-31 20:18:22 +08:00
Wenjie Zhang
3f1ec778a4 feat: 新增对于 workspace 的删除接口的实现
- 为前端工作台文件树补齐文件删除能力:`/api/viewer/filesystem/file`
- 新增删除接口,`AgentPanel` 文件节点新增删除按钮与确认交互,删除后会同步刷新树与预览状态
2026-03-31 19:41:08 +08:00
Wenjie Zhang
b4401d0339 feat: 集成 Langfuse 以增强 Yuxi 中的可观察性
- 更新了 Dockerfile,在同步过程中包含 Langfuse 集成。
- 在文档中添加了新的部分,详细介绍 Langfuse 集成的目的、配置和在 Yuxi 中的使用方法。
- 更新了 Vitepress 配置,包含了指向新 Langfuse 集成文档的链接。
- 增强了路线图,反映了对 Langfuse 自托管支持的添加,并明确了集成方法。
2026-03-31 09:58:16 +08:00
Wenjie Zhang
d282cab00c feat: 增加工具配置说明展示 2026-03-30 16:39:27 +08:00
Wenjie Zhang
4f6353d555 feat(test): 重组测试目录结构为 integration/unit/e2e 三层架构
- 将 api 测试重组为 integration 测试
- 新增 unit 和 e2e 测试目录分类
- 新增 testing-guidelines.md 测试指南文档
- 更新 pyproject.toml 和 run_tests.sh 以适配新结构

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-30 15:24:47 +08:00
Wenjie Zhang
e3515fa795 fix: 统一沙盒后端命名与配置说明 2026-03-29 16:52:33 +08:00
Wenjie Zhang
b7e10c6666 feat: 重构扩展管理中的 SubAgent 与 MCP 交互,统一为类似 Skills 的方式。 2026-03-29 13:47:41 +08:00
Wenjie Zhang
ab268d8eba feat: 添加工件管理和展示功能
- 更新 .gitignore 以排除测试相关目录。
- 增强 ChatbotAgent 和 DeepAgent 以利用 BaseState 进行状态管理。
- 引入 PresentArtifacts 工具,允许代理向用户展示输出文件。
- 在 state.py 中添加新的状态管理功能,包括 merge_artifacts 和 BaseState。
- 创建 AgentArtifactsCard 组件以在前端显示工件。
- 在 AgentChatComponent 和 AgentInputArea 中集成工件处理。
- 更新 MessageInputComponent 和 ToolCallRenderer 以更好地处理工件的 UI 展示。
- 添加工件状态管理和标准化函数的测试。
- 更新 docker-compose 以使用最新的沙箱配置器镜像。
- 在路线图中记录新功能。
2026-03-29 10:55:00 +08:00
Wenjie Zhang
d72273f469 feat(skills): 新增内置技能 deep-reporter,支持生成科研报告和深度分析类长报告 2026-03-28 20:44:11 +08:00
Wenjie Zhang
6078518577 feat: 更新内置技能版本,增强技能更新逻辑,优化技能管理界面 2026-03-28 20:02:52 +08:00
Wenjie Zhang
8041c5ef4d Merge branch 'main' into feat/builtin-skills-on-demand-install 2026-03-28 19:36:41 +08:00