cbdcdcc2b9
fix: resolve test failures after segment 2 merge
...
- Backend: fix deduct_llm_quota import path in llm node
- Backend: update core.variables → core.workflow.variables imports
- Frontend: update UpdateWorkflowNodesMapPayload in tests
- Frontend: fix various test expectations to match merged code
Made-with: Cursor
2026-03-23 09:18:26 +08:00
66e67caa2b
fix: update core.variables imports to core.workflow.variables after S2 merge
...
Made-with: Cursor
2026-03-23 09:05:37 +08:00
cccff6768a
Merge commit '9c339239' into sandboxed-agent-rebase
...
Made-with: Cursor
# Conflicts:
# api/README.md
# api/controllers/console/app/workflow_draft_variable.py
# api/core/agent/cot_agent_runner.py
# api/core/agent/fc_agent_runner.py
# api/core/app/apps/advanced_chat/app_runner.py
# api/core/plugin/backwards_invocation/model.py
# api/core/prompt/advanced_prompt_transform.py
# api/core/workflow/nodes/base/node.py
# api/core/workflow/nodes/llm/llm_utils.py
# api/core/workflow/nodes/llm/node.py
# api/core/workflow/nodes/parameter_extractor/parameter_extractor_node.py
# api/core/workflow/nodes/question_classifier/question_classifier_node.py
# api/core/workflow/runtime/graph_runtime_state.py
# api/extensions/storage/base_storage.py
# api/factories/variable_factory.py
# api/pyproject.toml
# api/services/variable_truncator.py
# api/uv.lock
# web/app/account/oauth/authorize/page.tsx
# web/app/components/app/configuration/config-var/config-modal/field.tsx
# web/app/components/base/alert.tsx
# web/app/components/base/chat/chat/answer/human-input-content/executed-action.tsx
# web/app/components/base/chat/chat/answer/more.tsx
# web/app/components/base/chat/chat/answer/operation.tsx
# web/app/components/base/chat/chat/answer/workflow-process.tsx
# web/app/components/base/chat/chat/citation/index.tsx
# web/app/components/base/chat/chat/citation/popup.tsx
# web/app/components/base/chat/chat/citation/progress-tooltip.tsx
# web/app/components/base/chat/chat/citation/tooltip.tsx
# web/app/components/base/chat/chat/question.tsx
# web/app/components/base/chat/embedded-chatbot/inputs-form/index.tsx
# web/app/components/base/chat/embedded-chatbot/inputs-form/view-form-dropdown.tsx
# web/app/components/base/markdown-blocks/form.tsx
# web/app/components/base/prompt-editor/plugins/hitl-input-block/component-ui.tsx
# web/app/components/base/tag-management/panel.tsx
# web/app/components/base/tag-management/trigger.tsx
# web/app/components/header/account-setting/index.tsx
# web/app/components/header/account-setting/members-page/transfer-ownership-modal/index.tsx
# web/app/components/header/account-setting/model-provider-page/provider-added-card/index.tsx
# web/app/signin/utils/post-login-redirect.ts
# web/eslint-suppressions.json
# web/package.json
# web/pnpm-lock.yaml
2026-03-23 09:00:45 +08:00
51c418f497
fix: update remaining core.file imports missed in previous commit
...
Made-with: Cursor
2026-03-23 08:39:48 +08:00
a883b74272
fix: update core.file imports to core.workflow.file after merge
...
The File class and related modules were moved from core.file to
core.workflow.file in the sandboxed-agent branch. This commit
updates all remaining references including test mock/patch paths,
Switch component defaultValue→value changes, and account setting
tab constant updates.
Made-with: Cursor
2026-03-19 18:05:55 +08:00
89b76d6c33
Merge commit '657eeb65' into sandboxed-agent-rebase
...
Made-with: Cursor
# Conflicts:
# api/core/agent/cot_chat_agent_runner.py
# api/core/agent/fc_agent_runner.py
# api/core/memory/token_buffer_memory.py
# api/core/variables/segments.py
# api/core/workflow/file/file_manager.py
# api/core/workflow/nodes/agent/agent_node.py
# api/core/workflow/nodes/llm/llm_utils.py
# api/core/workflow/nodes/parameter_extractor/parameter_extractor_node.py
# api/core/workflow/workflow_entry.py
# api/factories/variable_factory.py
# api/pyproject.toml
# api/services/variable_truncator.py
# api/uv.lock
# web/app/components/app/app-publisher/index.tsx
# web/app/components/app/overview/settings/index.tsx
# web/app/components/apps/app-card.tsx
# web/app/components/apps/index.tsx
# web/app/components/apps/list.tsx
# web/app/components/base/chat/chat-with-history/header-in-mobile.tsx
# web/app/components/base/features/new-feature-panel/conversation-opener/modal.tsx
# web/app/components/base/features/new-feature-panel/file-upload/setting-content.tsx
# web/app/components/base/features/new-feature-panel/moderation/moderation-setting-modal.tsx
# web/app/components/base/features/new-feature-panel/text-to-speech/param-config-content.tsx
# web/app/components/base/message-log-modal/index.tsx
# web/app/components/base/switch/index.tsx
# web/app/components/base/tab-slider-plain/index.tsx
# web/app/components/explore/try-app/app-info/index.tsx
# web/app/components/plugins/plugin-detail-panel/tool-selector/components/reasoning-config-form.tsx
# web/app/components/workflow/nodes/llm/components/json-schema-config-modal/visual-editor/edit-card/required-switch.tsx
# web/app/components/workflow/nodes/llm/panel.tsx
# web/contract/router.ts
# web/eslint-suppressions.json
# web/i18n/fa-IR/workflow.json
2026-03-19 17:38:56 +08:00
2ce7919e6d
test: update unit tests for system message handling and workflow collaboration serices
2026-03-19 17:19:56 +08:00
f0c6c0159c
refactor: a lot of optimization and enhancement
2026-03-12 18:23:16 +08:00
65e89520c0
refactor: unify download item types and eliminate extension-based branching
...
Merge AssetDownloadItem, AssetInlineItem into SandboxDownloadItem with
optional 'content' field. All consumers now follow a clean pipeline:
get items → accessor.resolve_items() → AppAssetService.to_download_items() → download
Key changes:
- SandboxDownloadItem gains content: bytes | None (entities.py)
- ZipSandbox.download_items() handles both inline (base64 heredoc) and
remote (curl) via a single pipeline — no structural branching
- AssetDownloadService.build_download_script() takes unified list
- CachedContentAccessor.resolve_items() batch-enriches items from DB
(extension-agnostic, no 'if md' checks needed)
- AppAssetService.to_download_items() converts AssetItem → SandboxDownloadItem
- DraftAppAssetsInitializer, package_and_upload, export_bundle simplified
- file_upload/node.py switched to SandboxDownloadItem
- Deleted AssetDownloadItem and AssetInlineItem classes
2026-03-10 17:12:15 +08:00
6ac730ec2e
fix: ruff
2026-03-10 17:12:15 +08:00
a8074f4f4a
feat: add DB inline content cache for app asset draft files
...
Introduce app_asset_contents table as a read-through cache over S3 for
text-like asset files (e.g. .md skill documents). This eliminates N
individual S3 fetches during SkillBuilder builds — bulk_load pulls all
content in a single SQL query with S3 fallback on miss.
Key components:
- CachedContentAccessor: DB-first read / dual-write / S3 fallback
- AssetContentService: static DB operations (get, get_many, upsert, delete)
- should_mirror(): single source of truth for extension-based policy
- Alembic migration for app_asset_contents table
Modified callers:
- SkillBuilder uses accessor.bulk_load() instead of per-node S3 reads
- AppAssetService.get/update_file_content route through accessor
- delete_node cleans both DB cache and S3
- draft_app_assets_initializer uses should_mirror() instead of hardcoded .md
2026-03-10 17:12:14 +08:00
53f76a20c2
refactor: redesign skill compilation and document assembly process
2026-03-10 17:12:14 +08:00
707bf20c29
refactor: knowledge index node decouples business logic ( #32274 )
2026-03-02 17:54:33 +08:00
9ddbc1c0fb
fix: map all NodeType values to span kinds in Arize Phoenix tracing ( #32059 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Crazywoola <100913391+crazywoola@users.noreply.github.com >
2026-03-02 14:54:26 +08:00
cc127f5b62
fix: fix chat assistant response mode blocking is not work ( #32394 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-03-02 14:05:04 +08:00
248202c220
fix: remove references to non-existent Document attributes in test ( #32654 )
...
Signed-off-by: edvatar <88481784+toroleapinc@users.noreply.github.com >
Co-authored-by: Asuka Minato <i@asukaminato.eu.org >
2026-03-02 10:14:56 +08:00
691c9911c7
fix(ci): make pyrefly diff comments focus on diagnostics ( #32778 )
2026-03-02 10:11:23 +08:00
a01de98721
refactor(workflow): decouple start node external dependencies ( #32793 )
2026-03-02 02:01:41 +08:00
69b3e94630
refactor: inject workflow node memory via protocol ( #32784 )
2026-03-02 01:55:49 +08:00
ef2b5d6107
refactor(api): move llm quota deduction to app graph layer ( #32786 )
2026-03-01 23:25:36 +08:00
ffe77fecdf
revert(graph-engine): rollback stop-event unification ( #32789 )
2026-03-01 19:43:05 +08:00
b462a96fa0
fix: serialize data_source_info with json.dumps in Notion sync task ( #32747 )
2026-03-01 19:37:51 +08:00
53c62fde33
fix(api): enforce ownership check for conversation delete ( #32686 )
2026-03-01 17:53:37 +08:00
337161cdb9
feat(enterprise): auto-join newly registered accounts to the default workspace ( #32308 )
...
Co-authored-by: Yunlu Wen <yunlu.wen@dify.ai >
2026-03-01 16:53:09 +08:00
00e52796e6
refactor(workflow): remove code node helper imports ( #32759 )
...
Co-authored-by: -LAN- <laipz8200@outlook.com >
2026-03-01 16:31:45 +08:00
9e9e617e09
fix(workflow): decouple http request node external dependencies ( #32762 )
2026-03-01 15:42:57 +08:00
a7789f2c91
fix: some Qwen3 models only support streaming output. ( #32766 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-03-01 15:42:44 +08:00
20fcc95db9
test(api): add autospec to MagicMock-based patch usage ( #32752 )
2026-03-01 04:30:45 +08:00
c034eb036c
refactor: inject memory interface into LLMNode ( #32754 )
...
Signed-off-by: -LAN- <laipz8200@outlook.com >
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-03-01 04:05:18 +08:00
1f0fca89a8
refactor(workflow): move variables package into core.workflow ( #32750 )
2026-03-01 03:15:09 +08:00
962df17a15
refactor: consolidate LLM runtime model state on ModelInstance ( #32746 )
...
Signed-off-by: -LAN- <laipz8200@outlook.com >
2026-03-01 02:29:32 +08:00
a0d1816a6e
feat: add mergeable skill bundles with incremental compilation
...
Refactor skill compilation around mergeable bundle patches so dynamic skill updates no longer require full rebuilds. Keep dependency closures accurate by recomputing affected nodes from direct dependency data.
2026-02-28 14:35:29 +08:00
33242697ce
test: migrate document_service_status SQL tests to testcontainers ( #32536 )
...
Co-authored-by: KinomotoMio <200703522+KinomotoMio@users.noreply.github.com >
2026-02-28 01:50:55 +09:00
ad600f0827
test: migrate test_dataset_service SQL tests to testcontainers ( #32535 )
...
Co-authored-by: KinomotoMio <200703522+KinomotoMio@users.noreply.github.com >
2026-02-27 22:40:20 +09:00
f9196f7bea
test: migrate document_indexing_sync_task SQL tests to testcontainers ( #32534 )
...
Co-authored-by: KinomotoMio <200703522+KinomotoMio@users.noreply.github.com >
2026-02-27 21:36:32 +09:00
233e12e631
fix: correct mock return type in CodeBasedExtension test ( #32058 )
2026-02-27 20:40:51 +09:00
eccb67d5b6
refactor: decouple the business logic from datasource_node ( #32515 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-02-27 18:49:14 +08:00
149a7870bc
test: align file preview mimetype expectation ( #32688 )
2026-02-27 15:27:30 +08:00
a694533fc9
refactor(workflow): inject credential/model access ports into LLM nodes ( #32569 )
...
Signed-off-by: -LAN- <laipz8200@outlook.com >
2026-02-27 14:36:41 +08:00
eea1cf17ef
refactor(workflow): inject redis into graph engine manager ( #32622 )
2026-02-27 13:29:52 +08:00
700a4029c6
refactor(api): inject code executor from node factory ( #32618 )
2026-02-27 13:29:00 +08:00
5cb1b53b47
test: migrate dataset service update-dataset SQL tests to testcontainers ( #32533 )
...
Co-authored-by: KinomotoMio <200703522+KinomotoMio@users.noreply.github.com >
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-02-27 07:10:15 +09:00
0bf5f4df3b
test: migrate dataset_indexing_task SQL tests to testcontainers ( #32531 )
...
Co-authored-by: KinomotoMio <200703522+KinomotoMio@users.noreply.github.com >
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-02-27 06:06:42 +09:00
56759c03b7
test: migrate clean_dataset_task SQL tests to testcontainers ( #32529 )
...
Co-authored-by: KinomotoMio <200703522+KinomotoMio@users.noreply.github.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-02-26 18:59:36 +09:00
cec6d82650
fix: add None checks for tenant.id in dataset vector index tests ( #32603 )
...
Co-authored-by: User <user@example.com >
2026-02-26 17:15:45 +09:00
5d927b413f
test: migrate workflow_node_execution_service_repository SQL tests to testcontainers ( #32591 )
...
Co-authored-by: KinomotoMio <200703522+KinomotoMio@users.noreply.github.com >
2026-02-26 03:42:08 +09:00
39de931555
test: migrate restore_archived_workflow_run SQL tests to testcontainers ( #32590 )
...
Co-authored-by: KinomotoMio <200703522+KinomotoMio@users.noreply.github.com >
2026-02-26 03:24:58 +09:00
05c827606b
test: migrate test_dataset_service_get_segments SQL tests to testcontainers ( #32544 )
...
Co-authored-by: KinomotoMio <200703522+KinomotoMio@users.noreply.github.com >
2026-02-26 02:12:41 +09:00
7b1b5c2445
test: example for [Refactor/Chore] use Testcontainers to do sql test #32454 ( #32459 )
2026-02-25 23:22:20 +08:00
3c69bac2b1
test: migrate dataset service retrieval SQL tests to testcontainers ( #32528 )
...
Co-authored-by: KinomotoMio <200703522+KinomotoMio@users.noreply.github.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-02-25 18:13:07 +09:00