chore(release): 更新版本至 0.7.0.beta2

This commit is contained in:
Wenjie Zhang 2026-06-08 00:45:41 +08:00
parent fd2660d21a
commit 7f387fd6e7
21 changed files with 46 additions and 40 deletions

View File

@ -52,7 +52,7 @@ Yuxi is an LLM-powered platform for building knowledge-base and knowledge-graph
**1. Clone and initialize**
```bash
git clone --branch v0.7.0.beta1 --depth 1 https://github.com/xerrors/Yuxi.git
git clone --branch v0.7.0.beta2 --depth 1 https://github.com/xerrors/Yuxi.git
cd Yuxi
# Linux/macOS

View File

@ -99,7 +99,7 @@
**1. 克隆代码并初始化**
```bash
git clone --branch v0.7.0.beta1 --depth 1 https://github.com/xerrors/Yuxi.git
git clone --branch v0.7.0.beta2 --depth 1 https://github.com/xerrors/Yuxi.git
cd Yuxi
# Linux/macOS

View File

@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
[project]
name = "yuxi"
version = "0.7.0.beta1"
version = "0.7.0.beta2"
description = "Yuxi 智能知识库与知识图谱平台核心后端包"
readme = "README.md"
requires-python = ">=3.12,<3.14"

View File

@ -5264,7 +5264,7 @@ wheels = [
[[package]]
name = "yuxi"
version = "0.7.0.beta1"
version = "0.7.0.beta2"
source = { editable = "." }
dependencies = [
{ name = "agent-sandbox" },

View File

@ -1,6 +1,6 @@
[project]
name = "yuxi-workspace"
version = "0.7.0.beta1"
version = "0.7.0.beta2"
description = "基于大模型的智能知识库与知识图谱智能体开发平台,融合了 RAG 技术与知识图谱技术,基于 LangGraph v1 + Vue.js + FastAPI + LightRAG 架构构建"
readme = "README.md"
requires-python = ">=3.12,<3.14"

View File

@ -5489,7 +5489,7 @@ wheels = [
[[package]]
name = "yuxi"
version = "0.7.0.beta1"
version = "0.7.0.beta2"
source = { editable = "package" }
dependencies = [
{ name = "agent-sandbox" },
@ -5646,7 +5646,7 @@ requires-dist = [
[[package]]
name = "yuxi-workspace"
version = "0.7.0.beta1"
version = "0.7.0.beta2"
source = { virtual = "." }
dependencies = [
{ name = "arq" },

View File

@ -30,7 +30,7 @@ services:
build:
context: .
dockerfile: docker/api.Dockerfile
image: yuxi-api:${YUXI_VERSION:-0.7.0.beta1}
image: yuxi-api:${YUXI_VERSION:-0.7.0.beta2}
container_name: api-prod
working_dir: /app
networks:
@ -68,7 +68,7 @@ services:
build:
context: .
dockerfile: docker/api.Dockerfile
image: yuxi-api:${YUXI_VERSION:-0.7.0.beta1}
image: yuxi-api:${YUXI_VERSION:-0.7.0.beta2}
container_name: worker-prod
working_dir: /app
networks:
@ -145,7 +145,7 @@ services:
context: .
dockerfile: docker/web.Dockerfile
target: production
image: yuxi-web:${YUXI_VERSION:-0.7.0.beta1}
image: yuxi-web:${YUXI_VERSION:-0.7.0.beta2}
container_name: web-prod
ports:
- "80:80"

View File

@ -38,7 +38,7 @@ services:
build:
context: .
dockerfile: docker/api.Dockerfile
image: yuxi-api:${YUXI_VERSION:-0.7.0.beta1}
image: yuxi-api:${YUXI_VERSION:-0.7.0.beta2}
container_name: api-dev
working_dir: /app
volumes:
@ -86,7 +86,7 @@ services:
build:
context: .
dockerfile: docker/api.Dockerfile
image: yuxi-api:${YUXI_VERSION:-0.7.0.beta1}
image: yuxi-api:${YUXI_VERSION:-0.7.0.beta2}
container_name: worker-dev
working_dir: /app
volumes:
@ -125,7 +125,7 @@ services:
build:
context: ./docker/sandbox_provisioner
dockerfile: Dockerfile
image: yuxi-sandbox-provisioner:${YUXI_VERSION:-0.7.0.beta1}
image: yuxi-sandbox-provisioner:${YUXI_VERSION:-0.7.0.beta2}
container_name: sandbox-provisioner
volumes:
- ./docker/volumes/yuxi:/app/saves
@ -179,7 +179,7 @@ services:
context: .
dockerfile: docker/web.Dockerfile
target: development
image: yuxi-web:${YUXI_VERSION:-0.7.0.beta1}
image: yuxi-web:${YUXI_VERSION:-0.7.0.beta2}
container_name: web-dev
volumes:
- ./web/src:/app/src

View File

@ -18,6 +18,7 @@
### 开发记录
- 发布版本号更新至 `0.7.0.beta2`,同步 package、Docker 镜像标签与快速开始分支引用。
- 新增内置「深度研究」多智能体:编排器 Agent`deep-research`ChatbotAgent 后端)负责澄清、拆解、并行调度子智能体与综合成稿,配套两个子智能体 `research-explorer`(围绕单个子问题多轮检索网页/知识库并返回带引用发现)和 `fact-verifier`(对抗式核验关键论断、标注冲突与置信度);完整研究方法论沉淀为新增内置 Skill `deep-research`(依赖 `tavily_search`),编排器运行时读取并据此调度。三者随 `lifespan` 启动通过 `AgentRepository.ensure_deep_research_agents` 幂等落库(已存在不覆盖管理员修改)。
- 新增内置 `general-purpose` 通用任务子智能体:使用 `SubAgentBackend` 与空运行配置,作为 `task` 工具的通用委派目标,由启动初始化自动写入数据库。
- 收敛 MCP 创建与编辑入口:前端移除整段配置文本入口和模式切换器,仅保留表单字段提交;后端 MCP 创建/更新请求拒绝额外配置字段,避免绕过表单约束。

View File

@ -20,7 +20,7 @@
```bash
# 克隆最新版本
git clone --branch v0.7.0.beta1 --depth 1 https://github.com/xerrors/Yuxi.git
git clone --branch v0.7.0.beta2 --depth 1 https://github.com/xerrors/Yuxi.git
cd Yuxi
```

View File

@ -1,6 +1,6 @@
{
"name": "yuxi-web",
"version": "0.7.0.beta1",
"version": "0.7.0.beta2",
"private": true,
"type": "module",
"scripts": {

View File

@ -611,7 +611,9 @@ let panelContainerWidth = 0
let streamingStateRefreshTimer = null
const formatTodoName = (content) => {
return Array.from(String(content || '')).slice(0, TODO_NAME_MAX_LENGTH).join('')
return Array.from(String(content || ''))
.slice(0, TODO_NAME_MAX_LENGTH)
.join('')
}
const getPanelContainerWidth = () => {
@ -991,9 +993,7 @@ const currentApprovalQuestions = computed(() =>
const shouldSuppressRefsForApproval = () =>
currentApprovalModalVisible.value ||
Boolean(
approvalState.threadId &&
currentChatId.value === approvalState.threadId &&
isProcessing.value
approvalState.threadId && currentChatId.value === approvalState.threadId && isProcessing.value
)
// refs/

View File

@ -3,7 +3,11 @@
class="agent-file-preview"
:class="[
containerClass,
{ 'is-full-height': fullHeight, 'is-borderless': borderless, 'has-preview-header': showHeader }
{
'is-full-height': fullHeight,
'is-borderless': borderless,
'has-preview-header': showHeader
}
]"
>
<div v-if="showHeader" class="preview-header">

View File

@ -231,7 +231,11 @@
</span>
</template>
<a-button v-else class="main-btn" type="link" @click="openFileDetail(record)">
<FileTypeIcon :name="record.displayName || text" :size="16" :style="{ marginRight: '8px' }" />
<FileTypeIcon
:name="record.displayName || text"
:size="16"
:style="{ marginRight: '8px' }"
/>
{{ record.displayName || text }}
</a-button>
</div>

View File

@ -206,7 +206,9 @@ const visibleRelationshipEdges = computed(() =>
const visibleEntityCount = computed(() => visibleEntityNodes.value.length)
const visibleRelationshipCount = computed(() => visibleRelationshipEdges.value.length)
const nodeTypeStats = computed(() => buildTypeStats(visibleEntityNodes.value, getNodeVisualLabel, getNodeColor))
const nodeTypeStats = computed(() =>
buildTypeStats(visibleEntityNodes.value, getNodeVisualLabel, getNodeColor)
)
const edgeTypeStats = computed(() =>
buildTypeStats(visibleRelationshipEdges.value, getEdgeVisualLabel, getEdgeColor)
@ -755,7 +757,9 @@ defineExpose({
width: 10px;
height: 10px;
border-radius: 50%;
box-shadow: 0 0 0 1px var(--color-bg-container), 0 0 0 2px var(--gray-200);
box-shadow:
0 0 0 1px var(--color-bg-container),
0 0 0 2px var(--gray-200);
}
.type-name {

View File

@ -65,7 +65,9 @@
:key="`v2-${providerId}`"
>
<template #title>
<span :title="providerId">{{ getProviderDisplayName(providerId, providerData) }}</span>
<span :title="providerId">{{
getProviderDisplayName(providerId, providerData)
}}</span>
</template>
<a-menu-item
v-for="model in providerData.models"

View File

@ -56,7 +56,9 @@ const props = defineProps({
const TODO_NAME_MAX_LENGTH = 20
const formatTodoName = (content) => {
return Array.from(String(content || '')).slice(0, TODO_NAME_MAX_LENGTH).join('')
return Array.from(String(content || ''))
.slice(0, TODO_NAME_MAX_LENGTH)
.join('')
}
const formatTodoNameTitle = (content) => String(content || '')

View File

@ -71,10 +71,7 @@
</div>
</div>
<a-form
layout="vertical"
class="extension-form inline-edit-form"
>
<a-form layout="vertical" class="extension-form inline-edit-form">
<section class="form-section">
<div class="form-section-title">
<span>基础信息</span>

View File

@ -1,11 +1,7 @@
import { unref } from 'vue'
import { agentApi } from '@/apis'
import { handleChatError } from '@/utils/errorHandler'
import {
compareRunSeq,
normalizeRunSeq,
resolveRunResumeAfterSeq
} from '@/utils/runStreamResume'
import { compareRunSeq, normalizeRunSeq, resolveRunResumeAfterSeq } from '@/utils/runStreamResume'
const RUN_INTERRUPTED_STATUS = 'interrupted'
const RUN_TERMINAL_STATUSES = new Set(['completed', 'failed', 'cancelled'])

View File

@ -192,7 +192,6 @@ const currentAgentLabel = computed(() => {
return currentAgentOption.value?.label || '智能体'
})
const agentDropdownOpen = ref(false)
const handleAgentSwitch = async (agentId, hasActiveThread) => {
@ -214,7 +213,6 @@ const openAgentManagement = () => {
agentDropdownOpen.value = false
router.push({ name: 'ModelManageComp', query: { tab: 'agents' } })
}
</script>
<style lang="less" scoped>

View File

@ -175,9 +175,7 @@
</div>
</div>
<p class="flow-caption">
智能体发起检索 · 引擎融合向量与图谱 · 召回知识增强生成
</p>
<p class="flow-caption">智能体发起检索 · 引擎融合向量与图谱 · 召回知识增强生成</p>
</div>
<div class="stat-row" v-if="realtimeStats.length">