Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
9c8f6c7
refactor(api): remove superseded App and Agent execution paths
41tair Oct 8, 2026
c595948
[autofix.ci] apply automated fixes
autofix-ci[bot] Oct 8, 2026
d41e487
Merge updated stack base into refactor/api-76-10-13
41tair Oct 8, 2026
d36b411
Merge updated stack base into refactor/api-76-10-13
41tair Oct 8, 2026
a5545fd
Merge updated stack base into refactor/api-76-10-13
41tair Oct 8, 2026
d2ca045
refactor: retire unreachable app compatibility and unused facades
41tair Oct 9, 2026
8c4d360
Merge updated stack base into refactor/api-76-10-13
41tair Oct 9, 2026
7ba240d
fix(workflow): address review findings in #43696
41tair Oct 15, 2026
b38d164
fix(workflow): address review findings in #43696
41tair Oct 15, 2026
3e84a95
Merge updated refactor/api-76-10-12 into refactor/api-76-10-13
41tair Oct 19, 2026
1989e3d
Merge updated refactor/api-76-10-12 into refactor/api-76-10-13
41tair Oct 19, 2026
1377999
Merge updated refactor/api-76-10-12 into refactor/api-76-10-13
41tair Oct 19, 2026
373ad91
Merge updated refactor/api-76-10-12 into refactor/api-76-10-13
41tair Oct 19, 2026
990687a
Merge updated refactor/api-76-10-13 parent with Graphon 0.8 compatibi…
41tair Oct 20, 2026
68b5782
Merge workflow migration compatibility from updated parent
41tair Oct 20, 2026
3dea533
Merge execution test compatibility from updated parent
41tair Oct 20, 2026
4b3914d
Merge updated refactor/api-76-10-12 into refactor/api-76-10-13
41tair Oct 26, 2026
ea1f79e
Sync validated service activation fixes and retain intended owner del…
41tair Oct 26, 2026
bb0ddf0
Remove stale workflow imports after canonical owner retirement
41tair Oct 26, 2026
69a8c17
Sync validated refactor/api-76-10-12 fixes
41tair Oct 26, 2026
1a52077
Sync validated refactor/api-76-10-12 fixes
41tair Oct 26, 2026
456ee0a
Sync validated refactor/api-76-10-12 fixes
41tair Oct 26, 2026
482a256
Sync validated refactor/api-76-10-12 fixes
41tair Oct 26, 2026
6791727
Sync validated refactor/api-76-10-12 fixes
41tair Oct 27, 2026
8258396
Keep retired annotation runtime helpers out of management facade
41tair Oct 27, 2026
3547997
Merge updated refactor/api-76-10-12 into refactor/api-76-10-13
41tair Oct 31, 2026
79ec3d5
Sync validated refactor/api-76-10-12 fixes
41tair Oct 31, 2026
73e5e81
Sync validated refactor/api-76-10-12 fixes
41tair Oct 31, 2026
2e92758
Keep tool credential boundary on canonical manager
41tair Oct 31, 2026
4f6990a
Sync validated refactor/api-76-10-12 fixes
41tair Oct 31, 2026
484ba85
Sync validated refactor/api-76-10-12 fixes
41tair Oct 31, 2026
09dc3bf
Sync validated refactor/api-76-10-12 fixes
41tair Oct 31, 2026
6e918de
Sync validated refactor/api-76-10-12 fixes
41tair Oct 31, 2026
d272fdd
Sync validated refactor/api-76-10-12 fixes
41tair Oct 31, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 12 additions & 10 deletions .github/workflows/knowledge-fs-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -62,21 +62,22 @@ jobs:
- 'api/controllers/console/workspace/rbac/**'
- 'api/controllers/inner_api/__init__.py'
- 'api/controllers/service_api/__init__.py'
- 'api/core/agent/base_agent_runner.py'
- 'api/core/app/apps/agent_app/runtime_request_builder.py'
- 'api/services/agent/chat/base_runner.py'
- 'api/services/app/generation/adapters/agent_request_builder.py'
- 'api/core/rbac/entities.py'
- 'api/core/tools/__base/tool_runtime.py'
- 'api/core/tools/builtin_tool/_position.yaml'
- 'api/core/workflow/node_runtime.py'
- 'api/core/workflow/nodes/agent_v2/runtime_request_builder.py'
- 'api/services/workflow/execution/adapters/node_runtime.py'
- 'api/services/workflow/execution/adapters/agent_v2/runtime_request_builder.py'
- 'api/extensions/ext_celery.py'
- 'api/extensions/ext_commands.py'
- 'api/models/__init__.py'
- 'api/models/enums.py'
- 'api/models/model.py'
- 'api/repositories/workspace/workspace_repository.py'
- 'api/services/workspace/member_service.py'
- 'api/services/agent_tool_inner_service.py'
- 'api/services/agent/tool_invocation_service.py'
- 'api/services/tools/agent_invocation_gateway.py'
- 'api/services/enterprise/rbac_service.py'
- 'api/services/entities/agent_tool_inner.py'
- 'api/services/vector_space_admission_service.py'
Expand Down Expand Up @@ -211,20 +212,21 @@ jobs:
api/controllers/console/workspace/rbac/schemas.py
api/controllers/inner_api/__init__.py
api/controllers/service_api/__init__.py
api/core/agent/base_agent_runner.py
api/core/app/apps/agent_app/runtime_request_builder.py
api/services/agent/chat/base_runner.py
api/services/app/generation/adapters/agent_request_builder.py
api/core/rbac/entities.py
api/core/tools/__base/tool_runtime.py
api/core/workflow/node_runtime.py
api/core/workflow/nodes/agent_v2/runtime_request_builder.py
api/services/workflow/execution/adapters/node_runtime.py
api/services/workflow/execution/adapters/agent_v2/runtime_request_builder.py
api/extensions/ext_celery.py
api/extensions/ext_commands.py
api/models/__init__.py
api/models/enums.py
api/models/model.py
api/repositories/workspace/workspace_repository.py
api/services/workspace/member_service.py
api/services/agent_tool_inner_service.py
api/services/agent/tool_invocation_service.py
api/services/tools/agent_invocation_gateway.py
api/services/enterprise/rbac_service.py
api/services/entities/agent_tool_inner.py
api/services/vector_space_admission_service.py
Expand Down
41 changes: 3 additions & 38 deletions api/.importlinter
Original file line number Diff line number Diff line change
Expand Up @@ -32,40 +32,9 @@ layers =
# error makes this list shrink whenever a legacy dependency is removed.
unmatched_ignore_imports_alerting = error
ignore_imports =
# The legacy base generator delegates file defaults to the application owner until cleanup.
core.app.apps.base_app_generator -> services.app.file_input_defaults
core.app.app_config.easy_ui_based_app.dataset.manager -> services.knowledge.dataset_service
# Thin legacy generator modules re-export canonical service adapters during path migration.
core.app.apps.advanced_chat.app_generator -> services.workflow.execution.adapters.chatflow.app_generator
core.app.apps.advanced_chat.app_runner -> services.workflow.execution.adapters.chatflow.app_runner
core.app.apps.agent_app.app_generator -> services.agent.composer_service
core.app.apps.agent_app.app_generator -> services.agent.workspace_service
core.app.apps.agent_app.app_generator -> services.conversation_service
core.app.apps.agent_app.app_generator -> services.workflow.execution.adapters.agent_v2.dify_tools_builder
core.app.apps.agent_app.runtime_request_builder -> services.agent.prompt_mentions
core.app.apps.agent_app.runtime_request_builder -> services.workflow.execution.adapters.agent_v2.dify_tools_builder
core.app.apps.agent_app.runtime_request_builder -> services.workflow.execution.adapters.agent_v2.runtime_request_builder
# KnowledgeFS agent glue lives in services; agent runners only project its config and citations.
core.app.apps.agent_app.app_runner -> services.agent.knowledge_citations
core.app.apps.agent_app.runtime_request_builder -> services.agent.knowledge_runtime_config
core.app.apps.agent_app.session_store -> services.agent.workspace_service
core.app.apps.agent_chat.app_generator -> services.conversation_service
core.app.apps.base_app_generator -> services.workflow_draft_variable_service
core.app.apps.chat.app_generator -> services.conversation_service
core.app.apps.common.workflow_response_converter -> services.variable_truncator
core.app.apps.common.workflow_response_converter -> services.workflow.execution.adapters.workflow_entry
core.app.apps.message_based_app_generator -> services.errors.app_model_config
core.app.apps.message_based_app_generator -> services.errors.conversation
core.app.apps.message_based_app_generator -> services.errors.message
core.app.apps.pipeline.pipeline_generator -> services.workflow.execution.adapters.pipeline.pipeline_generator
core.app.apps.pipeline.pipeline_runner -> services.workflow.execution.adapters.pipeline.pipeline_runner
core.app.apps.workflow.app_generator -> services.workflow.execution.adapters.workflow.app_generator
core.app.apps.workflow.app_runner -> services.workflow.execution.adapters.workflow.app_runner
# The legacy runners share contracts until their service replacements are activated.
core.app.apps.workflow_app_runner -> services.workflow.execution.contracts
core.app.features.annotation_reply.annotation_reply -> services.annotation_service
core.app.llm.quota -> services.credit_pool_service
core.app.task_pipeline.message_cycle_manager -> services.annotation_service
core.helper.credential_utils -> services.enterprise.plugin_manager_service
core.helper.credential_utils -> services.system_feature_service
core.mcp.auth_client -> services.tools.mcp_tools_manage_service
Expand All @@ -86,11 +55,7 @@ ignore_imports =
core.rag.summary_index.summary_index -> tasks.generate_summary_index_task
core.repositories.sqlalchemy_workflow_node_execution_repository -> services.file_service
core.repositories.sqlalchemy_workflow_node_execution_repository -> services.variable_truncator
core.tools.tool_manager -> services.tools.legacy_mcp_tools_manage_service
core.tools.tool_manager -> services.tools.legacy_tools_transform_service
core.workflow.nodes.agent_v2.runtime_feature_manifest -> services.agent.knowledge_datasets
# Node construction delegates datasource dependency assembly to the composition root.
# The KnowledgeFS retrieval node is owned by services.knowledge_fs and only wired in here.
core.workflow.nodes.agent_v2.session_store -> services.agent.workspace_service
core.workflow.nodes.agent_v2.workspace_retirement_layer -> tasks.collect_agent_resources_task
libs.email_i18n -> services.entities.feature_entities
Expand Down Expand Up @@ -323,7 +288,7 @@ forbidden_modules =
name = Tool runtime credential persistence is reached only through composition
type = forbidden
source_modules =
core.tools.tool_manager
services.tools.tool_manager
forbidden_modules =
repositories
services.credentials.tool_runtime_adapters
Expand All @@ -345,8 +310,8 @@ allow_indirect_imports = True
name = Pipeline core depends on its document store port
type = forbidden
source_modules =
core.app.apps.pipeline.pipeline_generator
core.app.apps.pipeline.pipeline_runner
services.workflow.execution.adapters.pipeline.pipeline_generator
services.workflow.execution.adapters.pipeline.pipeline_runner
forbidden_modules =
repositories
allow_indirect_imports = True
Expand Down
2 changes: 2 additions & 0 deletions api/controllers/console/human_input_form.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
with_current_user,
)
from core.workflow.human_input_policy import HumanInputSurface, is_recipient_type_allowed_for_surface
from extensions.ext_application_services import application_services
from extensions.ext_database import db
from libs.external_api import error_responses
from libs.login import login_required
Expand Down Expand Up @@ -246,6 +247,7 @@ def _generate_stream_events():
tenant_id=workflow_run.tenant_id,
app_id=workflow_run.app_id,
session_maker=session_maker,
tool_providers=application_services().tools.tool_providers,
human_input_surface=HumanInputSurface.CONSOLE,
include_node_details=include_node_details,
close_on_pause=not continue_on_pause,
Expand Down
2 changes: 2 additions & 0 deletions api/controllers/openapi/workflow_events.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
from core.app.entities.task_entities import StreamEvent
from core.db.session_factory import session_factory
from core.workflow.human_input_policy import HumanInputSurface
from extensions.ext_application_services import application_services
from models.model import AppMode
from repositories.factory import DifyAPIRepositoryFactory
from services.app.generation.response import convert_to_event_stream
Expand Down Expand Up @@ -138,6 +139,7 @@ def _generate_stream_events():
tenant_id=tenant_id,
app_id=owning_app_id,
session_maker=session_maker,
tool_providers=application_services().tools.tool_providers,
human_input_surface=HumanInputSurface.OPENAPI,
close_on_pause=not continue_on_pause,
)
Expand Down
2 changes: 2 additions & 0 deletions api/controllers/service_api/app/workflow_events.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
from controllers.service_api.wraps import FetchUserArg, WhereisUserArg, validate_app_token
from core.app.entities.task_entities import StreamEvent
from core.workflow.human_input_policy import HumanInputSurface
from extensions.ext_application_services import application_services
from extensions.ext_database import db
from libs.external_api import error_responses
from models.enums import CreatorUserRole
Expand Down Expand Up @@ -150,6 +151,7 @@ def _generate_stream_events():
tenant_id=app_model.tenant_id,
app_id=app_model.id,
session_maker=session_maker,
tool_providers=application_services().tools.tool_providers,
human_input_surface=HumanInputSurface.SERVICE_API,
close_on_pause=not continue_on_pause,
)
Expand Down
2 changes: 2 additions & 0 deletions api/controllers/web/workflow_events.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
from controllers.common.schema import register_response_schema_model
from controllers.web import api, web_ns
from controllers.web.wraps import WebApiResource
from extensions.ext_application_services import application_services
from extensions.ext_database import db
from libs.external_api import error_responses
from models.enums import CreatorUserRole
Expand Down Expand Up @@ -91,6 +92,7 @@ def _generate_stream_events():
tenant_id=app_model.tenant_id,
app_id=app_model.id,
session_maker=session_maker,
tool_providers=application_services().tools.tool_providers,
close_on_pause=not continue_on_pause,
)
)
Expand Down
Loading
Loading