Commit Graph

354 Commits

Author SHA1 Message Date
76d7a44585 chore(api): reformat code 2026-01-28 16:42:57 +08:00
f3bd53bced chore(api): remove unnecessary file 2026-01-28 16:23:47 +08:00
c3b7b3ed0c Merge remote-tracking branch 'upstream/main' into feat/human-input-merge-again 2026-01-28 16:21:37 +08:00
966a87b81a fix(api): ensure node and edge states are properly persisted while pausing 2026-01-28 08:17:53 +08:00
3d414678e3 fix(graph_engine): Cannot run single iteration or loop node (#31470)
Signed-off-by: -LAN- <laipz8200@outlook.com>
Co-authored-by: Yeuoly <45712896+Yeuoly@users.noreply.github.com>
2026-01-28 01:05:59 +08:00
d76ad15fca refactor(graph_engine): move observability layer and persistence laye… (#31620) 2026-01-28 00:54:21 +08:00
86d34214c1 refactor(api): Remove unused method 2026-01-27 18:18:51 +08:00
f3eb342883 fix(api): add expiration_time to form definition and events / response (vibe-kanban 3290f924) 2026-01-27 18:10:52 +08:00
eca26a9b9b feat: Enhances OpenTelemetry node parsers (#30706)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-27 15:30:21 +08:00
7c33e5107b feat(api): implement paused status exposure for service api 2026-01-27 09:26:16 +08:00
116ec9dd04 Read the current implementation and consider the following problem (vibe-kanban 25d8b973)
Currently, the HumanInput node yields a `HumanInputFormFilledEvent` event while form is submmited. However, for form level timeout, current no event about timeout is emitted. This makes the frontend UI not updated while the events of time out are sent to the frontend.

Analysis this problem, propose a way to resolve this issue.
2026-01-27 08:46:41 +08:00
e48419937b feat: chatflow support multimodal (#31293)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-27 00:24:48 +08:00
92011d0a31 refactor: LLM plugin invoke parsing (#31499)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-26 14:59:57 +08:00
lif
55e6bca11c fix(http-request): prevent UUID truncation in JSON body (#31444)
Signed-off-by: majiayu000 <1835304752@qq.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>
2026-01-24 10:21:21 +08:00
33a830cbc9 refactor(api): rename placeholder to default_value in various parts
Previously the fields / classes are named with `placeholder`. However,
the actual purpose is to use as default values. This commit addresses
this problem by correcting names for relevant fields / classes.

- FormInputPlaceholder
- FormInput.placeholder
- HumanInputRequiredResponse.resolved_placeholder_values
- HumanInputFormDefinition.resolved_placeholder_values
- FormCreateParams.resolved_placeholder_values
- HumanInputRequired.resolved_placeholder_values
- The `resolved_placeholder_values` argument of _create_human_input_delivery_test_form
- The `resolved_placeholder_values` inside _jsonify_form_definition
2026-01-23 15:05:18 +08:00
fa92548cf6 feat: archive workflow run logs backend (#31310)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-23 13:11:56 +08:00
c575c34ca6 refactor: Move workflow node factory to app workflow (#31385)
Signed-off-by: -LAN- <laipz8200@outlook.com>
2026-01-22 18:08:21 +08:00
a112caf5ec fix: use thread local isolation the context (#31410) 2026-01-22 18:02:54 +08:00
67c7ca7da7 Do not allow create WorkflowTool from workflows containing HumanInput nodes (vibe-kanban 9e27ac53)
The HumanInput node will pause the execution of workflow if execution, while WorkflowTool works in a blocking manner. (Receiving arguments and returning results once finished). The two mode are inherently incompatible.

The goal of this change is to forbid workflows containing HumanInput node being published as WorkflowTool.

Please check the current implementation and propose a solution.
2026-01-21 16:29:49 +08:00
20be1dd819 feat(api): support variable reference and substitution in Email delivery
The EmailDeliveryConfig.body now support referencing variables generated
by precedent nodes.
2026-01-21 15:26:25 +08:00
34436fc89c feat: workflow support register context and read context (#31265)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Maries <xh001x@hotmail.com>
2026-01-21 14:31:47 +08:00
b529c78882 fix(api): send the node state snapshots while reestablish subscription 2026-01-21 09:51:34 +08:00
70f12ad310 fix(api): preserve the output generated before pausing 2026-01-19 16:43:01 +08:00
4d3a553ec9 Check the commit 6337a9a125 and revert engine support for node resumption flag (vibe-kanban 8057be68) 2026-01-19 16:23:35 +08:00
0f1db88dcb fix: fix dify-plugin-daemon error message (#31218) 2026-01-19 16:00:44 +08:00
3b225c01da refactor: refactor workflow context (#30607) 2026-01-19 12:18:51 +08:00
afdf2397f2 Change the is_resumption field in WorkflowStarted event into reason (vibe-kanban 19ac040e)
Reason should be an enumeration with only one member `resumption` currently.

Please update these part of events:

- Graph / Engine Event (GraphRunStartedEvent)
- Queue event (QueueWorkflowStartedEvent)
- SSE response event (WorkflowStartStreamResponse)

Besides, you should remove the `is_resumption` flag for `node_started` events; including:

- Queue Event (`QueueNodeStartedEvent`)
- SSE Event (`NodeStartStreamResponse`)
- Node event (`NodeRunStartedEvent`)

After finishing the changes above, adjust related tests.
You should run the affected tests and ensure they can pass. (You should use `uv run pytest` to run tests)
2026-01-18 21:00:25 +08:00
7bc7a8d0ab Length limit for UserAction fields (vibe-kanban e9ec1f07)
Add the following length limit to UserAction fields:

- limit the length of `id` to 20 chars.
- limit the length of title to 40 chars.

Add some unit tests to ensure the validation rules are enforced.
2026-01-16 18:18:37 +08:00
e50d849913 Implement debug_mode for email delivery (vibe-kanban f32190a0)
The EmailDeliveryConfig in api/core/workflow/nodes/human\_input/entities.py has a field `debug_mode`. When this field is set to `True` in `node_data`, the test run (InvokeFrom.DEBUGGER) and the delivery test should only sent test emails to the current user, instead of sending to the specified recipients.

Please implement this logic, write correspond test cases to ensure that the logic works as expected.
2026-01-15 10:21:32 +08:00
98c88cec34 refactor: delete_endpoint should be idempotent (#30954) 2026-01-15 10:10:10 +08:00
ea90746ed7 feat(api): adjust /pause-details api, add backstage form token 2026-01-15 09:43:16 +08:00
f1b2e1cfb4 feat(api): Add app_id field to HumanInputForm model
This ensures that `HumanInputForm` could be associated to a specific
application without relying on `WorkflowRun`, providing us a smoother
migration path if we want to implement test form.
2026-01-14 16:58:17 +08:00
552b65e36b fix(api): ensure is_resumption is properly propagated to SSE events
While running workflow / chatflow from "Installed Apps" / "Web App"
pages, the `node_started` SSE event is manually serialized from the
pydantic model. This causes the lack of `is_resumption` flag in SSE
events.

This PR addresses the problem by adding a `is_resumption` field to
the serialized dict.
2026-01-14 10:26:57 +08:00
206706987d refactor(variables): clarify base vs union type naming (#30634)
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-01-13 23:39:34 +09:00
fe07c810ba fix: fix instance is not bind to session (#30913) 2026-01-13 21:15:21 +08:00
837237aa6d fix: use node factory for single-step workflow nodes (#30859) 2026-01-13 10:11:18 +08:00
6bcd4ad740 fix(api): Ensure is_resumption for node_started event is correctly set 2026-01-13 09:25:44 +08:00
b63dfbf654 fix(api): defer streaming response until referenced variables are updated (#30832)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-12 16:23:18 +08:00
0711dd4159 feat: enhance start node object value check (#30732) 2026-01-09 16:13:17 +08:00
ae0a26f5b6 revert: "fix: fix assign value stand as default (#30651)" (#30717)
The original fix seems correct on its own. However, for chatflows with multiple answer nodes, the `message_replace` command only preserves the output of the last executed answer node.
2026-01-09 16:08:24 +08:00
f988619d2c feat(api): adjust model fields and cleanup form creation logic 2026-01-08 10:27:52 +08:00
de428bc9bb feat(api): add human input data to extra contents 2026-01-08 10:21:53 +08:00
dac94b573e fixup! fix(api): prevent node from running after pausing 2026-01-08 10:11:47 +08:00
2a6b6a873e fix(api): prevent node from running after pausing 2026-01-08 10:03:22 +08:00
187bfafe8b fix: fix assign value stand as default (#30651)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-07 14:54:11 +08:00
4f0fb6df2b chore: use from __future__ import annotations (#30254)
Co-authored-by: Dev <dev@Devs-MacBook-Pro-4.local>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Asuka Minato <i@asukaminato.eu.org>
Co-authored-by: crazywoola <100913391+crazywoola@users.noreply.github.com>
2026-01-06 23:57:20 +09:00
55de731f9c refactor(api): clarify published RAG pipeline invoke naming (#30644) 2026-01-06 23:48:06 +09:00
24362ce59e feat(api): add node_title to HumanInputFormFilled events 2026-01-06 16:48:31 +08:00
68d68a46a0 refactor: generate_url to support scenario to build url (#30598) 2026-01-06 14:53:38 +08:00
d6e9c3310f feat: Add conversation variable persistence layer (#30531) 2026-01-06 14:05:33 +08:00