Skip to content

Conversation

@c121914yu
Copy link
Collaborator

No description provided.

c121914yu and others added 13 commits December 10, 2025 15:19
* fix: publish channel doc link

* fix: checkbox disable hover style

* fix: huggingface.svg missing; update doc

* chore: update doc

* fix: typo
* fix: export log dateend

* feat: file selector render
Copilot AI review requested due to automatic review settings December 10, 2025 07:20
@gru-agent
Copy link
Contributor

gru-agent bot commented Dec 10, 2025

There is too much information in the pull request to test.

@c121914yu c121914yu changed the title V4.14.4 dev 4.14.4 test feature Dec 10, 2025
@github-actions
Copy link

github-actions bot commented Dec 10, 2025

Preview sandbox Image:

registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-pr:fatsgpt_sandbox_2222e1bb442629e53fdd03653f952b8c86bd55b8

@github-actions
Copy link

github-actions bot commented Dec 10, 2025

Coverage Report

Status Category Percentage Covered / Total
🔵 Lines 24.32% 16582 / 68173
🔵 Statements 24.32% 16582 / 68173
🔵 Functions 35.14% 497 / 1414
🔵 Branches 70.05% 1600 / 2284
File Coverage
File Stmts Branches Functions Lines Uncovered Lines
Changed Files
packages/global/common/i18n/utils.ts 43.75% 100% 50% 43.75% 4-18
packages/global/common/middle/tracks/constants.ts 100% 100% 100% 100%
packages/service/common/api/frequencyLimit.ts 0% 100% 100% 0% 2-81
packages/service/common/geo/index.ts 73.11% 81.25% 42.85% 73.11% 34-35, 82-84, 87-91, 94-103, 106-111
packages/service/common/middle/tracks/utils.ts 12.42% 100% 0% 12.42% 14-29, 33-64, 68-78, 80-95, 97-107, 109-113, 115-129, 131-137, 139-150, 152-160, 168-179, 181-188
packages/service/common/redis/cache.ts 30.76% 100% 0% 30.76% 24-41, 44-46, 50-55, 58-60, 63-77
packages/service/common/s3/buckets/base.ts 4.62% 0% 0% 4.62% 21-307
packages/service/common/s3/buckets/public.ts 14.28% 100% 0% 14.28% 7-31, 34-50
packages/service/common/s3/sources/avatar.ts 23.8% 100% 0% 23.8% 10-11, 14-15, 18-35, 38-40, 43-46, 49-60, 63-77, 81-86
packages/service/common/s3/sources/chat/index.ts 0% 0% 0% 0% 1-104
packages/service/common/s3/sources/dataset/index.ts 0% 0% 0% 0% 1-182
packages/service/common/s3/sources/dataset/type.ts 0% 0% 0% 0% 1-60
packages/service/common/s3/sources/rawText/index.ts 24.07% 100% 0% 24.07% 14-15, 19-24, 27-48, 51-66, 70-75
packages/service/common/s3/sources/rawText/type.ts 100% 100% 100% 100%
packages/service/common/system/timerLock/constants.ts 0% 0% 0% 0% 1-21
packages/service/core/dataset/controller.ts 16.19% 50% 33.33% 16.19% 17-54, 61-62, 67-146
packages/service/core/dataset/apiDataset/custom/api.ts 2.82% 100% 0% 2.82% 31-242
packages/service/core/workflow/dispatch/child/runTool.ts 6.09% 100% 0% 6.09% 46-338
packages/service/core/workflow/dispatch/plugin/run.ts 11.04% 100% 0% 11.04% 44-208
packages/service/core/workflow/dispatch/plugin/runInput.ts 13.95% 100% 0% 13.95% 20-69
packages/service/core/workflow/dispatch/tools/readFiles.ts 9.54% 100% 0% 9.54% 34-52, 55-103, 106-123, 126-312
packages/service/support/permission/teamLimit.ts 34.09% 15.38% 33.33% 34.09% 13-25, 28-41, 64-65, 69-77, 79-100, 104-123, 136-137, 141-147, 151-158
packages/service/support/permission/auth/file.ts 0% 100% 100% 0% 2-60
packages/service/support/wallet/sub/utils.ts 31.22% 37.5% 21.42% 31.22% 26-27, 29-30, 35, 56, 62-79, 101-115, 139-224, 228-252, 254-256, 258-273, 275-279, 284-306, 308-310, 312-314, 319-321
packages/web/styles/theme.ts 0% 0% 0% 0% 1-943
projects/app/src/pages/api/common/file/read/[filename].ts 0% 0% 0% 0% 1-73
projects/app/src/pages/api/core/app/exportChatLogs.ts 76.66% 12.5% 50% 76.66% 32-37, 59-60, 71, 100-107, 110-117, 391-459, 463-464, 468-470, 474-482
projects/app/src/pages/api/core/app/getChatLogs.ts 0% 100% 100% 0% 2-317
projects/app/src/pages/api/core/dataset/data/v2/list.ts 0% 0% 0% 0% 1-112
projects/app/src/pages/api/system/file/[jwt].ts 0% 0% 0% 0% 1-76
Generated in workflow #3102 for commit 2222e1b by the Vitest Coverage Report Action

@github-actions
Copy link

github-actions bot commented Dec 10, 2025

Preview mcp_server Image:

registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-pr:fatsgpt_mcp_server_2222e1bb442629e53fdd03653f952b8c86bd55b8

@github-actions
Copy link

github-actions bot commented Dec 10, 2025

Docs Preview:


🚀 FastGPT Document Preview Ready!

🔗 👀 Click here to visit preview

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR implements version 4.14.4 development changes, focusing on S3 infrastructure refactoring, improved null safety, and i18n standardization.

Key Changes:

  • Refactored S3 source classes to use inheritance instead of composition, consolidating common methods in S3BaseBucket
  • Renamed S3 methods from getObject to getFileStream and standardized metadata retrieval with null safety
  • Standardized locale handling by removing locale parameters from API calls and using centralized getLocale() function
  • Added file input support for workflow tools with new FileSelect component

Reviewed changes

Copilot reviewed 52 out of 56 changed files in this pull request and generated 10 comments.

Show a summary per file
File Description
test/mocks/common/s3.ts Updated mock methods to match refactored S3 API (getObject → getFileStream)
projects/app/src/pages/api/system/file/[jwt].ts Added null check for metadata before setting response headers
projects/app/src/pages/api/core/dataset/data/v2/list.ts Added null check for S3 file metadata before accessing properties
projects/app/src/pages/api/core/app/getChatLogs.ts Removed locale parameter, now using centralized getLocale() function
projects/app/src/pages/api/core/app/exportChatLogs.ts Standardized locale retrieval using getLocale() instead of parameter
projects/app/src/pages/api/common/file/read/[filename].ts Updated to use renamed getFileStream method
projects/app/src/pages/account/customDomain/index.tsx Added type property to delete confirmation modal
projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/nodes/render/RenderInput/templates/FileSelect.tsx New component for file URL input in workflows
projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/nodes/render/RenderInput/index.tsx Updated to use FileSelect component instead of Reference
projects/app/src/pageComponents/app/detail/Publish/OffiAccount/*.tsx Simplified documentation links by removing conditional fallback logic
projects/app/src/pageComponents/app/detail/Publish/FeiShu/*.tsx Simplified documentation links
projects/app/src/pageComponents/app/detail/Publish/DingTalk/*.tsx Simplified documentation links
projects/app/src/pageComponents/app/detail/Logs/LogTable.tsx Removed locale parameter from API calls and translation file references
projects/app/src/global/core/api/appReq.d.ts Removed locale property from GetAppChatLogsProps type
projects/app/src/components/core/chat/components/WholeResponseModal.tsx Split plugin output into separate tool input and output rows
projects/app/src/components/core/app/FileSelector/index.tsx Added safe translation hook and error message translation
projects/app/public/imgs/modal/huggingface.svg Added missing HuggingFace icon SVG file
packages/web/styles/theme.ts Enhanced checkbox disabled state styling to prevent hover effects
packages/web/i18n/*/common.json Removed obsolete "plugin output" translation key
packages/web/i18n/*/chat.json Added tool_input/tool_output translations and reordered entries
packages/web/i18n/*/app.json Added export_log_filename translation with template variable
packages/web/components/core/workflow/NodeInputSelect.tsx Added fileSelect input type option and cleaned up formatting
packages/service/support/permission/auth/file.ts Changed file existence check from getDatasetFileStat to isObjectExists
packages/service/core/workflow/dispatch/tools/readFiles.ts Refactored to use S3RawTextSource instead of S3DatasetSource for raw text buffer
packages/service/core/workflow/dispatch/plugin/*.ts Added toolInput to response objects for better debugging
packages/service/core/workflow/dispatch/child/runTool.ts Added toolInput tracking across all tool execution paths
packages/service/core/dataset/controller.ts Added batched deletion with timeout controls for dataset cleanup
packages/service/core/dataset/apiDataset/custom/api.ts Updated to use S3RawTextSource for raw text operations
packages/service/common/s3/sources/rawText/*.ts New dedicated source class for raw text buffer operations
packages/service/common/s3/sources/dataset/*.ts Refactored to extend S3PrivateBucket and delegate raw text operations
packages/service/common/s3/sources/chat/index.ts Refactored to extend S3PrivateBucket, removing duplicate methods
packages/service/common/s3/sources/avatar.ts Refactored to extend S3PublicBucket
packages/service/common/s3/buckets/*.ts Added getFileMetadata, renamed methods, improved error handling
packages/service/common/geo/index.ts Updated to use standardized localeType and formatting function
packages/global/core/workflow/runtime/type.d.ts Removed duplicate pluginOutput property, added toolInput
packages/global/common/i18n/utils.ts Added formatI18nLocationToZhEn utility function
document/* Updated documentation with spelling corrections and timestamp updates
Comments suppressed due to low confidence (5)

projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/nodes/render/RenderInput/templates/FileSelect.tsx:5

  • Unused import Avatar.
    projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/nodes/render/RenderInput/templates/FileSelect.tsx:6
  • Unused import SelectAppModal.
    projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/nodes/render/RenderInput/templates/FileSelect.tsx:9
  • Unused import useRequest2.
    projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/nodes/render/RenderInput/templates/FileSelect.tsx:10
  • Unused import getAppDetailById.
    projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/nodes/render/RenderInput/templates/FileSelect.tsx:12
  • Unused import AppContext.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.


if (!RenderItem) return null;

console.log(renderType, input);
Copy link

Copilot AI Dec 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Debug console.log statement should be removed before merging to production. This appears to be leftover debugging code.

Copilot uses AI. Check for mistakes.
"start_chat": "Start",
"stream_output": "Stream Output",
"task_has_continued": "Task has continued running",
"tool_input": "tool input",
Copy link

Copilot AI Dec 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The traditional Chinese translation has inconsistent capitalization for "tool input". It should be "工具輸入" (with capital case consistency matching "tool_output" on line 171 which shows "工具輸出").

Suggested change
"tool_input": "tool input",
"tool_input": "Tool input",

Copilot uses AI. Check for mistakes.
Comment on lines +99 to +116
// Delete dataset_data_texts in batches by datasetId
for (const datasetId of datasetIds) {
await MongoDatasetDataText.deleteMany({
teamId,
datasetId
}).maxTimeMS(300000); // Reduce timeout for single batch
}
// Delete dataset_datas in batches by datasetId
for (const datasetId of datasetIds) {
await MongoDatasetData.deleteMany({
teamId,
datasetId
}).maxTimeMS(300000);
}

await delCollectionRelatedSource({ collections });
// Delete vector data
await deleteDatasetDataVector({ teamId, datasetIds });
Copy link

Copilot AI Dec 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Duplicate deletion logic detected. Lines 99-116 appear to be duplicated from lines 118-135. The first block (99-116) deletes dataset_data_texts and dataset_datas, then calls delCollectionRelatedSource and deleteDatasetDataVector. However, lines 118-120 then attempt to delete dataset_data_texts again. This duplication is unnecessary and could cause performance issues.

Copilot uses AI. Check for mistakes.
Comment on lines +4 to +18
import type { SelectAppItemType } from '@fastgpt/global/core/workflow/template/system/abandoned/runApp/type';
import Avatar from '@fastgpt/web/components/common/Avatar';
import SelectAppModal from '../../../../SelectAppModal';
import { useTranslation } from 'next-i18next';
import { useContextSelector } from 'use-context-selector';
import { useRequest2 } from '@fastgpt/web/hooks/useRequest';
import { getAppDetailById } from '@/web/core/app/api';
import { WorkflowActionsContext } from '@/pageComponents/app/detail/WorkflowComponents/context/workflowActionsContext';
import { AppContext } from '@/pageComponents/app/detail/context';
import MyIcon from '@fastgpt/web/components/common/Icon';
import MyDivider from '@fastgpt/web/components/common/MyDivider';
import { getFileIcon } from '@fastgpt/global/common/file/icon';
import MyAvatar from '@fastgpt/web/components/common/Avatar';
import IconButton from '@/pageComponents/account/team/OrgManage/IconButton';
import MyIconButton from '@fastgpt/web/components/common/Icon/button';
Copy link

Copilot AI Dec 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unused imports should be removed:

  • SelectAppItemType (line 4) - type not used
  • Avatar (line 5) - imported but MyAvatar (line 16) is used instead
  • SelectAppModal (line 6) - component not used
  • useRequest2 (line 9) - hook not used
  • getAppDetailById (line 10) - API function not used
  • AppContext (line 12) - context not used
  • IconButton (line 17) - component not used, MyIconButton (line 18) is used instead

Only remove the actually unused ones to keep imports clean.

Copilot uses AI. Check for mistakes.
1. ### 当前分组上游负载已饱和,请稍后再试(request id:202407100753411462086782835521)

是oneapi渠道的问题,可以换个模型用or换一家中转站
是oneapi渠道的问题,可以换个模型用或者换一家中转站
Copy link

Copilot AI Dec 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] Missing space in Chinese text. The phrase "换个模型用或者换一家中转站" should have a space or punctuation between "用" and "或者" for better readability. Consider: "换个模型用,或者换一家中转站"

Suggested change
是oneapi渠道的问题,可以换个模型用或者换一家中转站
是oneapi渠道的问题,可以换个模型用,或者换一家中转站

Copilot uses AI. Check for mistakes.
feConfigs.openAPIDocUrl ||
getDocPath('/docs/use-cases/external-integration/official_account/')
}
href={getDocPath('/docs/use-cases/external-integration/official_account')}
Copy link

Copilot AI Dec 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Inconsistent URL path: Line 78 uses /docs/use-cases/external-integration/official_account without a trailing slash, while line 99 in OffiAccountEditModal.tsx uses /docs/use-cases/external-integration/official_account/ with a trailing slash. URLs should be consistent across the codebase.

Copilot uses AI. Check for mistakes.
feConfigs.openAPIDocUrl ||
getDocPath('/docs/use-cases/external-integration/feishu/')
}
href={getDocPath('/docs/use-cases/external-integration/feishu')}
Copy link

Copilot AI Dec 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Inconsistent URL paths for FeiShu documentation. The index file uses /docs/use-cases/external-integration/feishu (no trailing slash) while FeiShuEditModal.tsx line 93 uses /docs/use-cases/external-integration/feishu/ (with trailing slash). These should be consistent.

Copilot uses AI. Check for mistakes.
@@ -0,0 +1,127 @@
import React, { useCallback, useMemo, useState } from 'react';
import type { RenderInputProps } from '../type';
import { Box, Button, HStack, Input, InputGroup, useDisclosure, VStack } from '@chakra-ui/react';
Copy link

Copilot AI Dec 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unused imports Button, useDisclosure.

Copilot uses AI. Check for mistakes.
import MyDivider from '@fastgpt/web/components/common/MyDivider';
import { getFileIcon } from '@fastgpt/global/common/file/icon';
import MyAvatar from '@fastgpt/web/components/common/Avatar';
import IconButton from '@/pageComponents/account/team/OrgManage/IconButton';
Copy link

Copilot AI Dec 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unused import IconButton.

Copilot uses AI. Check for mistakes.
import MyAvatar from '@fastgpt/web/components/common/Avatar';
import IconButton from '@/pageComponents/account/team/OrgManage/IconButton';
import MyIconButton from '@fastgpt/web/components/common/Icon/button';
import MyTooltip from '@fastgpt/web/components/common/MyTooltip';
Copy link

Copilot AI Dec 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unused import MyTooltip.

Copilot uses AI. Check for mistakes.
* team qpm limit & plan tracks

* api entry qpm

* perf: computed days

* Revert "api entry qpm"

This reverts commit 1210c07.

* perf: code

* system qpm limit

* system qpm limit

---------

Co-authored-by: archer <545436317@qq.com>
@c121914yu c121914yu closed this Dec 10, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants