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
|
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 |
|
supreme0597
|
ae0ccb0597
|
fix(skill): 修复技能安装审核问题
- 拆分技能安装流程,避免慢速拉取阶段占用数据库连接
- 使用 ORM 读改写并加行锁追加 agent 配置 skills,避免重复和并发丢更新
- 强化沙盒目录下载错误处理并补充相关单元测试
|
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
|
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 |
|
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
|
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 |
|
supreme0597
|
74b9160a99
|
fix(skill): 修复技能安装审核问题
- 拆分技能安装流程,避免慢速拉取阶段占用数据库连接
- 使用 ORM 读改写并加行锁追加 agent 配置 skills,避免重复和并发丢更新
- 强化沙盒目录下载错误处理并补充相关单元测试
|
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
|
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
|
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
|
1437a6be93
|
refactor(mention): 优化 Agent 输入框文件 mention,支持未启动对话的时候 mention 工作区的文件
|
2026-05-06 15:47:01 +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 |
|
Wenjie Zhang
|
f4c56499b9
|
fix: 中断任务不再加入内存 Question: 启动加载中断的知识库任务状态
Fixes #656
|
2026-04-27 18:19:39 +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
|
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
|
e3d312059a
|
feat(model): 重构嵌入模型选择器,新增 Rerank 模型选择器,优化模型提供者管理
|
2026-04-26 18:51:38 +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
|
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 |
|