Commit Graph

2827 Commits

Author SHA1 Message Date
Archer c483a56373 sandbox tool inject (#6836)
* sandbox tool inject

* perf: read file prompt

* submodule
2026-04-28 18:03:38 +08:00
YeYuheng 83c02c979f fix: step-retry-error (#6829)
* step-retry-error

* error output

* doc

* lock

---------

Co-authored-by: archer <545436317@qq.com>
2026-04-28 17:10:36 +08:00
Ryo 423607ab5c chore: add skip file type check env (#6839) 2026-04-28 16:56:57 +08:00
Ryo 1cb67b38e0 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
2026-04-28 16:56:16 +08:00
Ryo a08edc422a 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
2026-04-28 16:25:48 +08:00
Archer 18a35bfcdc .codex (#6832) 2026-04-27 23:05:50 +08:00
YeYuheng ff6bb82c8e fix: file-bug (#6799)
* file-bug

* file-bug

* file-bug

* fix

* fix

* perf: test

* perf: file inject prompt

---------

Co-authored-by: archer <545436317@qq.com>
2026-04-27 21:30:03 +08:00
Archer 7e6dff2928 update shell (#6830) 2026-04-27 20:19:09 +08:00
Ryo 289da0f7b0 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
2026-04-27 17:44:12 +08:00
YeYuheng e32410b93c api_dataset_error (#6828) 2026-04-27 17:16:25 +08:00
DigHuang 354bc97271 fix(drag): mutex selection between nested parent and child nodes (#6821)
* fix(drag): mutex selection between nested parent and child nodes

* fix: mutex selection between nested parent and child nodes

* doc

---------

Co-authored-by: archer <545436317@qq.com>
2026-04-27 16:27:58 +08:00
amingbo 57b38e3ee9 fix(workflow): clarify multi-select tooltip copy (#6827) 2026-04-27 16:15:17 +08:00
Archer d80ebaa867 fix: template height (#6825) 2026-04-26 22:41:57 +08:00
Archer cc5c5ad429 Update sdk (#6824)
* update sdk

* doc
2026-04-26 21:28:27 +08:00
Archer cfad26518e update doc (#6823) 2026-04-26 21:08:47 +08:00
Archer 746f83a258 doc (#6819) 2026-04-25 21:49:22 +08:00
Archer 927707d36b doc (#6818) 2026-04-25 21:47:11 +08:00
Archer 1c8a47cff7 fix: adapt systemTool (#6817) 2026-04-25 21:37:55 +08:00
dependabot[bot] 0c39c7ba81 chore(deps-dev): bump postcss from 8.5.6 to 8.5.10 in /document (#6814)
Bumps [postcss](https://github.com/postcss/postcss) from 8.5.6 to 8.5.10.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.5.6...8.5.10)

---
updated-dependencies:
- dependency-name: postcss
  dependency-version: 8.5.10
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-25 17:28:05 +08:00
Archer 74264c5c37 perf: stop loop (#6816)
* perf: stop loop

* fix: test
2026-04-25 17:27:33 +08:00
DigHuang 306d797adc chore(workflow): deprecate loop node and add deprecation skill (#6815) 2026-04-25 16:31:15 +08:00
DigHuang b7cdb3fb86 feat: support multiple valueTypes for text input variables (#6801)
* feat: 文本输入框变量支持多 valueType

* fix: 文本输入框变量非 string valueType 的渲染映射

- formRender/utils.ts: variableInputTypeToInputType 在 text input 场景下
  按 valueType 派生,非 string 走 JSONEditor/textarea,让 Chat 表单与
  调试面板能正确渲染 object/array/any 变量
- packages/global/core/workflow/utils.ts: appData2FlowNodeIO 的
  renderTypeMap 对 text input + 非 string 使用 [JSONEditor, reference],
  保证父工作流节点输入同步跟进
- 补 appData2FlowNodeIO 的 text input valueType 分支测试

* feat(workflow): 全局变量联动清理节点引用及变量更新节点必填校验

* fix(workflow): 文本输入变量 legacy 兼容与引用存活校验

* refactor(workflow): 抽出文本输入变量 valueType 兜底 helper

* feat: adapt test for all node type

* revert(workflow): 移除全局变量引用联动清理

* feat: remove any in text input

* doc

---------

Co-authored-by: archer <545436317@qq.com>
2026-04-24 22:01:29 +08:00
DigHuang 27ebc0eeba feat(workflow): add loop run node with start/break sub-nodes (#6797)
* feat(workflow): add loop run node with start/break sub-nodes

* fix(workflow): clear loop run resume state and polish interactions

* fix(workflow): harden loop run error paths and   dedupe template registry

* fix(workflow): route loop run precheck errors through   errorText and validate break reachability

* fix(workflow): fix loop run conditional validation and outer-node ref snapshot

* refactor: consolidate shared workflow usage and feedback collection helpers into dispatch/utils.ts

* feat(workflow): aggregate loop run iterations in response tree and polish editor/UI

* fix(workflow): i18n loop run errors and surface uncaught nested errors in chat

* fix(workflow): route node card delete button through onNodesChange

* fix(chat): recurse loopRun/parallelRun details when flattening responses

* fix(workflow): loop run resume stitching and PR review polish

* fix(workflow): loop run max-length boundary and resume isEntry leak
2026-04-24 21:35:30 +08:00
Archer 81dfc589f4 fix: messages adapt test (#6813)
* doc

* doc

* doc
2026-04-24 18:34:55 +08:00
Archer 5316c3cad5 perf: adapt reason text (#6812) 2026-04-24 18:19:57 +08:00
Archer 331d44aafe Update 41411.mdx (#6811) 2026-04-24 17:13:58 +08:00
YeYuheng c1cd46789e helper-error (#6802)
* helper-error

* helper-error

* helper-error

* helper-error

* reset helperbot fe

---------

Co-authored-by: archer <545436317@qq.com>
2026-04-23 18:02:28 +08:00
Archer 38a7cb27e5 doc (#6810) 2026-04-23 17:37:39 +08:00
Octopus af081457a8 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-23 16:49:04 +08:00
Octopus 39d74852ca 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-23 16:24:35 +08:00
Archer eb9df08695 perf: SSRF check (#6805)
* perf: SSRF check

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

* fix: review
2026-04-22 16:29:40 +08:00
Archer b2cfada959 perf: agent tool code (#6798)
* perf: agent tool code

* fix: review
2026-04-22 14:36:14 +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