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 |
|
copilot-swe-agent[bot]
|
fd9b770ce9
|
Initial plan
|
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
|
17e69a586f
|
feat(doc): 添加 Beta 后临时 dev 分支流程说明
|
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
|
947a861411
|
chore: 将 .sisyphus 从 git 追踪中移除并加入 gitignore
|
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 |
|
Wenjie Zhang
|
b764f7001f
|
Merge pull request #731 from supreme0597/fix/docker-uv-no-sync
chore: 优化 docker-compose 下 uv 启动参数,添加 --no-sync 阻止重复下载依赖
|
2026-05-25 21:07:48 +08:00 |
|
Wenjie Zhang
|
b25509c03e
|
Merge pull request #726 from supreme0597/fix/worker-auto-reload
fix(docker): worker 使用 watchfiles 替代 arq 以优化热重载
|
2026-05-25 20:26:47 +08:00 |
|
Wenjie Zhang
|
b91802dc5d
|
Merge pull request #725 from supreme0597/fix/core-robustness
fix(backend): 统一为本地及MCP动态工具注入handle_tool_error容错
|
2026-05-25 20:22:51 +08:00 |
|
supreme0597
|
eb4bb3acc4
|
chore: 优化 docker-compose 下 uv 启动参数,添加 --no-sync 阻止重复下载依赖
|
2026-05-25 18:56:45 +08:00 |
|
supreme0597
|
fc1fc50791
|
fix(docker): worker 使用 watchfiles 替代 arq 以优化热重载
|
2026-05-25 17:36:31 +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 |
|
Wenjie Zhang
|
925a696240
|
Merge pull request #719 from supreme0597/fix/lite-knowledge-error
fix(knowledge): 在 LITE_MODE 下安全跳过不支持的知识库类型,防止 API 崩溃
|
2026-05-25 10:34:22 +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 |
|
Wenjie Zhang
|
6b16c41604
|
Merge pull request #710 from supreme0597/fix/mention-skill-mcp
fix(mention): 修复普通用户无法在聊天中唤出技能与MCP提及列表的Bug
|
2026-05-22 16:16:30 +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
|
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 |
|
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
|
3bbf081946
|
Merge pull request #703 from xerrors/copilot/add-playwright-mcp-to-gitignore
chore: 在 .gitignore 中新增 .playwright-mcp 目录忽略规则
|
2026-05-16 13:13:17 +08:00 |
|
copilot-swe-agent[bot]
|
d7c5264e98
|
chore: 保持 .gitignore 结尾格式不变
Agent-Logs-Url: https://github.com/xerrors/Yuxi/sessions/ab71896e-4837-41d4-997f-4203d73715b5
Co-authored-by: xerrors <35524243+xerrors@users.noreply.github.com>
|
2026-05-16 05:12:07 +00:00 |
|
copilot-swe-agent[bot]
|
ebcd44ec6f
|
chore: 添加 .playwright-mcp 忽略规则
Agent-Logs-Url: https://github.com/xerrors/Yuxi/sessions/ab71896e-4837-41d4-997f-4203d73715b5
Co-authored-by: xerrors <35524243+xerrors@users.noreply.github.com>
|
2026-05-16 05:11:52 +00:00 |
|
copilot-swe-agent[bot]
|
0110f5f293
|
Initial plan
|
2026-05-16 05:10:40 +00: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 |
|
Wenjie Zhang
|
46bd6d22ef
|
Merge pull request #695 from supreme0597/feat/skill-batch-install
feat(skills): 优化远程 Skill 批量安装,单次克隆完成多 skill 安装
|
2026-05-14 18:17:51 +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
|
2e1c729da7
|
Merge pull request #693 from xerrors/feat/admin-extension-management
feat(auth): 下放扩展管理权限到普通管理员
|
2026-05-14 13:23: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
|
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 |
|