Commit Graph

936 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
6225975f43 Fix the ratelimit in HumanInputFormApi (vibe-kanban bcdc0260)
The file path is: api/controllers/web/human\_input\_form.py.

I have checked the implementation of RateLimiter and suspect this is a bug of the RateLimiter class.

Try to use TDD way to locate and fix this issue.
2026-01-28 08:28:08 +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
19e3d07baf Update HumanInputFormDefinition.expiration_time to use unix timestamp in seconds (vibe-kanban d44e8e03)
The type of this field should be `int`.
2026-01-27 18:31:41 +08:00
86d34214c1 refactor(api): Remove unused method 2026-01-27 18:18:51 +08:00
6cd62971c8 Modify ChatConversationApi to include pause state in status_count (vibe-kanban 4f35bf71)
If the workflow generating a message is paused, the status\_count should count it as paused.
2026-01-27 18:12:13 +08:00
d289cf4824 Modify WorkflowRunNodeExecutionListApi and keep paused records as is (vibe-kanban 05b90412)
The current implementation filters out all node executions whose status is `paused`. Please remove this logic, add unit / integration tests and execute relevant tests.
2026-01-27 18:11:24 +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
51ed03c9e0 fix(api): ensure _build_pause_event construct Pydantic models conrrectly (vibe-kanban f9ea3944) 2026-01-27 15:31:31 +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
4bfd33c6f2 fix the issue in mark_timeout (vibe-kanban db2a9506)
distinguish between the global timeout and node timeout.

For node-level timeout, the status should be updated to timeout.

for global timeout, the status should be updated to expired.

For status in (timeout, expired, SUBMITTED), the form should not be processed by the `check_and_handle_human_input_timeouts` logic.

only node-level timeout should resume the execution of workflow, global timeout should mark execution as STOPPED.

Update the documentation of HumanInputFormStatus to reflect the facts above.
2026-01-27 13:53:27 +08:00
b4eef76c14 fix: billing account deletion (#31556) 2026-01-27 11:18:23 +08:00
959da8a7ca fix: do not check DeliveryMethod.enabled flag in delivery-test endpoints (vibe-kanban e9790bdb) 2026-01-27 10:45:20 +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
9bbe63c1d8 Implement a ratelimit for Web App Form endpoints (vibe-kanban 033e0d0d)
Prevent adversaries from brute-frocing the form token.
2026-01-27 07:49:50 +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
b59713b980 Return the form expired error code in get form definition in WEbAPp Api (vibe-kanban 758765b0) 2026-01-26 16:14:02 +08:00
eba5eac3fa refactor: api/controllers/console/setup.py to ov3 (#31465)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-26 15:04:33 +08:00
19008dce13 refactor: api/controllers/console/version.py to v3 (#31463)
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-01-26 15:04:25 +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
6531267ec3 add a test to ensure ShardedBroadcastChannel Works as expected (vibe-kanban a25b7a4c)
I have fixed a bug in `_RedisShardedSubscription` in the latest commit. I need you to write an integration test case for this bug.

You should write the test in TDD way. You are free to change the git head.
2026-01-26 12:23:57 +08:00
5c4028d557 refactor: port AppModelConfig (#30919)
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-01-24 10:25:51 +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
8d45755303 feat: init fastopenapi (#30453)
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-23 21:07:52 +09: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
b3a869b91b refactor: optimize system features response payload for unauthenticated clients (#31392)
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: QuantumGhost <obelisk.reg+git@gmail.com>
2026-01-23 12:12:11 +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
6452c5a7ac refactor(db): enforce non-null message annotation questions (#27915) 2026-01-21 17:54:59 +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
073305e699 feat(api): publish a message_replace event with saved temporary answer
This ensures that the message content in frontend UI is properly
restored.
2026-01-21 15:56:32 +08:00
004df1c159 fix(api): fix connection closing issue for event subscription
The previous implementation does not close the connection once
`WORKFLOW_PAUSED` event is met, which breaks the contract with
frontend.
2026-01-21 15:29:00 +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
32dab780ba feat(api): adjust /events resumption mechanism
Avoid drain_queue and race condition caused by drain queue.

The current approach starts a background thread and buffer in-fly events
to an intermediate queue.Queue. The queue is bound and will drop events
once it's full.
2026-01-21 14:29:26 +08:00
121d301a41 refactor: use session factory instead of call db.session directly (#31198)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-21 13:43:06 +08:00
b529c78882 fix(api): send the node state snapshots while reestablish subscription 2026-01-21 09:51:34 +08:00
62ac02a568 feat: Download the uploaded files (#31068)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-19 16:48:13 +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
88780c7eb7 fix: Revert "fix: fix create app xss issue" (#31219) 2026-01-19 16:07:24 +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
72ce6ca437 feat: implement workspace permission checks for member invitations an… (#31202) 2026-01-18 19:35:50 -08:00