Commit Graph

117 Commits

Author SHA1 Message Date
Wenjie Zhang
b26bb5d12e feat: 重构子智能体运行链路 2026-06-01 22:28:45 +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
21b16c7c06 feat: 更新模型选择组件和聊天组件的输入逻辑 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
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
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
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
2938b4e794 feat: 优化技能和资源配置逻辑,支持默认选择当前用户可用的全部资源 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
c342f3e1ee feat: 收紧用户管理部门隔离并重构知识库共享权限
- 普通管理员创建用户时固定归属本部门,用户列表/访问选项/详情/更新/删除均限制在本部门
- share_config 改为三档:global(全局共享)、department(部门共享)、user(指定人可访问)
- 部门共享必须包含当前用户部门,指定人可访问必须包含当前用户
- 前端 ShareConfigForm 重构为三档卡片选择+下拉菜单选人/选部门
- 补充部门隔离和共享权限过滤的集成测试
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
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
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
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
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
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
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
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
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
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
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