Wenjie Zhang
56cd1b500a
feat: 优化 Skill 安装逻辑和展示逻辑
2026-06-03 14:13:59 +08:00
Wenjie Zhang
eb55780d0d
feat: 修复工具返回异常的问题
2026-06-03 14:09:45 +08:00
Wenjie Zhang
206ddd8ff0
feat: 添加子智能体消息渲染
2026-06-03 14:09:45 +08:00
Wenjie Zhang
6a5926ba41
feat: 添加重置命令以清理和重启服务
2026-06-03 14:09:45 +08:00
Wenjie Zhang
0dbdc647ec
feat: 添加图片生成技能 image-gen,迁移 Qwen-Image 生成能力至内置 Skill
2026-06-02 20:04:33 +08:00
Wenjie Zhang
d4bc51714c
refactor: rename 中间件
2026-06-02 19:20:15 +08:00
Wenjie Zhang
01d21e2759
feat: 实现子智能体的线程体验
2026-06-02 18:47:28 +08:00
Wenjie Zhang
14daa43e28
feat: 统一工具调用的规范化处理,优化消息解析逻辑
2026-06-02 00:08:38 +08:00
Wenjie Zhang
b26bb5d12e
feat: 重构子智能体运行链路
2026-06-01 22:28:45 +08:00
Wenjie Zhang
3fe5d307bf
feat: 优化沙箱线程作用域管理
2026-06-01 22:28:01 +08:00
Wenjie Zhang
b6240a1b4f
style: code format
2026-05-31 13:40:15 +08:00
Wenjie Zhang
31a7fc52d0
feat: 适配 deepagents 最新版特性
2026-05-31 13:36:42 +08:00
Wenjie Zhang
4f02b4d35e
feat: 优化 mention 逻辑,支持在未创建 Thread 的时候 @ 工作区文件
2026-05-30 16:04:39 +08:00
Wenjie Zhang
932f990841
feat: 优化当前的文件系统的解析
2026-05-30 14:59:03 +08:00
Wenjie Zhang
5322b21c32
refactor: 简化代码逻辑
2026-05-29 22:19:58 +08:00
Wenjie Zhang
afdb5fbb02
refactor(knowledge): 降低知识库路由复杂度
...
拆分示例问题生成逻辑并收敛 URL 入库与上传限制,修复 uid、MIME 与结果统计等路由问题。
2026-05-28 15:10:24 +08:00
Wenjie Zhang
acf150d47d
feat(agent): 支持运行恢复与中断续写
...
完善 AgentRun 的父子运行关系、恢复请求和前端流式状态处理,补充相关单元测试以覆盖中断后恢复场景。
2026-05-28 14:09:04 +08:00
Wenjie Zhang
6438f8b7c2
feat(models): 增强模型配置能力
2026-05-27 19:56:26 +08:00
Wenjie Zhang
2b8cc37592
feat(attachments): 新增附件的可解析的支持
2026-05-27 18:22:29 +08:00
Wenjie Zhang
4036530bb6
feat(skill): 新增 Skill 的权限设置
2026-05-27 14:51:56 +08:00
Wenjie Zhang
7b1b326523
refactor: 整合知识导图接口
...
将思维导图生成、查询和文件列表接口收敛到知识库 API,并移除独立 mindmap router 与前端模块。
2026-05-26 19:38:44 +08:00
Wenjie Zhang
b08ddc118f
fix: 补充默认智能体描述
...
为默认智能体提供说明并在缺失时自动回填,避免配置面板展示空描述。
2026-05-26 19:38:17 +08:00
Wenjie Zhang
5b1fd51b27
refactor: 移除 spaCy 图谱抽取器,前端抽取方案收敛为仅 LLM
...
- 删除 backend/package/yuxi/knowledge/graphs/extractors/spacy.py
- 清理 __init__.py 和 factory.py 中的 spacy 引用
- KnowledgeGraphSection.vue 抽取器类型仅保留 LLM + "更多拓展中"占位
- 补充测试:factory 仅支持 llm、reject spacy、service configure 拒绝 spacy
- 更新 docs/intro/knowledge-base.md 文档描述
2026-05-26 17:40:17 +08:00
Wenjie Zhang
21b16c7c06
feat: 更新模型选择组件和聊天组件的输入逻辑
2026-05-26 17:40:17 +08:00
Wenjie Zhang
fbb5b458ea
refactor: 数据库迁移 - agents 表替代 agent_configs + 知识库 slug→kb_id
...
- manager.py 新增 agents 表创建及索引
- 移除旧的 agent_configs 迁移(uid、department_id 等)
- 知识库相关表(evaluation、graph、chunks)参照字段 slug→kb_id
2026-05-26 17:40:17 +08:00
Wenjie Zhang
42636477c2
refactor: Agent Graph 和 Toolkits 更新
...
- chatbot/deep_agent graph 清理废弃导入
- toolkits __init__ 调整导出
- install_skill 工具函数重构,简化安装逻辑
2026-05-26 17:40:17 +08:00
Wenjie Zhang
42521bab63
refactor: Filesystem & Upload 代码重构
...
- filesystem_service 简化文件元数据处理
- viewer_filesystem_service 移除冗余逻辑
- 新增 upload_utils 上传工具模块
- filesystem_router 移除废弃端点
- 前端 viewer_filesystem.js 接口重构,新增 upload_limits.js 上传限制
- file_preview、file_utils 更新预览与工具函数
2026-05-26 17:40:17 +08:00
Wenjie Zhang
d2859ab8cd
refactor: Auth/User 路由重构 + 新增 user_api 前端接口
...
- auth_router 移除旧的 get_admin_user,统一使用 auth_middleware
- user_router 新增 get_users 接口
- 前端新增 user_api.js,更新 index.js 导出
2026-05-26 17:40:17 +08:00
Wenjie Zhang
5f61d8f8c5
refactor: 后端 Service 层适配新 AgentRepository
...
- agent_run_service、chat_service 替换 AgentConfigRepository → AgentRepository
- conversation_service、run_worker、langfuse_service 适配新模型
- conversation_repository 修复 metadata 附件序列化问题
2026-05-26 17:40:17 +08:00
Wenjie Zhang
20ac022cf3
refactor: Repository 重构(agent_config → agent)+ 新增 agent_router
...
- 删除旧的 agent_config_repository,新增 agent_repository
- 更新 models_business.py 中 Agent 模型
- 新增 agent_router,将 agent 配置管理从 chat_router 拆分
- 删除废弃的迁移文件 20260518_0001_agent_config_uid.py
- 更新 lifespan、manager.py 中的 Agent 表结构迁移
2026-05-26 17:40:17 +08:00
Wenjie Zhang
b488e48d8e
refactor: Benchmark 弹窗重构 + 测试适配 + 文档更新
...
- 重构 BenchmarkGenerateModal/BenchmarkUploadModal 组件
- 更新测试文件适配架构变更(apikey、sandbox、用户环境)
- 更新 roadmap.md 记录本次修改
2026-05-26 17:40:17 +08:00
Wenjie Zhang
acc7a7342f
refactor: Sandbox Provisioner 优化 + 数据库模型更新 + 初始化脚本完善
...
- 优化 Sandbox Provider/Provisioner 配置和错误处理
- 新增 postgres 数据库日志与项目成员模型
- 完善初始化脚本(init.sh/ps1)和 Makefile
- 新增 seed_initial_users.py 初始用户种子脚本
- 更新 uv.lock 依赖锁定
2026-05-26 17:40:17 +08:00
Wenjie Zhang
b9f0579ef2
refactor: 后端用户管理重构 - 新增 user_router,移除旧的 auth_apikey_router
...
- 新增 user_router.py 统一用户管理路由
- 删除 auth_apikey_router.py,功能迁移至 user_router
- 更新 __init__.py 路由注册
- 同步更新前端 apikey_api.js 适配接口变更
2026-05-26 17:40:17 +08:00
Wenjie Zhang
708ff29515
test: 新增测试文件并更新现有测试适配命名与架构变更
...
- 新增: test_knowledge_base_backend.py, test_skills_middleware.py
- 更新: 所有现有测试适配 db_id→kb_id, get_subagents_from_names→slugs 等接口变更
2026-05-26 17:40:17 +08:00
Wenjie Zhang
99c590d003
refactor: 知识库系统重构 - 统一命名、优化图检索与向量存储逻辑
...
- base/manager: db_id → kb_id 命名统一,重构元数据加载与文件记录逻辑
- implementations: dify/milvus/notion/read_only 适配新命名与接口
- graphs: milvus_graph_service/vector_store/graph_utils 优化图构建与检索逻辑
- eval: benchmark_generation/evaluator/service 适配新命名并优化评估流程
- utils/kb_utils: 对应更新工具函数
2026-05-26 17:40:17 +08:00
Wenjie Zhang
c772e5ca3a
refactor: Agent 运行时架构重构 - 移除 RuntimeConfigMiddleware,统一上下文准备与工具解析
...
- 删除 runtime_config_middleware.py,将功能合并到:
- prepare_agent_runtime_context(): 统一上下文准备入口
- resolve_configured_runtime_tools(): 运行时工具解析
- context.py: 规范化函数重命名 (_names → _keys),重构 config 加载流程
- chatbot/deep_agent graph: 集成新上下文准备流程,移除 RuntimeConfigMiddleware 引用
- skills_middleware: 抽取 normalize_string_list 为共享工具函数
- subagent_service: get_subagents_from_names → get_subagents_from_slugs,支持 slug 查询
- 对应更新 repositories/services/routers 适配新接口
2026-05-26 17:40:17 +08:00
Wenjie Zhang
82fd5846ea
refactor: 命名统一 - db_id/dbId → kb_id/kbId 贯穿后端路由、模型、Schema 及前端 API
...
- 数据库列: db_id → kb_id (knowledge_bases, knowledge_files, knowledge_chunks, graph 相关表)
- 路由参数: path/query 中的 db_id → kb_id
- Schema 字段: resource_id → kb_id
- 前端 API 参数: dbId → kbId
2026-05-26 17:40:17 +08:00
Wenjie Zhang
1026b1d871
refactor: 评估系统重构 - 支持图检索; 重构 Benchmark 生成与 QuerySection 组件
...
- 后端: milvus_graph_service 增加图检索能力; benchmark_generation 重构为基于 service 的模式
- 后端: evaluation_service.py 迁移至 knowledge/eval/service.py
- 后端: 简化 milvus.py 实现, 抽离图逻辑到 graph service
- 前端: QuerySection.vue 大幅重构, 支持图检索模式与多视图切换
- 前端: BenchmarkGenerateModal 增加图检索配置选项
- 测试: 新增 service_generation 测试, 更新 benchmark_generation 测试
2026-05-26 17:40:17 +08:00
Wenjie Zhang
b728482d4c
feat: 账户设置独立为设置页标签;评估组件 UI 重构与体验优化
...
- 新增 AccountSettingsComponent,将个人资料编辑从 UserInfoComponent 弹窗迁移至设置页"账户设置"标签
- SettingsModal 新增 initialTab 属性支持指定初始标签,默认标签根据权限智能切换
- AppLayout 移除废弃的 layoutSettings 与 useTopBar 相关逻辑
- RAGEvaluationTab 重构:评估启动改为下拉面板,新增最新评估卡片、进度轮询、Auto Refresh
- 调整次要 UI:主题色微调、文件面板描述移除、上传按钮样式增强
2026-05-26 17:40:17 +08:00
Wenjie Zhang
2938b4e794
feat: 优化技能和资源配置逻辑,支持默认选择当前用户可用的全部资源
2026-05-26 17:40:17 +08:00
Wenjie Zhang
9ab8241f16
test: 评估系统重构 - 更新测试适配新语义
...
- 集成测试适配 dataset/run API 路径
- 单元测试补充并发数参数验证
- conftest 新增测试辅助方法
2026-05-26 17:40:17 +08:00
Wenjie Zhang
1efbf86bf0
refactor: 评估系统重构 - 后端统一 dataset/run 语义
...
- 评估数据集/题目/运行/逐题结果全量入库,JSONL 仅作为交换格式
- benchmark -> dataset, task -> run 术语统一
- 评估生成支持配置并发数
- 移除 base.py 中旧的 benchmarks_meta 元数据逻辑
- manager.py 统一表创建方法名
2026-05-26 17:40:17 +08:00
Wenjie Zhang
37179e233f
fix: 修复 Notion 页面数据源验证逻辑;增加未知父级的异常处理
2026-05-26 17:40:17 +08:00
Wenjie Zhang
5add3a070d
feat: 知识图谱状态增加实体/关系数量统计
...
- KnowledgeGraphRepository 新增 count_by_db_id 方法
- MilvusGraphService.get_status 返回 entity_count 和 relationship_count
- 知识图谱管理面板展示实体与关系计数
- 修复重置按钮在构建中不可见的问题
- 调整默认并发数为 50
Co-authored-by: xerrors <xerrors@qq.com>
2026-05-26 17:39:13 +08:00
Wenjie Zhang
82af923cf1
feat: 知识库工具注册分类体系,ToolsCardList 展示 knowledge 分类
...
- kbs tools 添加 category=knowledge 和 tags 元数据
- registry 注释补充 knowledge 分类说明
- ToolsCardList 新增 knowledge 分类展示标签
Co-authored-by: xerrors <xerrors@qq.com>
2026-05-26 17:39:13 +08:00
Wenjie Zhang
17b521796c
refactor: 移除废弃的 calculator 内置工具
...
计算器功能已不再需要,移除相关代码以简化工具集。
Co-authored-by: xerrors <xerrors@qq.com>
2026-05-26 17:39:13 +08:00
Wenjie Zhang
c342f3e1ee
feat: 收紧用户管理部门隔离并重构知识库共享权限
...
- 普通管理员创建用户时固定归属本部门,用户列表/访问选项/详情/更新/删除均限制在本部门
- share_config 改为三档:global(全局共享)、department(部门共享)、user(指定人可访问)
- 部门共享必须包含当前用户部门,指定人可访问必须包含当前用户
- 前端 ShareConfigForm 重构为三档卡片选择+下拉菜单选人/选部门
- 补充部门隔离和共享权限过滤的集成测试
2026-05-26 17:39:13 +08:00
Wenjie Zhang
5693fdd4a7
feat: 重构知识库注册机制,简化知识库类型注册并添加描述信息
2026-05-26 17:39:13 +08:00
Wenjie Zhang
1a3ec71b2b
feat: 新增Notion连接器
2026-05-26 17:39:13 +08:00
Wenjie Zhang
0faecbb886
feat(kb): 统一知识库并支持 search/find/open
2026-05-26 17:39:13 +08:00
Wenjie Zhang
7db54079a0
test: 补充权限控制和用户隔离测试
...
- 新增 context_auth 权限控制单元测试
- 更新 chat_router 和 knowledge_router 集成测试
- 适配 agent_run_service 和 workspace_service 测试
2026-05-26 17:39:13 +08:00
Wenjie Zhang
52907da42b
refactor(api): API 路由适配用户隔离和权限控制
...
- 添加智能体配置权限过滤功能
- 从 department_id 改为 uid
- 优化配置序列化和验证逻辑
2026-05-26 17:39:13 +08:00
Wenjie Zhang
9fd2ebd69c
refactor(services): 服务层适配用户隔离配置
...
- chat_service 从 department_id 改为 uid
- 优化 agent_config 解析和验证逻辑
- 更新 filesystem_service 和 workspace_service
2026-05-26 17:39:13 +08:00
Wenjie Zhang
4181604a71
refactor(kb): 知识库模块重构,添加只读连接器支持
...
- 新增 ReadOnlyConnectors 基类,支持只读外部检索
- 添加知识库类型特定参数配置方法
- 重构 dify 知识库实现
- 优化 additional_params 处理逻辑
2026-05-26 17:39:13 +08:00
Wenjie Zhang
96dfaf619a
refactor(agents): 智能体配置改为用户隔离并添加权限控制
...
- AgentConfigRepository 从 department_id 改为 uid
- 添加 Context 字段权限过滤功能
- 更新 sandbox paths 和 base agent 配置
2026-05-26 17:39:13 +08:00
Wenjie Zhang
78116ec59d
refactor(db): 智能体配置从部门隔离改为用户隔离
...
- 修改 AgentConfig 模型 department_id -> uid
- 添加数据库迁移脚本处理数据转换
- 更新 postgres manager 添加迁移逻辑
2026-05-26 17:39:13 +08:00
Wenjie Zhang
f1e6bcf6eb
refactor: 统一使用 uid 而不是 user_id
2026-05-26 17:39:13 +08:00
Wenjie Zhang
78acc19a88
feat(kb): 新增从工作区导入文件功能,优化图谱配置面板与并发上限
...
- 后端新增 /files/import-workspace 接口,将工作区文件上传至 MinIO 并返回预处理结果
- 后端新增 resolve_workspace_file_path 工具函数,校验文件存在性与类型
- 前端 FileUploadModal 新增工作区文件选择模式,支持目录浏览与多选文件
- 前端 knowledge_api 新增 importWorkspaceFiles API
- 图谱抽取器并发上限从 20 提升至 1000
- 图谱配置面板浮动层级与样式微调(阴影、边框、告警文案精简)
- 知识库类型 milvus 标签颜色从 red 改为 blue
- 新增工作区导入后端单元测试
2026-05-26 17:39:12 +08:00
Wenjie Zhang
5634ac3e27
test: 补充图谱抽取器、metadata 持久化与检索元数据测试;更新 roadmap
...
- LLM 抽取器测试:禁止自定义 Prompt、Schema 拼接、配置锁定修改
- metadata 持久化测试:验证 _save_metadata 不覆写数据库已有图谱配置
- 检索测试:验证 resource_id 写入 metadata
- roadmap 补充图谱抽取器配置优化条目
2026-05-26 17:39:12 +08:00
Wenjie Zhang
84aa78f593
feat(kb): 检索结果元数据添加 resource_id 字段
...
- _find_query_target 返回 db_id 供检索结果标注来源
- _normalize_retrieval_result_metadata 新增 resource_id 参数写入 metadata
2026-05-26 17:39:12 +08:00
Wenjie Zhang
f2d68ebdaa
fix(kb): 修复 metadata 覆写数据库图谱配置,改用文件级持久化
...
- update_kb_config 不再触发全量 _save_metadata,避免内存 metadata 覆盖数据库已有图谱配置
- 补全文件大小时改用 _persist_file 逐文件写入
- delete_file_chunks_only 通过 chunk_repo 检查文件是否有图谱数据再决定是否清理
2026-05-26 17:39:12 +08:00
Wenjie Zhang
d292e53c23
feat(kb): LLM 图谱抽取器重构为固定 Prompt + Schema,支持并发构建与模型参数
...
- LLM 抽取器收敛为固定 Prompt + 可选 Schema 约束,禁止自定义完整 Prompt
- 图谱构建改用 asyncio worker 队列并发,并发数由 extractor_options.concurrency_count 控制
- 已锁定的图谱配置允许修改同类参数,类型保持锁定
- OpenAIBase 透传 model_params 到流式和非流式调用
2026-05-26 17:39:12 +08:00
Wenjie Zhang
409df5b073
feat(kb): 新增检索配置、图种子查询、实体/三元组搜索与融合检索
...
- 新增 MilvusRetrievalConfig 数据类,支持向量/关键词/混合/图检索参数化配置
- 新增 query_seed_subgraph 和图检索融合逻辑
- MilvusGraphVectorStore 新增 search_entities/search_triples
- MilvusGraphService.get_status 支持构建任务状态与进度查询
- cypher 语句增加 entity_id/triple_id 属性
- 前端 KnowledgeGraphSection 和 SearchConfigModal 适配新配置
- 新增 igraph 依赖
2026-05-26 17:39:12 +08:00
Wenjie Zhang
6225310600
feat(kb): 新增知识图谱向量存储、文件大小补全及前端重构
...
- 新增 MilvusGraphVectorStore 和 KnowledgeGraphRepository
- 新增文件大小从 MinIO 补全的逻辑(上传时 + 启动时)
- 重构 FileTable、GraphDetailPanel、KnowledgeGraphSection 等前端组件
- 新增文件大小回退测试和 kb_utils 测试
- 优化 file_utils 工具函数
- 更新 roadmap 文档
2026-05-26 17:39:12 +08:00
Wenjie Zhang
a0f9b0b6fd
feat(kb):新增知识库文件管理功能
...
- 更新了 KnowledgeBaseManager 以支持新的文件管理方法。
- 在 workspace_router 中为知识库文件操作新增了端点,包括文件树列表、文件预览和文件下载。
- 在 workspace_api.js 中添加了相应的 API 调用,用于知识库交互。
- 增强了 AgentFilePreview 组件,支持预览变体之间的切换。
- 更新了导航逻辑,重定向至知识管理标签页,而非数据库视图。
- 修改了 WorkspaceView 以处理知识库条目和预览,包括加载和展示知识文件。
- 通过在文件操作期间提供加载与错误状态的反馈,改善了用户体验。
2026-05-26 17:39:12 +08:00
Wenjie Zhang
fa2497e439
refactor: 更新配置和权限逻辑,移除过时参数,优化用户信息组件的下拉触发方式
2026-05-26 17:39:12 +08:00
Wenjie Zhang
e3c5f41c7c
refactor: 知识库重新设计
...
- 默认的知识库类型新增图谱抽取能力
- 移除 LightRAG 以及原有的知识图谱支持
- 移除所有兼容性的代码
2026-05-26 17:39:12 +08:00
Wenjie Zhang
25b80c7d3a
refactor: 重构 Chunk 逻辑,异步部分参数
2026-05-26 17:39:12 +08:00
supreme0597
caab251f02
fix(skill): 异步化删除目录防阻塞并限制批量删除上限以避免超时
2026-05-25 23:35:00 +08:00
Wenjie Zhang
43a23e2e88
Merge branch 'main' into feat/skills-remote-install
2026-05-25 21:37:07 +08:00
supreme0597
a70c858cda
refactor(mention): 重构 _validate_thread_id 为公有函数以防范跨模块访问 protected 成员
2026-05-25 21:11:41 +08:00
supreme0597
f024524b4e
fix(mention): 解决新建会话未对话时输入@无法检索工作区文件的问题
2026-05-25 21:11:41 +08:00
supreme0597
9dcd8fdaa7
fix(mention): 解决新会话中@提及无法激活问题,引入Redis缓存一致性失效闭环
2026-05-25 21:11:41 +08:00
supreme0597
6b29f659e5
feat: 修复 @ mention 搜索漏洞并重构优化 AgentPanel 自动打开策略
...
1. 修复 mention_router 中的 IDOR 越权安全漏洞,加入 thread 归属权校验,定义强类型 Pydantic Schema。
2. 修复 mention_search_service 中 ensure_thread_dirs 的 GET 副作用、空 Query 扫描和 MAX_SEARCH_DEPTH 深度问题,使用标准 Base64 编解码。
3. 增加前端 mention_api.js 参数的安全兜底。
4. 重构 AgentPanel 自动展开策略,彻底解决大仓库克隆时的卡死问题:
- 将 fetchThreadFiles 改为 recursive=false 避免递归大目录。
- 重构为只有在发生显性的物理文件写入(用户上传附件成功、用户保存交付件到工作区成功)的回调中才精准触发侧边栏自动展开,完美契合用户心智模型与性能诉求。
5. 精简 roadmap.md 文档,更新相关单元测试。
2026-05-25 21:11:41 +08:00
supreme0597
d0c60d9d82
feat(mention): 优化@提及搜索排序与高亮展示,修复唤醒交互及路径硬编码问题
2026-05-25 21:11:20 +08:00
Wenjie Zhang
575c34b160
feat: 将kb 从沙盒映射中移除,取而代之的是一个新的 Open 工具,可以提供自由且可控的文件访问
2026-05-25 21:10:05 +08:00
Wenjie Zhang
3771b7e804
feat(kb): 添加打开知识库文档功能及相关输入模型,优化文件内容读取
2026-05-25 21:09:14 +08:00
supreme0597
ae0ccb0597
fix(skill): 修复技能安装审核问题
...
- 拆分技能安装流程,避免慢速拉取阶段占用数据库连接
- 使用 ORM 读改写并加行锁追加 agent 配置 skills,避免重复和并发丢更新
- 强化沙盒目录下载错误处理并补充相关单元测试
2026-05-25 21:09:14 +08:00
supreme0597
f13c80be3c
fix(skill): 修复安装技能时配置持久化路径错误及单元测试失败的问题
...
- 修正 AgentConfigRepository 技能写入路径,确保技能保存至 config_json->context->skills
- 修复 test_install_skill 单元测试的各种 mock 与断言,解决由于接口变更和依赖不匹配导致的失败
2026-05-25 21:09:14 +08:00
supreme0597
8411976183
fix(skill): 修复 install_skill 同步异步混用及数据库连接问题
...
- 将 install_skill 改为 async def,消除 asyncio.run() 事件循环冲突
- 修复 agent_config_repository 表名及 jsonb 类型转换
- 增加数据库连接池配置,避免高并发耗尽连接
- 修复远程 skill 批量安装列表引用共享 bug
- 修复 slug 冲突 warning 误报(目录名 vs SKILL.md name)
- 新增 UserRepository 支持外部传入 db 会话
- 更新测试适配 async 签名
2026-05-25 21:09:14 +08:00
supreme0597
a772665212
feat(skill): 新增 Agent 会话中安装 Skill 功能
...
- 新增 install_skill 工具,支持从 Sandbox 路径或 Git 仓库安装 skill
- 支持管理员权限校验(admin/superadmin)
- 安装后自动持久化到 agent config,新对话自动生效
- 动态激活当前会话,无需重启
- 新增 AgentConfigRepository.add_skills_to_config_json() 原子 JSONB 操作
- 新增 21 个单元测试,覆盖权限、Schema、安装流程等场景
2026-05-25 21:09:14 +08:00
Wenjie Zhang
d9d7ec1c11
feat(doc): 优化 rapidocr
2026-05-25 21:09:14 +08:00
Wenjie Zhang
86f92f7f3f
feat(doc): 更新 MinerU 解析器参数,修改 Docker 配置,优化文档说明
2026-05-25 21:08:37 +08:00
supreme0597
df08fea2b8
feat(skills): 支持远程安装搜索、仓库历史记录与批量删除
...
- 后端新增全局搜索 skills.sh API (POST /system/skills/remote/search)
- 后端新增批量删除接口 (POST /system/skills/delete-batch),使用行锁防并发
- skill_repository.get_by_slug 支持 for_update 参数
- 前端远程安装弹框重构:Tab 双视图(按仓库拉取/全局搜索)、分页列表
- 前端仓库输入框新增历史记录功能(localStorage 持久化),支持逐条/批量清空
- 前端批量管理模式:全选/反选/清空 + 二次确认批量删除
- 修复 dropdown overlay teleport 到 body 导致 scoped CSS 无法穿透的样式问题
- 补充批量删除及并发锁单元测试
2026-05-25 17:54:58 +08:00
supreme0597
ef75bd262f
fix(backend): 统一为本地及MCP动态工具注入handle_tool_error容错
...
- 在 mcp_service 的 get_mcp_tools 加载出口全局设置 tool.handle_tool_error = True
- 在 toolkits registry 的 @tool 装饰器中对本地工具默认开启 handle_tool_error = True
- 修复因 MCP/本地工具内部执行出错抛出 ToolException 时击穿流服务导致 crash 的 bug
- 新增两个单元测试进行完备性验证
2026-05-25 17:32:48 +08:00
Wenjie Zhang
29d5da0bd9
Merge pull request #720 from supreme0597/fix/sandbox-editor-file
...
fix: 修复 sandbox backend edit 方法错误访问 result.data.success
2026-05-25 10:36:16 +08:00
supreme0597
6e1355bfc1
fix: 修复 sandbox backend edit 方法错误访问 result.data.success
...
str_replace_editor() 返回的 result 已经是 ResponseStrReplaceEditorResult, .success 和 .message 在顶层属性上,不应再经过 .data 访问。 此错误导致编辑文件时报 'StrReplaceEditorResult' object has no attribute 'success'。
2026-05-24 19:26:49 +08:00
supreme0597
4d048e7be8
fix(knowledge): 在 LITE_MODE 下安全跳过不支持的知识库类型,防止 API 崩溃
...
- 检查并跳过未注册/不支持的 kb_type,避免抛出 KBNotFoundError 导致接口 500
- 分别在初始化 (_initialize_existing_kbs) 和概览列表查询 (get_databases) 中增加 checks
2026-05-24 13:48:51 +08:00
Wenjie Zhang
fd6803e477
chore(release): 准备 0.6.2 发布
2026-05-22 20:22:09 +08:00
supreme0597
9406463849
refactor(security): 针对普通用户采用安全白名单投影过滤技能与MCP元数据
...
1. 技能列表接口:普通用户返回数据通过白名单字段投影,屏蔽 dir_path 等绝对物理路径。
2. MCP 服务器列表接口:废除原 pop() 黑名单模式,升级为显式白名单准入映射。
3. 单元测试:同步升级 test_skill_router.py 和 test_mcp_router.py,强化字段脱敏性测试断言。
2026-05-22 14:15:31 +08:00
supreme0597
8b7d006cf8
refactor(mention): 重构 _validate_thread_id 为公有函数以防范跨模块访问 protected 成员
2026-05-22 13:30:26 +08:00
supreme0597
27fb208c81
fix(mention): 解决新建会话未对话时输入@无法检索工作区文件的问题
2026-05-22 13:28:53 +08:00
supreme0597
f4f6ff29e2
fix(mention): 解决新会话中@提及无法激活问题,引入Redis缓存一致性失效闭环
2026-05-22 13:15:46 +08:00
supreme0597
469e362506
feat: 修复 @ mention 搜索漏洞并重构优化 AgentPanel 自动打开策略
...
1. 修复 mention_router 中的 IDOR 越权安全漏洞,加入 thread 归属权校验,定义强类型 Pydantic Schema。
2. 修复 mention_search_service 中 ensure_thread_dirs 的 GET 副作用、空 Query 扫描和 MAX_SEARCH_DEPTH 深度问题,使用标准 Base64 编解码。
3. 增加前端 mention_api.js 参数的安全兜底。
4. 重构 AgentPanel 自动展开策略,彻底解决大仓库克隆时的卡死问题:
- 将 fetchThreadFiles 改为 recursive=false 避免递归大目录。
- 重构为只有在发生显性的物理文件写入(用户上传附件成功、用户保存交付件到工作区成功)的回调中才精准触发侧边栏自动展开,完美契合用户心智模型与性能诉求。
5. 精简 roadmap.md 文档,更新相关单元测试。
2026-05-22 12:30:22 +08:00
supreme0597
261ea88b11
fix(mention): 修复普通用户无法在聊天中唤出技能与MCP提及列表的Bug
...
原因:
1. 后端接口 GET /api/system/skills 与 GET /api/system/mcp-servers 之前被权限校验拦截。
2. 前端本地在调用拉取技能和MCP服务底集的方法时,前置调用了 apiAdminGet 会在本地硬性拦截非管理员权限的用户,导致请求被掐断并静默兜底返回空数组。
修改:
1. 后端放开此二接口路由为低特权只读访问,且对 MCP 服务器的敏感连接信息(如 url、command、args、env、headers)在 user 角色拉取时执行强力脱敏过滤,并补充相关单元测试。
2. 前端将 listSkills 与 getMcpServers 从 apiAdminGet 调整为 apiGet,绕过本地硬拦截。
3. 维护 roadmap.md 进度记录。
2026-05-22 00:23:18 +08:00
supreme0597
65135e2f93
feat(mention): 优化@提及搜索排序与高亮展示,修复唤醒交互及路径硬编码问题
2026-05-21 23:44:56 +08:00
Wenjie Zhang
8e17f44ec2
feat: 将kb 从沙盒映射中移除,取而代之的是一个新的 Open 工具,可以提供自由且可控的文件访问
2026-05-17 01:58:04 +08:00
Wenjie Zhang
0627bc0db6
feat(kb): 添加打开知识库文档功能及相关输入模型,优化文件内容读取
2026-05-17 01:58:04 +08:00
supreme0597
74b9160a99
fix(skill): 修复技能安装审核问题
...
- 拆分技能安装流程,避免慢速拉取阶段占用数据库连接
- 使用 ORM 读改写并加行锁追加 agent 配置 skills,避免重复和并发丢更新
- 强化沙盒目录下载错误处理并补充相关单元测试
2026-05-17 01:58:04 +08:00
supreme0597
554c83a5b4
fix(skill): 修复安装技能时配置持久化路径错误及单元测试失败的问题
...
- 修正 AgentConfigRepository 技能写入路径,确保技能保存至 config_json->context->skills
- 修复 test_install_skill 单元测试的各种 mock 与断言,解决由于接口变更和依赖不匹配导致的失败
2026-05-17 01:58:04 +08:00
supreme0597
e153e86fd9
fix(skill): 修复 install_skill 同步异步混用及数据库连接问题
...
- 将 install_skill 改为 async def,消除 asyncio.run() 事件循环冲突
- 修复 agent_config_repository 表名及 jsonb 类型转换
- 增加数据库连接池配置,避免高并发耗尽连接
- 修复远程 skill 批量安装列表引用共享 bug
- 修复 slug 冲突 warning 误报(目录名 vs SKILL.md name)
- 新增 UserRepository 支持外部传入 db 会话
- 更新测试适配 async 签名
2026-05-17 01:58:04 +08:00
supreme0597
fadf6a0abe
feat(skill): 新增 Agent 会话中安装 Skill 功能
...
- 新增 install_skill 工具,支持从 Sandbox 路径或 Git 仓库安装 skill
- 支持管理员权限校验(admin/superadmin)
- 安装后自动持久化到 agent config,新对话自动生效
- 动态激活当前会话,无需重启
- 新增 AgentConfigRepository.add_skills_to_config_json() 原子 JSONB 操作
- 新增 21 个单元测试,覆盖权限、Schema、安装流程等场景
2026-05-17 01:58:04 +08:00
Wenjie Zhang
bd73d59795
feat(doc): 优化 rapidocr
2026-05-17 01:58:04 +08:00
Wenjie Zhang
0e174a3ba8
feat(doc): 更新 MinerU 解析器参数,修改 Docker 配置,优化文档说明
2026-05-17 01:58:04 +08:00
Wenjie Zhang
87977bb927
Merge branch 'main' of https://github.com/xerrors/Yuxi
2026-05-17 01:23:51 +08:00
Wenjie Zhang
f29ad639e8
fix: 修复分块硬切句末标点归属
2026-05-17 01:18:03 +08:00
Wenjie Zhang
bac93a5d04
chore(release): 发布 0.6.2.beta
2026-05-14 19:20:02 +08:00
supreme0597
44d1b20383
feat(skills): 优化远程 Skill 批量安装,单次克隆完成多 skill 安装
...
新增 install_remote_skills_batch() 函数,利用 npx skills add 原生多 --skill 支持,
将安装 N 个 skill 的仓库克隆次数从 2N 降至 1。
后端:
- remote_skill_install_service.py 新增批处理 + _find_skill_dir()
- skill_router.py 新增 POST /remote/install-batch 端点 (admin 权限)
- 非法 skill 名不阻塞其他合法 skill,结果按请求顺序返回
- CLI 部分失败时仍导入已安装的 skill
- import 失败后 rollback session,不影响后续导入
前端:
- skill_api.js 新增 installRemoteSkillsBatch()
- SkillCardList.vue 改为单次批处理调用
测试:
- 4 个单元测试覆盖正常安装/缺失跳过/部分失败/非法名场景
文档:
- docs/develop-guides/roadmap.md 更新开发记录
- docs/vibe/2026-05-14-remote-skill-batch-install-plan.md 方案文档(含设计决策)
2026-05-14 17:15:38 +08:00
Wenjie Zhang
77ed3b4a4d
Merge pull request #692 from finch04/main
...
fix(system): 强制以 UTF-8 编码读取系统日志文件,忽略编码错误
2026-05-14 13:24:07 +08:00
Wenjie Zhang
33a71068ed
feat(auth): 下放扩展管理权限
...
允许管理员进入扩展管理并管理 Skills,补充权限测试和 PR 检查说明,保持前后端权限口径一致。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-14 13:13:41 +08:00
付申祺
c6c6527029
fix(system): 强制以 UTF-8 编码读取系统日志文件,忽略编码错误
2026-05-14 13:04:17 +08:00
Wenjie Zhang
6733710e18
feat(agent): 默认启用可访问知识库
...
未显式配置知识库时默认使用当前用户可访问的全部知识库,保留显式空列表表示不启用知识库的语义。
2026-05-12 13:40:44 +08:00
Wenjie Zhang
bdf983f1e0
fix(parser): 修复 Docling 图片异常占位回填
...
保留上传失败的图片占位说明,并补充混合图片类型回填顺序的回归测试,避免占位符错位或异常路径掩盖原始错误。
Taskr: 2026-05-12-fix-docling-image-replacement-regression
2026-05-12 10:17:44 +08:00
Aw
56166abff6
fix(parser): 修复 Docling 解析文档时图片错位问题
...
遍历所有图片生成等长替换列表,非 data URI 图片填空字符串,
确保占位符替换严格 1:1,避免混合图片类型时顺序错乱。
2026-05-11 21:55:51 +08:00
Cao Hanzhe
29c9396b54
fix: 修复知识库检索配置多次保存卡死的问题
...
知识库检索配置保存接口(update_knowledge_base_query_params)在持有
metadata_lock 的同时调用了 _save_metadata(),该方法会遍历所有知识库
和所有文件并逐条执行数据库操作。当知识库数据量较大时,锁持有时间过长,
导致多次快速保存请求排队阻塞,表现为前端卡死。
修复方案:将全量 _save_metadata() 替换为针对性的单条记录更新,仅更新
当前知识库的 query_params 字段,大幅减少锁持有时间和数据库操作次数。
Fixes #679
2026-05-08 22:58:55 +08:00
Wenjie Zhang
6ef0e40df5
chore(release): bump version to 0.6.2.dev1
2026-05-07 09:52:51 +08:00
Wenjie Zhang
81b5d1eb96
feat: 使用 json_repair 替代 json 处理 LLM 评判结果,增强错误处理能力
2026-05-07 09:49:01 +08:00
Wenjie Zhang
7b664e35d0
feat: 添加默认查询参数提取功能,优化知识库检索配置加载
2026-05-06 23:09:45 +08:00
Wenjie Zhang
ab513e2619
feat: 优化评估基准生成,支持仅使用 commonrag/Milvus 知识库,调整参数配置
2026-05-06 22:12:09 +08:00
Wenjie Zhang
179b048f07
refactor(eval): 重构评估指标和基准生成
...
- 引入了一个新的指标计算模块,用于检索和答案评估。
-通过整合基准生成和评估指标来简化评估服务。
-为新指标和基准生成功能添加了单元测试。
- 更新了前端组件,以利用新的图标,并改进了评估基准的样式。
-将与评估相关的逻辑整合为专门的“知识/评估”结构,以更好地组织。
2026-05-06 18:04:31 +08:00
Wenjie Zhang
0890e504d8
feat: 添加文件状态标记功能,处理缺失 markdown_file 的情况
2026-05-06 16:59:26 +08:00
Wenjie Zhang
1437a6be93
refactor(mention): 优化 Agent 输入框文件 mention,支持未启动对话的时候 mention 工作区的文件
2026-05-06 15:47:01 +08:00
Wenjie Zhang
6c35fd732a
feat: 优化文明命名,更加清晰
2026-05-04 11:36:08 +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
Wenjie Zhang
35f09f0bc8
feat: 完善工作区文件管理能力
2026-05-04 08:18:37 +08:00
Wenjie Zhang
c5852617b1
feat: 新增个人工作区预览
...
新增独立用户级 workspace 只读接口和工作区页面,支持文件列表浏览及宽屏内嵌/窄屏弹窗预览,便于后续扩展团队空间与知识库浏览。
Co-authored-by: Copilot <copilot@github.com>
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
bba9bc974f
feat: 添加 separator 解析器及相关配置,支持严格分隔功能 Question: 知识库对excel切分无法按行切分
...
Fixes #664
2026-04-28 20:30:02 +08:00
Wenjie Zhang
f4c56499b9
fix: 中断任务不再加入内存 Question: 启动加载中断的知识库任务状态
...
Fixes #656
2026-04-27 18:19:39 +08:00
Wenjie Zhang
ebf0ed9975
Merge pull request #660 from supreme0597/fix/model-cache-import
...
Fix/model cache import
2026-04-27 18:08:47 +08:00
Wenjie Zhang
04db4357b4
fix(config): 修正默认模型为 v2版本
...
Co-authored-by: Copilot <copilot@github.com>
2026-04-27 09:15:18 +08:00
supreme0597
e3307b4592
fix(model): 修复刷新模型缓存接口 NameError: model_cache is not defined
...
refresh_model_cache 函数中引用了 model_cache 但未导入,
该导入仅在 _refresh_model_cache 内部作用域中,外部无法访问。
添加局部 import 解决此问题。
2026-04-27 06:45:34 +08:00
supreme0597
775ac129dc
fix(knowledge): 修复知识库测试问题生成报错 Unknown model provider
...
select_model() 无参调用走了 V1 旧逻辑,无法正确解析 V2 格式的
default_model 配置(如 supreme_newapi:openai)。传入
config.default_model 作为 model_spec 参数,使模型选择走 V2 路径。
影响范围:知识库测试问题生成、知识库描述生成、思维导图生成
2026-04-27 06:36:12 +08:00
Wenjie Zhang
9f1ccf9093
feat(release): 更新版本号至 0.6.2
2026-04-27 02:27:28 +08:00
Wenjie Zhang
ee624513f1
style(format): 格式化代码
2026-04-27 02:24:52 +08:00
Wenjie Zhang
7c699cc86f
feat(chat): 优化 LangGraph 状态消息保存逻辑,增加错误处理和警告提示
...
Co-authored-by: Copilot <copilot@github.com>
2026-04-26 21:43:25 +08:00
Wenjie Zhang
97abed8f96
feat(model): 更新 DeepSeek 模型版本至 V4-Flash,调整相关文档和配置
...
Co-authored-by: Copilot <copilot@github.com>
2026-04-26 21:04:57 +08:00
Wenjie Zhang
a8eb5ab6fe
feat(model): 引入 is_v2_spec_format 函数以优化模型规格判断逻辑
2026-04-26 20:59:40 +08:00
Wenjie Zhang
2e0b4a8358
refactor: 增强模型提供程序管理和 UI 组件
...
- 在 PostgresManager 中添加了用于嵌入和重新排序基本 URL 的新列。
- 更新了模型提供程序数据结构,以包含新的端点。
- 重构了模型提供程序服务和路由器中的凭据状态检查。
- 引入了一个可重用的组件,用于跨组件进行模型状态检查。
- 通过调整页面内边距的 CSS 变量,提高了 UI 的响应速度。
- 重构了模型选择器组件,以利用新的模型状态组件。
- 更新了模型配置视图,以处理响应式编辑模型状态。
- 清理了未使用的代码,并改进了模型状态检查中的错误处理。
2026-04-26 19:59:15 +08:00
Wenjie Zhang
2920cbeec3
Merge branch 'main' into feat/model-config
2026-04-26 18:54:48 +08:00
Wenjie Zhang
9e1cf9e029
fix(knowledge): 修复 index_file 未传递用户自定义入参 params 导致入库参数不生效的 bug
2026-04-26 18:54:45 +08:00
Wenjie Zhang
e3d312059a
feat(model): 重构嵌入模型选择器,新增 Rerank 模型选择器,优化模型提供者管理
2026-04-26 18:51:38 +08:00
Wenjie Zhang
f8acc48184
refactor:移除后端和前端的自定义提供程序管理
...
- 删除了 system_router.py 中用于添加、更新和删除自定义提供程序的端点。
- 从 system_api.js 中移除了自定义提供程序 API 函数。
- 更新了 ModelProvidersComponent.vue,以反映自定义提供程序管理的移除,包括 UI 更改和迁移到新模型配置的提示。
- 清理了 ModelSelectorComponent.vue,移除了旧模型处理和不必要的依赖项。
Co-authored-by: Copilot <copilot@github.com>
2026-04-26 16:24:54 +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
GitHub Actions
a3dd2c96fe
style: auto-format with ruff [skip ci]
2026-04-24 11:42:53 +00: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
8ebfcd8dd5
chore: revert unintentional auto-formatting changes
...
Reverts formatting changes in files that were unrelated to semantic chunking
to match upstream project style.
2026-04-22 21:21:28 +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
Wenjie Zhang
753baf176f
Merge pull request #646 from shaun0927/fix/oidc-colon-sub-binding
...
fix(auth): handle ':' in OIDC raw-username binding placeholders
2026-04-21 09:15:54 +08:00
Wenjie Zhang
ccf0d98eb6
fix(chat): 修复 runs api 的情况下,用户消息延迟渲染以及切换对话的时候,消息渲染异常的问题
2026-04-19 23:44:46 +08:00
Wenjie Zhang
6284dfc3b5
feat(agent): 新增当智能体配置无效的回退方案
2026-04-19 23:28:48 +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
Your Name
174cf84cef
fix(oidc): 占位用户username使用sub哈希避免唯一索引冲突
2026-04-16 14:58:16 +08:00
Your Name
3b6f52da80
fix(oidc): 修复_create_oidc_binding_placeholder跨session一致性问题 - 使用同一个db session创建占位记录
2026-04-16 14:56:15 +08:00
Your Name
5db5b847b4
fix(oidc): 占位用户标记为is_deleted=1,禁止参与实际登录,符合注释说明
2026-04-16 14:53:42 +08:00
Your Name
ea530039c9
fix(oidc): 修复use_raw_username绑定验证逻辑 - 占位用户格式存储目标用户ID,find_user_by_oidc_sub返回真实用户
2026-04-16 14:51:38 +08:00
Your Name
ce011748bc
refactor(oidc): 移除Discovery元数据中的localhost无条件替换 - 由用户网络配置自行处理
2026-04-16 10:18:21 +08:00
Your Name
243bdfdba5
fix(oidc): 调整force_prompt_login默认值为false,更加安全
2026-04-16 10:15:33 +08:00
Your Name
c6c2c3b1f6
fix(oidc): 修复create_oidc_user中use_raw_username直接返回现有用户的安全问题 - 验证绑定关系
2026-04-16 10:13:39 +08:00
Your Name
1213436dae
fix(oidc): 修复use_raw_username模式下的账号冒用安全问题 - 通过占位用户记录绑定关系,无需修改User表
2026-04-16 10:12:19 +08:00
Your Name
5d9aa72e74
refactor: 删除find_user_by_oidc_sub中未使用的raw username分支,避免误导
2026-04-16 10:06:48 +08:00
Your Name
90de80600d
fix: 对OIDC获取的部门名称和描述进行清理和长度校验
2026-04-16 10:05:25 +08:00
Your Name
5044243f40
feat: 增强OIDC登录功能,支持原始用户名、部门信息获取和强制登录配置
2026-04-15 15:06:28 +08:00
Wenjie Zhang
4d346103b4
feat: 前端工具调用折叠展示,优化对话中工具调用的显示逻辑
2026-04-13 18:06:25 +08: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
5558b24a42
feat: 补充聊天机器人引用来源提示
2026-04-08 11:13: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
6809f67f70
refactor(chatbot): 更新提示词和待办事项中间件,简化系统提示构建
2026-04-06 12:09:22 +08:00
Wenjie Zhang
66340c7227
fix(lightrag): 修改返回值以允许 LightRAG 进行二次切分,避免超限 Fix #554
2026-04-06 11:48:50 +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
85d7f6354f
fix: 修复错误 #605
2026-04-04 13:57:21 +08:00
Wenjie Zhang
4689ea014b
refactor: 移除 ensure_default_department 函数,简化部门管理逻辑
2026-04-04 12:24:53 +08:00
GitHub Actions
b7579c539d
style: auto-format with ruff [skip ci]
2026-04-04 03:24:15 +00:00
Wenjie Zhang
76b5156a2c
Merge pull request #592 from DSYZayn/main
...
feat (auth): 添加第三方登录认证(OIDC)
2026-04-04 11:23:07 +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
DSYZayn
ffda077746
feat(auth): 将oidc相关功能打包到service中
2026-04-03 23:07:22 +08:00
Wenjie Zhang
10d6c8d273
chore: 更新python 依赖,修复 torch 版本导致的镜像体积过大
2026-04-03 20:02:05 +08:00
Wenjie Zhang
4a98969d0e
fix: 修复包管理的导入问题 #603
2026-04-03 13:09:12 +08:00
Wenjie Zhang
81aeadf5cf
fix: 修复 list_run_stream_events 函数中的格式错误,确保 after_seq 参数正确包裹 Fixes 这里有个奇怪的没闭合的左括号,我去掉后突然好使了
...
Fixes #605
2026-04-03 12:12:57 +08:00
copilot-swe-agent[bot]
037872924b
fix: 修复路径遍历安全漏洞并添加文件名校验
...
- 前端:在 ExtensionsView.vue 上传前添加 beforeUpload 校验,
仅允许 .zip 或 SKILL.md 文件,其他 .md 文件给出明确错误提示
- 后端:import_skill_dir 添加路径限制检查(is_relative_to),
确保来源目录在系统临时目录内,防止路径遍历
- 后端:install_remote_skill 改为扫描目录查找安装结果,
避免直接用用户输入构造文件路径(消除 CodeQL 告警)
- 后端:_run_skills_cli 错误输出清洗 ANSI 控制字符并截断到 500 字符
- 后端:install_remote_skill 返回类型从 object 修正为 Skill
Agent-Logs-Url: https://github.com/xerrors/Yuxi/sessions/0145c647-72bc-41f9-b07b-04d4acf51932
Co-authored-by: xerrors <35524243+xerrors@users.noreply.github.com>
2026-04-02 15:19:33 +00:00
Wenjie Zhang
dc67a1483f
feat: 添加 git 依赖到 Dockerfile,优化构建环境
2026-04-02 16:34:43 +08:00
Wenjie Zhang
82d4add70b
fix(skill): 优化远程技能安装服务,优化临时工作目录管理
2026-04-02 16:09:02 +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