Commit Graph

5030 Commits

Author SHA1 Message Date
5bf1feb93c fix(api): fix incorrect base url for form submission page 2026-01-15 16:09:18 +08:00
683407df6f fix(api): incorrect input submission url in email 2026-01-15 13:50:14 +08:00
1114806978 fix(api): allow any form to be submitted via web app api 2026-01-15 13:37:59 +08:00
c45dd66bd7 The site field returned by HumanInputFormApi is inconsistent with the API docs (vibe-kanban e0fb38c9)
```javascript

Expected structure:

```json
{
    "site": {
        "app_id": "e9823576-d836-4f2b-b46f-bd4df1d82230",
        "end_user_id": "b7aa295d-1560-4d87-a828-77b3f39b30d0",
        "enable_site": true,
        "site": {
            "title": "wf",
            "chat_color_theme": null,
            "chat_color_theme_inverted": false,
            "icon_type": "emoji",
            "icon": "\ud83e\udd16",
            "icon_background": "#FFEAD5",
            "icon_url": null,
            "description": null,
            "copyright": null,
            "privacy_policy": null,
            "custom_disclaimer": "",
            "default_language": "en-US",
            "prompt_public": false,
            "show_workflow_steps": true,
            "use_icon_as_answer_icon": false
        },
        "model_config": null,
        "plan": "basic",
        "can_replace_logo": false,
        "custom_config": null
    },
    // ... other fields
}

```

The current implementation of HumanInputFormApi returns the following structure:

```json

{
    "site": {
        "title": "hitl-chatflow",
        "chat_color_theme": null,
        "chat_color_theme_inverted": false,
        "icon_type": "emoji",
        "icon": "🤖",
        "icon_background": "#FFEAD5",
        "icon_url": null,
        "description": null,
        "copyright": null,
        "privacy_policy": null,
        "custom_disclaimer": "",
        "default_language": "en-US",
        "prompt_public": false,
        "show_workflow_steps": true,
        "use_icon_as_answer_icon": false
    },

    // ... other fields
}

```

\`\`\`
2026-01-15 12:26:51 +08:00
d87ff9e501 Ensure that only users with Pro plan can use Email Delivery in HumanInput Node (vibe-kanban ea6739cc)
For users with sandbox plan, the email delivery is not available.

The backend logic should check the plan of the current tenant while sending email. The core check logic should be abstracted in FeatureService. The `HumanInput` node configuration should not validate the presence of `EmailDelivery`.

For enterprise deployment, the email delivery is not limited.
2026-01-15 12:03:58 +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
25cc2ab738 fix(api): missing site field in Web App Form Definition API 2026-01-14 14:25:57 +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
8e0e5d2974 feat(api): send ping while the connection is idle
To keep the connection alive and avoid being closed.
2026-01-14 10:25:13 +08:00
9c287ee0ae feat(api): adjust form submission run api
Separate `inputs` and `form_inputs` fields.
2026-01-13 11:08:31 +08:00
99937aba2e refactor(api): Unify Human Input handling logic 2026-01-13 10:39:55 +08:00
18fd308a81 fix(api): ensure display_in_ui is persisted 2026-01-13 09:30:42 +08:00
6bcd4ad740 fix(api): Ensure is_resumption for node_started event is correctly set 2026-01-13 09:25:44 +08:00
5523df6023 feat(api): adjust HumanInput single stepping endpoints 2026-01-13 08:38:38 +08:00
b3069bf154 feat(api): expose workflow_run_id in human_input extra contents 2026-01-09 00:22:59 +08:00
c1215ad9ef temp(api): disable auth for webapp api 2026-01-09 00:21:58 +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
5d4f06fa67 feat(api): implement web app api properly 2026-01-08 10:07:16 +08:00
2a6b6a873e fix(api): prevent node from running after pausing 2026-01-08 10:03:22 +08:00
3c79bea28f fix(api): fix race condition between workflow execution and SSE subscription 2026-01-07 09:45:12 +08:00
001d2c5062 fix(api): fix invoke_from for workflow is not properly set 2026-01-06 17:19:53 +08:00
24362ce59e feat(api): add node_title to HumanInputFormFilled events 2026-01-06 16:48:31 +08:00
fb01b91b06 WIP: feat(api): implement delivery testing api 2026-01-06 08:54:06 +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
77dc8a6edb test(api): fix broken tests 2026-01-04 23:23:58 +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
f4642f85b7 fix(api): expose resolved_placeholder_values in HUMAN_INPUT_REQUIRED event 2025-12-31 11:29:04 +08:00
37dd61558c feat(api): Implement HITL for Workflow, add is_resumption for start event 2025-12-30 16:40:08 +08:00
01325c543f chore(api): fix tests 2025-12-26 17:17:00 +08:00
74b6b48f40 chore: fix: typing 2025-12-26 15:01:40 +08:00
513048c397 WIP: feat(api): hitl debugging 2025-12-26 12:35:05 +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
1f64281ce5 WIP: message extra contet 2025-12-26 12:34:46 +08:00
095eaabc0d WIP: feat: ExecutionExtraContent model 2025-12-26 12:34:45 +08:00
08175ab32a feat: support variable resolution, fix linting 2025-12-26 12:34:26 +08:00
23c6afe790 chore: remove breakpoint 2025-12-26 12:34:26 +08:00
1c64b90e9b chore: enable chatflow_execute queue in docker 2025-12-26 12:34:25 +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