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
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
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
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
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
bdf983f1e0
fix(parser): 修复 Docling 图片异常占位回填
...
保留上传失败的图片占位说明,并补充混合图片类型回填顺序的回归测试,避免占位符错位或异常路径掩盖原始错误。
Taskr: 2026-05-12-fix-docling-image-replacement-regression
2026-05-12 10:17:44 +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
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
郭诣
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
2e0b4a8358
refactor: 增强模型提供程序管理和 UI 组件
...
- 在 PostgresManager 中添加了用于嵌入和重新排序基本 URL 的新列。
- 更新了模型提供程序数据结构,以包含新的端点。
- 重构了模型提供程序服务和路由器中的凭据状态检查。
- 引入了一个可重用的组件,用于跨组件进行模型状态检查。
- 通过调整页面内边距的 CSS 变量,提高了 UI 的响应速度。
- 重构了模型选择器组件,以利用新的模型状态组件。
- 更新了模型配置视图,以处理响应式编辑模型状态。
- 清理了未使用的代码,并改进了模型状态检查中的错误处理。
2026-04-26 19:59:15 +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
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
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
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
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
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
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
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
Wenjie Zhang
4a98969d0e
fix: 修复包管理的导入问题 #603
2026-04-03 13:09:12 +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
Wenjie Zhang
1f792fa914
feat: 增加 Argon2 密码哈希支持,优化文件系统安全性,修复 frontmatter 解析
2026-04-02 16:03:01 +08:00
Wenjie Zhang
2aeb1a86d7
fix: 修复沙盒共享权限配置错误的问题 #594
2026-04-02 11:17:30 +08:00
Wenjie Zhang
783513f2ba
chore: 0.6.0 预发布
2026-04-01 16:55:29 +08:00
Wenjie Zhang
9bc86c070c
feat(filesystem): 增强文件删除功能,支持递归删除目录并添加保护路径检查
2026-04-01 04:04:55 +08:00
Wenjie Zhang
70c61aa53e
feat(agent): 添加流式消息处理功能,支持实时更新智能体状态
2026-04-01 03:17:43 +08:00
Wenjie Zhang
62d763a1a0
feat(agent): 交付物卡片新增“保存到工作区”能力:支持将单个交付物复制到共享目录 workspace/saved_artifacts/,并复用现有文件树/预览/mention 体系立即可见
2026-03-31 20:18:22 +08:00
Wenjie Zhang
3f1ec778a4
feat: 新增对于 workspace 的删除接口的实现
...
- 为前端工作台文件树补齐文件删除能力:`/api/viewer/filesystem/file`
- 新增删除接口,`AgentPanel` 文件节点新增删除按钮与确认交互,删除后会同步刷新树与预览状态
2026-03-31 19:41:08 +08:00
Wenjie Zhang
b4401d0339
feat: 集成 Langfuse 以增强 Yuxi 中的可观察性
...
- 更新了 Dockerfile,在同步过程中包含 Langfuse 集成。
- 在文档中添加了新的部分,详细介绍 Langfuse 集成的目的、配置和在 Yuxi 中的使用方法。
- 更新了 Vitepress 配置,包含了指向新 Langfuse 集成文档的链接。
- 增强了路线图,反映了对 Langfuse 自托管支持的添加,并明确了集成方法。
2026-03-31 09:58:16 +08:00
Wenjie Zhang
d282cab00c
feat: 增加工具配置说明展示
2026-03-30 16:39:27 +08:00
Wenjie Zhang
4f6353d555
feat(test): 重组测试目录结构为 integration/unit/e2e 三层架构
...
- 将 api 测试重组为 integration 测试
- 新增 unit 和 e2e 测试目录分类
- 新增 testing-guidelines.md 测试指南文档
- 更新 pyproject.toml 和 run_tests.sh 以适配新结构
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-30 15:24:47 +08:00
Wenjie Zhang
e3515fa795
fix: 统一沙盒后端命名与配置说明
2026-03-29 16:52:33 +08:00
Wenjie Zhang
b7e10c6666
feat: 重构扩展管理中的 SubAgent 与 MCP 交互,统一为类似 Skills 的方式。
2026-03-29 13:47:41 +08:00
Wenjie Zhang
ab268d8eba
feat: 添加工件管理和展示功能
...
- 更新 .gitignore 以排除测试相关目录。
- 增强 ChatbotAgent 和 DeepAgent 以利用 BaseState 进行状态管理。
- 引入 PresentArtifacts 工具,允许代理向用户展示输出文件。
- 在 state.py 中添加新的状态管理功能,包括 merge_artifacts 和 BaseState。
- 创建 AgentArtifactsCard 组件以在前端显示工件。
- 在 AgentChatComponent 和 AgentInputArea 中集成工件处理。
- 更新 MessageInputComponent 和 ToolCallRenderer 以更好地处理工件的 UI 展示。
- 添加工件状态管理和标准化函数的测试。
- 更新 docker-compose 以使用最新的沙箱配置器镜像。
- 在路线图中记录新功能。
2026-03-29 10:55:00 +08:00
Wenjie Zhang
d72273f469
feat(skills): 新增内置技能 deep-reporter,支持生成科研报告和深度分析类长报告
2026-03-28 20:44:11 +08:00
Wenjie Zhang
6078518577
feat: 更新内置技能版本,增强技能更新逻辑,优化技能管理界面
2026-03-28 20:02:52 +08:00
Wenjie Zhang
8041c5ef4d
Merge branch 'main' into feat/builtin-skills-on-demand-install
2026-03-28 19:36:41 +08:00
Wenjie Zhang
557ac824e5
feat: 调整沙盒 user-data 目录隔离策略,workspace 修改为用户级,优化文件系统逻辑及权限校验
2026-03-28 19:36:06 +08:00
Wenjie Zhang
a005e0f3dc
feat: 内置 Skills 按需安装机制
...
- Skill 模型新增 version, is_builtin, content_hash 字段
- 内置 skills 不再自动安装,改为按需安装
- 新增 GET/POST /system/skills/builtin 路由
- 安装时计算目录内容 hash,用于变更检测
- 更新时 hash 不一致返回 409 确认
- 前端显示内置 skills 未安装状态,支持安装/更新按钮
- 内置 skill 文件编辑入口已隐藏
- 修复 _compute_dir_hash 内存问题,改为 chunk 读取
- 19 个测试用例全部通过
2026-03-28 17:53:53 +08:00
Wenjie Zhang
4e740bab1b
fix: avoid sandbox cold starts in viewer tree
2026-03-28 14:59:36 +08:00
Wenjie Zhang
f7ad327ef2
fix: update repository references from Yuxi-Know to Yuxi across documentation and codebase
2026-03-27 02:00:22 +08:00
Wenjie Zhang
5fe367b77b
feat: 增强对话线程的 agent_config_id 绑定逻辑,确保元数据一致性
2026-03-27 01:15:51 +08:00
Wenjie Zhang
efecc0692d
feat: 重构对话线程相关API,统一使用线程ID,移除不必要的智能体ID参数
2026-03-27 00:20:33 +08:00
Wenjie Zhang
9f51cfd96b
refactor(chat-api): 重构聊天接口请求模型:流式与非流式聊天统一使用 query + agent_config_id 请求体
2026-03-26 23:13:44 +08:00
Wenjie Zhang
b09f4f426f
feat: 增加文件预览类型判定,工作台支持 Markdown、文本、图片和 PDF 预览,处理不支持格式的反馈
2026-03-26 05:14:50 +08:00
Wenjie Zhang
623f6f31ab
refactor: 用户数据路径从 '/home/yuxi' 重构为 '/home/gem'
2026-03-26 03:29:34 +08:00
Wenjie Zhang
2be5aedaf2
feat: 添加知识库文件在沙盒以及文件系统中的映射 #576
2026-03-26 03:25:55 +08:00
Wenjie Zhang
cea53cc67c
fix(skill): 修复 skills 在文件系统的可访问性的错误并优化并发体验
2026-03-26 02:29:05 +08:00
Wenjie Zhang
0836fd8d4f
feat: 添加非流式对话接口和相应的集成测试
2026-03-26 00:26:45 +08:00
Wenjie Zhang
637981b060
fix(viewer): 更新下载文件逻辑以处理大文件并返回正确的响应
2026-03-25 13:39:24 +08:00
Wenjie Zhang
1d8a5e88af
fix(kb): 修剪文件列表负载并清理处理参数
2026-03-25 08:06:25 +08:00
Wenjie Zhang
e4ae12dc75
refactor: 重构并清理多个模块的测试
...
- 移除了文件系统和沙盒路由器的过时集成测试。
- 更新了文件系统路由器测试,确保正确的身份验证和线程所有权检查。
- 调整了沙盒端到端测试,以改进附件处理和命令执行。
- 修改了设置路由器测试,对未授权访问返回404而不是401/403。
- 增强了任务路由器测试,以处理精简模式场景并确保任务创建和查询按预期工作。
- 优化了查看器文件系统测试,使用附件上传代替直接文件写入。
- 改进了技能后端测试中的错误处理,为越界访问引发适当的异常。
2026-03-25 06:32:14 +08:00
Wenjie Zhang
d433f56aaf
refactor: 将沙盒虚拟路径前缀更新为 /home/yuxi/user-data
...
- 将代码库中所有对 /mnt/user-data 的引用更改为 /home/yuxi/user-data。
- 更新测试用例以反映新的路径结构。
- 调整 Docker 配置以使用新路径。
- 修改文档以与新的路径约定保持一致。
- 增强沙盒配置器中文件读取操作的错误处理。
- 改进代理文件管理系统中的附件处理。
2026-03-25 05:26:00 +08:00
Wenjie Zhang
e07e88ae49
feat: 新增沙盒能力对齐改造:详见 docs/advanced/sandbox-validation.md
2026-03-24 21:48:28 +08:00
Wenjie Zhang
74229c05a4
feat: 添加API密钥管理功能,可通过 API_KEY 代替 Token 访问接口
...
- 引入了用于API密钥管理的新路由,包含列出、创建、更新、删除和重新生成API密钥的端点。
- 在后端实现了API密钥生成逻辑和验证。
- 增强了认证中间件以支持API密钥认证以及JWT认证。
- 创建了用于在前端管理API密钥的新Vue组件,包括用于创建、显示和删除密钥的用户界面。
2026-03-24 11:09:55 +08:00
Wenjie Zhang
d06c7000ea
feat: 添加内置技能支持,包括 reporter 技能的实现和初始化逻辑,移除内置的 reporter 的 Agent
2026-03-24 11:09:53 +08:00
Wenjie Zhang
35ccfbc82d
test: 修整测试文件
2026-03-24 11:09:52 +08:00
Wenjie Zhang
78f2ae2a03
fix: 移除_parser_方法中的source_type参数,并更新相关测试用例
2026-03-24 11:09:51 +08:00
Wenjie Zhang
1bc6285fb1
refactor: 优化代码结构 将 yuxi.agents.common 移动到 yuxi.agents
2026-03-24 11:09:51 +08:00
Wenjie Zhang
89aed450ab
refactor(subagents): 重构服务层,统一工具解析与过滤逻辑
...
- 合并 normalize/filter 函数为 filter_specs_by_names,移除冗余类型检查
- exists_name 改用 SELECT COUNT(*) 仅查计数
- update 改用字典迭代批量赋值,删除未使用的 upsert
- 新增 list_all_specs 到 repository 层
- 修复 get_subagents_from_names 空列表返回 tuple 的 bug
- 更新相关测试
2026-03-24 11:09:48 +08:00
Wenjie Zhang
29ebeedd4e
refactor(parser): 重构解析器为统一入口
...
- 移除从未使用了 url 解析模块
- parser 的入口统一,职责更加独立
- 优化 MINIO 的上传逻辑
2026-03-24 11:09:45 +08:00
Wenjie Zhang
d655cbe640
feat: 添加subagents管理功能
...
- 实现了应用程序启动期间的理subagents初始化。
- 为subagents的 CRUD 操作和存储库方法创建了单元测试。
- 开发了用于列出、检索、创建、更新和删除子代理的子代理 API 端点。
- 添加了用于在前端管理子代理的 SubAgentsComponent,包括搜索和详细信息视图。
2026-03-24 11:09:44 +08:00
Wenjie Zhang
095f0db8e6
refactor: 更新 MinIO 存储逻辑,优化文件路径和桶名称(不兼容)
2026-03-24 11:09:43 +08:00
Wenjie Zhang
90bfd20d8d
refactor: 重构:将项目重命名为 Yuxi 并更新模块路径
...
- 在所有文档和配置中将品牌从 "Yuxi-Know" 重命名为 "Yuxi"
- 将 Python 导入路径从 `src.*` 更新为 `yuxi.*` 以保持后端包的一致性
- 将 Web 包名称从 `yuxi-know-web` 更新为 `yuxi-web`
此更改与后端代码迁移至 backend/ 目录保持一致。
2026-03-24 11:08:31 +08:00
Wenjie Zhang
410dd47c14
refactor: 将后端代码迁移至 backend 目录
...
- 将 server/, src/, scripts/, test/ 等目录移动到 backend/ 目录下
- 使用 git rename 保留文件历史记录
- 更新 docker-compose.yml 和 api.Dockerfile 配置
WIP: 项目结构重构进行中
2026-03-24 11:08:12 +08:00