Commit Graph

627 Commits

Author SHA1 Message Date
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
80f55a625d fix(api): ensure action id is not empty if the form timeout 2026-01-26 11:46:24 +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
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
b529c78882 fix(api): send the node state snapshots while reestablish subscription 2026-01-21 09:51:34 +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
6bf6bf6a2a feat(api): implement test form delivery & submission logic (vibe-kanban 89cd6a22)
This ensures that user can receive & submit form while using email
delivery test.
2026-01-19 09:52:30 +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
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
99937aba2e refactor(api): Unify Human Input handling logic 2026-01-13 10:39:55 +08:00
6bcd4ad740 fix(api): Ensure is_resumption for node_started event is correctly set 2026-01-13 09:25:44 +08:00
f988619d2c feat(api): adjust model fields and cleanup form creation logic 2026-01-08 10:27:52 +08:00
2a6b6a873e fix(api): prevent node from running after pausing 2026-01-08 10:03:22 +08:00
24362ce59e feat(api): add node_title to HumanInputFormFilled events 2026-01-06 16:48:31 +08:00
184f7ab144 WIP: feat(api): always use form_token to submit human input form 2026-01-06 08:53:24 +08:00
1ad2b97169 WIP: feat(api): do not return paused node_execution records & preserve node_execution_id across pause 2026-01-04 23:38:40 +08:00
e6eb879c61 fix(api): fix human input form substitution
Fix the issues that output fields are not properly replaced for
humaninput form.
2026-01-04 16:50:24 +08:00
3ab1ad6530 WIP: feat(api): Implement HumanInputFormFilled event 2026-01-04 10:25:00 +08:00
a2e250ce0c WIP: fix(api): handle output variable replacement properly 2026-01-04 01:11:33 +08:00
6337a9a125 WIP: feat(api): add is_resumption to node_started and workflow_started events 2026-01-04 01:10:50 +08:00
37dd61558c feat(api): Implement HITL for Workflow, add is_resumption for start event 2025-12-30 16:40:08 +08:00
74b6b48f40 chore: fix: typing 2025-12-26 15:01:40 +08:00
5d0dd329f2 WIP: human input timeout 2025-12-26 12:34:46 +08:00
203a3a68af WIP: huamninput email sending 2025-12-26 12:34:46 +08:00
e6fbf3a198 WIP: unify Form And FormSubmission 2025-12-26 12:34:46 +08:00
08175ab32a feat: support variable resolution, fix linting 2025-12-26 12:34:26 +08:00
dddcf1de6c WIP: api debugging 2025-12-26 12:33:30 +08:00
f368155995 resume test 2025-12-26 12:16:01 +08:00
c0f1aeddbe WIP: resume 2025-12-26 11:52:49 +08:00
c0e15b9e1b WIP: feat(api): human input service 2025-12-26 11:48:56 +08:00
4f48b8a57d WIP: P2 2025-12-26 11:36:19 +08:00
8b914d9116 WIP 2025-12-26 10:45:23 +08:00
9000fa1a88 fix: handle list content type in Parameter Extraction node (#30070) 2025-12-25 10:19:50 +08:00
f439e081b5 fix: loop streaming by clearing stale subgraph variables (#30059) 2025-12-24 11:28:52 +08:00
6cf71366ba fix: validate API key is not empty in HTTPRequest node (#29950)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-12-21 17:04:07 +08:00
dd237f129d fix: fix json object validate (#29840) 2025-12-18 14:46:00 +08:00
bdccbb6e86 feat: add GraphEngine layer node execution hooks (#28583) 2025-12-16 13:26:31 +08:00
09982a1c95 fix: webhook node output file as file variable (#29621) 2025-12-15 19:55:59 +08:00
aac6f44562 fix: workflow end node validate error (#29473)
Co-authored-by: Novice <novice12185727@gmail.com>
2025-12-11 13:47:37 +08:00
693877e5e4 Fix: Prevent binary content from being stored in process_data for HTTP nodes (#27532)
Signed-off-by: -LAN- <laipz8200@outlook.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: crazywoola <100913391+crazywoola@users.noreply.github.com>
Co-authored-by: -LAN- <laipz8200@outlook.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-12-11 02:52:40 +08:00
b49e2646ff fix: session unbound during parent-child retrieval (#29396) 2025-12-10 14:08:55 +08:00
znn
1b9165624f adding llm_usage and error_type (#26546) 2025-12-10 09:19:13 +08:00
9affc546c6 Feat/support multimodal embedding (#29115)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-12-09 14:41:46 +08:00
c6eb18daae feat: charset_normalizer for better encoding detection than httpx's d… (#29264) 2025-12-09 10:22:02 +08:00
91667e3c1d feat(api): Implement EventManager error logging and add coverage (#29204)
- Ensure `EventManager._notify_layers` logs exceptions instead of silently swallowing them 
  so GraphEngine layer failures surface for debugging
- Introduce unit tests to assert the logger captures the runtime error when collecting events
- Enable the `S110` lint rule to catch `try-except-pass` patterns
- Add proper error logging for existing `try-except-pass` blocks.
2025-12-08 09:40:40 +08:00
02fdc5e2a4 fix: Variable Assigner node silently fails for legacy V1 data format (#28867) 2025-12-05 15:27:18 +08:00
45911ab0af feat: using charset_normalizer instead of chardet (#29022) 2025-12-05 11:19:19 +08:00