diff --git a/AGENTS.md b/AGENTS.md index 0848706f..d639cf7b 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -20,8 +20,8 @@ Don't create helpers, utilities, or abstractions for one-time operations. Don't **核心原则**: 1. 由于 api-dev 和 web-dev 服务均配置了热重载 (hot-reloading),本地修改代码后无需重启容器,服务会自动更新。应该先检查项目是否已经在后台启动(`docker ps`),查看日志(`docker logs api-dev --tail 100`)具体的可以阅读 [docker-compose.yml](docker-compose.yml). - -2. 开发完成之后必须进行 检查 -> 测试 -> Lint,以及端到端测试,测试脚本不完善时应完善脚本。位置:backend/test +2. 开发完成之后必须进行 检查 -> 测试 -> Lint,以及端到端测试,测试脚本不完善时应完善脚本。 +3. 测试规范务必遵守 [testing-guidelines.md](docs/develop-guides/testing-guidelines.md) 中的规范,测试脚本务必放在 backend/test 目录下,并且在提交前确保测试通过。 ### 前端开发规范 - 使用 pnpm 管理 diff --git a/CLAUDE.md b/CLAUDE.md index 0848706f..d639cf7b 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -20,8 +20,8 @@ Don't create helpers, utilities, or abstractions for one-time operations. Don't **核心原则**: 1. 由于 api-dev 和 web-dev 服务均配置了热重载 (hot-reloading),本地修改代码后无需重启容器,服务会自动更新。应该先检查项目是否已经在后台启动(`docker ps`),查看日志(`docker logs api-dev --tail 100`)具体的可以阅读 [docker-compose.yml](docker-compose.yml). - -2. 开发完成之后必须进行 检查 -> 测试 -> Lint,以及端到端测试,测试脚本不完善时应完善脚本。位置:backend/test +2. 开发完成之后必须进行 检查 -> 测试 -> Lint,以及端到端测试,测试脚本不完善时应完善脚本。 +3. 测试规范务必遵守 [testing-guidelines.md](docs/develop-guides/testing-guidelines.md) 中的规范,测试脚本务必放在 backend/test 目录下,并且在提交前确保测试通过。 ### 前端开发规范 - 使用 pnpm 管理 diff --git a/README.md b/README.md index d8c435fb..dfd852b1 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@
-[2026/03/26] v0.6.0.beta2 版本发布 +[2026/03/26] v0.6.0.beta3 版本发布 ### 新增 @@ -52,17 +52,19 @@ - 新增 LITE 模式启动,启动时不加载知识库、知识图谱相关模块,可以使用 make up-lite 快捷启动 - 新增沙盒环境,详见后续文档更新,统一沙盒虚拟路径前缀默认值为 `/home/gem/user-data` - 新增基于沙盒的文件系统,前端工作台可以查看文件系统,支持预览(文本、图片、PDF、HTML)、下载文件 -- 新增基于沙盒的知识库只读映射,按“用户可访问知识库 ∩ 当前 Agent 已启用知识库”暴露原始文件与解析后的 Markdown [#576](https://github.com/xerrors/Yuxi/issues/576) +- 新增 `present_artifacts` 内置工具:Agent 可将 `/home/gem/user-data/outputs/` 下的结果文件显式写入 LangGraph state 的 `artifacts` 字段,前端支持在输入框顶部以默认折叠的堆叠卡片展示本轮交付物文件,并保持可下载、可预览能力 +- 新增基于沙盒的知识库只读映射,按“用户可访问知识库 ∩ 当前 Agent 已启用知识库”暴露原始文件与解析后的 Markdown - 重构附件系统,直接集成在了沙盒文件系统中,附件上传后直接落盘到沙盒挂载目录 - 优化前端流式消息体验:新增通用 `useStreamSmoother` 调度层,统一平滑 Agent runs SSE、普通聊天流与审批恢复流中的 `loading` chunk -- 重构 Agent 前后端对话路由结构及表现形式,体验更加顺畅,切换更加自然(API 接口变更) -- 新增 API Key 认证功能,支持外部系统通过 API Key 调用系统服务 [#502](https://github.com/xerrors/Yuxi/issues/502) +- 优化项目文档说明,并添加贡献指南 +- 重构前端 Agent 路由结构,体验更加顺畅,切换更加自然(类 chatgpt 体验) +- 新增 API Key 认证功能,支持外部系统通过 API Key 调用系统服务 - 新增 subagents 的支持,支持在 web 中添加 subagents,以及两个内置的子智能体 - 新增内置Skills reporter,并移除内置 Agent reporter,数据库报表将由 Skills 完成 -- 新增文件上传队列功能,大批量文件上传任务,前端显示上传进度,并限制同时上传的文件数量,避免过载 -- 重构 MINIO 的知识库上传逻辑,文件组织更加统一,但可能会导致历史知识库存在删除残留 -- 新增对话自动生成标题功能,默认启用,基于 fast model 调用 +- 新增内置 Skills `deep-reporter`,用于指导生成科研报告、行业调研和其他深度分析类长报告 +- 重构内置 Skills/MCP/Subagents 安装/添加/移除机制:内置 skill 支持按需安装、基于 `version + content_hash` 的更新提示与覆盖确认,不再使用服务器级开关切换 - 新增知识库 PDF、图片的预览功能 +- 重构后端测试目录结构:按 `unit / integration / e2e` 分层迁移现有测试,拆分全局 `conftest.py`,统一测试入口为 `uv run --group test pytest`,并新增独立测试规范文档 `docs/vibe/testing-guidelines.md` ### 修复 @@ -125,7 +127,7 @@ 克隆代码,并初始化 ``` -git clone --branch v0.6.0.beta2 --depth 1 https://github.com/xerrors/Yuxi.git +git clone --branch v0.6.0.beta3 --depth 1 https://github.com/xerrors/Yuxi.git cd Yuxi # Linux/macOS diff --git a/backend/package/yuxi/__init__.py b/backend/package/yuxi/__init__.py index 30e98351..78f0952b 100644 --- a/backend/package/yuxi/__init__.py +++ b/backend/package/yuxi/__init__.py @@ -6,7 +6,7 @@ from concurrent.futures import ThreadPoolExecutor # noqa: E402 from yuxi.config import config as config # noqa: E402 -__version__ = "0.6.0.beta2" +__version__ = "0.6.0.beta3" from yuxi.knowledge import graph_base as graph_base # noqa: E402 from yuxi.knowledge import knowledge_base as knowledge_base # noqa: E402 diff --git a/backend/package/yuxi/config/static/info.template.yaml b/backend/package/yuxi/config/static/info.template.yaml index c2b468f5..1edc2436 100644 --- a/backend/package/yuxi/config/static/info.template.yaml +++ b/backend/package/yuxi/config/static/info.template.yaml @@ -56,6 +56,6 @@ actions: # 页脚信息 footer: - copyright: "© 江南语析 2026 v0.6.0.beta2" + copyright: "© 江南语析 2026 v0.6.0.beta3" user_agreement_url: "/protocols/user-agreement.template.html" privacy_policy_url: "/protocols/privacy-policy.template.html" diff --git a/backend/package/yuxi/knowledge/implementations/lightrag.py b/backend/package/yuxi/knowledge/implementations/lightrag.py index 94cf28b7..09bdb67c 100644 --- a/backend/package/yuxi/knowledge/implementations/lightrag.py +++ b/backend/package/yuxi/knowledge/implementations/lightrag.py @@ -374,9 +374,7 @@ class LightRagKB(KnowledgeBase): await self._save_metadata() chunks = chunk_markdown(markdown_content, file_id, filename, processing_params) - chunk_input, split_by_character, split_by_character_only = self._prepare_lightrag_insert_payload( - chunks - ) + chunk_input, split_by_character, split_by_character_only = self._prepare_lightrag_insert_payload(chunks) if not chunk_input: chunk_input = markdown_content diff --git a/backend/package/yuxi/pyproject.toml b/backend/package/yuxi/pyproject.toml index 5c0c5f47..1a0e37f7 100644 --- a/backend/package/yuxi/pyproject.toml +++ b/backend/package/yuxi/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "yuxi" -version = "0.6.0.beta2" +version = "0.6.0.beta3" description = "Add your description here" readme = "README.md" requires-python = ">=3.12" diff --git a/backend/pyproject.toml b/backend/pyproject.toml index 0ed349b6..c766b21c 100644 --- a/backend/pyproject.toml +++ b/backend/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "yuxi-workspace" -version = "0.6.0.beta2" +version = "0.6.0.beta3" description = "基于大模型的智能知识库与知识图谱智能体开发平台,融合了 RAG 技术与知识图谱技术,基于 LangGraph v1 + Vue.js + FastAPI + LightRAG 架构构建" readme = "README.md" requires-python = ">=3.12,<3.14" diff --git a/backend/uv.lock b/backend/uv.lock index b0f642e8..a84da500 100644 --- a/backend/uv.lock +++ b/backend/uv.lock @@ -5676,12 +5676,12 @@ wheels = [ [[package]] name = "yuxi" -version = "0.6.0.beta2" +version = "0.6.0.beta3" source = { virtual = "package/yuxi" } [[package]] name = "yuxi-workspace" -version = "0.6.0.beta2" +version = "0.6.0.beta3" source = { virtual = "." } dependencies = [ { name = "agent-sandbox" }, diff --git a/docs/develop-guides/roadmap.md b/docs/develop-guides/roadmap.md index 5f5e4ea6..41b884af 100644 --- a/docs/develop-guides/roadmap.md +++ b/docs/develop-guides/roadmap.md @@ -45,10 +45,8 @@ - 新增 subagents 的支持,支持在 web 中添加 subagents,以及两个内置的子智能体 - 新增内置Skills reporter,并移除内置 Agent reporter,数据库报表将由 Skills 完成 - 新增内置 Skills `deep-reporter`,用于指导生成科研报告、行业调研和其他深度分析类长报告 -- 重构内置 Skills 安装机制:内置 skill 改为在管理页以“未安装”状态展示,支持按需安装、基于 `version + content_hash` 的更新提示与覆盖确认,并对已安装内置 skill 禁止在线文件编辑 +- 重构内置 Skills/MCP/Subagents 安装/添加/移除机制:内置 skill 支持按需安装、基于 `version + content_hash` 的更新提示与覆盖确认,不再使用服务器级开关切换 - 新增知识库 PDF、图片的预览功能 -- 优化扩展页工具列表筛选区:将“全部分类”筛选收纳为搜索框右侧的紧凑下拉入口,并复用扩展页侧栏工具条样式,避免影响其他管理组件布局 -- 重构扩展管理中的 SubAgent 与 MCP 交互,统一为类似 Skills 的“已添加 / 可添加”列表,不再使用服务器级开关切换,为 SubAgent 增加 `enabled` 状态,并让运行时只加载已添加项,调整内置 SubAgent / MCP 的启动同步逻辑,使用代码中的最新定义覆盖数据库展示字段,同时保留启用状态与 MCP 工具禁用状态;统一扩展详情区胶囊操作按钮样式到公共 `extensions.less`,并将内置 MCP 在详情页中的危险操作从禁用“删除”改为可执行的“移除” - 重构后端测试目录结构:按 `unit / integration / e2e` 分层迁移现有测试,拆分全局 `conftest.py`,统一测试入口为 `uv run --group test pytest`,并新增独立测试规范文档 `docs/vibe/testing-guidelines.md` diff --git a/docs/intro/quick-start.md b/docs/intro/quick-start.md index b495cd88..0f9df290 100644 --- a/docs/intro/quick-start.md +++ b/docs/intro/quick-start.md @@ -20,7 +20,7 @@ ```bash # 克隆最新版本 -git clone --branch v0.6.0.beta2 --depth 1 https://github.com/xerrors/Yuxi.git +git clone --branch v0.6.0.beta3 --depth 1 https://github.com/xerrors/Yuxi.git cd Yuxi ``` diff --git a/web/package.json b/web/package.json index b48bfeb3..be8aae0f 100644 --- a/web/package.json +++ b/web/package.json @@ -1,6 +1,6 @@ { "name": "yuxi-web", - "version": "0.6.0.beta2", + "version": "0.6.0.beta3", "private": true, "scripts": { "dev": "vite",