diff --git a/deploy/args.json b/deploy/args.json index 229d422757a6..953c817f0c20 100644 --- a/deploy/args.json +++ b/deploy/args.json @@ -1,8 +1,8 @@ { "tags": { - "fastgpt": "v4.14.5", - "fastgpt-sandbox": "v4.14.5", - "fastgpt-mcp_server": "v4.14.5-fix", + "fastgpt": "v4.14.5.1", + "fastgpt-sandbox": "v4.14.5.1", + "fastgpt-mcp_server": "v4.14.5.1", "fastgpt-plugin": "v0.4.0", "aiproxy": "v0.3.2", "aiproxy-pg": "0.8.0-pg15", diff --git a/deploy/dev/docker-compose.cn.yml b/deploy/dev/docker-compose.cn.yml index 0c0e272cb8f0..8a5804b24a5b 100644 --- a/deploy/dev/docker-compose.cn.yml +++ b/deploy/dev/docker-compose.cn.yml @@ -136,7 +136,7 @@ services: retries: 3 sandbox: container_name: sandbox - image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-sandbox:v4.14.5 + image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-sandbox:v4.14.5.1 ports: - 3002:3000 networks: @@ -144,7 +144,7 @@ services: restart: always fastgpt-mcp-server: container_name: fastgpt-mcp-server - image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-mcp_server:v4.14.5-fix + image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-mcp_server:v4.14.5.1 ports: - 3005:3000 networks: diff --git a/deploy/dev/docker-compose.yml b/deploy/dev/docker-compose.yml index 72e76cece9e0..1ee8c23073b5 100644 --- a/deploy/dev/docker-compose.yml +++ b/deploy/dev/docker-compose.yml @@ -136,7 +136,7 @@ services: retries: 3 sandbox: container_name: sandbox - image: ghcr.io/labring/fastgpt-sandbox:v4.14.5 + image: ghcr.io/labring/fastgpt-sandbox:v4.14.5.1 ports: - 3002:3000 networks: @@ -144,7 +144,7 @@ services: restart: always fastgpt-mcp-server: container_name: fastgpt-mcp-server - image: ghcr.io/labring/fastgpt-mcp_server:v4.14.5-fix + image: ghcr.io/labring/fastgpt-mcp_server:v4.14.5.1 ports: - 3005:3000 networks: diff --git a/deploy/docker/cn/docker-compose.milvus.yml b/deploy/docker/cn/docker-compose.milvus.yml index e0b599412a27..871992f44a1a 100644 --- a/deploy/docker/cn/docker-compose.milvus.yml +++ b/deploy/docker/cn/docker-compose.milvus.yml @@ -180,7 +180,7 @@ services: fastgpt: container_name: fastgpt - image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.14.5 # git + image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.14.5.1 # git ports: - 3000:3000 networks: @@ -232,13 +232,13 @@ services: - ./config.json:/app/data/config.json sandbox: container_name: sandbox - image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-sandbox:v4.14.5 + image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-sandbox:v4.14.5.1 networks: - fastgpt restart: always fastgpt-mcp-server: container_name: fastgpt-mcp-server - image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-mcp_server:v4.14.5-fix + image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-mcp_server:v4.14.5.1 networks: - fastgpt ports: diff --git a/deploy/docker/cn/docker-compose.oceanbase.yml b/deploy/docker/cn/docker-compose.oceanbase.yml index ab996248b23c..ebf265d177bb 100644 --- a/deploy/docker/cn/docker-compose.oceanbase.yml +++ b/deploy/docker/cn/docker-compose.oceanbase.yml @@ -157,7 +157,7 @@ services: fastgpt: container_name: fastgpt - image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.14.5 # git + image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.14.5.1 # git ports: - 3000:3000 networks: @@ -209,13 +209,13 @@ services: - ./config.json:/app/data/config.json sandbox: container_name: sandbox - image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-sandbox:v4.14.5 + image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-sandbox:v4.14.5.1 networks: - fastgpt restart: always fastgpt-mcp-server: container_name: fastgpt-mcp-server - image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-mcp_server:v4.14.5-fix + image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-mcp_server:v4.14.5.1 networks: - fastgpt ports: diff --git a/deploy/docker/cn/docker-compose.pg.yml b/deploy/docker/cn/docker-compose.pg.yml index 0030b10e099f..482b51143fe1 100644 --- a/deploy/docker/cn/docker-compose.pg.yml +++ b/deploy/docker/cn/docker-compose.pg.yml @@ -138,7 +138,7 @@ services: fastgpt: container_name: fastgpt - image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.14.5 # git + image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.14.5.1 # git ports: - 3000:3000 networks: @@ -190,13 +190,13 @@ services: - ./config.json:/app/data/config.json sandbox: container_name: sandbox - image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-sandbox:v4.14.5 + image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-sandbox:v4.14.5.1 networks: - fastgpt restart: always fastgpt-mcp-server: container_name: fastgpt-mcp-server - image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-mcp_server:v4.14.5-fix + image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-mcp_server:v4.14.5.1 networks: - fastgpt ports: diff --git a/deploy/docker/cn/docker-compose.zilliz.yml b/deploy/docker/cn/docker-compose.zilliz.yml index dbd4c471db57..d68be03c5091 100644 --- a/deploy/docker/cn/docker-compose.zilliz.yml +++ b/deploy/docker/cn/docker-compose.zilliz.yml @@ -121,7 +121,7 @@ services: fastgpt: container_name: fastgpt - image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.14.5 # git + image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.14.5.1 # git ports: - 3000:3000 networks: @@ -173,13 +173,13 @@ services: - ./config.json:/app/data/config.json sandbox: container_name: sandbox - image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-sandbox:v4.14.5 + image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-sandbox:v4.14.5.1 networks: - fastgpt restart: always fastgpt-mcp-server: container_name: fastgpt-mcp-server - image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-mcp_server:v4.14.5-fix + image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-mcp_server:v4.14.5.1 networks: - fastgpt ports: diff --git a/deploy/docker/global/docker-compose.milvus.yml b/deploy/docker/global/docker-compose.milvus.yml index 0b8c2aacc540..2d34627a278a 100644 --- a/deploy/docker/global/docker-compose.milvus.yml +++ b/deploy/docker/global/docker-compose.milvus.yml @@ -180,7 +180,7 @@ services: fastgpt: container_name: fastgpt - image: ghcr.io/labring/fastgpt:v4.14.5 # git + image: ghcr.io/labring/fastgpt:v4.14.5.1 # git ports: - 3000:3000 networks: @@ -232,13 +232,13 @@ services: - ./config.json:/app/data/config.json sandbox: container_name: sandbox - image: ghcr.io/labring/fastgpt-sandbox:v4.14.5 + image: ghcr.io/labring/fastgpt-sandbox:v4.14.5.1 networks: - fastgpt restart: always fastgpt-mcp-server: container_name: fastgpt-mcp-server - image: ghcr.io/labring/fastgpt-mcp_server:v4.14.5-fix + image: ghcr.io/labring/fastgpt-mcp_server:v4.14.5.1 networks: - fastgpt ports: diff --git a/deploy/docker/global/docker-compose.oceanbase.yml b/deploy/docker/global/docker-compose.oceanbase.yml index e370de407753..07aa6a28c1f7 100644 --- a/deploy/docker/global/docker-compose.oceanbase.yml +++ b/deploy/docker/global/docker-compose.oceanbase.yml @@ -157,7 +157,7 @@ services: fastgpt: container_name: fastgpt - image: ghcr.io/labring/fastgpt:v4.14.5 # git + image: ghcr.io/labring/fastgpt:v4.14.5.1 # git ports: - 3000:3000 networks: @@ -209,13 +209,13 @@ services: - ./config.json:/app/data/config.json sandbox: container_name: sandbox - image: ghcr.io/labring/fastgpt-sandbox:v4.14.5 + image: ghcr.io/labring/fastgpt-sandbox:v4.14.5.1 networks: - fastgpt restart: always fastgpt-mcp-server: container_name: fastgpt-mcp-server - image: ghcr.io/labring/fastgpt-mcp_server:v4.14.5-fix + image: ghcr.io/labring/fastgpt-mcp_server:v4.14.5.1 networks: - fastgpt ports: diff --git a/deploy/docker/global/docker-compose.pg.yml b/deploy/docker/global/docker-compose.pg.yml index 898c63b3f9ea..f6100a3fb968 100644 --- a/deploy/docker/global/docker-compose.pg.yml +++ b/deploy/docker/global/docker-compose.pg.yml @@ -138,7 +138,7 @@ services: fastgpt: container_name: fastgpt - image: ghcr.io/labring/fastgpt:v4.14.5 # git + image: ghcr.io/labring/fastgpt:v4.14.5.1 # git ports: - 3000:3000 networks: @@ -190,13 +190,13 @@ services: - ./config.json:/app/data/config.json sandbox: container_name: sandbox - image: ghcr.io/labring/fastgpt-sandbox:v4.14.5 + image: ghcr.io/labring/fastgpt-sandbox:v4.14.5.1 networks: - fastgpt restart: always fastgpt-mcp-server: container_name: fastgpt-mcp-server - image: ghcr.io/labring/fastgpt-mcp_server:v4.14.5-fix + image: ghcr.io/labring/fastgpt-mcp_server:v4.14.5.1 networks: - fastgpt ports: diff --git a/deploy/docker/global/docker-compose.ziliiz.yml b/deploy/docker/global/docker-compose.ziliiz.yml index 97f7db10240e..31835c04c05b 100644 --- a/deploy/docker/global/docker-compose.ziliiz.yml +++ b/deploy/docker/global/docker-compose.ziliiz.yml @@ -121,7 +121,7 @@ services: fastgpt: container_name: fastgpt - image: ghcr.io/labring/fastgpt:v4.14.5 # git + image: ghcr.io/labring/fastgpt:v4.14.5.1 # git ports: - 3000:3000 networks: @@ -173,13 +173,13 @@ services: - ./config.json:/app/data/config.json sandbox: container_name: sandbox - image: ghcr.io/labring/fastgpt-sandbox:v4.14.5 + image: ghcr.io/labring/fastgpt-sandbox:v4.14.5.1 networks: - fastgpt restart: always fastgpt-mcp-server: container_name: fastgpt-mcp-server - image: ghcr.io/labring/fastgpt-mcp_server:v4.14.5-fix + image: ghcr.io/labring/fastgpt-mcp_server:v4.14.5.1 networks: - fastgpt ports: diff --git a/document/content/docs/toc.mdx b/document/content/docs/toc.mdx index 60fae94d84f2..376d11d53373 100644 --- a/document/content/docs/toc.mdx +++ b/document/content/docs/toc.mdx @@ -119,6 +119,7 @@ description: FastGPT 文档目录 - [/docs/upgrading/4-14/4143](/docs/upgrading/4-14/4143) - [/docs/upgrading/4-14/4144](/docs/upgrading/4-14/4144) - [/docs/upgrading/4-14/4145](/docs/upgrading/4-14/4145) +- [/docs/upgrading/4-14/41451](/docs/upgrading/4-14/41451) - [/docs/upgrading/4-14/4146](/docs/upgrading/4-14/4146) - [/docs/upgrading/4-8/40](/docs/upgrading/4-8/40) - [/docs/upgrading/4-8/41](/docs/upgrading/4-8/41) diff --git a/document/content/docs/upgrading/4-14/4145.mdx b/document/content/docs/upgrading/4-14/4145.mdx index e8006a780b86..c719cb737167 100644 --- a/document/content/docs/upgrading/4-14/4145.mdx +++ b/document/content/docs/upgrading/4-14/4145.mdx @@ -1,5 +1,5 @@ --- -title: 'V4.14.5' +title: 'V4.14.5(包含升级脚本)' description: 'FastGPT V4.14.5 更新说明' --- diff --git a/document/content/docs/upgrading/4-14/41451.mdx b/document/content/docs/upgrading/4-14/41451.mdx new file mode 100644 index 000000000000..ecdae205217b --- /dev/null +++ b/document/content/docs/upgrading/4-14/41451.mdx @@ -0,0 +1,47 @@ +--- +title: 'V4.14.5.1(包含升级脚本)' +description: 'FastGPT V4.14.5.1 更新说明' +--- + +## 更新指南 + +### 1. 更新镜像: + +- 更新 FastGPT 镜像tag: v4.14.5.1 +- 更新 FastGPT 商业版镜像tag: v4.14.5.1 +- 更新 fastgpt-plugin 镜像 tag: v0.4.0 +- mcp_server 无需更新 +- Sandbox 无需更新 +- AIProxy 无需更新 +- mongo 无需更新 + +### 2. 执行升级脚本 + +从任意终端,发起 1 个 HTTP 请求。其中 `{{rootkey}}` 替换成环境变量里的 `rootkey`;`{{host}}` 替换成**FastGPT 域名**。 + +```bash +curl --location --request POST 'https://{{host}}/api/admin/initv41451' \ +--header 'rootkey: {{rootkey}}' \ +--header 'Content-Type: application/json' +``` + +1. 迁移系统工具的系统密钥配置 + +## 🚀 新增内容 + +1. Markdown 表格支持导出 csv。 + +## ⚙️ 优化 + +1. 工作流触摸板移动时,遇到输入框后会被强制阻拦。 +2. 工作流粘贴节点,精确按鼠标位置粘贴。 +3. 精确移除请求 LLM 时多余的系统字段,避免部分模型接口报错。 +4. 使用 path.extname 从 URL 获取文件扩展名 + +## 🐛 修复 + +1. 系统工具工具集设置系统密钥后,子工具无法读取到设置的系统密钥 +2. 密码类型的全局变量,必填规则校验错误。 +3. 时间类型的全局变量,选择月份被遮挡。 +4. 手动复制弹窗,换行丢失。 +5. 未传入文件上传类型变量,对话接口报错。 diff --git a/document/content/docs/upgrading/4-14/4146.mdx b/document/content/docs/upgrading/4-14/4146.mdx index db9f62519dc3..c1d16b290443 100644 --- a/document/content/docs/upgrading/4-14/4146.mdx +++ b/document/content/docs/upgrading/4-14/4146.mdx @@ -7,12 +7,38 @@ description: 'FastGPT V4.14.6 更新说明' ## 🚀 新增内容 1. Markdown 表格支持导出 csv。 +2. 系统工具可配置自定义的分类属性 + +### 1. 更新镜像: + +- 更新 FastGPT 镜像tag: v4.14.6 +- 更新 FastGPT 商业版镜像tag: v4.14.6 +- 更新 fastgpt-plugin 镜像 tag: v0.4.0 +- mcp_server 无需更新 +- Sandbox 无需更新 +- AIProxy 无需更新 +- mongo 5.x 版本修改成 5.0.32 版本,解决 CVE-2025-14847 漏洞。直接修改镜像 tag 成 `5.0.32`。 + +### 2. 执行升级脚本 + +从任意终端,发起 1 个 HTTP 请求。其中 `{{rootkey}}` 替换成环境变量里的 `rootkey`;`{{host}}` 替换成**FastGPT 域名**。 + +```bash +curl --location --request POST 'https://{{host}}/api/admin/initv4146' \ +--header 'rootkey: {{rootkey}}' \ +--header 'Content-Type: application/json' +``` + +1. 迁移系统工具的系统密钥配置 ## ⚙️ 优化 1. 工作流触摸板移动时,遇到输入框后会被强制阻拦。 2. 工作流粘贴节点,精确按鼠标位置粘贴。 +3. 精确移除请求 LLM 时多余的系统字段,避免部分模型接口报错。 ## 🐛 修复 +1. 系统工具工具集设置系统密钥后,子工具无法读取到设置的系统密钥 + ## 插件 diff --git a/document/content/docs/upgrading/4-14/meta.json b/document/content/docs/upgrading/4-14/meta.json index 97114c212900..b64d54ff2e2b 100644 --- a/document/content/docs/upgrading/4-14/meta.json +++ b/document/content/docs/upgrading/4-14/meta.json @@ -1,5 +1,5 @@ { "title": "4.14.x", "description": "", - "pages": ["4146", "4145", "4144", "4143", "4142", "4141", "4140"] + "pages": ["4146","41451","4145", "4144", "4143", "4142", "4141", "4140"] } diff --git a/document/data/doc-last-modified.json b/document/data/doc-last-modified.json index 852bb3637061..550494b77023 100644 --- a/document/data/doc-last-modified.json +++ b/document/data/doc-last-modified.json @@ -104,7 +104,7 @@ "document/content/docs/protocol/terms.en.mdx": "2025-12-15T23:36:54+08:00", "document/content/docs/protocol/terms.mdx": "2025-12-15T23:36:54+08:00", "document/content/docs/toc.en.mdx": "2025-08-04T13:42:36+08:00", - "document/content/docs/toc.mdx": "2026-01-11T21:09:27+08:00", + "document/content/docs/toc.mdx": "2026-01-19T19:10:54+08:00", "document/content/docs/upgrading/4-10/4100.mdx": "2025-08-02T19:38:37+08:00", "document/content/docs/upgrading/4-10/4101.mdx": "2025-09-08T20:07:20+08:00", "document/content/docs/upgrading/4-11/4110.mdx": "2025-08-05T23:20:39+08:00", @@ -122,8 +122,9 @@ "document/content/docs/upgrading/4-14/4142.mdx": "2025-11-18T19:27:14+08:00", "document/content/docs/upgrading/4-14/4143.mdx": "2025-11-26T20:52:05+08:00", "document/content/docs/upgrading/4-14/4144.mdx": "2025-12-16T14:56:04+08:00", - "document/content/docs/upgrading/4-14/4145.mdx": "2026-01-12T08:50:15+08:00", - "document/content/docs/upgrading/4-14/4146.mdx": "2026-01-12T21:07:44+08:00", + "document/content/docs/upgrading/4-14/4145.mdx": "2026-01-18T23:59:15+08:00", + "document/content/docs/upgrading/4-14/41451.mdx": "2026-01-19T19:10:54+08:00", + "document/content/docs/upgrading/4-14/4146.mdx": "2026-01-19T19:10:54+08:00", "document/content/docs/upgrading/4-8/40.mdx": "2025-08-02T19:38:37+08:00", "document/content/docs/upgrading/4-8/41.mdx": "2025-08-02T19:38:37+08:00", "document/content/docs/upgrading/4-8/42.mdx": "2025-08-02T19:38:37+08:00", diff --git a/document/package-lock.json b/document/package-lock.json index 4ee46103e410..fc0f79d14db0 100644 --- a/document/package-lock.json +++ b/document/package-lock.json @@ -5107,9 +5107,9 @@ } }, "node_modules/minizlib": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.2.tgz", - "integrity": "sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz", + "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==", "dev": true, "license": "MIT", "dependencies": { @@ -5119,22 +5119,6 @@ "node": ">= 18" } }, - "node_modules/mkdirp": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", - "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", - "dev": true, - "license": "MIT", - "bin": { - "mkdirp": "dist/cjs/src/bin.js" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -6106,17 +6090,16 @@ } }, "node_modules/tar": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.3.tgz", - "integrity": "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==", + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.3.tgz", + "integrity": "sha512-ENg5JUHUm2rDD7IvKNFGzyElLXNjachNLp6RaGf4+JOgxXHkqA+gq81ZAMCUmtMtqBsoU62lcp6S27g1LCYGGQ==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/fs-minipass": "^4.0.0", "chownr": "^3.0.0", "minipass": "^7.1.2", - "minizlib": "^3.0.1", - "mkdirp": "^3.0.1", + "minizlib": "^3.1.0", "yallist": "^5.0.0" }, "engines": { diff --git a/document/public/deploy/docker/cn/docker-compose.milvus.yml b/document/public/deploy/docker/cn/docker-compose.milvus.yml index e0b599412a27..871992f44a1a 100644 --- a/document/public/deploy/docker/cn/docker-compose.milvus.yml +++ b/document/public/deploy/docker/cn/docker-compose.milvus.yml @@ -180,7 +180,7 @@ services: fastgpt: container_name: fastgpt - image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.14.5 # git + image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.14.5.1 # git ports: - 3000:3000 networks: @@ -232,13 +232,13 @@ services: - ./config.json:/app/data/config.json sandbox: container_name: sandbox - image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-sandbox:v4.14.5 + image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-sandbox:v4.14.5.1 networks: - fastgpt restart: always fastgpt-mcp-server: container_name: fastgpt-mcp-server - image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-mcp_server:v4.14.5-fix + image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-mcp_server:v4.14.5.1 networks: - fastgpt ports: diff --git a/document/public/deploy/docker/cn/docker-compose.oceanbase.yml b/document/public/deploy/docker/cn/docker-compose.oceanbase.yml index ab996248b23c..ebf265d177bb 100644 --- a/document/public/deploy/docker/cn/docker-compose.oceanbase.yml +++ b/document/public/deploy/docker/cn/docker-compose.oceanbase.yml @@ -157,7 +157,7 @@ services: fastgpt: container_name: fastgpt - image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.14.5 # git + image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.14.5.1 # git ports: - 3000:3000 networks: @@ -209,13 +209,13 @@ services: - ./config.json:/app/data/config.json sandbox: container_name: sandbox - image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-sandbox:v4.14.5 + image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-sandbox:v4.14.5.1 networks: - fastgpt restart: always fastgpt-mcp-server: container_name: fastgpt-mcp-server - image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-mcp_server:v4.14.5-fix + image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-mcp_server:v4.14.5.1 networks: - fastgpt ports: diff --git a/document/public/deploy/docker/cn/docker-compose.pg.yml b/document/public/deploy/docker/cn/docker-compose.pg.yml index 0030b10e099f..482b51143fe1 100644 --- a/document/public/deploy/docker/cn/docker-compose.pg.yml +++ b/document/public/deploy/docker/cn/docker-compose.pg.yml @@ -138,7 +138,7 @@ services: fastgpt: container_name: fastgpt - image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.14.5 # git + image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.14.5.1 # git ports: - 3000:3000 networks: @@ -190,13 +190,13 @@ services: - ./config.json:/app/data/config.json sandbox: container_name: sandbox - image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-sandbox:v4.14.5 + image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-sandbox:v4.14.5.1 networks: - fastgpt restart: always fastgpt-mcp-server: container_name: fastgpt-mcp-server - image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-mcp_server:v4.14.5-fix + image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-mcp_server:v4.14.5.1 networks: - fastgpt ports: diff --git a/document/public/deploy/docker/cn/docker-compose.zilliz.yml b/document/public/deploy/docker/cn/docker-compose.zilliz.yml index dbd4c471db57..d68be03c5091 100644 --- a/document/public/deploy/docker/cn/docker-compose.zilliz.yml +++ b/document/public/deploy/docker/cn/docker-compose.zilliz.yml @@ -121,7 +121,7 @@ services: fastgpt: container_name: fastgpt - image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.14.5 # git + image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.14.5.1 # git ports: - 3000:3000 networks: @@ -173,13 +173,13 @@ services: - ./config.json:/app/data/config.json sandbox: container_name: sandbox - image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-sandbox:v4.14.5 + image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-sandbox:v4.14.5.1 networks: - fastgpt restart: always fastgpt-mcp-server: container_name: fastgpt-mcp-server - image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-mcp_server:v4.14.5-fix + image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-mcp_server:v4.14.5.1 networks: - fastgpt ports: diff --git a/document/public/deploy/docker/global/docker-compose.milvus.yml b/document/public/deploy/docker/global/docker-compose.milvus.yml index 0b8c2aacc540..2d34627a278a 100644 --- a/document/public/deploy/docker/global/docker-compose.milvus.yml +++ b/document/public/deploy/docker/global/docker-compose.milvus.yml @@ -180,7 +180,7 @@ services: fastgpt: container_name: fastgpt - image: ghcr.io/labring/fastgpt:v4.14.5 # git + image: ghcr.io/labring/fastgpt:v4.14.5.1 # git ports: - 3000:3000 networks: @@ -232,13 +232,13 @@ services: - ./config.json:/app/data/config.json sandbox: container_name: sandbox - image: ghcr.io/labring/fastgpt-sandbox:v4.14.5 + image: ghcr.io/labring/fastgpt-sandbox:v4.14.5.1 networks: - fastgpt restart: always fastgpt-mcp-server: container_name: fastgpt-mcp-server - image: ghcr.io/labring/fastgpt-mcp_server:v4.14.5-fix + image: ghcr.io/labring/fastgpt-mcp_server:v4.14.5.1 networks: - fastgpt ports: diff --git a/document/public/deploy/docker/global/docker-compose.oceanbase.yml b/document/public/deploy/docker/global/docker-compose.oceanbase.yml index e370de407753..07aa6a28c1f7 100644 --- a/document/public/deploy/docker/global/docker-compose.oceanbase.yml +++ b/document/public/deploy/docker/global/docker-compose.oceanbase.yml @@ -157,7 +157,7 @@ services: fastgpt: container_name: fastgpt - image: ghcr.io/labring/fastgpt:v4.14.5 # git + image: ghcr.io/labring/fastgpt:v4.14.5.1 # git ports: - 3000:3000 networks: @@ -209,13 +209,13 @@ services: - ./config.json:/app/data/config.json sandbox: container_name: sandbox - image: ghcr.io/labring/fastgpt-sandbox:v4.14.5 + image: ghcr.io/labring/fastgpt-sandbox:v4.14.5.1 networks: - fastgpt restart: always fastgpt-mcp-server: container_name: fastgpt-mcp-server - image: ghcr.io/labring/fastgpt-mcp_server:v4.14.5-fix + image: ghcr.io/labring/fastgpt-mcp_server:v4.14.5.1 networks: - fastgpt ports: diff --git a/document/public/deploy/docker/global/docker-compose.pg.yml b/document/public/deploy/docker/global/docker-compose.pg.yml index 898c63b3f9ea..f6100a3fb968 100644 --- a/document/public/deploy/docker/global/docker-compose.pg.yml +++ b/document/public/deploy/docker/global/docker-compose.pg.yml @@ -138,7 +138,7 @@ services: fastgpt: container_name: fastgpt - image: ghcr.io/labring/fastgpt:v4.14.5 # git + image: ghcr.io/labring/fastgpt:v4.14.5.1 # git ports: - 3000:3000 networks: @@ -190,13 +190,13 @@ services: - ./config.json:/app/data/config.json sandbox: container_name: sandbox - image: ghcr.io/labring/fastgpt-sandbox:v4.14.5 + image: ghcr.io/labring/fastgpt-sandbox:v4.14.5.1 networks: - fastgpt restart: always fastgpt-mcp-server: container_name: fastgpt-mcp-server - image: ghcr.io/labring/fastgpt-mcp_server:v4.14.5-fix + image: ghcr.io/labring/fastgpt-mcp_server:v4.14.5.1 networks: - fastgpt ports: diff --git a/document/public/deploy/docker/global/docker-compose.ziliiz.yml b/document/public/deploy/docker/global/docker-compose.ziliiz.yml index 97f7db10240e..31835c04c05b 100644 --- a/document/public/deploy/docker/global/docker-compose.ziliiz.yml +++ b/document/public/deploy/docker/global/docker-compose.ziliiz.yml @@ -121,7 +121,7 @@ services: fastgpt: container_name: fastgpt - image: ghcr.io/labring/fastgpt:v4.14.5 # git + image: ghcr.io/labring/fastgpt:v4.14.5.1 # git ports: - 3000:3000 networks: @@ -173,13 +173,13 @@ services: - ./config.json:/app/data/config.json sandbox: container_name: sandbox - image: ghcr.io/labring/fastgpt-sandbox:v4.14.5 + image: ghcr.io/labring/fastgpt-sandbox:v4.14.5.1 networks: - fastgpt restart: always fastgpt-mcp-server: container_name: fastgpt-mcp-server - image: ghcr.io/labring/fastgpt-mcp_server:v4.14.5-fix + image: ghcr.io/labring/fastgpt-mcp_server:v4.14.5.1 networks: - fastgpt ports: diff --git a/packages/global/common/string/tools.ts b/packages/global/common/string/tools.ts index fd306e7ff2bd..63747bbe127a 100644 --- a/packages/global/common/string/tools.ts +++ b/packages/global/common/string/tools.ts @@ -1,5 +1,6 @@ import crypto from 'crypto'; import { customAlphabet } from 'nanoid'; +import path from 'path'; /* check string is a web link */ export function strIsLink(str?: string) { @@ -193,13 +194,14 @@ export const sliceStrStartEnd = (str: string, start: number, end: number) => { => pdf */ export const parseFileExtensionFromUrl = (url = '') => { - // Remove query params - const urlWithoutQuery = url.split('?')[0]; - // Get file name - const fileName = urlWithoutQuery.split('/').pop() || ''; - // Get file extension - const extension = fileName.split('.').pop(); - return (extension || '').toLowerCase(); + // Remove query params and hash first + const urlWithoutQuery = url.split('?')[0].split('#')[0]; + const extension = path.extname(urlWithoutQuery); + // path.extname returns '.ext' or '' + if (extension.startsWith('.')) { + return extension.slice(1).toLowerCase(); + } + return ''; }; export const formatNumberWithUnit = (num: number, locale: string = 'zh-CN'): string => { diff --git a/packages/service/core/ai/llm/utils.ts b/packages/service/core/ai/llm/utils.ts index fa7ed650fff7..72af145b94c0 100644 --- a/packages/service/core/ai/llm/utils.ts +++ b/packages/service/core/ai/llm/utils.ts @@ -230,6 +230,9 @@ export const loadRequestMessages = async ({ const result = ( await Promise.all( content.map(async (item) => { + // Remove system filed + + delete item.key; if (item.type === 'text') { // If it is array, not need to parse image if (item.text) return item; diff --git a/packages/service/core/app/tool/controller.ts b/packages/service/core/app/tool/controller.ts index d2ed14e9d36b..a48723fc32cc 100644 --- a/packages/service/core/app/tool/controller.ts +++ b/packages/service/core/app/tool/controller.ts @@ -633,7 +633,6 @@ export const refreshSystemTools = async (): Promise = defaultInstalled: dbPluginConfig?.defaultInstalled ?? false, inputList: item?.secretInputConfig, hasSystemSecret: !!dbPluginConfig?.inputListVal, - originCost: dbPluginConfig?.originCost ?? 0, currentCost: dbPluginConfig?.currentCost ?? 0, systemKeyCost: dbPluginConfig?.systemKeyCost ?? 0, diff --git a/packages/service/package.json b/packages/service/package.json index ed8cb8a07ce0..3990092f969e 100644 --- a/packages/service/package.json +++ b/packages/service/package.json @@ -60,7 +60,7 @@ "tiktoken": "1.0.17", "tunnel": "^0.0.6", "turndown": "^7.1.2", - "undici": "^7.16.0", + "undici": "^7.18.2", "winston": "^3.17.0", "zod": "^4.1.12" }, diff --git a/packages/web/components/common/DateTimePicker/index.tsx b/packages/web/components/common/DateTimePicker/index.tsx index be6784f8b084..e32d00593779 100644 --- a/packages/web/components/common/DateTimePicker/index.tsx +++ b/packages/web/components/common/DateTimePicker/index.tsx @@ -1,6 +1,6 @@ import React, { useState, useMemo, useRef, useEffect } from 'react'; import type { BoxProps } from '@chakra-ui/react'; -import { Box, Card, Flex, useOutsideClick } from '@chakra-ui/react'; +import { Box, Card, Flex, Portal, useOutsideClick } from '@chakra-ui/react'; import { format } from 'date-fns'; import type { Matcher } from 'react-day-picker'; import { DayPicker } from 'react-day-picker'; @@ -22,33 +22,60 @@ const DateTimePicker = ({ selectedDateTime?: Date; disabled?: Matcher[]; } & Omit) => { - const OutRangeRef = useRef(null); + const containerRef = useRef(null); + const popoverRef = useRef(null); const [selectedDate, setSelectedDate] = useState( selectedDateTime || defaultDate ); const [showSelected, setShowSelected] = useState(false); + const [position, setPosition] = useState({ top: 0, left: 0 }); useEffect(() => { setSelectedDate(selectedDateTime); }, [selectedDateTime]); + useEffect(() => { + if (showSelected && containerRef.current) { + const rect = containerRef.current.getBoundingClientRect(); + if (popPosition === 'top') { + setPosition({ + top: rect.top - 4, + left: rect.left + }); + } else { + setPosition({ + top: rect.bottom + 4, + left: rect.left + }); + } + } + }, [showSelected, popPosition]); + + // 点击外部关闭 + useEffect(() => { + if (!showSelected) return; + const handleClick = (e: MouseEvent) => { + if ( + containerRef.current?.contains(e.target as Node) || + popoverRef.current?.contains(e.target as Node) + ) { + return; + } + setShowSelected(false); + }; + document.addEventListener('mousedown', handleClick); + return () => document.removeEventListener('mousedown', handleClick); + }, [showSelected]); + const formatSelected = useMemo(() => { if (selectedDate) { - const dateStr = format(selectedDate, 'y/MM/dd'); - return dateStr; + return format(selectedDate, 'y/MM/dd'); } return ''; }, [selectedDate]); - useOutsideClick({ - ref: OutRangeRef, - handler: () => { - setShowSelected(false); - } - }); - return ( - + {showSelected && ( - - { - setSelectedDate(date); - onChange?.(date); - setShowSelected(false); + + - + > + { + setSelectedDate(date); + onChange?.(date); + setShowSelected(false); + }} + /> + + )} ); diff --git a/plugins/webcrawler/SPIDER/package-lock.json b/plugins/webcrawler/SPIDER/package-lock.json index 4807cda09029..51c723b62d50 100644 --- a/plugins/webcrawler/SPIDER/package-lock.json +++ b/plugins/webcrawler/SPIDER/package-lock.json @@ -5413,9 +5413,9 @@ } }, "node_modules/undici": { - "version": "6.21.3", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.21.3.tgz", - "integrity": "sha512-gBLkYIlEnSp8pFbT64yFgGE6UIB9tAkhukC23PmMDCe5Nd+cRqKxSjw5y54MK2AZMgZfJWMaNE4nYUHgi1XEOw==", + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.23.0.tgz", + "integrity": "sha512-VfQPToRA5FZs/qJxLIinmU59u0r7LXqoJkCzinq3ckNJp3vKEh7jTWN589YQ5+aoAC/TGRLyJLCPKcLQbM8r9g==", "license": "MIT", "engines": { "node": ">=18.17" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c8ac88b43c8e..c9e507c4668f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -304,8 +304,8 @@ importers: specifier: ^7.1.2 version: 7.2.0 undici: - specifier: ^7.16.0 - version: 7.16.0 + specifier: ^7.18.2 + version: 7.18.2 winston: specifier: ^3.17.0 version: 3.17.0 @@ -693,8 +693,8 @@ importers: specifier: ^1.58.3 version: 1.85.1 undici: - specifier: ^7.16.0 - version: 7.16.0 + specifier: ^7.18.2 + version: 7.18.2 use-context-selector: specifier: ^1.4.4 version: 1.4.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.26.0) @@ -5944,8 +5944,8 @@ packages: caniuse-lite@1.0.30001762: resolution: {integrity: sha512-PxZwGNvH7Ak8WX5iXzoK1KPZttBXNPuaOvI2ZYU7NrlM+d9Ov+TUvlLOBNGzVXAntMSMMlJPd+jY6ovrVjSmUw==} - caniuse-lite@1.0.30001763: - resolution: {integrity: sha512-mh/dGtq56uN98LlNX9qdbKnzINhX0QzhiWBFEkFfsFO4QyCvL8YegrJAazCwXIeqkIob8BlZPGM3xdnY+sgmvQ==} + caniuse-lite@1.0.30001764: + resolution: {integrity: sha512-9JGuzl2M+vPL+pz70gtMF9sHdMFbY9FJaQBi186cHKH3pSzDvzoUJUPV6fqiKIMyXbud9ZLg4F3Yza1vJ1+93g==} caseless@0.12.0: resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} @@ -11866,8 +11866,8 @@ packages: undici-types@7.8.0: resolution: {integrity: sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==} - undici@7.16.0: - resolution: {integrity: sha512-QEg3HPMll0o3t2ourKwOeUAZ159Kn9mx5pnzHRQO8+Wixmh88YdZRiIwat0iNzNNXn0yoEtXJqFpyW7eM8BV7g==} + undici@7.18.2: + resolution: {integrity: sha512-y+8YjDFzWdQlSE9N5nzKMT3g4a5UBX1HKowfdXh0uvAnTaqqwqB92Jt4UXBAeKekDs5IaDKyJFR4X1gYVCgXcw==} engines: {node: '>=20.18.1'} unescape@1.0.1: @@ -18887,7 +18887,7 @@ snapshots: caniuse-lite@1.0.30001762: {} - caniuse-lite@1.0.30001763: {} + caniuse-lite@1.0.30001764: {} caseless@0.12.0: {} @@ -23697,7 +23697,7 @@ snapshots: '@swc/counter': 0.1.3 '@swc/helpers': 0.5.15 busboy: 1.6.0 - caniuse-lite: 1.0.30001763 + caniuse-lite: 1.0.30001764 postcss: 8.4.31 react: 19.1.1 react-dom: 19.1.1(react@19.1.1) @@ -26298,7 +26298,7 @@ snapshots: undici-types@7.8.0: optional: true - undici@7.16.0: {} + undici@7.18.2: {} unescape@1.0.1: dependencies: diff --git a/projects/app/package.json b/projects/app/package.json index 2abbf52ab5e6..800fbe1cd410 100644 --- a/projects/app/package.json +++ b/projects/app/package.json @@ -1,6 +1,6 @@ { "name": "app", - "version": "4.14.5", + "version": "4.14.5.1", "private": false, "scripts": { "dev": "npm run build:workers && next dev", @@ -72,7 +72,7 @@ "remark-math": "^6.0.0", "request-ip": "^3.3.0", "sass": "^1.58.3", - "undici": "^7.16.0", + "undici": "^7.18.2", "use-context-selector": "^1.4.4", "zod": "^4.1.12" }, diff --git a/projects/app/src/components/core/app/formRender/LabelAndForm.tsx b/projects/app/src/components/core/app/formRender/LabelAndForm.tsx index 8a24513b7bc7..83c9d0970ef1 100644 --- a/projects/app/src/components/core/app/formRender/LabelAndForm.tsx +++ b/projects/app/src/components/core/app/formRender/LabelAndForm.tsx @@ -66,14 +66,17 @@ const LabelAndFormRender = ({ rules={{ validate: (value) => { if (typeof value === 'number' || typeof value === 'boolean') return true; - if (inputType === InputTypeEnum.password && props.minLength) { - if (!value || typeof value !== 'object' || !value.value) return false; - if (value.value.length < props.minLength) { + if (!required) return true; + // 密码类型特殊处理:已加密的密码格式为 { value: '', secret: 'xxx' } + if (inputType === InputTypeEnum.password) { + const hasValue = value && typeof value === 'object' && (value.value || value.secret); + if (!hasValue) return false; + // 有 minLength 要求且正在输入新值时,检查长度 + if (props.minLength && value.value && value.value.length < props.minLength) { return t(`common:min_length`, { minLenth: props.minLength }); } return true; } - if (!required) return true; if (inputType === InputTypeEnum.fileSelect) { if (!value || !Array.isArray(value) || value.length === 0) { diff --git a/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/nodes/NodePluginIO/InputTypeConfig.tsx b/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/nodes/NodePluginIO/InputTypeConfig.tsx index 2d61ad17e170..f4cfc4b5057f 100644 --- a/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/nodes/NodePluginIO/InputTypeConfig.tsx +++ b/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/nodes/NodePluginIO/InputTypeConfig.tsx @@ -485,7 +485,7 @@ const InputTypeConfig = ({ setValue('timeRangeStart', date); }} popPosition="top" - timeGranularity={timeGranularity} + timeGranularity={timeGranularity || 'day'} maxDate={timeRangeEnd ? new Date(timeRangeEnd) : undefined} /> @@ -499,7 +499,7 @@ const InputTypeConfig = ({ setValue('timeRangeEnd', date); }} popPosition="top" - timeGranularity={timeGranularity} + timeGranularity={timeGranularity || 'day'} minDate={timeRangeStart ? new Date(timeRangeStart) : undefined} /> @@ -623,7 +623,7 @@ const InputTypeConfig = ({ setValue('defaultValue', date); }} popPosition="top" - timeGranularity={timeGranularity} + timeGranularity={timeGranularity || 'day'} minDate={timeRangeStart ? new Date(timeRangeStart) : undefined} maxDate={timeRangeEnd ? new Date(timeRangeEnd) : undefined} /> @@ -640,7 +640,7 @@ const InputTypeConfig = ({ setValue('defaultValue', [date, timeRangeEndDefault]); }} popPosition="top" - timeGranularity={timeGranularity} + timeGranularity={timeGranularity || 'day'} minDate={timeRangeStart ? new Date(timeRangeStart) : undefined} maxDate={ timeRangeEndDefault && timeRangeEnd @@ -668,7 +668,7 @@ const InputTypeConfig = ({ setValue('defaultValue', [timeRangeStartDefault, date]); }} popPosition="top" - timeGranularity={timeGranularity} + timeGranularity={timeGranularity || 'day'} minDate={ timeRangeStartDefault && timeRangeStart ? new Date( diff --git a/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/nodes/render/RenderInput/templates/DynamicInputs/index.tsx b/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/nodes/render/RenderInput/templates/DynamicInputs/index.tsx index 46705e3c540d..3bb0d05a0c4c 100644 --- a/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/nodes/render/RenderInput/templates/DynamicInputs/index.tsx +++ b/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/nodes/render/RenderInput/templates/DynamicInputs/index.tsx @@ -237,7 +237,7 @@ const Reference = ({ borderLeftColor: 'transparent', borderRightColor: 'transparent', isDisabled: isEmptyItem, - minW: '240px', + w: '240px', _hover: { borderColor: 'blue.300' } diff --git a/projects/app/src/pages/account/customDomain/index.tsx b/projects/app/src/pages/account/customDomain/index.tsx index 031e4fe2389f..04f75b20a024 100644 --- a/projects/app/src/pages/account/customDomain/index.tsx +++ b/projects/app/src/pages/account/customDomain/index.tsx @@ -74,11 +74,11 @@ const CustomDomain = () => { const [editDomain, setEditDomain] = useState(undefined); // 检查用户是否有 advanced 套餐 - const isAdvancedPlan = useMemo(() => { + const isSupportCustomDomain = useMemo(() => { const plan = teamPlanStatus?.standard; if (!plan) return false; - return plan.customDomain && plan.customDomain > 0; + return !!(plan.customDomain && plan.customDomain > 0); }, [teamPlanStatus?.standard]); return ( @@ -100,7 +100,7 @@ const CustomDomain = () => { @@ -185,7 +185,7 @@ const CustomDomain = () => { > {t('account:upgrade_to_use_custom_domain')}