dify/api/services
QuantumGhost 10b738a296
feat: Persist Variables for Enhanced Debugging Workflow (#20699)
This pull request introduces a feature aimed at improving the debugging experience during workflow editing. With the addition of variable persistence, the system will automatically retain the output variables from previously executed nodes. These persisted variables can then be reused when debugging subsequent nodes, eliminating the need for repetitive manual input.

By streamlining this aspect of the workflow, the feature minimizes user errors and significantly reduces debugging effort, offering a smoother and more efficient experience.

Key highlights of this change:

- Automatic persistence of output variables for executed nodes.
- Reuse of persisted variables to simplify input steps for nodes requiring them (e.g., `code`, `template`, `variable_assigner`).
- Enhanced debugging experience with reduced friction.

Closes #19735.
2025-06-24 09:05:29 +08:00
..
auth feat: Integrate WaterCrawl.dev as a new knowledge base provider (#16396) 2025-04-07 12:43:23 +08:00
enterprise Feat/webapp verified sso main (#20494) 2025-06-09 17:19:53 +09:00
entities fix keyword search top-k not initial (#21202) 2025-06-19 11:10:41 +08:00
errors feat: Persist Variables for Enhanced Debugging Workflow (#20699) 2025-06-24 09:05:29 +08:00
plugin fix(migrate/tools): Correct parameter name in tool_builtin_providers migration function (#21358) 2025-06-23 14:56:34 +08:00
recommend_app feat: mypy for all type check (#10921) 2024-12-24 18:38:51 +08:00
tools fix: Replace GenericProviderID with ToolProviderID (#21064) 2025-06-16 17:35:46 +08:00
workflow feat: mypy for all type check (#10921) 2024-12-24 18:38:51 +08:00
__init__.py chore(api/services): apply ruff reformatting (#7599) 2024-08-26 13:43:57 +08:00
account_service.py chore: replace pseudo-random generators with secrets module (#20616) 2025-06-06 10:48:28 +08:00
advanced_prompt_template_service.py feat: mypy for all type check (#10921) 2024-12-24 18:38:51 +08:00
agent_service.py chore: avoid repeated type ignore noqa by adding flask_restful and flask_login in mypy import exclusions (#19224) 2025-05-06 11:58:49 +08:00
annotation_service.py chore: all model.query replace to db.session.query (#19521) 2025-05-12 15:19:41 +08:00
api_based_extension_service.py chore(api/services): apply ruff reformatting (#7599) 2024-08-26 13:43:57 +08:00
app_dsl_service.py feat: Persist Variables for Enhanced Debugging Workflow (#20699) 2025-06-24 09:05:29 +08:00
app_generate_service.py feat: tenant app invocations limiter (#16221) 2025-03-19 17:24:02 +08:00
app_model_config_service.py chore(api/services): apply ruff reformatting (#7599) 2024-08-26 13:43:57 +08:00
app_service.py Feat/webapp verified sso main (#20494) 2025-06-09 17:19:53 +09:00
audio_service.py Fix wrong allowed extensions (#16893) 2025-03-27 15:42:12 +08:00
billing_service.py Feat/education api (#17168) 2025-04-01 02:45:34 -04:00
clear_free_plan_tenant_expired_logs.py refactor(workflow): Rename workflow node execution models (#20458) 2025-05-30 04:56:37 +08:00
code_based_extension_service.py chore(api/services): apply ruff reformatting (#7599) 2024-08-26 13:43:57 +08:00
conversation_service.py Resolves #18536 Retreive conversation variables (#18581) 2025-04-25 11:52:25 +08:00
dataset_service.py Feature:Refactor batch update document status for #21324 (#21325) 2025-06-23 09:49:13 +08:00
external_knowledge_service.py fix: replace all dataset.Model.query to db.session.query(Model) (#19509) 2025-05-12 13:52:33 +08:00
feature_service.py Feat/plugin install scope management (#19963) 2025-06-18 16:25:00 +08:00
file_service.py feat(workflow): domain model for workflow node execution (#19430) 2025-05-17 00:56:16 +08:00
hit_testing_service.py update knowledge base api (#20426) 2025-05-30 14:45:30 +08:00
knowledge_service.py feat: mypy for all type check (#10921) 2024-12-24 18:38:51 +08:00
message_service.py add endpoint of get feedbacks (#18697) 2025-05-13 10:35:14 +08:00
metadata_service.py fix: replace all dataset.Model.query to db.session.query(Model) (#19509) 2025-05-12 13:52:33 +08:00
model_load_balancing_service.py Introduce Plugins (#13836) 2025-02-17 17:05:13 +08:00
model_provider_service.py Introduce Plugins (#13836) 2025-02-17 17:05:13 +08:00
moderation_service.py feat: mypy for all type check (#10921) 2024-12-24 18:38:51 +08:00
operation_service.py chore(api/services): apply ruff reformatting (#7599) 2024-08-26 13:43:57 +08:00
ops_service.py fix: drop some type fixme (#20344) 2025-05-30 14:10:09 +08:00
recommended_app_service.py feat: mypy for all type check (#10921) 2024-12-24 18:38:51 +08:00
saved_message_service.py feat: mypy for all type check (#10921) 2024-12-24 18:38:51 +08:00
tag_service.py fix: update app tag error (#20618) 2025-06-04 13:55:00 +08:00
vector_service.py refactor: Use typed SQLAlchemy base model and fix type errors (#19980) 2025-05-21 15:38:03 +08:00
web_conversation_service.py feat: mypy for all type check (#10921) 2024-12-24 18:38:51 +08:00
webapp_auth_service.py Feat/webapp verified sso main (#20494) 2025-06-09 17:19:53 +09:00
website_service.py fix: drop some type fixme (#20344) 2025-05-30 14:10:09 +08:00
workflow_app_service.py Add Filter of Get Workflow Logs (#21172) 2025-06-19 10:10:16 +08:00
workflow_draft_variable_service.py feat: Persist Variables for Enhanced Debugging Workflow (#20699) 2025-06-24 09:05:29 +08:00
workflow_run_service.py refactor(workflow): Rename workflow node execution models (#20458) 2025-05-30 04:56:37 +08:00
workflow_service.py feat: Persist Variables for Enhanced Debugging Workflow (#20699) 2025-06-24 09:05:29 +08:00
workspace_service.py chore: avoid repeated type ignore noqa by adding flask_restful and flask_login in mypy import exclusions (#19224) 2025-05-06 11:58:49 +08:00