Commit Graph

913 Commits

Author SHA1 Message Date
Wenjie Zhang
43a23e2e88
Merge branch 'main' into feat/skills-remote-install 2026-05-25 21:37:07 +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
86f92f7f3f feat(doc): 更新 MinerU 解析器参数,修改 Docker 配置,优化文档说明 2026-05-25 21:08:37 +08:00
supreme0597
3870dc18a0 feat(web): 添加 SVG 操作按钮(复制 SVG 源码/复制为 PNG)及事件委托
- svgRenderer.js 输出中嵌入 .svg-actions 操作按钮
- MarkdownPreview.vue 添加事件委托处理复制逻辑
- PNG 尺寸策略:viewBox 固有坐标 → getBoundingClientRect → 800x600
- Canvas 不强制填充背景色,由 SVG 自身决定
- 深色模式适配
2026-05-25 21:08:37 +08:00
supreme0597
6d626ab908 feat(web): 添加 SVG 响应式容器样式到 MarkdownPreview
- 添加 .svg-inline-render 响应式容器样式
- 深色模式半透明背景支持
2026-05-25 21:08:37 +08:00
supreme0597
b31776e405 feat(web): 在 renderMarkdown 中集成 SVG 渲染(DOMPurify 默认已支持 SVG)
- 导入 renderSvgBlocks() 并在 markdown-it 渲染前调用
- cacheKey 基于 SVG 转换后的内容,保证缓存一致性
- DOMPurify 配置保持不变(默认白名单已支持 SVG)
2026-05-25 21:08:37 +08:00
supreme0597
73041775d4 feat(web): 添加 SVG 代码块预处理工具函数(行级解析,支持围栏变体)
- 新增 svgRenderer.js,实现 renderSvgBlocks() 函数
- 支持反引号/波浪线围栏、大小写不敏感、围栏属性等变体
- 流式安全:不完整 SVG 块保持原样
- SVG 内容压缩为单行,防止 markdown-it HTML 块截断
- 新增 15 个单元测试覆盖所有场景
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
3082d9808e Merge remote-tracking branch 'origin/dev' into supreme/feat/svg-render 2026-05-23 19:20:05 +08:00
Wenjie Zhang
fd6803e477 chore(release): 准备 0.6.2 发布 2026-05-22 20:22:09 +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
0e174a3ba8 feat(doc): 更新 MinerU 解析器参数,修改 Docker 配置,优化文档说明 2026-05-17 01:58:04 +08:00
supreme0597
43f2f2bb28 feat(web): 添加 SVG 操作按钮(复制 SVG 源码/复制为 PNG)及事件委托
- svgRenderer.js 输出中嵌入 .svg-actions 操作按钮
- MarkdownPreview.vue 添加事件委托处理复制逻辑
- PNG 尺寸策略:viewBox 固有坐标 → getBoundingClientRect → 800x600
- Canvas 不强制填充背景色,由 SVG 自身决定
- 深色模式适配
2026-05-15 11:40:24 +08:00
supreme0597
4d300f82af feat(web): 添加 SVG 响应式容器样式到 MarkdownPreview
- 添加 .svg-inline-render 响应式容器样式
- 深色模式半透明背景支持
2026-05-15 11:40:24 +08:00
supreme0597
f764415e4d feat(web): 在 renderMarkdown 中集成 SVG 渲染(DOMPurify 默认已支持 SVG)
- 导入 renderSvgBlocks() 并在 markdown-it 渲染前调用
- cacheKey 基于 SVG 转换后的内容,保证缓存一致性
- DOMPurify 配置保持不变(默认白名单已支持 SVG)
2026-05-15 11:40:24 +08:00
supreme0597
6938dfe18d feat(web): 添加 SVG 代码块预处理工具函数(行级解析,支持围栏变体)
- 新增 svgRenderer.js,实现 renderSvgBlocks() 函数
- 支持反引号/波浪线围栏、大小写不敏感、围栏属性等变体
- 流式安全:不完整 SVG 块保持原样
- SVG 内容压缩为单行,防止 markdown-it HTML 块截断
- 新增 15 个单元测试覆盖所有场景
2026-05-15 11:40:24 +08:00
Wenjie Zhang
5731c9d7cf feat: 视觉优化,修复样式问题 2026-05-14 20:43:40 +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
33a71068ed feat(auth): 下放扩展管理权限
允许管理员进入扩展管理并管理 Skills,补充权限测试和 PR 检查说明,保持前后端权限口径一致。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-14 13:13:41 +08:00
Wenjie Zhang
ef963617fc feat(agent): 更新代理面板和输入区域,优化状态管理和界面交互 2026-05-12 15:26:48 +08:00
Wenjie Zhang
369a749c78 Merge branch 'main' into feat/auth 2026-05-12 15:17:08 +08:00
Wenjie Zhang
e513ce9c5d fix(workspace): 修复 Markdown 预览和编辑
Taskr: 2026-05-12-fix-workspace-preview-markdown-editing
2026-05-12 14:30:28 +08:00
Wenjie Zhang
911c674545 fix(chat): 移除对话头部用户信息展示 2026-05-12 14:15:08 +08:00
Wenjie Zhang
828aad787e fix(user): 优化新增用户登录 ID 展示
将自动生成的登录 ID 收敛到用户名输入提示中,减少表单项占用并保持登录信息可见。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-12 13:47:40 +08:00
Wenjie Zhang
6733710e18 feat(agent): 默认启用可访问知识库
未显式配置知识库时默认使用当前用户可访问的全部知识库,保留显式空列表表示不启用知识库的语义。
2026-05-12 13:40:44 +08:00
Wenjie Zhang
c44085d718 fix(web): 修复路由守卫 next 弃用警告
将全局导航守卫改为返回值式跳转,避免 Vue Router 提示 next 回调已弃用。
2026-05-10 18:56:24 +08:00
Wenjie Zhang
22fbcb586c fix(web): 修复 MCP 卡片图标类型警告
移除 MCP 卡片无效的默认图标传参,并允许 InfoCard 接收函数组件图标。
2026-05-10 18:50:16 +08:00
Wenjie Zhang
f87b763b7b fix(web): 修复普通流式发送时用户消息延迟显示
在 legacy 流式发送路径中补齐本地乐观用户消息,避免消息发送后等待历史刷新才出现在对话中。
2026-05-10 18:39:36 +08:00
Wenjie Zhang
482f94a711 feat(web): 优化 MCP 详情页编辑体验 2026-05-10 00:36:26 +08:00
Wenjie Zhang
7af9358ef4 fix(web): Markdown 预览页面图片超出容器宽度
为 .yk-markdown-preview 中的 img 标签添加 max-width: 100% 与 height: auto 约束,防止图片溢出容器。
2026-05-09 22:33:23 +08:00
Wenjie Zhang
a7e7ff6601 fix: 修复前端依赖安全告警 2026-05-09 09:48:34 +08:00
Wenjie Zhang
1d50a28907 refactor: 修改 Markdown 预览组件 2026-05-08 01:04:23 +08:00
Wenjie Zhang
bb8897ce28 chore(web): 升级前端核心依赖并优化代码质量
Co-authored-by: Yuchuan <xerrors@qq.com>
2026-05-07 11:58:25 +08:00
Wenjie Zhang
6ef0e40df5 chore(release): bump version to 0.6.2.dev1 2026-05-07 09:52:51 +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
a9d05480f0 feat(web): 侧边栏状态持久化 2026-05-06 13:22:20 +08:00
Wenjie Zhang
9e6348206e style: 格式化导入语句,提升代码可读性 2026-05-04 08:25:23 +08:00