Commit Graph

2813 Commits

Author SHA1 Message Date
Ryo 34b351bc8d fix: use upload control file config (#6858)
* fix: skip allowed extensions

* fix: use upload control file config

Made-with: Cursor

* docs: v4.14.18

* chore: update pro submodule

* docs
2026-05-06 10:52:40 +08:00
Ryo d8cfc48dd5 fix: skip allowed extensions (#6854)
* fix: skip allowed extensions

* action preview repo

---------

Co-authored-by: archer <545436317@qq.com>
2026-05-06 10:51:22 +08:00
archer b2702c3695 fix: stt usage 2026-04-29 22:03:03 +08:00
Archer b1b97cbdeb Action (#6847)
* fix: pro's Dockefile

* fix: action

---------

Co-authored-by: xqvvu <whoeverimf5@gmail.com>
v4.14.17
2026-04-28 21:17:39 +08:00
archer a524c3e560 update package 2026-04-28 20:20:38 +08:00
archer 6a5bd52990 update submodule 2026-04-28 19:49:11 +08:00
Ryo 0806eec916 chore: update admin release workflow (#6842)
* chore: update admin release workflow

* fix: preview-admin-build.yml
2026-04-28 19:48:27 +08:00
Ryo 5ccdcc1cd4 chore: backport selected main commits to v4.14.x (#6840)
* chore: bump pro submodule for hydration stability (#6808)

* sandbox-sync-agent

* refactor: host pro as submodule

* chore: checkpoint host pro restructure

* refactor workspace test layout and startup init

* chore: update next turbopack setup

* chore: snapshot current work before actions fix

* chore: update pro submodule

* chore: point pro submodule url to upstream https

* fix: Dockerfile

* chore: update pro submodule

* ci: support private pro submodule token and skip fork jobs

* fix(ci): build sdk workspace deps before code-sandbox bundle

* fix(app): exclude vitest configs from production typecheck

* fix(app-image): build sdk packages before next build

* fix(ci): align dockerfiles with workspace sdk build flow

* chore(docker): upgrade node20 docker images to node24

* fix(ci): read admin coverage output path in pro test workflow

* fix(app-image): include next-i18next config and locale assets

* chore: update pro submodule

* chore: do not specify branch for submodule

* chore: remove most ts-nocheck sign

* chore: update pro submodule

* chore: remove sandbox-agent-sync package

* chore: do not modify "pushData" file logic

* fix: health check

* chore: restore dev axios proxy state

* fix: test-fastgpt report workflow

* fix: use valid vitest coverage action inputs

* update shell (#6830)

* .codex (#6832)

* fix: home chat file uploads (#6838)

* chore: update actions workflow yamls

* chore: update turbo.json

* fix: split admin preview image workflows

* fix: allow home chat file uploads

* chore: add skip file type check env (#6839)

* chore: update actions workflow yamls (#6835)

* chore: update actions workflow yamls

* fix: allow pro workflows on fork pull requests

* chore: update turbo.json

* fix: split admin preview image workflows

* chore: bump pro submodule for admin typecheck

* chore: update pro submodule

* chore: bump pro submodule for turbo ignore

* chore: update pro submodule for file download api

---------

Co-authored-by: Archer <545436317@qq.com>
2026-04-28 18:00:31 +08:00
YeYuheng cbf2903d67 api_dataset_error (#6828) 2026-04-27 17:16:47 +08:00
Archer 2605c404cf fix: template height (#6825) v4.14.16 2026-04-26 22:43:14 +08:00
archer b67bae1bef update sdk 2026-04-26 21:29:31 +08:00
Octopus 99d501bd06 fix(storage): swap reversed sourceKey/targetKey args in OssStorageAdapter.copyObjectInSelfBucket (#6806)
The ali-oss `copy(name, sourceName)` API expects the destination as the
first argument and the source as the second. The previous implementation
passed an encoded sourceKey as the destination and targetKey as the source,
causing copy operations to attempt reading from the target path (which
does not exist yet) and writing to the source path (overwriting the original).

This bug caused custom plugin uploads to fail when using OSS storage, since
the plugin file could not be moved from the temp path to its final location.

Fixes #6787, #6648

Co-authored-by: octo-patch <octo-patch@github.com>
2026-04-26 21:13:02 +08:00
Octopus c0072fabbc fix(embedding): decode base64 embedding responses before vector processing (#6807)
* fix(embedding): decode base64 embedding responses before vector processing

When a model's extra body config includes `encoding_format: "base64"`, the
embedding API returns a base64-encoded IEEE 754 little-endian float32 array
instead of a `number[]`. The previous code passed this raw string directly
to `formatVectors`, which called `.reduce()` on it and threw:
  TypeError: a.reduce is not a function

Add `decodeEmbedding()` that detects base64 strings and decodes them to
`number[]` via `Buffer → Float32Array → Array.from()`, then use it in
`getVectorsByText` before calling `formatVectors`.

Fixes #6769

* perf: test

---------

Co-authored-by: octo-patch <octo-patch@github.com>
Co-authored-by: archer <545436317@qq.com>
2026-04-26 21:12:40 +08:00
YeYuheng 036af0f1be helper-error (#6802)
* helper-error

* helper-error

* helper-error

* helper-error

* reset helperbot fe

---------

Co-authored-by: archer <545436317@qq.com>
2026-04-26 21:12:30 +08:00
Archer 9bbdaab0f7 fix: adapt systemTool (#6817) v4.14.15 2026-04-25 21:39:36 +08:00
Archer 32438be5ce fix: messages adapt test (#6813)
* doc

* doc

* doc
v4.14.14
2026-04-24 18:35:41 +08:00
Archer ebe68d813c perf: adapt reason text (#6812) 2026-04-24 18:20:27 +08:00
Archer 08acbfac4f perf: SSRF check (#6805)
* perf: SSRF check

* doc
2026-04-22 23:35:58 +08:00
Archer 702349607d perf: wechat channel (#6800)
* perf: wechat channel

* fix: review
2026-04-22 16:31:06 +08:00
Archer 2fe03ec0b9 fix: ts (#6794) v4.14.13 2026-04-22 09:52:41 +08:00
Archer 509b227f2d doc (#6793) 2026-04-21 23:04:26 +08:00
Archer 518627ca2c fix: getquote api auth error (#6792)
* deploy doc

* perf: completions api support null

* fix: getquote api auth error
2026-04-21 23:00:10 +08:00
Ryo 4fbf8430b7 chore: bump deploy image tags for v4.14.12 (#6789) 2026-04-21 17:25:10 +08:00
Archer e6584acfda fix: correct export config sensitive filter behavior (#6782)
* fix: correct export config sensitive filter behavior (#6778)

* docs (#6779)

---------

Co-authored-by: Ryo <whoeverimf5@gmail.com>
2026-04-20 20:18:35 +08:00
Jon 9d1cafce92 fix(sandbox): fix unauthenticated RCE via code-server (#6781) 2026-04-20 20:18:05 +08:00
Deepturn 6867c6e659 Fix docker-compose command syntax (#6777) 2026-04-20 17:55:45 +08:00
Archer 181f743901 fix: parent datasetId type;fix: v1 completions; (#6775)
* fix: parent datasetId type

* doc

* fix(chat): keep stream resume out of v1 completions (#6774)

* fix(chat): avoid duplicate v1 completion history items

* fix(chat): restore v1 completion persistence flow

* fix(chat): keep stream resume out of v1 completions

* fix(chat): revert pushChatRecords append flow

* Mobile UI (#6776)

* doc

* perf: review

* fix: review

---------

Co-authored-by: Ryo <whoeverimf5@gmail.com>
Co-authored-by: YeYuheng <57035043+YYH211@users.noreply.github.com>
v4.14.12
2026-04-20 17:45:22 +08:00
Jon d9b096844d feat: Add new PI agent features and update dependencies (#6762) 2026-04-20 16:10:13 +08:00
Jon a50a9b926c feat: Add new skill error handling and localization messages (#6761)
* feat: Add new skill error handling and localization messages

* feat(agentSkills): improve error codes and HTTP status handling
2026-04-20 15:54:27 +08:00
Archer df8f0d56d5 doc (#6772) 2026-04-20 13:51:34 +08:00
Archer 025b3dacab fix: http tool schema (#6768)
* fix: http tool schema

* perf: del dataset

* perf: review

* add test
v4.14.11
2026-04-18 20:47:39 +08:00
Archer 7506a147e6 V4.14.x (#6751)
* batch node (#6732)

* batch node

* docs: add local code quality standards and style guides for automated review

* refactor: remove enforced minimum for parallel concurrency, simplify edge handling in task runtime context, and fix loop output mapping

* feat: auto-infer and sync valueType for parallel loop input and output based on referenced array source

* fix: refactor parallelRun output type synchronization and improve sub-workflow error handling in dispatch service

* feat: enforce parallel concurrency limits and validate against workflow loop constraints

* feat: implement retry mechanism for parallel workflow tasks with usage tracking per attempt

* fix review

* perf: use function

* refactor: abstract nested node logic into useNestedNode hook and update parallelRun icon/service logic

* fix: type import

* refactor: update ParallelRunStatusEnum and i18n labels for improved status clarity

* feat: parallel run details and input/output display to chat response modal and service dispatch

* fix: config limit error

* refactor: optimize parallel run task execution, fix point accumulation, and improve error handling for sub-workflows

* fix: include totalPoints in parallel task results

* refactor: centralize nested input injection and point safety utilities for workflow dispatchers

* test: add unit tests for safePoints utility function

* refactor: update parallel workflow runtime types and clean up docstring placement in dispatch utils

* fix: include all runtime nodes in parallel execution to ensure variable reference accessibility

* refactor: update pushSubWorkflowUsage signature to use object parameter for improved consistency

---------

Co-authored-by: DigHuang <114602213+DigHuang@users.noreply.github.com>

* feat(s3): add proxy transfer mode with tokenized upload/download (#6729)

* feat(s3): add proxy transfer mode with tokenized upload/download

* wip: switch to proxy mode for upload progress

* fix: office mime types

* fix(s3): upload MIME validation, multer whitelist, API error status

- Treat AVI/MPEG mime aliases (incl. video/mp1s vs video/mpeg) as matching
- Optional allowedExtensions on multer for dataset images and localFile
- Map S3/business errors to 4xx in jsonRes where appropriate
- Align presign max size with team plan; fix dataset import size UX
- Add upload validation tests

Made-with: Cursor

* fix: show clear message when upload frequency limit is exceeded

- Reject ERROR_ENUM.uploadFileIntervalLimit from authFrequencyLimit instead of Mongo doc
- Add i18n for upload_file_interval_limit (zh-CN/en/zh-Hant)

Made-with: Cursor

* fix file token validation and upload mime checks

* fix: test

* fix(s3): treat m4a audio/mp4 and audio/x-m4a as equivalent

- Add MIME equivalence group for AAC/M4A container mismatch (mime-types vs file-type)
- Add upload validation test for minimal ftyp/M4A buffer
- Test env: keep FILE_TOKEN_KEY in vitest test.env and test/setup.ts (drop loadTestEnv file)

Made-with: Cursor

* fix(chat): 调试区文件类型与编辑态一致,并修复 accept 在 WebKit 下不更新

- ChatTest: 用 getAppChatConfig + getGuideModule 合并画布引导节点与 chatConfig
- useChatTest: 依赖 fileSelectConfig 序列化与 chatConfig,避免深层变更未触发预览更新
- useSelectFile: 用 useCallback + input key 替代 useMemoizedFn,确保 accept 变更后重建 input

Made-with: Cursor

* fix: invalid request

* feat: prompt inject (#6757)

* feat: resume chat stream (#6722)

* fix: openapi schema issue while creating openapi json

* feat: resume chat stream

* wip: chat status and read status

* feat: sync chat side bar status

* fix: allow reassignment of variables in chatTest handler

Made-with: Cursor

* feat(chat): stream resume hardening, resume modules in @fastgpt/service, stale generating cron

- Move stream resume mirror + resumeStatus into packages/service; update API imports
- chatTest: ensurePendingChatRoundItems, default responseChatItemId; zod default import for client
- useChatTest + HomeChatWindow: enableAutoResume and sync init chatGenerateStatus
- ChatContext: safe no-op defaults without provider
- Cron: clean MongoChat stuck in generating >30min; timer lock cleanStaleGeneratingChat

Made-with: Cursor

* fix(chat): address stream-resume PR review (zod/mongoose enum, legacy status, upsert, UI race)

- Zod: use z.nativeEnum(ChatGenerateStatusEnum); mongoose chatGenerateStatus enum as [0,1,2] only
- Init APIs: default missing chatGenerateStatus to done before read/unread logic
- ensurePendingChatRoundItems: unique index + upsert; rename ChatGenerateStatusEnum
- ChatBox auto-resume: guard by chatId; sidebar sync via targetChatId
- Tests: chat history/feedback APIs pass with schema fixes

Made-with: Cursor

* fix(chat): expose resume at /api/v2/chat/resume; openapi + review tidy

- Move handler from v1/stream to v2/chat/resume (pairs with v2 completions + Redis mirror)
- Update fetch, OpenAPI AIPath, comments; remove slim projects/app global chat api
- getHistoryStatus default chatGenerateStatus; team init + chatTest notes; ChatItem tweak

Made-with: Cursor

* fix(chat): fix resume JSON parse catch shadowing; drop unused resumeChatStream

Made-with: Cursor

* docs(chat): comment closed+stream mirror write path in workflow dispatch

Made-with: Cursor

* refactor: unify resumable stream mirroring

* fix: keep v1 chat completions out of resume flow

* refactor: make prepared chat rounds transactional

* fix: handle resume stream terminal errors

* fix: rerank max token

* feat(workflow): extend variable update node with Number/Boolean/Array operations (#6752)

* feat(workflow): extend variable update node with   Number/Boolean/Array ops

* feat: math operator icons and refactor variable update renderers for improved layout and consistency

* chore(workflow): clean up variable update types and restore icon   cleanup

* feat: add test

* fix:md_ascii_bug (#6755)

* md_ascii_bug

* md_ascii_bug

* md_ascii_bug

* md_ascii_bug

* md_ascii_bug

* perf: test

---------

Co-authored-by: archer <545436317@qq.com>

* doc

* del dataset

* perf: date auto coerce

* doc

* add test

* perf: channel setting

* doc

* fix: chat resume stream (#6759)

* refactor(api): move stream resume to /api/core/chat/resume

Relocate resume handler from pages/api/v2 to pages/api/core, update
OpenAPI paths, frontend streamResumeFetch URL, tests, and comments.

Made-with: Cursor

* fix: remove stray conflict markers; use z.nativeEnum for chatGenerateStatus

Made-with: Cursor

* fix: use enum instead of nativeEnum

* fix(chat): address resume review suggestions

* fix(chat): require sse when resuming generating chats

* revert(chat): keep chatitem dataId index non-unique

* fix: ts

* fix doc

* fix(chat): gate stream resume mirror by header (#6760)

* fix: remove stray conflict markers; use z.nativeEnum for chatGenerateStatus

Made-with: Cursor

* fix: use enum instead of nativeEnum

* fix(chat): address resume review suggestions

* fix(chat): require sse when resuming generating chats

* feat(chat): gate stream resume mirror by header

* refactor(chat): decouple resume mirror header parsing

* perf: dataset queue

* fix: multipleselect

* perf: workflow bug

* doc

* doc

* perf: deploy yml;fix: child nodes watch

* adapt embedding model defaultconfig

* install shell

* add mcp zod check

* feat: http tool zod schema

* Feat/batch UI (#6763)

* feat: aggregate parallel run results into task-specific virtual nodes and update UI to support i18n arguments for module names

* style: update workflow node card padding and table styling for improved layout consistency

* feat: implement parallel run workflow node with documentation and i18n support

* style(modal): WholeResponseModal UI and layout styling

* chore: improve chat resume UX (#6764)

* fix: remove stray conflict markers; use z.nativeEnum for chatGenerateStatus

Made-with: Cursor

* fix: use enum instead of nativeEnum

* fix(chat): address resume review suggestions

* fix(chat): require sse when resuming generating chats

* feat(chat): gate stream resume mirror by header

* refactor(chat): decouple resume mirror header parsing

* feat: improve stream resume fallback

* feat: block duplicate chat generation

* feat: polish resume unavailable recovery

* test: stabilize resume stream timeout

* fix: harden resume wait flow

* fix: get mcp tool raw schema

* style: update UI styling and layout for LLM request detail and response modals

* perf: http tool

* fix: test

* fix: http raw schema

* fix: test

* deploy yml

* deploy yml

---------

Co-authored-by: DigHuang <114602213+DigHuang@users.noreply.github.com>
Co-authored-by: Ryo <whoeverimf5@gmail.com>
Co-authored-by: YeYuheng <57035043+YYH211@users.noreply.github.com>
2026-04-17 23:28:43 +08:00
DigHuang ac36cad6d9 fix: switch user_main invocation to use keyword arguments for better default parameter handling (#6756)
* fix: switch user_main invocation to use keyword arguments for better default parameter handling

* fix: test

---------

Co-authored-by: archer <545436317@qq.com>
2026-04-15 23:04:37 +08:00
DigHuang c9915a6bac fix(sandbox): xlsx/avi 等不可预览文件走兜底 (#6754) 2026-04-15 17:10:36 +08:00
dependabot[bot] b35288fe5b chore(deps): bump gdown in /plugins/model/tts-cosevoice (#6747)
Bumps [gdown](https://github.com/wkentaro/gdown) from 5.1.0 to 5.2.2.
- [Release notes](https://github.com/wkentaro/gdown/releases)
- [Commits](https://github.com/wkentaro/gdown/compare/v5.1.0...v5.2.2)

---
updated-dependencies:
- dependency-name: gdown
  dependency-version: 5.2.2
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-14 20:48:11 +08:00
yanzhicong d23c72690e feat: add openGauss DataVec as vector database backend (#6666)
* feat: add openGauss DataVec as vector database backend

Add openGauss with DataVec extension as a new vector storage option alongside PGVector and Milvus. Includes vector DB controller, Docker Compose deployment configs (CN/Global), deploy generation scripts, and test templates.

* test: add opengauss vectorDB integration entry

* test: adjust vector env template for opengauss run

* fix: ts

---------

Co-authored-by: archer <545436317@qq.com>
2026-04-13 20:41:33 +08:00
DigHuang 546b2a8998 refactor: optimize sandbox editor layout and improve preview mode switching logic (#6746) 2026-04-13 17:51:08 +08:00
dependabot[bot] fbdc8e4b8b chore(deps): bump axios in /plugins/webcrawler/SPIDER (#6745)
Bumps [axios](https://github.com/axios/axios) from 1.13.5 to 1.15.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.13.5...v1.15.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.15.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-13 16:30:30 +08:00
Archer ac04d44457 Add Zod check for api (#6741)
* feat: llm request zod

* feat: apidataset zod

* feat: training zod

* permission data

* feat: dataset data zod

* add log categories

* update skill

* fix: test

* fix: training billId field

* fix: review

* fix: review

* feat: collection zod

* feat: dataset colletion schema

* fix: review

* review

* fix: ts

* feat: update team

* fix: type
2026-04-13 11:25:12 +08:00
Jon 6253f2240b build: Bundle server.ts into a single CJS file (#6736)
* build: Bundle server.ts into a single CJS file

* feat: Add providerSandboxId to sandbox metadata and updates

* feat: Add environment variable to toggle skill server entrypoint

* refactor: Remove providerStatus from sandbox schemas and logic
2026-04-13 10:55:30 +08:00
DigHuang 3df8908851 feat(sandbox): support multimedia preview and source/preview toggle in editor (#6723)
* style: re-component Editor

* style: re-component Editor

* feat: sandbox file preview support with binary detection and mime type handling

* feat: preview support for markdown, svg, and html files in sandbox editor

* feat(sandbox): support multimedia preview and source/preview toggle in editor

* fix: XSS SVG rendering with MyPhotoView

* refactor: blob URL lifecycle management, improve filename encoding in downloads

* feat: implement S3-based HTML preview for sandbox editor and add PDF support to binary file detection

* refactor: improve sandbox editor stability by adding file size validation

* feat: introduce fileService to encapsulate sandbox file operations and add unit tests

* refactor: secure HTML sandbox preview by fetching content from server and injecting CSP meta tags

* refactor: replace unified file operation API with dedicated endpoints for list, read, write, and download operations

* chore: remove packageManager field from package.json

* fix: sandbox file read error message

* refactor: improve sandbox editor UI styling, type safety, and CSP security policy

* feat: HTML preview link API and standardize sandbox request/response types

* fix: improve log view layout responsiveness by adding overflow handling and flex constraints

* perf: fix review

---------

Co-authored-by: archer <545436317@qq.com>
2026-04-10 23:02:59 +08:00
Archer 8524487034 feat: zod schema (#6740)
* feat: zod schema

move file api

feat: chat and dataset zod

* fix: review

* feat: dataset openapi

* fix: test

* update cr
2026-04-10 22:55:44 +08:00
Archer fc6953fcb3 Fix secret (#6738)
* fix: nosql inject

* fix: nosql

* fix: ts

* doc

* fix: update feedbacksession
v4.14.10.4
2026-04-10 13:58:10 +08:00
Jon 6173a74510 Refactor/unify sandbox client (#6735)
* chore: update sandbox-adapter to version 0.0.35

* refactor: unify sandbox creation through getSandboxClient

* refactor: Simplify sandbox instance handling logic

* feat: Add support for custom create config in sandbox
2026-04-09 19:26:05 +08:00
Archer cd75ee160e fix: team token auth (#6734)
* fix: team token auth

* fix: Authentication escape

* fix: cr

* Apply suggestions from code review

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* .claude doc

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-04-09 18:55:10 +08:00
Archer e3b5b3788f fix: mcp auth (#6733)
* fix: mcp auth

* doc

* doc
v4.14.10.3
2026-04-09 15:12:39 +08:00
Archer d2d48fc177 doc (#6730) 2026-04-08 18:15:20 +08:00
Archer ec9e8fdfc5 deploy doc (#6728) 2026-04-08 16:15:25 +08:00
Ryo d579559cb1 fix: openapi schema issue while creating openapi json (#6727) 2026-04-08 09:53:17 +08:00
Archer c8bbd8a660 version (#6726)
* version

* fix: default model
v4.14.10.2
2026-04-08 09:37:25 +08:00