Production-ready platform for agentic workflow development.
This report presents the forensic synthetic code analysis of langgenius/dify, a TypeScript project with 148,740 GitHub stars. SynthScan v2.0 examined 2,290,863 lines of code across 12189 source files, recording 27812 pattern matches distributed across 27 syntactic categories. The overall adjusted score of 15.0 places this repository in the Moderate AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 27812 distinct pattern matches across 27 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | dify-agent/tests/docs/test_examples.py | 37 | def test_documentation_examples(example: CodeExample, eval_example: EvalExample) -> None: | CODE |
| LOW | dify-agent/tests/docs/test_snippets.py | 13 | def test_parse_snippet_directive() -> None: | CODE |
| LOW | dify-agent/tests/docs/test_snippets.py | 22 | def test_parse_file_sections_and_inject_snippet(tmp_path: Path) -> None: | CODE |
| LOW | dify-agent/tests/local/test_packaging.py | 58 | def test_project_dependencies_split_client_and_server_requirements() -> None: | CODE |
| LOW | dify-agent/tests/local/test_packaging.py | 69 | def test_default_package_discovery_excludes_example_packages() -> None: | CODE |
| LOW | dify-agent/tests/local/test_packaging.py | 80 | def test_project_declares_console_scripts() -> None: | CODE |
| LOW | dify-agent/tests/local/test_packaging.py | 91 | def test_local_sandbox_dockerfile_installs_stub_client_and_shellctl() -> None: | CODE |
| LOW | …/tests/local/shellctl_runtime/test_shellctl_runtime.py | 172 | def test_run_sanitize_pty_touches_ready_file_before_reading(tmp_path: Path) -> None: | STRING |
| LOW⚡ | …/tests/local/shellctl_runtime/test_shellctl_runtime.py | 194 | def test_removed_sanitizer_modules_are_not_importable() -> None: | STRING |
| LOW⚡ | …/tests/local/shellctl_runtime/test_shellctl_runtime.py | 199 | def test_removed_sanitizer_helpers_are_not_shellctl_exports() -> None: | STRING |
| LOW⚡ | …/tests/local/shellctl_runtime/test_shellctl_runtime.py | 208 | def test_runner_exit_matches_service_state_for_running_job(tmp_path: Path) -> None: | STRING |
| LOW | …/tests/local/shellctl_runtime/test_shellctl_runtime.py | 243 | def test_runner_exit_is_idempotent_for_terminal_job(tmp_path: Path) -> None: | STRING |
| LOW | …/tests/local/shellctl_runtime/test_shellctl_runtime.py | 268 | def test_runner_exit_uses_explicit_busy_timeout_override(tmp_path: Path, monkeypatch: pytest.MonkeyPatch) -> None: | STRING |
| LOW | …/tests/local/shellctl_runtime/test_shellctl_runtime.py | 311 | def test_runner_exit_does_not_clobber_newer_terminal_state(tmp_path: Path, monkeypatch: pytest.MonkeyPatch) -> None: | STRING |
| LOW | …/tests/local/shellctl_runtime/test_shellctl_runtime.py | 387 | def test_python_m_shellctl_runtime_runner_exit_updates_row(tmp_path: Path) -> None: | STRING |
| LOW | …/tests/local/shellctl_runtime/test_shellctl_runtime.py | 424 | def test_python_m_shellctl_runtime_runner_exit_reports_missing_job( | STRING |
| LOW | …/tests/local/shellctl_runtime/test_shellctl_runtime.py | 455 | def test_runtime_console_scripts_are_installed() -> None: | STRING |
| LOW | …/tests/local/shellctl_runtime/test_shellctl_runtime.py | 466 | def test_runtime_modules_only_import_stdlib_or_runtime_helpers() -> None: | STRING |
| LOW⚡ | …/tests/local/shellctl_runtime/test_shellctl_runtime.py | 496 | def test_python_m_shellctl_runtime_sanitize_module_stays_lightweight() -> None: | STRING |
| LOW⚡ | …/tests/local/shellctl_runtime/test_shellctl_runtime.py | 504 | def test_python_m_shellctl_runtime_runner_exit_module_stays_lightweight() -> None: | STRING |
| LOW⚡ | …/tests/local/shellctl_runtime/test_shellctl_runtime.py | 512 | def test_python_m_shellctl_runtime_sanitize_sanitizes_output(tmp_path: Path) -> None: | STRING |
| LOW⚡ | …nt/tests/local/agenton/layers/test_schema_inference.py | 44 | def test_layer_infers_config_and_runtime_state_from_generics() -> None: | CODE |
| LOW⚡ | …nt/tests/local/agenton/layers/test_schema_inference.py | 54 | def test_layer_uses_empty_schema_defaults_when_omitted() -> None: | CODE |
| LOW⚡ | …nt/tests/local/agenton/layers/test_schema_inference.py | 62 | def test_invalid_declared_schema_type_is_rejected_clearly() -> None: | CODE |
| LOW | …nt/tests/local/agenton/layers/test_schema_inference.py | 84 | def test_layer_provider_uses_inferred_schema_types() -> None: | CODE |
| LOW | …fy-agent/tests/local/agenton/layers/test_layer_deps.py | 13 | def test_layer_deps_rejects_mismatched_runtime_layer_class() -> None: | CODE |
| LOW | dify-agent/tests/local/agenton/compositor/test_enter.py | 49 | def test_same_compositor_enters_multiple_times_with_fresh_layers_and_snapshot_resume() -> None: | CODE |
| LOW | dify-agent/tests/local/agenton/compositor/test_enter.py | 86 | def test_concurrent_enters_do_not_share_layer_instances() -> None: | CODE |
| LOW | dify-agent/tests/local/agenton/compositor/test_enter.py | 129 | def test_custom_factory_is_called_each_enter_with_typed_config() -> None: | CODE |
| LOW | dify-agent/tests/local/agenton/compositor/test_enter.py | 156 | def test_provider_rejects_reused_layer_instance_before_hooks_run() -> None: | CODE |
| LOW | dify-agent/tests/local/agenton/compositor/test_enter.py | 180 | def test_configs_are_validated_by_node_name_before_factory_call() -> None: | CODE |
| LOW | dify-agent/tests/local/agenton/compositor/test_enter.py | 200 | def test_all_node_configs_are_validated_before_any_factory_runs() -> None: | CODE |
| LOW | dify-agent/tests/local/agenton/compositor/test_enter.py | 221 | def test_existing_config_model_instances_are_revalidated_before_factory_runs() -> None: | CODE |
| LOW | dify-agent/tests/local/agenton/compositor/test_enter.py | 240 | def test_existing_snapshot_model_instances_are_revalidated_before_factory_runs() -> None: | CODE |
| LOW | dify-agent/tests/local/agenton/compositor/test_enter.py | 288 | def test_snapshot_hydrates_runtime_state_and_exit_snapshots_from_layer_self() -> None: | CODE |
| LOW | dify-agent/tests/local/agenton/compositor/test_enter.py | 291 | async def create_suspend_resume_delete() -> tuple[CompositorSessionSnapshot, CompositorSessionSnapshot]: | CODE |
| LOW | dify-agent/tests/local/agenton/compositor/test_enter.py | 339 | def test_run_snapshot_rejects_active_layers() -> None: | CODE |
| LOW | dify-agent/tests/local/agenton/compositor/test_enter.py | 350 | def test_active_snapshot_input_is_rejected_before_factories_run() -> None: | CODE |
| LOW | dify-agent/tests/local/agenton/compositor/test_enter.py | 372 | def test_closed_snapshot_enter_is_rejected_before_hooks_run() -> None: | CODE |
| LOW | dify-agent/tests/local/agenton/compositor/test_enter.py | 591 | def test_resource_context_wraps_hooks_and_body_in_dependency_order() -> None: | CODE |
| LOW | dify-agent/tests/local/agenton/compositor/test_enter.py | 664 | def test_resource_context_wraps_resume_and_suspend_with_fresh_resource_scope() -> None: | CODE |
| LOW | dify-agent/tests/local/agenton/compositor/test_enter.py | 738 | def test_resource_context_exits_when_run_body_raises() -> None: | CODE |
| LOW | dify-agent/tests/local/agenton/compositor/test_enter.py | 785 | def test_resource_context_exits_when_run_body_is_cancelled() -> None: | CODE |
| LOW | dify-agent/tests/local/agenton/compositor/test_enter.py | 835 | def test_dependency_resource_contexts_exit_when_child_create_fails() -> None: | CODE |
| LOW | dify-agent/tests/local/agenton/compositor/test_enter.py | 875 | def test_dependency_resource_contexts_exit_when_child_suspend_fails() -> None: | CODE |
| LOW | dify-agent/tests/local/agenton/compositor/test_enter.py | 922 | def test_resource_context_exits_when_create_hook_raises() -> None: | CODE |
| LOW | dify-agent/tests/local/agenton/compositor/test_enter.py | 947 | def test_resource_context_exits_when_delete_hook_raises() -> None: | CODE |
| LOW | …ent/tests/local/agenton/compositor/test_direct_deps.py | 52 | def test_direct_deps_access_uses_explicit_dependency_rename() -> None: | CODE |
| LOW | …ent/tests/local/agenton/compositor/test_direct_deps.py | 70 | def test_direct_deps_access_uses_explicit_same_name_dependency() -> None: | CODE |
| LOW | …ent/tests/local/agenton/compositor/test_direct_deps.py | 88 | def test_optional_missing_dependency_is_bound_to_none() -> None: | CODE |
| LOW⚡ | …ent/tests/local/agenton/compositor/test_direct_deps.py | 99 | def test_missing_required_dependency_is_rejected_before_hooks() -> None: | CODE |
| LOW⚡ | …ent/tests/local/agenton/compositor/test_direct_deps.py | 106 | def test_unknown_dependency_mapping_is_rejected_for_compositor_construction() -> None: | CODE |
| LOW⚡ | …ent/tests/local/agenton/compositor/test_direct_deps.py | 111 | def test_undefined_dependency_target_is_rejected_for_compositor_construction() -> None: | CODE |
| LOW⚡ | …ent/tests/local/agenton/compositor/test_direct_deps.py | 116 | def test_dependency_target_must_precede_dependent_layer_in_graph_order() -> None: | CODE |
| LOW⚡ | …ent/tests/local/agenton/compositor/test_direct_deps.py | 126 | def test_duplicate_layer_node_name_is_rejected() -> None: | CODE |
| LOW | …ests/local/agenton/compositor/test_builder_snapshot.py | 52 | def test_layer_provider_from_layer_type_uses_declared_schema_and_type_id() -> None: | CODE |
| LOW | …ests/local/agenton/compositor/test_builder_snapshot.py | 68 | def test_compositor_from_config_uses_providers_and_enter_configs_by_node_name() -> None: | CODE |
| LOW | …ests/local/agenton/compositor/test_builder_snapshot.py | 87 | def test_layer_node_config_has_no_runtime_state_or_layer_config() -> None: | CODE |
| LOW | …ests/local/agenton/compositor/test_builder_snapshot.py | 105 | def test_node_providers_override_type_id_providers_for_serializable_graphs() -> None: | CODE |
| LOW | …ests/local/agenton/compositor/test_builder_snapshot.py | 123 | def test_from_config_rejects_missing_duplicate_and_unknown_providers() -> None: | CODE |
| 19901 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | docker/docker-compose.yaml | 1 | # ================================================================== | COMMENT |
| MEDIUM⚡ | docker/docker-compose.yaml | 5 | # ================================================================== | COMMENT |
| MEDIUM | docker/dify-env-sync.py | 3 | # ================================================================ | COMMENT |
| MEDIUM | docker/dify-env-sync.py | 12 | # ================================================================ | COMMENT |
| MEDIUM | docker/dify-env-sync.sh | 3 | # ================================================================ | COMMENT |
| MEDIUM | docker/dify-env-sync.sh | 12 | # ================================================================ | COMMENT |
| MEDIUM⚡ | …src/dify_agent/adapters/shell/enterprise/enterprise.py | 31 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …src/dify_agent/adapters/shell/enterprise/enterprise.py | 33 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …src/dify_agent/adapters/shell/enterprise/enterprise.py | 86 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …src/dify_agent/adapters/shell/enterprise/enterprise.py | 88 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | sdks/nodejs-client/scripts/publish.sh | 4 | # ================================ | COMMENT |
| MEDIUM⚡ | sdks/nodejs-client/scripts/publish.sh | 17 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | sdks/nodejs-client/scripts/publish.sh | 19 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | sdks/nodejs-client/scripts/publish.sh | 126 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | sdks/nodejs-client/scripts/publish.sh | 128 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | sdks/nodejs-client/scripts/publish.sh | 163 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | sdks/nodejs-client/scripts/publish.sh | 165 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | sdks/nodejs-client/scripts/publish.sh | 186 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | sdks/nodejs-client/scripts/publish.sh | 188 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | sdks/nodejs-client/scripts/publish.sh | 194 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | sdks/nodejs-client/scripts/publish.sh | 196 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | sdks/nodejs-client/scripts/publish.sh | 206 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | sdks/nodejs-client/scripts/publish.sh | 208 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | sdks/nodejs-client/scripts/publish.sh | 228 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | sdks/nodejs-client/scripts/publish.sh | 230 | # ======================================================================== | COMMENT |
| MEDIUM | sdks/nodejs-client/scripts/publish.sh | 30 | # ============================================================================ | COMMENT |
| MEDIUM | sdks/nodejs-client/scripts/publish.sh | 32 | # ============================================================================ | COMMENT |
| MEDIUM | sdks/nodejs-client/scripts/publish.sh | 82 | # ============================================================================ | COMMENT |
| MEDIUM | sdks/nodejs-client/scripts/publish.sh | 84 | # ============================================================================ | COMMENT |
| MEDIUM | sdks/nodejs-client/scripts/publish.sh | 113 | # ============================================================================ | COMMENT |
| MEDIUM | sdks/nodejs-client/scripts/publish.sh | 115 | # ============================================================================ | COMMENT |
| MEDIUM | …ase/date-and-time-picker/utils/__tests__/dayjs.spec.ts | 19 | // ── cloneTime ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ase/date-and-time-picker/utils/__tests__/dayjs.spec.ts | 31 | // ── getDaysInMonth ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ase/date-and-time-picker/utils/__tests__/dayjs.spec.ts | 59 | // ── getHourIn12Hour ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ase/date-and-time-picker/utils/__tests__/dayjs.spec.ts | 77 | // ── getDateWithTimezone ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ase/date-and-time-picker/utils/__tests__/dayjs.spec.ts | 103 | // ── isDayjsObject ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ase/date-and-time-picker/utils/__tests__/dayjs.spec.ts | 115 | // ── toDayjs ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ase/date-and-time-picker/utils/__tests__/dayjs.spec.ts | 258 | // ── formatDateForOutput ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ase/date-and-time-picker/utils/__tests__/dayjs.spec.ts | 276 | // ── convertTimezoneToOffsetStr ───────────────────────────────────────────── | COMMENT |
| MEDIUM | …app/components/base/chat/chat/__tests__/index.spec.tsx | 9 | // ─── Why each mock exists ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …app/components/base/chat/chat/__tests__/index.spec.tsx | 25 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …app/components/base/chat/chat/__tests__/index.spec.tsx | 107 | // ─── ResizeObserver capture ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …app/components/base/chat/chat/__tests__/index.spec.tsx | 120 | // ─── Factories ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …app/components/base/chat/chat/__tests__/index.spec.tsx | 144 | // ─── Suite ──────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ents/base/audio-gallery/__tests__/AudioPlayer.spec.tsx | 11 | // ─── Helpers ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ents/base/audio-gallery/__tests__/AudioPlayer.spec.tsx | 58 | // ─── Setup / teardown ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ents/base/audio-gallery/__tests__/AudioPlayer.spec.tsx | 79 | // ─── Rendering ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ents/base/audio-gallery/__tests__/AudioPlayer.spec.tsx | 105 | // ─── Play / Pause toggle ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ents/base/audio-gallery/__tests__/AudioPlayer.spec.tsx | 179 | // ─── Audio events ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ents/base/audio-gallery/__tests__/AudioPlayer.spec.tsx | 230 | // ─── Waveform generation ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ents/base/audio-gallery/__tests__/AudioPlayer.spec.tsx | 336 | // ─── Canvas interactions ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ents/base/audio-gallery/__tests__/AudioPlayer.spec.tsx | 430 | // ─── Missing coverage tests ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …lugins/component-picker-block/__tests__/index.spec.tsx | 72 | // ─── Typed factories (no `any` / `never`) ──────────────────────────────────── | COMMENT |
| MEDIUM | …lugins/component-picker-block/__tests__/index.spec.tsx | 115 | // ─── Test harness ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …lugins/component-picker-block/__tests__/index.spec.tsx | 286 | // ─── Tests ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …lugins/component-picker-block/__tests__/hooks.spec.tsx | 26 | // ─── Helpers ───────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …lugins/component-picker-block/__tests__/hooks.spec.tsx | 50 | // ─── Factory helpers (typed, no `any` / `never`) ───────────────────────────── | COMMENT |
| MEDIUM⚡ | …lugins/component-picker-block/__tests__/hooks.spec.tsx | 101 | // ─── Shared mock render-prop arguments ─────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …lugins/component-picker-block/__tests__/hooks.spec.tsx | 110 | // ═══════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM⚡ | …lugins/component-picker-block/__tests__/hooks.spec.tsx | 112 | // ═══════════════════════════════════════════════════════════════════════════════ | COMMENT |
| 1370 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | …nents/snippets/components/hooks/use-snippet-publish.ts | 33 | consoleQuery.workspaces.current.customizedSnippets.bySnippetId.get.key({ | CODE |
| CRITICAL | …/app/components/snippets/hooks/use-nodes-sync-draft.ts | 119 | const response = await consoleClient.snippets.bySnippetId.workflows.draft.post({ | CODE |
| CRITICAL | web/app/components/snippets/hooks/use-create-snippet.ts | 51 | await consoleClient.snippets.bySnippetId.workflows.draft.post({ | CODE |
| CRITICAL | web/app/components/plugins/hooks.ts | 122 | consoleQuery.workspaces.current.plugin.list.latestVersions.post.queryOptions({ | CODE |
| CRITICAL | …ow-app/components/workflow-header/features-trigger.tsx | 187 | queryKey: consoleQuery.agent.byAgentId.referencingWorkflows.get.queryOptions({ | CODE |
| CRITICAL | …ts/workflow-header/__tests__/features-trigger.spec.tsx | 579 | queryKey: consoleQuery.agent.byAgentId.referencingWorkflows.get.queryOptions({ | CODE |
| CRITICAL | …ts/workflow-header/__tests__/features-trigger.spec.tsx | 622 | queryKey: consoleQuery.agent.byAgentId.referencingWorkflows.get.queryOptions({ | CODE |
| CRITICAL | …omponents/workflow/nodes/agent-v2/agent-soul-config.ts | 89 | consoleQuery.apps.byAppId.workflows.draft.nodes.byNodeId.agentComposer.put.mutationOptions(), | CODE |
| CRITICAL | …omponents/workflow/nodes/agent-v2/agent-soul-config.ts | 125 | consoleQuery.apps.byAppId.workflows.draft.nodes.byNodeId.agentComposer.get.queryKey({ | CODE |
| CRITICAL | web/app/components/workflow/nodes/agent-v2/panel.tsx | 154 | consoleQuery.apps.byAppId.workflows.draft.nodes.byNodeId.agentComposer.copyFromRoster.post.mutationOptions(), | CODE |
| CRITICAL | web/app/components/workflow/nodes/agent-v2/hooks.ts | 41 | consoleQuery.apps.byAppId.workflows.draft.nodes.byNodeId.agentComposer.get.queryOptions({ | CODE |
| CRITICAL | web/app/components/workflow/nodes/agent-v2/hooks.ts | 61 | consoleQuery.apps.byAppId.workflows.draft.nodes.byNodeId.agentComposer.put.mutationOptions(), | CODE |
| CRITICAL | web/app/components/workflow/nodes/agent-v2/hooks.ts | 103 | consoleQuery.apps.byAppId.workflows.draft.nodes.byNodeId.agentComposer.get.queryKey({ | CODE |
| CRITICAL | …gent-v2/components/agent-orchestrate-panel-content.tsx | 90 | consoleQuery.agent.byAgentId.composer.get.queryOptions({ | CODE |
| CRITICAL | …gent-v2/components/agent-orchestrate-panel-content.tsx | 338 | consoleQuery.agent.byAgentId.debugConversation.refresh.post.mutationOptions({ | CODE |
| CRITICAL | …gent-v2/components/agent-orchestrate-panel-content.tsx | 360 | consoleQuery.apps.byAppId.workflows.draft.nodes.byNodeId.agentComposer.get.queryKey({ | CODE |
| CRITICAL⚡ | …gent-v2/components/agent-orchestrate-panel-content.tsx | 431 | const buildDraftQueryOptions = consoleQuery.agent.byAgentId.buildDraft.get.queryOptions({ | CODE |
| CRITICAL⚡ | …gent-v2/components/agent-orchestrate-panel-content.tsx | 439 | consoleQuery.agent.byAgentId.buildDraft.put.mutationOptions(), | CODE |
| CRITICAL⚡ | …gent-v2/components/agent-orchestrate-panel-content.tsx | 442 | consoleQuery.agent.byAgentId.buildDraft.delete.mutationOptions(), | CODE |
| CRITICAL | …t-v2/components/save-inline-agent-to-roster-dialog.tsx | 61 | consoleQuery.apps.byAppId.workflows.draft.nodes.byNodeId.agentComposer.saveToRoster.post.mutationOptions(), | CODE |
| CRITICAL | …app/components/workflow/nodes/knowledge-base/panel.tsx | 45 | consoleQuery.workspaces.current.modelProviders.byProvider.models.get.queryOptions({ | CODE |
| CRITICAL | …/app/components/workflow/nodes/knowledge-base/node.tsx | 76 | consoleQuery.workspaces.current.modelProviders.byProvider.models.get.queryOptions({ | CODE |
| CRITICAL | web/app/components/workflow/comment/mention-input.tsx | 169 | const response = await consoleClient.apps.byAppId.workflow.comments.mentionUsers.get({ | CODE |
| CRITICAL | …workflow/block-selector/snippets/use-insert-snippet.ts | 288 | consoleQuery.snippets.bySnippetId.workflows.publish.get.queryOptions({ | CODE |
| CRITICAL | web/app/components/workflow/hooks/use-checklist.ts | 176 | consoleQuery.workspaces.current.modelProviders.byProvider.models.get.queryOptions({ | CODE |
| CRITICAL | web/app/components/workflow/hooks/use-checklist.ts | 529 | consoleQuery.workspaces.current.modelProviders.byProvider.models.get.queryOptions({ | CODE |
| CRITICAL | …/app/components/workflow/hooks/use-workflow-comment.ts | 92 | const detail = await consoleClient.apps.byAppId.workflow.comments.byCommentId.get({ | CODE |
| CRITICAL | …/app/components/workflow/hooks/use-workflow-comment.ts | 111 | const response = await consoleClient.apps.byAppId.workflow.comments.get({ | CODE |
| CRITICAL | …/app/components/workflow/hooks/use-workflow-comment.ts | 155 | const newComment = await consoleClient.apps.byAppId.workflow.comments.post({ | CODE |
| CRITICAL | …/app/components/workflow/hooks/use-workflow-comment.ts | 297 | const detail = await consoleClient.apps.byAppId.workflow.comments.byCommentId.get({ | CODE |
| CRITICAL | …/app/components/workflow/hooks/use-workflow-comment.ts | 334 | await consoleClient.apps.byAppId.workflow.comments.byCommentId.resolve.post({ | CODE |
| CRITICAL | …/app/components/workflow/hooks/use-workflow-comment.ts | 357 | await consoleClient.apps.byAppId.workflow.comments.byCommentId.delete({ | CODE |
| CRITICAL | …/app/components/workflow/hooks/use-workflow-comment.ts | 436 | await consoleClient.apps.byAppId.workflow.comments.byCommentId.put({ | CODE |
| CRITICAL | …/app/components/workflow/hooks/use-workflow-comment.ts | 481 | await consoleClient.apps.byAppId.workflow.comments.byCommentId.put({ | CODE |
| CRITICAL | …/app/components/workflow/hooks/use-workflow-comment.ts | 510 | await consoleClient.apps.byAppId.workflow.comments.byCommentId.replies.post({ | CODE |
| CRITICAL | …/app/components/workflow/hooks/use-workflow-comment.ts | 541 | await consoleClient.apps.byAppId.workflow.comments.byCommentId.replies.byReplyId.put({ | CODE |
| CRITICAL | …/app/components/workflow/hooks/use-workflow-comment.ts | 565 | await consoleClient.apps.byAppId.workflow.comments.byCommentId.replies.byReplyId.delete({ | CODE |
| CRITICAL | …app/components/apps/hooks/use-workflow-online-users.ts | 35 | consoleQuery.apps.workflows.onlineUsers.post.queryOptions({ | CODE |
| CRITICAL | …ts/header/account-setting/model-provider-page/hooks.ts | 282 | consoleQuery.workspaces.current.modelProviders.byProvider.models.get.queryKey({ | CODE |
| CRITICAL | …nt-setting/model-provider-page/__tests__/hooks.spec.ts | 1050 | consoleQuery.workspaces.current.modelProviders.byProvider.models.get.queryKey({ | CODE |
| CRITICAL | …nt-setting/model-provider-page/__tests__/hooks.spec.ts | 1089 | consoleQuery.workspaces.current.modelProviders.byProvider.models.get.queryKey({ | CODE |
| CRITICAL | …nt-setting/model-provider-page/__tests__/hooks.spec.ts | 1125 | consoleQuery.workspaces.current.modelProviders.byProvider.models.get.queryKey({ | CODE |
| CRITICAL | …nt-setting/model-provider-page/__tests__/hooks.spec.ts | 1153 | consoleQuery.workspaces.current.modelProviders.byProvider.models.get.queryKey({ | CODE |
| CRITICAL | …ting/model-provider-page/provider-added-card/index.tsx | 66 | consoleQuery.workspaces.current.modelProviders.byProvider.models.get.queryOptions({ | CODE |
| CRITICAL | …-provider-page/provider-added-card/model-list-item.tsx | 49 | consoleQuery.workspaces.current.modelProviders.byProvider.models.get.queryKey({ | CODE |
| CRITICAL⚡ | …ge/provider-added-card/use-change-provider-priority.ts | 16 | consoleQuery.workspaces.current.modelProviders.byProvider.models.get.queryKey({ | CODE |
| CRITICAL⚡ | …ge/provider-added-card/use-change-provider-priority.ts | 24 | consoleQuery.workspaces.current.modelProviders.byProvider.preferredProviderType.post.mutationOptions( | CODE |
| CRITICAL | …er/account-setting/members-page/invite-modal/index.tsx | 66 | consoleQuery.workspaces.current.members.inviteEmail.post.mutationOptions({ | CODE |
| CRITICAL | …t-detail/access/components/service-api-access-card.tsx | 20 | const apiAccessQueryOptions = consoleQuery.agent.byAgentId.apiAccess.get.queryOptions({ | CODE |
| CRITICAL | …t-detail/access/components/service-api-access-card.tsx | 30 | consoleQuery.agent.byAgentId.apiEnable.post.mutationOptions({ | CODE |
| CRITICAL | …agent-detail/access/components/web-app-access-card.tsx | 70 | consoleQuery.apps.byAppId.siteEnable.post.mutationOptions({ | CODE |
| CRITICAL | …agent-detail/access/components/web-app-access-card.tsx | 90 | consoleQuery.apps.byAppId.site.accessTokenReset.post.mutationOptions({ | CODE |
| CRITICAL | …agent-detail/access/components/web-app-access-card.tsx | 114 | const updateSiteMutation = useMutation(consoleQuery.apps.byAppId.site.post.mutationOptions()) | CODE |
| CRITICAL | …agent-detail/access/components/agent-api-key-modal.tsx | 44 | const apiKeysQueryOptions = consoleQuery.agent.byAgentId.apiKeys.get.queryOptions({ | CODE |
| CRITICAL | …agent-detail/access/components/agent-api-key-modal.tsx | 56 | consoleQuery.agent.byAgentId.apiKeys.post.mutationOptions({ | CODE |
| CRITICAL | …agent-detail/access/components/agent-api-key-modal.tsx | 61 | queryKey: consoleQuery.agent.byAgentId.apiAccess.get.queryKey({ | CODE |
| CRITICAL | …agent-detail/access/components/agent-api-key-modal.tsx | 77 | consoleQuery.agent.byAgentId.apiKeys.byApiKeyId.delete.mutationOptions({ | CODE |
| CRITICAL | …agent-detail/access/components/agent-api-key-modal.tsx | 82 | queryKey: consoleQuery.agent.byAgentId.apiAccess.get.queryKey({ | CODE |
| CRITICAL | …detail/access/components/workflow-references-table.tsx | 30 | consoleQuery.agent.byAgentId.referencingWorkflows.get.queryOptions({ | CODE |
| CRITICAL | …nt-detail/configure/use-agent-configure-build-draft.ts | 163 | const buildDraftQueryOptions = consoleQuery.agent.byAgentId.buildDraft.get.queryOptions({ | CODE |
| 147 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | dify-agent/tests/docs/test_examples.py | 1 | CODE | |
| LOW | dify-agent/tests/docs/test_snippets.py | 1 | CODE | |
| LOW | dify-agent/tests/local/test_packaging.py | 1 | CODE | |
| LOW | …/tests/local/shellctl_runtime/test_shellctl_runtime.py | 1 | CODE | |
| LOW | …ent/tests/local/dify_agent/test_client_safe_exports.py | 1 | CODE | |
| LOW | …agent/tests/local/dify_agent/test_import_boundaries.py | 1 | CODE | |
| LOW | …ent/tests/local/dify_agent/layers/config/test_layer.py | 3 | CODE | |
| LOW | …gent/tests/local/dify_agent/layers/shell/test_layer.py | 1 | CODE | |
| LOW | …gent/tests/local/dify_agent/layers/drive/test_layer.py | 3 | CODE | |
| LOW | …dify_agent/agent_stub/server/test_agent_stub_config.py | 1 | CODE | |
| LOW | …ests/local/dify_agent/agent_stub/server/test_router.py | 1 | CODE | |
| LOW | …s/local/dify_agent/agent_stub/server/test_grpc_bind.py | 1 | CODE | |
| LOW | …ocal/dify_agent/agent_stub/server/test_grpc_service.py | 1 | CODE | |
| LOW | …/dify_agent/agent_stub/server/test_agent_stub_files.py | 1 | CODE | |
| LOW | …al/dify_agent/agent_stub/server/test_agent_stub_app.py | 1 | CODE | |
| LOW | …/dify_agent/agent_stub/server/test_agent_stub_drive.py | 1 | CODE | |
| LOW | …dify_agent/agent_stub/server/test_agent_stub_routes.py | 1 | CODE | |
| LOW | …t/tests/local/dify_agent/agent_stub/server/test_cli.py | 1 | CODE | |
| LOW | …dify_agent/agent_stub/server/tokens/test_agent_stub.py | 1 | CODE | |
| LOW | …_agent/agent_stub/protocol/test_agent_stub_protocol.py | 1 | CODE | |
| LOW | …ify_agent/agent_stub/protocol/test_grpc_conversions.py | 1 | CODE | |
| LOW | …nt/tests/local/dify_agent/agent_stub/cli/test_drive.py | 1 | CODE | |
| LOW | …nt/tests/local/dify_agent/agent_stub/cli/test_files.py | 1 | CODE | |
| LOW | …t/tests/local/dify_agent/agent_stub/cli/test_config.py | 1 | CODE | |
| LOW | …ent/tests/local/dify_agent/agent_stub/cli/test_main.py | 1 | CODE | |
| LOW | …dify_agent/agent_stub/client/test_agent_stub_client.py | 1 | CODE | |
| LOW | …ent/agent_stub/client/test_agent_stub_config_client.py | 1 | CODE | |
| LOW | …nt/tests/local/dify_agent/server/test_observability.py | 1 | CODE | |
| LOW | dify-agent/tests/local/dify_agent/server/test_app.py | 1 | CODE | |
| LOW | …nt/tests/local/dify_agent/server/test_sandbox_files.py | 1 | CODE | |
| LOW | …y-agent/tests/local/dify_agent/server/test_settings.py | 1 | CODE | |
| LOW | …ests/local/dify_agent/protocol/test_sandbox_locator.py | 1 | CODE | |
| LOW | …t/tests/local/dify_agent/adapters/shell/test_config.py | 3 | CODE | |
| LOW | …tests/local/dify_agent/adapters/shell/test_shellctl.py | 3 | CODE | |
| LOW | dify-agent/tests/local/dify_agent/client/test_client.py | 1 | CODE | |
| LOW | …agent/tests/local/examples/test_dify_agent_examples.py | 1 | CODE | |
| LOW | …fy-agent/tests/local/shellctl/test_shellctl_service.py | 1 | CODE | |
| LOW | dify-agent/tests/local/shellctl/test_shellctl_cli.py | 1 | CODE | |
| LOW | dify-agent/docs/.hooks/snippets.py | 1 | CODE | |
| LOW | dify-agent/docs/.hooks/main.py | 1 | CODE | |
| LOW | …/examples/agenton/agenton_examples/session_snapshot.py | 3 | CODE | |
| LOW | dify-agent/examples/agenton/agenton_examples/basics.py | 3 | CODE | |
| LOW | …xamples/agenton/agenton_examples/pydantic_ai_bridge.py | 10 | CODE | |
| LOW | …fy-agent/examples/agenton/agenton_examples/__main__.py | 3 | CODE | |
| LOW | …ify_agent/dify_agent_examples/run_pydantic_ai_agent.py | 17 | CODE | |
| LOW | …nt/examples/dify_agent/dify_agent_examples/__main__.py | 3 | CODE | |
| LOW | dify-agent/src/shellctl_runtime/paths.py | 3 | CODE | |
| LOW | dify-agent/src/shellctl_runtime/runner_exit.py | 10 | CODE | |
| LOW | dify-agent/src/shellctl_runtime/sanitize.py | 8 | CODE | |
| LOW | dify-agent/src/agenton/layers/__init__.py | 8 | CODE | |
| LOW | dify-agent/src/agenton/layers/__init__.py | 8 | CODE | |
| LOW | dify-agent/src/agenton/layers/__init__.py | 8 | CODE | |
| LOW | dify-agent/src/agenton/layers/__init__.py | 8 | CODE | |
| LOW | dify-agent/src/agenton/layers/__init__.py | 8 | CODE | |
| LOW | dify-agent/src/agenton/layers/__init__.py | 8 | CODE | |
| LOW | dify-agent/src/agenton/layers/__init__.py | 8 | CODE | |
| LOW | dify-agent/src/agenton/layers/__init__.py | 8 | CODE | |
| LOW | dify-agent/src/agenton/layers/__init__.py | 8 | CODE | |
| LOW | dify-agent/src/agenton/layers/__init__.py | 19 | CODE | |
| LOW | dify-agent/src/agenton/layers/__init__.py | 19 | CODE | |
| 1672 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …fy-agent/examples/agenton/agenton_examples/__main__.py | 36 | print(f'Error: destination path "{destination}" already exists', file=sys.stderr) | CODE |
| MEDIUM | …nt/examples/dify_agent/dify_agent_examples/__main__.py | 37 | print(f'Error: destination path "{destination}" already exists', file=sys.stderr) | CODE |
| LOW | …agent/src/dify_agent/layers/dify_plugin/tool_client.py | 124 | except Exception: | CODE |
| LOW | dify-agent/src/dify_agent/layers/shell/layer.py | 421 | except Exception as exc: | CODE |
| LOW | dify-agent/src/dify_agent/layers/shell/layer.py | 447 | except Exception as exc: | CODE |
| LOW | dify-agent/src/dify_agent/layers/shell/layer.py | 473 | except Exception as exc: | CODE |
| LOW | dify-agent/src/dify_agent/layers/shell/layer.py | 499 | except Exception: | CODE |
| LOW | dify-agent/src/dify_agent/layers/shell/layer.py | 517 | except Exception as exc: | CODE |
| LOW | dify-agent/src/dify_agent/runtime/runner.py | 198 | except Exception as exc: | CODE |
| LOW | dify-agent/src/dify_agent/runtime/run_scheduler.py | 137 | except Exception: | CODE |
| LOW⚡ | dify-agent/src/dify_agent/runtime/run_scheduler.py | 157 | except Exception: | CODE |
| LOW⚡ | …src/dify_agent/adapters/shell/enterprise/enterprise.py | 114 | except Exception as exc: | CODE |
| LOW⚡ | …src/dify_agent/adapters/shell/enterprise/enterprise.py | 118 | except Exception as exc: | CODE |
| LOW⚡ | …src/dify_agent/adapters/shell/enterprise/enterprise.py | 124 | except Exception as exc: | CODE |
| LOW⚡ | …src/dify_agent/adapters/shell/enterprise/enterprise.py | 134 | except Exception as exc: | CODE |
| MEDIUM | …src/dify_agent/adapters/shell/enterprise/enterprise.py | 111 | def suspend(self) -> None: | CODE |
| MEDIUM | …src/dify_agent/adapters/shell/enterprise/enterprise.py | 121 | def delete(self) -> None: | CODE |
| LOW | dify-agent/src/shellctl/server/service.py | 275 | except Exception as exc: | CODE |
| LOW | scripts/stress-test/run_locust_stress_test.sh | 228 | except Exception as e: | CODE |
| LOW | scripts/stress-test/setup_all.py | 90 | except Exception as e: | CODE |
| LOW | scripts/stress-test/setup_all.py | 109 | except Exception as e: | CODE |
| LOW | scripts/stress-test/cleanup.py | 83 | except Exception as e: | CODE |
| LOW | scripts/stress-test/sse_benchmark.py | 508 | except Exception as e: | CODE |
| LOW | scripts/stress-test/sse_benchmark.py | 533 | except Exception as e: | CODE |
| LOW | scripts/stress-test/setup/install_openai_plugin.py | 166 | except Exception as e: | CODE |
| LOW | scripts/stress-test/setup/login_admin.py | 105 | except Exception as e: | CODE |
| LOW | scripts/stress-test/setup/import_workflow_app.py | 131 | except Exception as e: | CODE |
| LOW | scripts/stress-test/setup/configure_openai_plugin.py | 97 | except Exception as e: | CODE |
| LOW | scripts/stress-test/setup/create_api_key.py | 114 | except Exception as e: | CODE |
| LOW | scripts/stress-test/setup/publish_workflow.py | 105 | except Exception as e: | CODE |
| LOW | scripts/stress-test/setup/setup_admin.py | 75 | except Exception as e: | CODE |
| LOW | scripts/stress-test/setup/run_workflow.py | 150 | except Exception as e: | CODE |
| LOW | api/app_factory.py | 92 | except Exception: | CODE |
| LOW | api/app_factory.py | 115 | except Exception: | CODE |
| MEDIUM | api/app_factory.py | 101 | def add_trace_headers(response): | CODE |
| LOW⚡ | api/clients/agent_backend/client.py | 83 | except Exception as exc: | CODE |
| LOW⚡ | api/clients/agent_backend/client.py | 90 | except Exception as exc: | CODE |
| LOW⚡ | api/clients/agent_backend/client.py | 97 | except Exception as exc: | CODE |
| LOW⚡ | api/clients/agent_backend/client.py | 104 | except Exception as exc: | CODE |
| LOW | api/schedule/update_api_token_last_used_task.py | 104 | except Exception: | CODE |
| LOW | api/schedule/mail_clean_document_notify_task.py | 100 | except Exception: | CODE |
| LOW | api/schedule/update_tidb_serverless_status_task.py | 32 | except Exception as e: | CODE |
| LOW | api/schedule/update_tidb_serverless_status_task.py | 53 | except Exception as e: | CODE |
| LOW | api/schedule/clean_workflow_runlogs_precise.py | 98 | except Exception: | CODE |
| LOW | api/schedule/clean_workflow_runlogs_precise.py | 166 | except Exception: | CODE |
| LOW | api/schedule/queue_monitor_task.py | 75 | except Exception: | CODE |
| LOW | api/schedule/queue_monitor_task.py | 78 | except Exception: | CODE |
| LOW | api/schedule/check_upgradable_plugin_task.py | 59 | except Exception as e: | CODE |
| LOW | api/schedule/clean_workflow_runs_task.py | 68 | except Exception as e: | CODE |
| LOW | api/schedule/create_tidb_serverless_task.py | 33 | except Exception as e: | CODE |
| LOW | api/schedule/create_tidb_serverless_task.py | 66 | except Exception as e: | CODE |
| MEDIUM | api/schedule/create_tidb_serverless_task.py | 41 | def create_clusters(batch_size): | CODE |
| LOW | api/schedule/clean_unused_datasets_task.py | 151 | except Exception as e: | CODE |
| LOW | api/schedule/clean_messages.py | 69 | except Exception as e: | CODE |
| LOW⚡ | api/tasks/regenerate_summary_index_task.py | 157 | except Exception as e: | CODE |
| LOW⚡ | api/tasks/regenerate_summary_index_task.py | 169 | except Exception as e: | CODE |
| LOW | api/tasks/regenerate_summary_index_task.py | 266 | except Exception as e: | CODE |
| LOW | api/tasks/regenerate_summary_index_task.py | 282 | except Exception as e: | CODE |
| LOW | api/tasks/regenerate_summary_index_task.py | 313 | except Exception: | CODE |
| LOW | api/tasks/mail_register_task.py | 46 | except Exception: | CODE |
| 1179 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | api/tasks/workflow_draft_var_tasks.py | 0 | celery tasks for asynchronous workflow node execution storage operations. these tasks provide asynchronous storage capab | STRING |
| HIGH | api/tasks/workflow_execution_tasks.py | 0 | celery tasks for asynchronous workflow node execution storage operations. these tasks provide asynchronous storage capab | STRING |
| HIGH | api/tasks/workflow_node_execution_tasks.py | 0 | celery tasks for asynchronous workflow node execution storage operations. these tasks provide asynchronous storage capab | STRING |
| HIGH | api/core/provider_manager.py | 0 | extract secret input form variables. :param credential_form_schemas: :return: | STRING |
| HIGH | api/core/entities/provider_configuration.py | 0 | extract secret input form variables. :param credential_form_schemas: :return: | STRING |
| HIGH | api/services/datasource_provider_service.py | 0 | extract secret input form variables. :param credential_form_schemas: :return: | STRING |
| HIGH | api/core/datasource/entities/datasource_entities.py | 0 | get value of given mode. :param value: mode value :return: mode | STRING |
| HIGH | api/core/tools/entities/tool_entities.py | 0 | get value of given mode. :param value: mode value :return: mode | STRING |
| HIGH | api/core/app/app_config/entities.py | 0 | get value of given mode. :param value: mode value :return: mode | STRING |
| HIGH | api/core/entities/provider_entities.py | 0 | get value of given mode. :param value: mode value :return: mode | STRING |
| HIGH | api/models/model.py | 0 | get value of given mode. :param value: mode value :return: mode | STRING |
| HIGH | api/models/workflow.py | 0 | get value of given mode. :param value: mode value :return: mode | STRING |
| HIGH | api/core/tools/workflow_as_tool/tool.py | 0 | fork a new tool with metadata :return: the new tool | STRING |
| HIGH | api/core/tools/__base/tool.py | 0 | fork a new tool with metadata :return: the new tool | STRING |
| HIGH | api/core/tools/custom_tool/tool.py | 0 | fork a new tool with metadata :return: the new tool | STRING |
| HIGH | api/core/tools/builtin_tool/tool.py | 0 | fork a new tool with metadata :return: the new tool | STRING |
| HIGH | api/core/tools/plugin_tool/provider.py | 0 | returns the type of the provider :return: type of the provider | STRING |
| HIGH | api/core/tools/__base/tool_provider.py | 0 | returns the type of the provider :return: type of the provider | STRING |
| HIGH | api/core/tools/mcp_tool/provider.py | 0 | returns the type of the provider :return: type of the provider | STRING |
| HIGH | api/core/tools/builtin_tool/provider.py | 0 | returns the type of the provider :return: type of the provider | STRING |
| HIGH | …/task_pipeline/easy_ui_based_generate_task_pipeline.py | 0 | advancedchatappgeneratetaskpipeline is a class that generate stream output and state management for application. | STRING |
| HIGH | api/core/app/apps/workflow/generate_task_pipeline.py | 0 | advancedchatappgeneratetaskpipeline is a class that generate stream output and state management for application. | STRING |
| HIGH | …/core/app/apps/advanced_chat/generate_task_pipeline.py | 0 | advancedchatappgeneratetaskpipeline is a class that generate stream output and state management for application. | STRING |
| HIGH | …e/app/app_config/features/opening_statement/manager.py | 0 | convert model config to model config :param config: model config args | STRING |
| HIGH | …core/app/app_config/features/speech_to_text/manager.py | 0 | convert model config to model config :param config: model config args | STRING |
| HIGH | …g/features/suggested_questions_after_answer/manager.py | 0 | convert model config to model config :param config: model config args | STRING |
| HIGH | …core/app/app_config/features/more_like_this/manager.py | 0 | convert model config to model config :param config: model config args | STRING |
| HIGH | …core/app/app_config/features/text_to_speech/manager.py | 0 | convert model config to model config :param config: model config args | STRING |
| HIGH | …p/app_config/easy_ui_based_app/model_config/manager.py | 0 | convert model config to model config :param config: model config args | STRING |
| HIGH | …re/app/app_config/easy_ui_based_app/dataset/manager.py | 0 | convert model config to model config :param config: model config args | STRING |
| HIGH | …core/app/app_config/easy_ui_based_app/agent/manager.py | 0 | convert model config to model config :param config: model config args | STRING |
| HIGH | …/app/app_config/easy_ui_based_app/variables/manager.py | 0 | convert model config to model config :param config: model config args | STRING |
| HIGH | api/core/app/apps/base_app_queue_manager.py | 0 | publish event to queue :param event: :param pub_from: :return: | STRING |
| HIGH | api/core/app/apps/message_based_app_queue_manager.py | 0 | publish event to queue :param event: :param pub_from: :return: | STRING |
| HIGH | api/core/app/apps/pipeline/pipeline_queue_manager.py | 0 | publish event to queue :param event: :param pub_from: :return: | STRING |
| HIGH | api/core/app/apps/workflow/app_queue_manager.py | 0 | publish event to queue :param event: :param pub_from: :return: | STRING |
| HIGH | api/core/app/apps/pipeline/pipeline_generator.py | 0 | generate app response. :param app_model: app :param workflow: workflow :param node_id: the node id :param user: account | STRING |
| HIGH | api/core/app/apps/workflow/app_generator.py | 0 | generate app response. :param app_model: app :param workflow: workflow :param node_id: the node id :param user: account | STRING |
| HIGH | api/core/app/apps/advanced_chat/app_generator.py | 0 | generate app response. :param app_model: app :param workflow: workflow :param node_id: the node id :param user: account | STRING |
| HIGH | …/core/app/apps/pipeline/generate_response_converter.py | 0 | convert blocking full response. :param blocking_response: blocking response :return: | STRING |
| HIGH | api/core/app/apps/chat/generate_response_converter.py | 0 | convert blocking full response. :param blocking_response: blocking response :return: | STRING |
| HIGH | …ore/app/apps/completion/generate_response_converter.py | 0 | convert blocking full response. :param blocking_response: blocking response :return: | STRING |
| HIGH | …/core/app/apps/workflow/generate_response_converter.py | 0 | convert blocking full response. :param blocking_response: blocking response :return: | STRING |
| HIGH | …/app/apps/advanced_chat/generate_response_converter.py | 0 | convert blocking full response. :param blocking_response: blocking response :return: | STRING |
| HIGH | …ore/app/apps/agent_chat/generate_response_converter.py | 0 | convert blocking full response. :param blocking_response: blocking response :return: | STRING |
| HIGH | …/core/app/apps/pipeline/generate_response_converter.py | 0 | convert blocking simple response. :param blocking_response: blocking response :return: | STRING |
| HIGH | api/core/app/apps/chat/generate_response_converter.py | 0 | convert blocking simple response. :param blocking_response: blocking response :return: | STRING |
| HIGH | …ore/app/apps/completion/generate_response_converter.py | 0 | convert blocking simple response. :param blocking_response: blocking response :return: | STRING |
| HIGH | …/core/app/apps/workflow/generate_response_converter.py | 0 | convert blocking simple response. :param blocking_response: blocking response :return: | STRING |
| HIGH | …/app/apps/advanced_chat/generate_response_converter.py | 0 | convert blocking simple response. :param blocking_response: blocking response :return: | STRING |
| HIGH | …ore/app/apps/agent_chat/generate_response_converter.py | 0 | convert blocking simple response. :param blocking_response: blocking response :return: | STRING |
| HIGH | …/core/app/apps/pipeline/generate_response_converter.py | 0 | convert stream full response. :param stream_response: stream response :return: | STRING |
| HIGH | api/core/app/apps/chat/generate_response_converter.py | 0 | convert stream full response. :param stream_response: stream response :return: | STRING |
| HIGH | …ore/app/apps/completion/generate_response_converter.py | 0 | convert stream full response. :param stream_response: stream response :return: | STRING |
| HIGH | …/core/app/apps/workflow/generate_response_converter.py | 0 | convert stream full response. :param stream_response: stream response :return: | STRING |
| HIGH | …/app/apps/advanced_chat/generate_response_converter.py | 0 | convert stream full response. :param stream_response: stream response :return: | STRING |
| HIGH | …ore/app/apps/agent_chat/generate_response_converter.py | 0 | convert stream full response. :param stream_response: stream response :return: | STRING |
| HIGH | …/core/app/apps/pipeline/generate_response_converter.py | 0 | convert stream simple response. :param stream_response: stream response :return: | STRING |
| HIGH | api/core/app/apps/chat/generate_response_converter.py | 0 | convert stream simple response. :param stream_response: stream response :return: | STRING |
| HIGH | …ore/app/apps/completion/generate_response_converter.py | 0 | convert stream simple response. :param stream_response: stream response :return: | STRING |
| 131 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | scripts/stress-test/common/config_helper.py | 312 | # Create a default instance for convenience | COMMENT |
| MEDIUM | api/celery_healthcheck.py | 1 | # This module provides a lightweight Celery instance for use in Docker health checks. | COMMENT |
| MEDIUM | api/core/app/apps/pipeline/pipeline_runner.py | 119 | # Create a variable pool. | COMMENT |
| MEDIUM | api/core/app/apps/workflow/app_runner.py | 112 | # Create a variable pool. | COMMENT |
| MEDIUM | api/core/app/apps/advanced_chat/app_runner.py | 184 | # Initialize conversation variables | COMMENT |
| MEDIUM | api/core/app/apps/advanced_chat/app_runner.py | 187 | # Create a variable pool. | COMMENT |
| MEDIUM | api/core/plugin/utils/chunk_merger.py | 78 | # Create the appropriate message type based on the response type | COMMENT |
| MEDIUM | …positories/sqlalchemy_workflow_execution_repository.py | 199 | # Create a new database session | COMMENT |
| MEDIUM | api/core/mcp/auth_client.py | 90 | # Create a temporary session only for auth retry | COMMENT |
| MEDIUM | api/core/rag/index_processor/index_processor_base.py | 192 | # Create a mapping from ID to UploadFile for quick lookup | COMMENT |
| MEDIUM | api/core/rag/index_processor/index_processor_base.py | 195 | # Create a Document for each occurrence (including duplicates) | COMMENT |
| MEDIUM | …index_processor/processor/paragraph_index_processor.py | 150 | # This method is called for actual deletion scenarios (e.g., when segment is deleted). | COMMENT |
| MEDIUM | …ex_processor/processor/parent_child_index_processor.py | 156 | # This method is called for actual deletion scenarios (e.g., when segment is deleted). | COMMENT |
| MEDIUM | …re/rag/index_processor/processor/qa_index_processor.py | 159 | # This method is called for actual deletion scenarios (e.g., when segment is deleted). | COMMENT |
| MEDIUM | api/core/schemas/resolver.py | 268 | # Create a copy and remove metadata fields | COMMENT |
| MEDIUM | api/core/workflow/workflow_entry.py | 435 | # Create a minimal graph for single node execution | COMMENT |
| MEDIUM | api/core/ops/ops_trace_manager.py | 383 | # Create a new instance of the config class with the new configuration | COMMENT |
| MEDIUM | api/constants/recommended_apps.json | 468 | "export_data": "app:\n icon: \"\\U0001F916\"\n icon_background: '#FFEAD5'\n mode: advanced-chat\n name: | CODE |
| MEDIUM | …ix/src/dify_trace_arize_phoenix/arize_phoenix_trace.py | 233 | # Create a named tracer instead of setting the global provider | COMMENT |
| MEDIUM | …iders/vdb/vdb-relyt/src/dify_vdb_relyt/relyt_vector.py | 121 | # Define the table schema | STRING |
| MEDIUM | …iders/vdb/vdb-relyt/src/dify_vdb_relyt/relyt_vector.py | 178 | # Define the table schema | COMMENT |
| MEDIUM | …iders/vdb/vdb-relyt/src/dify_vdb_relyt/relyt_vector.py | 265 | # Define the base query | COMMENT |
| MEDIUM | …/vdb-weaviate/tests/unit_tests/test_weaviate_vector.py | 690 | # Create a document with doc_type metadata (as produced by multimodal indexing) | COMMENT |
| MEDIUM | …rs/vdb/vdb-milvus/src/dify_vdb_milvus/milvus_vector.py | 343 | # Create the text field, enable_analyzer will be set True to support milvus automatically | COMMENT |
| MEDIUM | …rs/vdb/vdb-milvus/src/dify_vdb_milvus/milvus_vector.py | 358 | # Create the primary key field | COMMENT |
| MEDIUM | …rs/vdb/vdb-milvus/src/dify_vdb_milvus/milvus_vector.py | 360 | # Create the vector field, supports binary or float vectors | COMMENT |
| MEDIUM | …rs/vdb/vdb-milvus/src/dify_vdb_milvus/milvus_vector.py | 391 | # Create the collection | COMMENT |
| MEDIUM | …unit_tests/tasks/test_workflow_node_execution_tasks.py | 191 | # # Create a mock task instance with proper retry behavior | COMMENT |
| MEDIUM | …unit_tests/tasks/test_workflow_node_execution_tasks.py | 472 | # # Create a mock task instance with proper retry behavior | COMMENT |
| MEDIUM | api/tests/unit_tests/tasks/test_mail_send_task.py | 1382 | # Create a large HTML body (simulating a newsletter) | COMMENT |
| MEDIUM⚡ | api/tests/unit_tests/tools/test_api_tool.py | 28 | # Create a mock tool entity | COMMENT |
| MEDIUM⚡ | api/tests/unit_tests/tools/test_api_tool.py | 37 | # Create a mock API bundle | COMMENT |
| MEDIUM⚡ | api/tests/unit_tests/tools/test_api_tool.py | 47 | # Create a mock runtime | COMMENT |
| MEDIUM⚡ | api/tests/unit_tests/tools/test_api_tool.py | 51 | # Create the ApiTool instance | COMMENT |
| MEDIUM⚡ | api/tests/unit_tests/core/test_file.py | 23 | # Create a feature dict that mimics the old structure with image config | COMMENT |
| MEDIUM⚡ | api/tests/unit_tests/core/test_file.py | 30 | # Create a workflow instance with the features | COMMENT |
| MEDIUM | …sts/unit_tests/core/datasource/test_notion_provider.py | 1585 | # Create a custom query filter | COMMENT |
| MEDIUM | …tests/unit_tests/core/datasource/test_website_crawl.py | 1538 | # Create a crawl message with results | COMMENT |
| MEDIUM | …it_tests/core/datasource/entities/test_api_entities.py | 63 | # Create a parameter that should be converted | COMMENT |
| MEDIUM | …tests/unit_tests/core/tools/test_tool_label_manager.py | 15 | # Create a mock class for testing abstract/base classes | COMMENT |
| MEDIUM | …sts/core/app/features/rate_limiting/test_rate_limit.py | 410 | # Create a generator-like object without close method | COMMENT |
| MEDIUM | …/core/app/apps/chat/test_base_app_runner_multimodal.py | 146 | # Create a small test image (1x1 PNG) | COMMENT |
| MEDIUM | …/common/test_workflow_response_converter_truncation.py | 421 | # Create a minimal WorkflowUIBasedAppConfig for testing | COMMENT |
| MEDIUM | …/common/test_workflow_response_converter_truncation.py | 520 | # Create a test event with large data | COMMENT |
| MEDIUM | …/common/test_workflow_response_converter_truncation.py | 561 | # Create a test event with large data | COMMENT |
| MEDIUM | …/common/test_workflow_response_converter_truncation.py | 601 | # Create a test event with large data | COMMENT |
| MEDIUM | …sts/unit_tests/core/memory/test_token_buffer_memory.py | 996 | # Create a mock message with a SYSTEM role | COMMENT |
| MEDIUM | api/tests/unit_tests/core/plugin/test_plugin_runtime.py | 537 | # Create a proper nested JSON structure for PluginInvokeError | COMMENT |
| MEDIUM | …tests/unit_tests/core/plugin/utils/test_http_parser.py | 14 | # Create a simple GET request | COMMENT |
| MEDIUM | …tests/unit_tests/core/plugin/utils/test_http_parser.py | 32 | # Create a GET request with query parameters | COMMENT |
| MEDIUM | …tests/unit_tests/core/plugin/utils/test_http_parser.py | 49 | # Create a POST request with body | COMMENT |
| MEDIUM | …tests/unit_tests/core/plugin/utils/test_http_parser.py | 74 | # Create a request with custom headers | COMMENT |
| MEDIUM | …ositories/test_celery_workflow_execution_repository.py | 27 | # Create a real sessionmaker with in-memory SQLite for testing | COMMENT |
| MEDIUM | …ositories/test_celery_workflow_execution_repository.py | 112 | # Create a mock Account with no tenant_id | COMMENT |
| MEDIUM | api/tests/unit_tests/core/repositories/test_factory.py | 116 | # Create a mock repository class that raises exception on instantiation | COMMENT |
| MEDIUM | api/tests/unit_tests/core/repositories/test_factory.py | 193 | # Create a mock repository class that raises exception on instantiation | COMMENT |
| MEDIUM | …ries/test_workflow_node_execution_conflict_handling.py | 27 | # Create a mock user with tenant_id | COMMENT |
| MEDIUM | …ries/test_workflow_node_execution_conflict_handling.py | 45 | # Create a mock session | COMMENT |
| MEDIUM | …ries/test_workflow_node_execution_conflict_handling.py | 93 | # Create a mock session | COMMENT |
| MEDIUM | …ries/test_workflow_node_execution_conflict_handling.py | 129 | # Create a mock session | COMMENT |
| 185 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …t/tests/local/dify_agent/runtime/test_run_scheduler.py | 81 | async def update_status(self, run_id: str, status: RunStatus, error: str | None = None) -> None: | CODE |
| LOW | dify-agent/src/shellctl_runtime/paths.py | 16 | __all__ = ["DEFAULT_SQLITE_BUSY_TIMEOUT_MS", "db_path_from_state_dir"] | CODE |
| LOW | dify-agent/src/shellctl_runtime/runner_exit.py | 152 | __all__ = [ | CODE |
| LOW | dify-agent/src/shellctl_runtime/sanitize.py | 179 | __all__ = [ | CODE |
| LOW | dify-agent/src/agenton/layers/__init__.py | 39 | __all__ = [ | CODE |
| LOW | dify-agent/src/agenton/layers/types.py | 166 | __all__ = [ | CODE |
| LOW | dify-agent/src/agenton/compositor/run.py | 230 | def _set_layer_exit_intent(self, name: str, intent: ExitIntent) -> None: | CODE |
| LOW | dify-agent/src/agenton/compositor/__init__.py | 41 | __all__ = [ | CODE |
| LOW | dify-agent/src/dify_agent/plugin_daemon_transport.py | 67 | __all__ = [ | CODE |
| LOW | dify-agent/src/dify_agent/__init__.py | 24 | __all__ = ["Client"] | CODE |
| LOW | dify-agent/src/dify_agent/layers/dify_plugin/configs.py | 164 | __all__ = [ | CODE |
| LOW | …agent/src/dify_agent/layers/dify_plugin/tools_layer.py | 681 | __all__ = ["DifyPluginToolsDeps", "DifyPluginToolsLayer"] | CODE |
| LOW | …fy-agent/src/dify_agent/layers/dify_plugin/__init__.py | 22 | __all__ = [ | CODE |
| LOW | …y-agent/src/dify_agent/layers/dify_plugin/llm_layer.py | 60 | __all__ = ["DifyPluginLLMDeps", "DifyPluginLLMLayer"] | CODE |
| LOW | …agent/src/dify_agent/layers/dify_plugin/tool_client.py | 327 | __all__ = [ | CODE |
| LOW | dify-agent/src/dify_agent/layers/config/configs.py | 82 | __all__ = [ | CODE |
| LOW | dify-agent/src/dify_agent/layers/config/__init__.py | 12 | __all__ = [ | CODE |
| LOW | dify-agent/src/dify_agent/layers/config/layer.py | 268 | __all__ = ["DifyConfigLayer", "DifyConfigLayerError"] | CODE |
| LOW | dify-agent/src/dify_agent/layers/shell/output_text.py | 55 | __all__ = ["normalized_output_text", "utf8_prefix", "utf8_suffix"] | CODE |
| LOW | dify-agent/src/dify_agent/layers/shell/configs.py | 99 | __all__ = [ | CODE |
| LOW | dify-agent/src/dify_agent/layers/shell/__init__.py | 17 | __all__ = [ | CODE |
| LOW | dify-agent/src/dify_agent/layers/shell/layer.py | 66 | logger = logging.getLogger(__name__) | CODE |
| LOW | dify-agent/src/dify_agent/layers/shell/layer.py | 1001 | __all__ = [ | CODE |
| LOW | …gent/src/dify_agent/layers/dify_core_tools/__init__.py | 10 | __all__ = [ | CODE |
| LOW | …y-agent/src/dify_agent/layers/dify_core_tools/layer.py | 163 | __all__ = ["DifyCoreToolsDeps", "DifyCoreToolsLayer"] | CODE |
| LOW | dify-agent/src/dify_agent/layers/output/configs.py | 51 | __all__ = ["DIFY_OUTPUT_LAYER_TYPE_ID", "DifyOutputLayerConfig"] | CODE |
| LOW | dify-agent/src/dify_agent/layers/output/__init__.py | 10 | __all__ = ["DIFY_OUTPUT_LAYER_TYPE_ID", "DifyOutputLayerConfig"] | CODE |
| LOW | dify-agent/src/dify_agent/layers/output/output_layer.py | 313 | __all__ = ["DifyOutputContract", "DifyOutputLayer"] | CODE |
| LOW | dify-agent/src/dify_agent/layers/knowledge/configs.py | 280 | __all__ = [ | CODE |
| LOW | dify-agent/src/dify_agent/layers/knowledge/client.py | 213 | __all__ = [ | CODE |
| LOW | dify-agent/src/dify_agent/layers/knowledge/__init__.py | 23 | __all__ = [ | CODE |
| LOW | dify-agent/src/dify_agent/layers/knowledge/layer.py | 39 | logger = logging.getLogger(__name__) | CODE |
| LOW | dify-agent/src/dify_agent/layers/knowledge/layer.py | 479 | __all__ = [ | CODE |
| LOW | dify-agent/src/dify_agent/layers/ask_human/configs.py | 132 | __all__ = [ | CODE |
| LOW | dify-agent/src/dify_agent/layers/ask_human/__init__.py | 30 | __all__ = [ | CODE |
| LOW | dify-agent/src/dify_agent/layers/ask_human/layer.py | 271 | __all__ = [ | CODE |
| LOW | dify-agent/src/dify_agent/layers/ask_human/schema.py | 218 | __all__ = [ | CODE |
| LOW | dify-agent/src/dify_agent/layers/drive/configs.py | 51 | __all__ = [ | CODE |
| LOW | dify-agent/src/dify_agent/layers/drive/__init__.py | 13 | __all__ = [ | CODE |
| LOW | dify-agent/src/dify_agent/layers/drive/layer.py | 268 | __all__ = ["DifyDriveLayer", "DifyDriveLayerError"] | CODE |
| LOW | …ent/src/dify_agent/layers/execution_context/configs.py | 65 | __all__ = [ | CODE |
| LOW | …nt/src/dify_agent/layers/execution_context/__init__.py | 18 | __all__ = [ | CODE |
| LOW | …agent/src/dify_agent/layers/execution_context/layer.py | 96 | __all__ = ["DifyExecutionContextLayer"] | CODE |
| LOW | dify-agent/src/dify_agent/agent_stub/_constants.py | 12 | __all__ = [ | CODE |
| LOW | dify-agent/src/dify_agent/agent_stub/shell_env.py | 53 | __all__ = [ | CODE |
| LOW | …nt/src/dify_agent/agent_stub/_drive_materialization.py | 167 | __all__ = [ | CODE |
| LOW | …fy-agent/src/dify_agent/agent_stub/grpc/conversions.py | 161 | __all__ = [ | CODE |
| LOW | …t/src/dify_agent/agent_stub/server/agent_stub_drive.py | 186 | __all__ = [ | CODE |
| LOW⚡ | …gent/src/dify_agent/agent_stub/server/control_plane.py | 250 | __all__ = [ | CODE |
| LOW | …agent/src/dify_agent/agent_stub/server/grpc_service.py | 244 | __all__ = ["AgentStubGRPCTransport", "create_agent_stub_grpc_service"] | CODE |
| LOW | …/src/dify_agent/agent_stub/server/agent_stub_config.py | 258 | __all__ = [ | CODE |
| LOW | …t/src/dify_agent/agent_stub/server/agent_stub_files.py | 215 | __all__ = [ | CODE |
| LOW | dify-agent/src/dify_agent/agent_stub/server/cli.py | 73 | __all__ = ["main"] | CODE |
| LOW | dify-agent/src/dify_agent/agent_stub/server/app.py | 36 | __all__ = ["app", "create_agent_stub_app"] | CODE |
| LOW | dify-agent/src/dify_agent/agent_stub/server/router.py | 38 | __all__ = ["create_agent_stub_router"] | CODE |
| LOW | …agent/src/dify_agent/agent_stub/server/grpc_runtime.py | 59 | __all__ = ["RunningAgentStubGRPCServer", "start_agent_stub_grpc_server"] | CODE |
| LOW | …fy-agent/src/dify_agent/agent_stub/server/grpc_bind.py | 64 | __all__ = [ | CODE |
| LOW | …/src/dify_agent/agent_stub/server/tokens/agent_stub.py | 243 | __all__ = [ | CODE |
| LOW | …nt/src/dify_agent/agent_stub/server/tokens/__init__.py | 16 | __all__ = [ | CODE |
| LOW | …/src/dify_agent/agent_stub/server/routes/agent_stub.py | 178 | __all__ = ["create_agent_stub_http_router"] | CODE |
| 654 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docker/dify-env-sync.py | 293 | CODE | |
| LOW | …/tests/local/shellctl_runtime/test_shellctl_runtime.py | 466 | CODE | |
| LOW | …dify_agent/agent_stub/server/test_agent_stub_config.py | 396 | CODE | |
| LOW | dify-agent/docs/.hooks/snippets.py | 130 | CODE | |
| LOW | …agent/src/dify_agent/layers/dify_plugin/tools_layer.py | 307 | CODE | |
| LOW | …agent/src/dify_agent/layers/dify_plugin/tools_layer.py | 636 | CODE | |
| LOW | dify-agent/src/dify_agent/layers/output/output_layer.py | 214 | CODE | |
| LOW | dify-agent/src/dify_agent/layers/output/output_layer.py | 271 | CODE | |
| LOW | dify-agent/src/dify_agent/layers/output/output_layer.py | 226 | CODE | |
| LOW | …nt/src/dify_agent/agent_stub/_drive_materialization.py | 95 | CODE | |
| LOW | …agent/src/dify_agent/agent_stub/server/grpc_service.py | 180 | CODE | |
| LOW | dify-agent/src/dify_agent/storage/redis_run_store.py | 109 | CODE | |
| LOW | dify-agent/src/dify_agent/adapters/llm/model.py | 249 | CODE | |
| LOW | dify-agent/src/dify_agent/adapters/llm/model.py | 280 | CODE | |
| LOW | dify-agent/src/dify_agent/adapters/llm/model.py | 307 | CODE | |
| LOW | dify-agent/src/dify_agent/adapters/llm/model.py | 327 | CODE | |
| LOW | dify-agent/src/dify_agent/adapters/llm/model.py | 372 | CODE | |
| LOW | dify-agent/src/dify_agent/adapters/llm/model.py | 566 | CODE | |
| LOW | dify-agent/src/dify_agent/adapters/llm/model.py | 602 | CODE | |
| LOW | dify-agent/src/dify_agent/adapters/llm/model.py | 671 | CODE | |
| LOW | dify-agent/src/dify_agent/client/_client.py | 534 | CODE | |
| LOW | dify-agent/src/dify_agent/client/_client.py | 642 | CODE | |
| LOW | dify-agent/src/shellctl/server/service.py | 148 | CODE | |
| LOW | dify-agent/src/shellctl/server/service.py | 302 | CODE | |
| LOW | dify-agent/src/shellctl/server/service.py | 739 | CODE | |
| LOW | scripts/stress-test/sse_benchmark.py | 559 | CODE | |
| LOW | scripts/stress-test/sse_benchmark.py | 326 | CODE | |
| LOW | scripts/stress-test/sse_benchmark.py | 400 | CODE | |
| LOW | scripts/stress-test/sse_benchmark.py | 567 | CODE | |
| LOW | scripts/stress-test/setup/install_openai_plugin.py | 18 | CODE | |
| LOW | scripts/stress-test/setup/login_admin.py | 20 | CODE | |
| LOW | scripts/stress-test/setup/import_workflow_app.py | 18 | CODE | |
| LOW | scripts/stress-test/setup/configure_openai_plugin.py | 12 | CODE | |
| LOW | scripts/stress-test/setup/create_api_key.py | 14 | CODE | |
| LOW | scripts/stress-test/setup/publish_workflow.py | 14 | CODE | |
| LOW | scripts/stress-test/setup/setup_admin.py | 22 | CODE | |
| LOW | scripts/stress-test/setup/run_workflow.py | 14 | CODE | |
| LOW | api/app_factory.py | 49 | CODE | |
| LOW | api/app_factory.py | 60 | CODE | |
| LOW | api/schedule/update_api_token_last_used_task.py | 28 | CODE | |
| LOW | api/schedule/mail_clean_document_notify_task.py | 22 | CODE | |
| LOW | api/schedule/clean_workflow_runlogs_precise.py | 44 | CODE | |
| LOW | api/schedule/clean_workflow_runlogs_precise.py | 107 | CODE | |
| LOW | api/schedule/queue_monitor_task.py | 34 | CODE | |
| LOW | api/schedule/workflow_schedule_task.py | 18 | CODE | |
| LOW | api/schedule/clean_unused_datasets_task.py | 27 | CODE | |
| LOW | api/tasks/regenerate_summary_index_task.py | 22 | CODE | |
| LOW | api/tasks/enable_segments_to_index_task.py | 22 | CODE | |
| LOW | api/tasks/deal_dataset_index_update_task.py | 18 | CODE | |
| LOW | api/tasks/remove_app_and_related_data_task.py | 116 | CODE | |
| LOW | api/tasks/remove_app_and_related_data_task.py | 847 | CODE | |
| LOW | api/tasks/clean_document_task.py | 19 | CODE | |
| LOW | api/tasks/retry_document_indexing_task.py | 23 | CODE | |
| LOW | api/tasks/duplicate_document_indexing_task.py | 79 | CODE | |
| LOW | api/tasks/enable_segment_to_index_task.py | 22 | CODE | |
| LOW | …/tasks/process_tenant_plugin_autoupgrade_check_task.py | 100 | CODE | |
| LOW | api/tasks/document_indexing_task.py | 49 | CODE | |
| LOW | api/tasks/document_indexing_task.py | 193 | CODE | |
| LOW | api/tasks/deal_dataset_vector_index_task.py | 20 | CODE | |
| LOW | api/tasks/recover_document_indexing_task.py | 16 | CODE | |
| 577 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ts/local/dify_agent/layers/dify_plugin/test_configs.py | 125 | "placeholder": None, | CODE |
| LOW | …/tests/local/dify_agent/layers/ask_human/test_layer.py | 97 | "placeholder": None, | CODE |
| LOW | …fy-agent/tests/local/dify_agent/runtime/test_runner.py | 581 | "placeholder": None, | CODE |
| LOW | web/context/__tests__/console-bootstrap.spec.tsx | 56 | email: 'user@example.com', | CODE |
| LOW | web/context/__tests__/console-bootstrap.spec.tsx | 328 | email: 'user@example.com', | CODE |
| LOW | web/context/__tests__/console-bootstrap.spec.tsx | 474 | value: 'user@example.com', | CODE |
| LOW | web/context/__tests__/console-bootstrap.spec.tsx | 486 | expect(setUserId).toHaveBeenCalledWith('user@example.com') | CODE |
| LOW | web/context/__tests__/console-bootstrap.spec.tsx | 489 | email: 'user@example.com', | CODE |
| LOW | web/app/install/installForm.spec.tsx | 72 | target: { value: 'admin@example.com' }, | CODE |
| LOW | web/app/install/installForm.spec.tsx | 85 | email: 'admin@example.com', | CODE |
| LOW | web/app/install/installForm.spec.tsx | 97 | email: 'admin@example.com', | CODE |
| LOW | web/app/install/installForm.spec.tsx | 120 | target: { value: 'admin@example.com' }, | CODE |
| LOW | web/app/install/installForm.spec.tsx | 143 | target: { value: 'admin@example.com' }, | CODE |
| LOW | …dataset-config/settings-modal/__tests__/index.spec.tsx | 237 | email: 'user@example.com', | CODE |
| LOW | web/app/components/app/log/__tests__/var-panel.spec.tsx | 17 | { label: 'name', value: 'John Doe' }, | CODE |
| LOW | web/app/components/app/log/__tests__/var-panel.spec.tsx | 40 | expect(screen.getByText('John Doe')).toBeInTheDocument() | CODE |
| LOW | web/app/components/app/log/__tests__/var-panel.spec.tsx | 66 | expect(screen.getByText('John Doe')).toBeInTheDocument() | CODE |
| LOW | web/app/components/app/log/__tests__/var-panel.spec.tsx | 76 | expect(screen.queryByText('John Doe')).not.toBeInTheDocument() | CODE |
| LOW | web/app/components/app/log/__tests__/var-panel.spec.tsx | 87 | expect(screen.queryByText('John Doe')).not.toBeInTheDocument() | CODE |
| LOW | web/app/components/app/log/__tests__/var-panel.spec.tsx | 91 | expect(screen.getByText('John Doe')).toBeInTheDocument() | CODE |
| LOW | …pp/components/app/workflow-log/__tests__/list.spec.tsx | 332 | created_by_account: { id: 'acc-1', name: 'John Doe', email: 'john@example.com' }, | CODE |
| LOW | …pp/components/app/workflow-log/__tests__/list.spec.tsx | 341 | expect(screen.getByText('John Doe'))!.toBeInTheDocument() | CODE |
| LOW | …/marketplace/search-box/__tests__/tags-filter.spec.tsx | 136 | expect(screen.getByLabelText('tags-search')).toHaveAttribute('placeholder', '') | CODE |
| LOW | …lugins/marketplace/search-box/__tests__/index.spec.tsx | 392 | expect(screen.getByRole('textbox'))!.toHaveAttribute('placeholder', '') | CODE |
| LOW | …lugins/marketplace/search-box/__tests__/index.spec.tsx | 398 | expect(screen.getByRole('textbox'))!.toHaveAttribute('placeholder', '') | CODE |
| LOW | …lugins/marketplace/search-box/__tests__/index.spec.tsx | 1032 | (input) => input.getAttribute('placeholder') === 'Search tags', | CODE |
| LOW | …lugins/marketplace/search-box/__tests__/index.spec.tsx | 1103 | expect(input)!.toHaveAttribute('placeholder', 'Search plugins') | CODE |
| LOW | …ts/plugins/plugin-detail-panel/__tests__/utils.spec.ts | 44 | const requiredKeys = ['type', 'name', 'label', 'placeholder', 'required', 'default', 'help'] | CODE |
| LOW | …plugins/install-plugin/base/__tests__/loading.spec.tsx | 6 | default: () => <div data-testid="placeholder" />, | CODE |
| LOW | …plugins/install-plugin/base/__tests__/loading.spec.tsx | 27 | expect(screen.getByTestId('placeholder')).toBeInTheDocument() | CODE |
| LOW | …n-page/filter-management/__tests__/search-box.spec.tsx | 16 | expect(screen.getByRole('textbox')).toHaveAttribute('placeholder', 'plugin.search') | CODE |
| LOW | …ngs/permission-selector/__tests__/member-item.spec.tsx | 7 | name: 'John Doe', | CODE |
| LOW | …ngs/permission-selector/__tests__/member-item.spec.tsx | 19 | expect(screen.getByText('John Doe')).toBeInTheDocument() | CODE |
| LOW | …ngs/permission-selector/__tests__/member-item.spec.tsx | 29 | expect(screen.getByText('John Doe')).toBeInTheDocument() | CODE |
| LOW⚡ | …ngs/permission-selector/__tests__/member-item.spec.tsx | 41 | const container = screen.getByText('John Doe').closest('div')?.parentElement?.parentElement | CODE |
| LOW⚡ | …ngs/permission-selector/__tests__/member-item.spec.tsx | 48 | const container = screen.getByText('John Doe').closest('div')?.parentElement?.parentElement | CODE |
| LOW⚡ | …ngs/permission-selector/__tests__/member-item.spec.tsx | 55 | const container = screen.getByText('John Doe').closest('div')?.parentElement?.parentElement | CODE |
| LOW⚡ | …ngs/permission-selector/__tests__/member-item.spec.tsx | 84 | const item = screen.getByText('John Doe').closest('div')?.parentElement?.parentElement | CODE |
| LOW⚡ | …ngs/permission-selector/__tests__/member-item.spec.tsx | 93 | const item = screen.getByText('John Doe').closest('div')?.parentElement?.parentElement | CODE |
| LOW⚡ | …ngs/permission-selector/__tests__/member-item.spec.tsx | 99 | const item = screen.getByText('John Doe').closest('div')?.parentElement?.parentElement | CODE |
| LOW | …ngs/permission-selector/__tests__/member-item.spec.tsx | 135 | let container = screen.getByText('John Doe').closest('div')?.parentElement?.parentElement | CODE |
| LOW | …ngs/permission-selector/__tests__/member-item.spec.tsx | 140 | container = screen.getByText('John Doe').closest('div')?.parentElement?.parentElement | CODE |
| LOW | …ngs/permission-selector/__tests__/member-item.spec.tsx | 153 | expect(screen.getByText('John Doe')).toBeInTheDocument() | CODE |
| LOW | …ngs/permission-selector/__tests__/member-item.spec.tsx | 187 | const container = screen.getByText('John Doe').closest('div')?.parentElement?.parentElement | CODE |
| LOW | …/settings/permission-selector/__tests__/index.spec.tsx | 103 | name: 'John Doe', | CODE |
| LOW | …/settings/permission-selector/__tests__/index.spec.tsx | 283 | expect(screen.getByText('John Doe'))!.toBeInTheDocument() | CODE |
| LOW | …/settings/permission-selector/__tests__/index.spec.tsx | 302 | const johnDoe = screen.getByText('John Doe') | CODE |
| LOW | …/settings/permission-selector/__tests__/index.spec.tsx | 324 | const johnDoe = screen.getByText('John Doe') | CODE |
| LOW | …/settings/permission-selector/__tests__/index.spec.tsx | 379 | expect(screen.getByText('John Doe'))!.toBeInTheDocument() | CODE |
| LOW | …/settings/permission-selector/__tests__/index.spec.tsx | 426 | expect(screen.getByText('John Doe'))!.toBeInTheDocument() | CODE |
| LOW | …ing/components/query-input/__tests__/textarea.spec.tsx | 41 | expect(screen.getByRole('textbox')).toHaveAttribute('placeholder') | CODE |
| LOW | …p/components/datasets/__tests__/mock-dataset-access.ts | 47 | email: 'user@example.com', | CODE |
| LOW | …card/components/__tests__/dataset-card-header.spec.tsx | 120 | const dataset = createMockDataset({ author_name: 'John Doe' }) | CODE |
| LOW | …card/components/__tests__/dataset-card-header.spec.tsx | 122 | expect(screen.queryByText('John Doe')).not.toBeInTheDocument() | CODE |
| LOW | …nts/detail/completed/common/__tests__/summary.spec.tsx | 157 | 'placeholder', | CODE |
| LOW | …asets/create/website/base/__tests__/url-input.spec.tsx | 34 | expect(input).toHaveAttribute('placeholder', 'https://docs.example.com') | CODE |
| LOW | …ts/main-nav/components/__tests__/support-menu.spec.tsx | 29 | userProfile: { email: 'user@example.com' }, | CODE |
| LOW | …ts/main-nav/components/__tests__/support-menu.spec.tsx | 100 | userProfile: { email: 'user@example.com' }, | CODE |
| LOW | …ts/main-nav/components/__tests__/support-menu.spec.tsx | 221 | 'user@example.com', | CODE |
| LOW | …ts/main-nav/components/__tests__/support-menu.spec.tsx | 249 | expect(mailToSupport).toHaveBeenCalledWith('user@example.com', Plan.team, '1.0.0', '') | CODE |
| 340 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | dify-agent/src/dify_agent/agent_stub/cli/_drive.py | 108 | Pull drive files into one local drive base via signed download URLs. Args: targets: Optional drive-key targ | STRING |
| HIGH | api/context/flask_app_context.py | 57 | Capture current Flask execution context. This function captures the Flask app context and contextvars from the | STRING |
| HIGH | api/core/tools/utils/system_encryption.py | 47 | Encrypt parameters. Args: params: Parameters dictionary, e.g., {"client_id": "xxx", "clien | STRING |
| HIGH | api/core/tools/utils/system_encryption.py | 82 | Decrypt parameters. Args: encrypted_data: Base64-encoded encrypted string Returns | STRING |
| HIGH | api/core/app/apps/workflow_app_runner.py | 182 | Prepare graph, variable pool, and runtime state for single node execution (either single iteration or s | STRING |
| HIGH | api/core/plugin/utils/chunk_merger.py | 27 | Merge streaming blob chunks into complete blob messages. This function processes a stream of plugin invoke mes | STRING |
| HIGH | api/core/repositories/factory.py | 69 | Create a WorkflowExecutionRepository instance based on configuration. Args: session_factor | STRING |
| HIGH | api/core/repositories/factory.py | 105 | Create a WorkflowNodeExecutionRepository instance based on configuration. Args: session_fa | STRING |
| HIGH | api/core/mcp/auth_client.py | 132 | Execute a function with authentication retry logic. Args: func: The function to execute | STRING |
| HIGH | api/core/mcp/auth_client.py | 193 | Invoke a tool on the MCP server with auth retry. Args: tool_name: Name of the tool to invo | STRING |
| HIGH | api/core/mcp/auth/auth_flow.py | 370 | Parse OAuth token response supporting both JSON and form-urlencoded formats. Per RFC 6749 Section 5.1, the sta | STRING |
| HIGH | api/core/mcp/client/sse_client.py | 198 | Wait for the endpoint URL from the status queue. Args: status_queue: Queue to read status from. | STRING |
| HIGH | api/core/schemas/resolver.py | 86 | Resolve all $ref references in the schema Performance optimization: quickly checks for $ref presence b | STRING |
| HIGH | api/core/schemas/resolver.py | 229 | Resolve $ref references in Dify schema to actual schema content This is a convenience function that creates a | STRING |
| HIGH | api/core/ops/utils.py | 71 | Validate and normalize URL with proper error handling. NOTE: This function does not retain the `path` componen | STRING |
| HIGH | api/core/ops/utils.py | 108 | Validate URL that may include path components Args: url: The URL to validate default_url: Defa | STRING |
| HIGH | api/core/ops/base_trace_instance.py | 33 | Get service account for an app and set up its tenant. Args: app_id: The ID of the app | STRING |
| HIGH | api/core/helper/csv_sanitizer.py | 24 | Sanitize a value for safe CSV export. Prefixes formula-initiating characters with a single quote to pr | STRING |
| HIGH | api/core/helper/csv_sanitizer.py | 63 | Sanitize specified fields in a dictionary. Args: data: Dictionary containing data to sanit | STRING |
| HIGH | …repositories/sqlalchemy_api_workflow_run_repository.py | 974 | Create a new workflow pause state. Creates a pause state for a workflow run, storing the current execu | STRING |
| HIGH | …repositories/sqlalchemy_api_workflow_run_repository.py | 1120 | Get an existing workflow pause state. Retrieves the pause state for a specific workflow run if it exis | STRING |
| HIGH | …repositories/sqlalchemy_api_workflow_run_repository.py | 1161 | Resume a paused workflow. Marks a paused workflow as resumed, clearing the pause state and ret | STRING |
| HIGH | …repositories/sqlalchemy_api_workflow_run_repository.py | 1270 | Clean up expired and old pause states. Removes pause states that have expired (created before expirati | STRING |
| HIGH | api/repositories/factory.py | 30 | Create a DifyAPIWorkflowNodeExecutionRepository instance based on configuration. This repository is de | STRING |
| HIGH | api/repositories/factory.py | 59 | Create an APIWorkflowRunRepository instance based on configuration. This repository is designed for se | STRING |
| HIGH | api/repositories/api_workflow_run_repository.py | 103 | Get paginated workflow runs with filtering. Retrieves workflow runs for a specific app and trigger sou | STRING |
| HIGH | api/repositories/api_workflow_run_repository.py | 505 | Create a new workflow pause state. Creates a pause state for a workflow run, storing the current execu | STRING |
| HIGH | api/repositories/api_workflow_run_repository.py | 541 | Resume a paused workflow. Marks a paused workflow as resumed, set the `resumed_at` field of WorkflowPa | STRING |
| HIGH | api/repositories/api_workflow_run_repository.py | 596 | Clean up expired and old pause states. Removes pause states that have expired (created before expirati | STRING |
| HIGH | api/extensions/logstore/sql_escape.py | 18 | Escape a string value for safe use in SQL queries. This function escapes single quotes by doubling them, which | STRING |
| HIGH | api/extensions/logstore/sql_escape.py | 53 | Escape an identifier (tenant_id, app_id, run_id, etc.) for safe SQL use. This function is for PG protocol mode | STRING |
| HIGH | api/extensions/logstore/sql_escape.py | 82 | Escape value for LogStore query syntax (SDK mode). LogStore query syntax rules: 1. Keywords (and/or/not) a | STRING |
| HIGH | api/libs/schedule_utils.py | 55 | Parse 12-hour time format to 24-hour format for cron compatibility. Args: time_str: Time string in for | STRING |
| HIGH | api/libs/archive_storage.py | 90 | Upload an object to the archive storage. Args: key: Object key (path) within the bucket | STRING |
| HIGH | api/libs/archive_storage.py | 123 | Download an object from the archive storage. Args: key: Object key (path) within the bucke | STRING |
| HIGH | api/libs/archive_storage.py | 146 | Stream an object from the archive storage. Args: key: Object key (path) within the bucket | STRING |
| HIGH | api/libs/archive_storage.py | 201 | Generate a pre-signed URL for downloading an object. Args: key: Object key (path) within t | STRING |
| HIGH | api/libs/uuid_utils.py | 116 | Extract the timestamp from a UUIDv7. UUIDv7 contains a 48-bit timestamp field representing milliseconds since t | STRING |
| HIGH | api/libs/custom_inputs.py | 7 | Validate and return time duration string. Accepts formats: <number>d (days), <number>h (hours), <number>m (min | STRING |
| HIGH | api/libs/helper.py | 70 | Escape special characters in a string for safe use in SQL LIKE patterns. This function escapes the special cha | STRING |
| HIGH | api/libs/helper.py | 102 | Extract tenant_id from Account or EndUser object. Args: user: Account or EndUser object Returns: | STRING |
| HIGH | api/libs/datetime_utils.py | 41 | Parse time range strings and convert to UTC datetime objects. Handles DST ambiguity and non-existent times grac | STRING |
| HIGH | api/libs/module_loading.py | 32 | Import a dotted module path and return the attribute/class designated by the last name in the path. Raise Impor | STRING |
| HIGH | api/configs/middleware/vdb/iris_config.py | 70 | Validate IRIS configuration values. Args: values: Configuration dictionary Returns: | STRING |
| HIGH | api/controllers/web/files.py | 37 | Upload a file for use in web applications. Accepts file uploads for use within web applications, supporting | STRING |
| HIGH | api/controllers/web/remote_files.py | 46 | Get information about a remote file. Retrieves basic information about a file located at a remote URL, | STRING |
| HIGH | api/controllers/web/remote_files.py | 90 | Upload a file from a remote URL. Downloads a file from the provided remote URL and uploads it to the pl | STRING |
| HIGH | api/controllers/mcp/mcp.py | 55 | Handle MCP requests for a specific server. Processes JSON-RPC formatted requests according to the Model Context | STRING |
| HIGH | api/controllers/service_api/app/file_preview.py | 134 | Validate that the file belongs to a message within the requesting app's context Security validations p | STRING |
| HIGH | api/controllers/service_api/dataset/dataset.py | 738 | Deletes a dataset given its ID. Args: _: ignore dataset_id (UUID): The ID of t | STRING |
| HIGH | api/controllers/service_api/dataset/dataset.py | 805 | Batch update document status. Args: tenant_id: tenant id dataset_id: dataset i | STRING |
| HIGH | api/controllers/console/datasets/datasets.py | 311 | Get supported retrieval methods based on vector database type. Args: vector_type: Vector database type | STRING |
| HIGH | api/services/async_workflow_service.py | 59 | Universal entry point for async workflow execution - THIS METHOD WILL NOT BLOCK Creates a trigger log | STRING |
| HIGH | api/services/async_workflow_service.py | 200 | Re-invoke a previously failed or rate-limited trigger - THIS METHOD WILL NOT BLOCK Updates the existin | STRING |
| HIGH | api/services/async_workflow_service.py | 324 | Get workflow for the app Args: app_model: App model instance workflow_id: Opti | STRING |
| HIGH | api/services/conversation_service.py | 357 | Update a conversation variable's value. Args: app_model: The app model convers | STRING |
| HIGH | api/services/model_provider_service.py | 37 | Get provider configuration or raise exception if not found. Args: tenant_id: Workspace ide | STRING |
| HIGH | api/services/summary_index_service.py | 54 | Generate summary for a single segment. Args: segment: DocumentSegment to generate summary | STRING |
| HIGH | api/services/summary_index_service.py | 651 | Generate summary for a segment and vectorize it. Assumes summary record already exists (created by batc | STRING |
| HIGH | api/services/dataset_service.py | 632 | Update dataset configuration and settings. Args: dataset_id: The unique identifier of the | STRING |
| 13 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docker/dify-env-sync.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | docker/dify-env-sync.sh | 1 | #!/bin/bash | COMMENT |
| LOW | docker/ssrf_proxy/docker-entrypoint.sh | 1 | #!/bin/bash | COMMENT |
| LOW | docker/volumes/opensearch/opensearch_dashboards.yml | 1 | --- | COMMENT |
| LOW | docker/volumes/opensearch/opensearch_dashboards.yml | 21 | COMMENT | |
| LOW | docker/volumes/opensearch/opensearch_dashboards.yml | 41 | COMMENT | |
| LOW | docker/volumes/opensearch/opensearch_dashboards.yml | 61 | # server.ssl.enabled: false | COMMENT |
| LOW | docker/volumes/opensearch/opensearch_dashboards.yml | 81 | COMMENT | |
| LOW | docker/volumes/opensearch/opensearch_dashboards.yml | 101 | # pid.file: /var/run/opensearchDashboards.pid | COMMENT |
| LOW | docker/volumes/opensearch/opensearch_dashboards.yml | 121 | # Supported languages are the following: English - en , by default , Chinese - zh-CN . | COMMENT |
| LOW | docker/volumes/opensearch/opensearch_dashboards.yml | 141 | # //Reserved IP address | COMMENT |
| LOW | docker/volumes/opensearch/opensearch_dashboards.yml | 161 | # defaultUrl: "" | COMMENT |
| LOW | docker/volumes/opensearch/opensearch_dashboards.yml | 181 | # Set the value of this setting to false to disable VisBuilder | COMMENT |
| LOW | …fy_agent/dify_agent_examples/run_server_sync_client.py | 61 | model=MODEL_NAME, | COMMENT |
| LOW | …fy_agent/dify_agent_examples/run_server_sync_client.py | 81 | # DifyPluginToolConfig( | COMMENT |
| LOW | …/dify_agent/dify_agent_examples/run_server_consumer.py | 81 | # ) | COMMENT |
| LOW | …/dify_agent/dify_agent_examples/run_server_consumer.py | 101 | # llm_description="Search query", | COMMENT |
| LOW | sdks/nodejs-client/scripts/publish.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | …/tools/mcp/sections/__tests__/headers-section.spec.tsx | 141 | }) | COMMENT |
| LOW | …/tools/mcp/sections/__tests__/headers-section.spec.tsx | 161 | // Empty key headers don't trigger masking | COMMENT |
| LOW | …/tools/mcp/sections/__tests__/headers-section.spec.tsx | 181 | COMMENT | |
| LOW | …/tools/mcp/sections/__tests__/headers-section.spec.tsx | 201 | // Whitespace-only key doesn't count as having content | COMMENT |
| LOW | …ools/workflow-tool/__tests__/configure-button.spec.tsx | 661 | // Assert | COMMENT |
| LOW | …ools/workflow-tool/__tests__/configure-button.spec.tsx | 681 | // Assert | COMMENT |
| LOW | …ools/workflow-tool/__tests__/configure-button.spec.tsx | 1141 | const nameInput = screen.getByPlaceholderText('tools.createTool.nameForToolCallPlaceHolder') | COMMENT |
| LOW | …ools/workflow-tool/__tests__/configure-button.spec.tsx | 1161 | // Assert | COMMENT |
| LOW | …ig/settings-modal/__tests__/retrieval-section.spec.tsx | 161 | await userEvent.click(screen.getByRole('button', { name: 'close-retrieval-change-tip' })) | COMMENT |
| LOW | …ig/settings-modal/__tests__/retrieval-section.spec.tsx | 181 | // Assert | COMMENT |
| LOW | …taset-config/context-var/__tests__/var-picker.spec.tsx | 141 | const props = { | COMMENT |
| LOW | …taset-config/context-var/__tests__/var-picker.spec.tsx | 161 | // Assert | COMMENT |
| LOW | …taset-config/context-var/__tests__/var-picker.spec.tsx | 341 | // Assert | COMMENT |
| LOW | …on/dataset-config/context-var/__tests__/index.spec.tsx | 141 | // Assert - Should show placeholder instead of variable | COMMENT |
| LOW | …on/dataset-config/context-var/__tests__/index.spec.tsx | 161 | // Assert - Should show placeholder instead of variable | COMMENT |
| LOW | …bug/debug-with-multiple-model/__tests__/index.spec.tsx | 561 | mode: AppModeEnum.COMPLETION, | COMMENT |
| LOW | …bug/debug-with-multiple-model/__tests__/index.spec.tsx | 581 | // Assert | COMMENT |
| LOW | …ebug-with-multiple-model/__tests__/debug-item.spec.tsx | 521 | { provider: 'anthropic', model: 'not-matching', status: ModelStatusEnum.quotaExceeded }, | COMMENT |
| LOW | …ebug-with-multiple-model/__tests__/debug-item.spec.tsx | 541 | // When provider/model doesn't match, ChatItem won't render | COMMENT |
| LOW | …otation/edit-annotation-modal/__tests__/index.spec.tsx | 81 | COMMENT | |
| LOW | …otation/edit-annotation-modal/__tests__/index.spec.tsx | 101 | // Assert | COMMENT |
| LOW | …otation/edit-annotation-modal/__tests__/index.spec.tsx | 321 | // Act | COMMENT |
| LOW | …otation/edit-annotation-modal/__tests__/index.spec.tsx | 341 | // Assert - Confirm dialog should not be visible initially | COMMENT |
| LOW | …pp/components/app/workflow-log/__tests__/list.spec.tsx | 501 | // Before click - no highlight | COMMENT |
| LOW | …pp/components/app/workflow-log/__tests__/list.spec.tsx | 521 | // Before click - no highlight | COMMENT |
| LOW | …pp/components/app/workflow-log/__tests__/list.spec.tsx | 621 | // Replay button should not be present for webhook triggers | COMMENT |
| LOW | …pp/components/app/workflow-log/__tests__/list.spec.tsx | 641 | // Replay button should not be present for webhook triggers | COMMENT |
| LOW | …pp/components/app/workflow-log/__tests__/list.spec.tsx | 821 | // Should render without trigger column | COMMENT |
| LOW | …pp/components/app/workflow-log/__tests__/list.spec.tsx | 841 | // Should render without trigger column | COMMENT |
| LOW | …lugins/marketplace/search-box/__tests__/index.spec.tsx | 581 | <MarketplaceTrigger {...defaultProps} selectedTagsLength={1} tags={['agent']} />, | COMMENT |
| LOW | …lugins/marketplace/search-box/__tests__/index.spec.tsx | 601 | // Clear button should not be present | COMMENT |
| LOW | …mponents/plugins/plugin-item/__tests__/action.spec.tsx | 501 | fireEvent.click(screen.getByTestId('close-plugin-info')) | COMMENT |
| LOW | …mponents/plugins/plugin-item/__tests__/action.spec.tsx | 521 | // Assert | COMMENT |
| LOW | …nel/model-selector/__tests__/tts-params-panel.spec.tsx | 401 | // Assert - no voice items should be rendered | COMMENT |
| LOW | …nel/model-selector/__tests__/tts-params-panel.spec.tsx | 421 | // Assert - no voice items should be rendered | COMMENT |
| LOW | …nel/model-selector/__tests__/tts-params-panel.spec.tsx | 441 | language: 'en-US', | COMMENT |
| LOW | …nel/model-selector/__tests__/tts-params-panel.spec.tsx | 461 | // Assert | COMMENT |
| LOW | …nel/model-selector/__tests__/tts-params-panel.spec.tsx | 661 | COMMENT | |
| LOW | …nel/model-selector/__tests__/tts-params-panel.spec.tsx | 681 | // Assert | COMMENT |
| LOW | …anel/subscription-list/create/__tests__/index.spec.tsx | 341 | // Act | COMMENT |
| LOW | …anel/subscription-list/create/__tests__/index.spec.tsx | 361 | // Assert | COMMENT |
| LOW | …anel/subscription-list/create/__tests__/index.spec.tsx | 861 | // Assert - modal should not open | COMMENT |
| 256 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | docker/docker-compose.yaml | 2 | # WARNING: This file is auto-generated by generate_docker_compose | COMMENT |
| LOW⚡ | sdks/nodejs-client/scripts/publish.sh | 127 | # Step 1: Environment Check | COMMENT |
| LOW⚡ | sdks/nodejs-client/scripts/publish.sh | 164 | # Step 2: Read Package Info | COMMENT |
| LOW⚡ | sdks/nodejs-client/scripts/publish.sh | 187 | # Step 3: Install Dependencies | COMMENT |
| LOW⚡ | sdks/nodejs-client/scripts/publish.sh | 195 | # Step 4: Run Tests | COMMENT |
| LOW⚡ | sdks/nodejs-client/scripts/publish.sh | 207 | # Step 5: Build | COMMENT |
| LOW⚡ | sdks/nodejs-client/scripts/publish.sh | 229 | # Step 6: Publish | COMMENT |
| LOW⚡ | …-panel/subscription-list/edit/__tests__/index.spec.tsx | 1271 | // Step 1: Verify | COMMENT |
| LOW⚡ | …-panel/subscription-list/edit/__tests__/index.spec.tsx | 1277 | // Step 2: Update | COMMENT |
| LOW⚡ | …in/install-from-local-package/__tests__/index.spec.tsx | 1929 | // Step 1: Uploading | COMMENT |
| LOW⚡ | …in/install-from-local-package/__tests__/index.spec.tsx | 1932 | // Step 2: Upload complete, transition to readyToInstall | COMMENT |
| LOW⚡ | …in/install-from-local-package/__tests__/index.spec.tsx | 1940 | // Step 3: Start installation | COMMENT |
| LOW⚡ | …in/install-from-local-package/__tests__/index.spec.tsx | 1944 | // Step 4: Installation complete | COMMENT |
| LOW⚡ | …in/install-from-local-package/__tests__/index.spec.tsx | 2006 | // Step 1: Uploading | COMMENT |
| LOW⚡ | …in/install-from-local-package/__tests__/index.spec.tsx | 2010 | // Step 2: Upload complete, transition to readyToInstall | COMMENT |
| LOW⚡ | …in/install-from-local-package/__tests__/index.spec.tsx | 2019 | // Step 3: Start installation | COMMENT |
| LOW⚡ | …in/install-from-local-package/__tests__/index.spec.tsx | 2023 | // Step 4: Installation complete | COMMENT |
| LOW⚡ | …ets/create/website/watercrawl/__tests__/index.spec.tsx | 1696 | // Step 1: Enter URL | COMMENT |
| LOW⚡ | …ets/create/website/watercrawl/__tests__/index.spec.tsx | 1700 | // Step 2: Run crawl | COMMENT |
| LOW⚡ | …ets/create/website/watercrawl/__tests__/index.spec.tsx | 1703 | // Step 3: Wait for completion | COMMENT |
| LOW⚡ | …ets/create/website/watercrawl/__tests__/index.spec.tsx | 1708 | // Step 4: Click preview | COMMENT |
| LOW⚡ | …pp/components/datasets/create/__tests__/index.spec.tsx | 1110 | // Step 1: Set up data | COMMENT |
| LOW⚡ | …pp/components/datasets/create/__tests__/index.spec.tsx | 1114 | // Step 2: Set caches | COMMENT |
| LOW⚡ | …components/variable/__tests__/output-var-list.spec.tsx | 88 | // Step 1: rename var_2 -> var_1 (creates duplicate) | COMMENT |
| LOW⚡ | …components/variable/__tests__/output-var-list.spec.tsx | 98 | // Step 2: rename second var_1 -> var_2 (restores unique names) | COMMENT |
| LOW⚡ | web/app/components/base/mermaid/index.tsx | 254 | // Step 1: Clean and prepare Mermaid code using the extracted prepareMermaidCode function | COMMENT |
| LOW⚡ | web/app/components/base/mermaid/index.tsx | 261 | // Step 2: Render chart | COMMENT |
| LOW⚡ | web/app/components/base/mermaid/index.tsx | 264 | // Step 3: Apply theme to SVG using the extracted processSvgForTheme function | COMMENT |
| LOW⚡ | web/app/components/base/mermaid/index.tsx | 272 | // Step 4: Clean up SVG code | COMMENT |
| LOW⚡ | …b/__tests__/datasets/pipeline-datasource-flow.test.tsx | 390 | // Step 1: Set credential | COMMENT |
| LOW⚡ | …b/__tests__/datasets/pipeline-datasource-flow.test.tsx | 393 | // Step 2: Set file list | COMMENT |
| LOW⚡ | …b/__tests__/datasets/pipeline-datasource-flow.test.tsx | 397 | // Step 3: Select current file for preview | COMMENT |
| LOW⚡ | …b/__tests__/datasets/pipeline-datasource-flow.test.tsx | 410 | // Step 1: Set credential | COMMENT |
| LOW⚡ | …b/__tests__/datasets/pipeline-datasource-flow.test.tsx | 413 | // Step 2: Init crawl | COMMENT |
| LOW⚡ | …b/__tests__/datasets/pipeline-datasource-flow.test.tsx | 416 | // Step 3: Crawl completes with results | COMMENT |
| LOW⚡ | …b/__tests__/datasets/pipeline-datasource-flow.test.tsx | 425 | // Step 4: Set website pages from results | COMMENT |
| LOW⚡ | …b/__tests__/datasets/pipeline-datasource-flow.test.tsx | 428 | // Step 5: Set preview | COMMENT |
| LOW⚡ | …b/__tests__/datasets/pipeline-datasource-flow.test.tsx | 445 | // Step 1: Set credential | COMMENT |
| LOW⚡ | …b/__tests__/datasets/pipeline-datasource-flow.test.tsx | 448 | // Step 2: Set bucket | COMMENT |
| LOW⚡ | …b/__tests__/datasets/pipeline-datasource-flow.test.tsx | 452 | // Step 3: Navigate into folders | COMMENT |
| LOW⚡ | …b/__tests__/datasets/pipeline-datasource-flow.test.tsx | 462 | // Step 4: Navigate deeper | COMMENT |
| LOW⚡ | …b/__tests__/datasets/pipeline-datasource-flow.test.tsx | 466 | // Step 5: Select files | COMMENT |
| LOW | web/__tests__/explore/sidebar-lifecycle-flow.test.tsx | 101 | // Step 1: Start with an unpinned app and pin it | COMMENT |
| LOW | web/__tests__/explore/sidebar-lifecycle-flow.test.tsx | 114 | // Step 2: Simulate refetch returning pinned state, then unpin | COMMENT |
| LOW⚡ | web/__tests__/explore/sidebar-lifecycle-flow.test.tsx | 139 | // Step 1: Open operation menu and click delete | COMMENT |
| LOW⚡ | web/__tests__/explore/sidebar-lifecycle-flow.test.tsx | 143 | // Step 2: Confirm dialog appears | COMMENT |
| LOW⚡ | web/__tests__/explore/sidebar-lifecycle-flow.test.tsx | 146 | // Step 3: Confirm deletion | COMMENT |
| LOW⚡ | web/__tests__/explore/sidebar-lifecycle-flow.test.tsx | 149 | // Step 4: Uninstall API called and success toast shown | COMMENT |
| LOW | web/__tests__/explore/explore-app-list-flow.test.tsx | 381 | // Step 1: User clicks "Add to Workspace" on an app card | COMMENT |
| LOW⚡ | web/__tests__/explore/explore-app-list-flow.test.tsx | 397 | // Step 2: Click the app card - opens create modal in self-hosted/non-cloud mode | COMMENT |
| LOW⚡ | web/__tests__/explore/explore-app-list-flow.test.tsx | 400 | // Step 3: Confirm creation in modal | COMMENT |
| LOW⚡ | web/__tests__/explore/explore-app-list-flow.test.tsx | 403 | // Step 4: API fetches app detail | COMMENT |
| LOW⚡ | web/__tests__/explore/explore-app-list-flow.test.tsx | 408 | // Step 5: DSL import triggers pending confirmation | COMMENT |
| LOW⚡ | web/__tests__/explore/explore-app-list-flow.test.tsx | 411 | // Step 6: DSL confirm modal appears and user confirms | COMMENT |
| LOW⚡ | web/__tests__/explore/explore-app-list-flow.test.tsx | 415 | // Step 7: Flow completes successfully | COMMENT |
| LOW⚡ | web/__tests__/explore/explore-app-list-flow.test.tsx | 425 | // Step 1: Loading state | COMMENT |
| LOW⚡ | web/__tests__/explore/explore-app-list-flow.test.tsx | 432 | // Step 2: Data loads | COMMENT |
| LOW | .agents/skills/frontend-testing/references/workflow.md | 47 | ### Step 1: Analyze and Plan | COMMENT |
| LOW | .agents/skills/frontend-testing/references/workflow.md | 57 | ### Step 2: Determine Processing Order | COMMENT |
| LOW | .agents/skills/frontend-testing/references/workflow.md | 76 | ### Step 3: Process Each File Incrementally | COMMENT |
| 76 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docker/dify-env-sync.sh | 310 | # Check if this is an environment variable line | COMMENT |
| LOW | docker/dify-env-sync.sh | 316 | # Check if key should be preserved | COMMENT |
| LOW | docker/nginx/docker-entrypoint.sh | 6 | # Check if the certificate and key files for the specified domain exist | COMMENT |
| LOW | docker/elasticsearch/docker-entrypoint.sh | 6 | # Check if the ICU tokenizer plugin is installed | COMMENT |
| LOW | docker/elasticsearch/docker-entrypoint.sh | 14 | # Check if the Japanese language analyzer plugin is installed | COMMENT |
| LOW⚡ | sdks/nodejs-client/scripts/publish.sh | 174 | # Check if version already exists on npm | COMMENT |
| LOW | scripts/stress-test/run_locust_stress_test.sh | 39 | # Check if services are running | COMMENT |
| LOW | scripts/stress-test/setup_all.py | 77 | # Print output | COMMENT |
| LOW | scripts/stress-test/setup_all.py | 120 | # Check if required services are running | COMMENT |
| LOW | scripts/stress-test/sse_benchmark.py | 460 | # Check if runner is stopping | COMMENT |
| LOW | scripts/stress-test/setup/login_admin.py | 61 | # Check if login was successful | COMMENT |
| LOW | scripts/stress-test/setup/run_workflow.py | 86 | # Print output if it's the LLM node | COMMENT |
| LOW | api/tasks/regenerate_summary_index_task.py | 67 | # Check if summary index is enabled (only for summary_model change) | COMMENT |
| LOW | api/tasks/generate_summary_index_task.py | 53 | # Check if document needs summary | COMMENT |
| LOW | api/tasks/generate_summary_index_task.py | 74 | # Check if summary index is enabled | COMMENT |
| LOW | api/tasks/duplicate_document_indexing_task.py | 57 | # Check if there are waiting tasks in the queue | COMMENT |
| LOW | api/tasks/document_indexing_task.py | 209 | # Check if there are waiting tasks in the queue | COMMENT |
| LOW | api/tasks/workflow_node_execution_tasks.py | 55 | # Check if node execution already exists | COMMENT |
| LOW | api/tasks/workflow_execution_tasks.py | 53 | # Check if workflow run already exists | COMMENT |
| LOW⚡ | …i/tasks/rag_pipeline/priority_rag_pipeline_run_task.py | 81 | # Check if there are waiting tasks in the queue | COMMENT |
| LOW⚡ | api/tasks/rag_pipeline/rag_pipeline_run_task.py | 87 | # Check if there are waiting tasks in the queue | COMMENT |
| LOW | api/docker/entrypoint.sh | 25 | # Set MAX_WORKERS to the number of available cores if not specified | COMMENT |
| LOW | api/core/datasource/datasource_file_manager.py | 162 | # Check if message_file is not None | COMMENT |
| LOW | api/core/tools/tool_file_manager.py | 177 | # Check if message_file is not None | COMMENT |
| LOW | api/core/tools/utils/text_processing_utils.py | 15 | # Check if text starts with a markdown link - preserve it | COMMENT |
| LOW | api/core/tools/mcp_tool/tool.py | 113 | # Check if content looks like JSON before attempting to parse | COMMENT |
| LOW | api/core/app/apps/base_app_generator.py | 141 | # Check if all files are converted to File | COMMENT |
| LOW | api/core/plugin/utils/chunk_merger.py | 60 | # Check if file is too large (before appending) | COMMENT |
| LOW | api/core/plugin/utils/chunk_merger.py | 66 | # Check if single chunk is too large | COMMENT |
| LOW | …ories/sqlalchemy_workflow_node_execution_repository.py | 385 | # Check if record already exists | COMMENT |
| LOW | api/core/agent/fc_agent_runner.py | 228 | # Check if max iteration is reached and model still wants to call tools | COMMENT |
| LOW | api/core/agent/cot_agent_runner.py | 179 | # Check if max iteration is reached and model still wants to call tools | COMMENT |
| LOW | api/core/mcp/client/streamable_client.py | 416 | # Check if we should stop | COMMENT |
| LOW | api/core/mcp/client/streamable_client.py | 431 | # Check if this is a resumption request | COMMENT |
| LOW | api/core/rag/datasource/retrieval_service.py | 514 | # Check if this is a summary document | COMMENT |
| LOW | api/core/rag/datasource/retrieval_service.py | 652 | # Check if this segment was retrieved via summary | COMMENT |
| LOW | api/core/rag/datasource/retrieval_service.py | 698 | # Check if this segment was retrieved via summary | COMMENT |
| LOW | api/core/schemas/resolver.py | 309 | # Check if this dict has a $ref field | COMMENT |
| LOW | api/core/prompt/simple_prompt_transform.py | 328 | # Check if the prompt file is already loaded | COMMENT |
| LOW | api/core/ops/ops_trace_manager.py | 146 | # Check if there's a model-specific config | COMMENT |
| LOW | api/core/ops/utils.py | 97 | # Check if scheme is allowed | COMMENT |
| LOW | api/core/ops/utils.py | 128 | # Check if scheme is allowed | COMMENT |
| LOW | api/core/helper/ssrf_proxy.py | 192 | # Check if this is a Squid SSRF rejection | COMMENT |
| LOW | api/core/helper/csv_sanitizer.py | 54 | # Check if first character is a formula initiator | COMMENT |
| LOW | api/core/helper/credential_utils.py | 77 | # Check if credential exists in database first (if requested) | COMMENT |
| LOW | api/core/logging/filters.py | 74 | # Check if user is authenticated using the proxy | COMMENT |
| LOW | api/core/entities/mcp_provider.py | 216 | # Check if we have nested client_information structure | COMMENT |
| LOW | api/core/entities/provider_configuration.py | 719 | # Check if this credential is used in load balancing configs | COMMENT |
| LOW | api/core/entities/provider_configuration.py | 738 | # Check if this is the currently active credential | COMMENT |
| LOW | api/core/entities/provider_configuration.py | 1222 | # Check if this is the currently active credential | COMMENT |
| LOW | …b-oceanbase/src/dify_vdb_oceanbase/oceanbase_vector.py | 87 | self._hybrid_search_enabled = self._check_hybrid_search_support() # Check if hybrid search is supported | CODE |
| LOW | …rch/src/dify_vdb_elasticsearch/elasticsearch_vector.py | 86 | # Check if using Elastic Cloud | COMMENT |
| LOW | …rch/src/dify_vdb_elasticsearch/elasticsearch_vector.py | 321 | # Check if ELASTICSEARCH_USE_CLOUD is explicitly set to false (boolean) | COMMENT |
| LOW | …rs/vdb/vdb-chroma/src/dify_vdb_chroma/chroma_vector.py | 128 | # Check if results contain data | COMMENT |
| LOW | …b-couchbase/src/dify_vdb_couchbase/couchbase_vector.py | 201 | # Check if the collection exists in the scope | STRING |
| LOW | …lickzetta/src/dify_vdb_clickzetta/clickzetta_vector.py | 214 | # Check if connection is not expired and still valid | COMMENT |
| LOW | …lickzetta/src/dify_vdb_clickzetta/clickzetta_vector.py | 486 | # Check if table already exists to avoid unnecessary index creation | COMMENT |
| LOW | …lickzetta/src/dify_vdb_clickzetta/clickzetta_vector.py | 527 | # Check if vector index already exists on the embedding column | COMMENT |
| LOW | …lickzetta/src/dify_vdb_clickzetta/clickzetta_vector.py | 560 | # Check if an inverted index already exists on this column | COMMENT |
| LOW | …lickzetta/src/dify_vdb_clickzetta/clickzetta_vector.py | 678 | # Check if we have any valid data to insert | COMMENT |
| 112 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | sdks/nodejs-client/scripts/publish.sh | 127 | # Step 1: Environment Check | COMMENT |
| LOW⚡ | sdks/nodejs-client/scripts/publish.sh | 164 | # Step 2: Read Package Info | COMMENT |
| LOW⚡ | sdks/nodejs-client/scripts/publish.sh | 187 | # Step 3: Install Dependencies | COMMENT |
| LOW⚡ | sdks/nodejs-client/scripts/publish.sh | 195 | # Step 4: Run Tests | COMMENT |
| LOW⚡ | sdks/nodejs-client/scripts/publish.sh | 207 | # Step 5: Build | COMMENT |
| LOW⚡ | sdks/nodejs-client/scripts/publish.sh | 229 | # Step 6: Publish | COMMENT |
| LOW⚡ | …-panel/subscription-list/edit/__tests__/index.spec.tsx | 1271 | // Step 1: Verify | COMMENT |
| LOW⚡ | …-panel/subscription-list/edit/__tests__/index.spec.tsx | 1277 | // Step 2: Update | COMMENT |
| LOW⚡ | …in/install-from-local-package/__tests__/index.spec.tsx | 1929 | // Step 1: Uploading | COMMENT |
| LOW⚡ | …in/install-from-local-package/__tests__/index.spec.tsx | 1932 | // Step 2: Upload complete, transition to readyToInstall | COMMENT |
| LOW⚡ | …in/install-from-local-package/__tests__/index.spec.tsx | 1940 | // Step 3: Start installation | COMMENT |
| LOW⚡ | …in/install-from-local-package/__tests__/index.spec.tsx | 1944 | // Step 4: Installation complete | COMMENT |
| LOW⚡ | …in/install-from-local-package/__tests__/index.spec.tsx | 2006 | // Step 1: Uploading | COMMENT |
| LOW⚡ | …in/install-from-local-package/__tests__/index.spec.tsx | 2010 | // Step 2: Upload complete, transition to readyToInstall | COMMENT |
| LOW⚡ | …in/install-from-local-package/__tests__/index.spec.tsx | 2019 | // Step 3: Start installation | COMMENT |
| LOW⚡ | …in/install-from-local-package/__tests__/index.spec.tsx | 2023 | // Step 4: Installation complete | COMMENT |
| LOW⚡ | …ets/create/website/watercrawl/__tests__/index.spec.tsx | 1696 | // Step 1: Enter URL | COMMENT |
| LOW⚡ | …ets/create/website/watercrawl/__tests__/index.spec.tsx | 1700 | // Step 2: Run crawl | COMMENT |
| LOW⚡ | …ets/create/website/watercrawl/__tests__/index.spec.tsx | 1703 | // Step 3: Wait for completion | COMMENT |
| LOW⚡ | …ets/create/website/watercrawl/__tests__/index.spec.tsx | 1708 | // Step 4: Click preview | COMMENT |
| LOW⚡ | …pp/components/datasets/create/__tests__/index.spec.tsx | 1110 | // Step 1: Set up data | COMMENT |
| LOW⚡ | …pp/components/datasets/create/__tests__/index.spec.tsx | 1114 | // Step 2: Set caches | COMMENT |
| LOW⚡ | …components/variable/__tests__/output-var-list.spec.tsx | 88 | // Step 1: rename var_2 -> var_1 (creates duplicate) | COMMENT |
| LOW⚡ | …components/variable/__tests__/output-var-list.spec.tsx | 98 | // Step 2: rename second var_1 -> var_2 (restores unique names) | COMMENT |
| LOW⚡ | web/app/components/base/mermaid/index.tsx | 254 | // Step 1: Clean and prepare Mermaid code using the extracted prepareMermaidCode function | COMMENT |
| LOW⚡ | web/app/components/base/mermaid/index.tsx | 261 | // Step 2: Render chart | COMMENT |
| LOW⚡ | web/app/components/base/mermaid/index.tsx | 264 | // Step 3: Apply theme to SVG using the extracted processSvgForTheme function | COMMENT |
| LOW⚡ | web/app/components/base/mermaid/index.tsx | 272 | // Step 4: Clean up SVG code | COMMENT |
| LOW⚡ | …b/__tests__/datasets/pipeline-datasource-flow.test.tsx | 390 | // Step 1: Set credential | COMMENT |
| LOW⚡ | …b/__tests__/datasets/pipeline-datasource-flow.test.tsx | 393 | // Step 2: Set file list | COMMENT |
| LOW⚡ | …b/__tests__/datasets/pipeline-datasource-flow.test.tsx | 397 | // Step 3: Select current file for preview | COMMENT |
| LOW⚡ | …b/__tests__/datasets/pipeline-datasource-flow.test.tsx | 410 | // Step 1: Set credential | COMMENT |
| LOW⚡ | …b/__tests__/datasets/pipeline-datasource-flow.test.tsx | 413 | // Step 2: Init crawl | COMMENT |
| LOW⚡ | …b/__tests__/datasets/pipeline-datasource-flow.test.tsx | 416 | // Step 3: Crawl completes with results | COMMENT |
| LOW⚡ | …b/__tests__/datasets/pipeline-datasource-flow.test.tsx | 425 | // Step 4: Set website pages from results | COMMENT |
| LOW⚡ | …b/__tests__/datasets/pipeline-datasource-flow.test.tsx | 428 | // Step 5: Set preview | COMMENT |
| LOW⚡ | …b/__tests__/datasets/pipeline-datasource-flow.test.tsx | 445 | // Step 1: Set credential | COMMENT |
| LOW⚡ | …b/__tests__/datasets/pipeline-datasource-flow.test.tsx | 448 | // Step 2: Set bucket | COMMENT |
| LOW⚡ | …b/__tests__/datasets/pipeline-datasource-flow.test.tsx | 452 | // Step 3: Navigate into folders | COMMENT |
| LOW⚡ | …b/__tests__/datasets/pipeline-datasource-flow.test.tsx | 462 | // Step 4: Navigate deeper | COMMENT |
| LOW⚡ | …b/__tests__/datasets/pipeline-datasource-flow.test.tsx | 466 | // Step 5: Select files | COMMENT |
| LOW | web/__tests__/explore/sidebar-lifecycle-flow.test.tsx | 101 | // Step 1: Start with an unpinned app and pin it | COMMENT |
| LOW | web/__tests__/explore/sidebar-lifecycle-flow.test.tsx | 114 | // Step 2: Simulate refetch returning pinned state, then unpin | COMMENT |
| LOW⚡ | web/__tests__/explore/sidebar-lifecycle-flow.test.tsx | 139 | // Step 1: Open operation menu and click delete | COMMENT |
| LOW⚡ | web/__tests__/explore/sidebar-lifecycle-flow.test.tsx | 143 | // Step 2: Confirm dialog appears | COMMENT |
| LOW⚡ | web/__tests__/explore/sidebar-lifecycle-flow.test.tsx | 146 | // Step 3: Confirm deletion | COMMENT |
| LOW⚡ | web/__tests__/explore/sidebar-lifecycle-flow.test.tsx | 149 | // Step 4: Uninstall API called and success toast shown | COMMENT |
| LOW | web/__tests__/explore/explore-app-list-flow.test.tsx | 381 | // Step 1: User clicks "Add to Workspace" on an app card | COMMENT |
| LOW⚡ | web/__tests__/explore/explore-app-list-flow.test.tsx | 397 | // Step 2: Click the app card - opens create modal in self-hosted/non-cloud mode | COMMENT |
| LOW⚡ | web/__tests__/explore/explore-app-list-flow.test.tsx | 400 | // Step 3: Confirm creation in modal | COMMENT |
| LOW⚡ | web/__tests__/explore/explore-app-list-flow.test.tsx | 403 | // Step 4: API fetches app detail | COMMENT |
| LOW⚡ | web/__tests__/explore/explore-app-list-flow.test.tsx | 408 | // Step 5: DSL import triggers pending confirmation | COMMENT |
| LOW⚡ | web/__tests__/explore/explore-app-list-flow.test.tsx | 411 | // Step 6: DSL confirm modal appears and user confirms | COMMENT |
| LOW⚡ | web/__tests__/explore/explore-app-list-flow.test.tsx | 415 | // Step 7: Flow completes successfully | COMMENT |
| LOW⚡ | web/__tests__/explore/explore-app-list-flow.test.tsx | 425 | // Step 1: Loading state | COMMENT |
| LOW⚡ | web/__tests__/explore/explore-app-list-flow.test.tsx | 432 | // Step 2: Data loads | COMMENT |
| LOW⚡ | cli/test/e2e/suites/run/run-app-conversation.e2e.ts | 519 | // Step 1: create a conversation with chatApp. | COMMENT |
| LOW⚡ | cli/test/e2e/suites/run/run-app-conversation.e2e.ts | 526 | // Step 2: attempt to continue that conversation using fileChatApp. | COMMENT |
| LOW | cli/test/e2e/suites/run/run-app-conversation.e2e.ts | 412 | // Step 1: Start a new conversation with a file — get the conversation_id. | COMMENT |
| LOW | cli/test/e2e/suites/run/run-app-conversation.e2e.ts | 428 | // Step 2: Continue the same conversation with another file upload. | COMMENT |
| 61 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …dify_agent/agent_stub/server/test_agent_stub_config.py | 166 | push_response = await request_handler.push( | CODE |
| HIGH | …dify_agent/agent_stub/server/test_agent_stub_config.py | 272 | await request_handler.push(principal=_principal(), request=AgentStubConfigPushRequest()) | CODE |
| HIGH | …dify_agent/agent_stub/server/test_agent_stub_config.py | 304 | await request_handler.push(principal=_principal(**context_updates), request=AgentStubConfigPushRequest()) | CODE |
| HIGH | …gent/src/dify_agent/agent_stub/server/control_plane.py | 181 | return await handler.push(principal=principal, request=request) | CODE |
| HIGH | api/core/app/apps/agent_app/app_runner.py | 960 | debounced_delta = text_delta_debouncer.push(internal_event.delta) | CODE |
| HIGH⚡ | api/core/workflow/generator/prompts/builder_prompts.py | 146 | "multiple_retrieval_config": {"top_k": 4, "score_threshold": null, | CODE |
| HIGH⚡ | api/core/workflow/generator/prompts/builder_prompts.py | 153 | "outputs": {"result": {"type": "string", "children": null}}}""", | CODE |
| HIGH⚡ | api/core/workflow/generator/prompts/builder_prompts.py | 161 | "authorization": {"type": "no-auth", "config": null}, | CODE |
| HIGH | …tta/tests/integration_tests/test_docker_integration.py | 151 | "1. Run: cd docker && docker-compose -f docker-compose.yaml -f docker-compose.clickzetta.yaml up -d" | CODE |
| HIGH⚡ | …t_tests/tasks/test_remove_app_and_related_data_task.py | 44 | '"metadata":{},"config":null}]' | CODE |
| HIGH | …it_tests/core/app/apps/agent_app/test_session_store.py | 321 | composition_layer_specs='[{"name":"execution_context","type":"dify.execution_context","deps":{},"metadat | CODE |
| HIGH | …it_tests/core/app/apps/agent_app/test_session_store.py | 335 | composition_layer_specs='[{"name":"execution_context","type":"dify.execution_context","deps":{},"metadat | CODE |
| HIGH | api/tests/unit_tests/core/plugin/test_plugin_runtime.py | 679 | f'data: {{"code": -500, "message": {json.dumps(error_obj)}, "data": null}}', | CODE |
| HIGH | api/tests/unit_tests/core/plugin/test_plugin_runtime.py | 1127 | f'data: {{"code": -500, "message": {json.dumps(error_obj)}, "data": null}}', | CODE |
| HIGH⚡ | …s/unit_tests/core/plugin/impl/test_base_client_impl.py | 134 | client, "_stream_request", return_value=iter(['{"code":-500,"message":"not-json","data":null}']) | CODE |
| HIGH⚡ | …s/unit_tests/core/plugin/impl/test_base_client_impl.py | 143 | mocker.patch.object(client, "_stream_request", return_value=iter(['{"code":-1,"message":"err","data":null}'])) | CODE |
| HIGH⚡ | …s/unit_tests/core/plugin/impl/test_base_client_impl.py | 150 | mocker.patch.object(client, "_stream_request", return_value=iter(['{"code":0,"message":"","data":null}'])) | CODE |
| HIGH | api/tests/unit_tests/core/mcp/test_types.py | 158 | request_json = '{"jsonrpc": "2.0", "id": 1, "method": "test", "params": null}' | CODE |
| HIGH⚡ | api/tests/unit_tests/core/mcp/client/test_sse.py | 24 | json_message = '{"jsonrpc": "2.0", "id": "123", "method": "ping", "params": null}' | CODE |
| HIGH⚡ | api/tests/unit_tests/core/mcp/client/test_sse.py | 39 | json_message = '{"jsonrpc": "2.0", "method": "ping", "params": null}' | CODE |
| HIGH | api/tests/unit_tests/libs/test_oauth_clients.py | 137 | # The profile email is absent/null, so /user/emails should be called | COMMENT |
| HIGH | …tests/unit_tests/commands/test_check_no_new_getattr.py | 230 | "base-rev: ${{ github.event.pull_request.base.sha || github.event.merge_group.base_sha }}" | CODE |
| HIGH | …t_tests/controllers/console/app/test_app_import_api.py | 232 | b'{"import_mode":"yaml-content","yaml_content":"app: {}","app_id":null,' | CODE |
| HIGH | …t_tests/controllers/console/app/test_app_import_api.py | 233 | b'"name":null,"description":null,"icon_type":null,"icon":null,"icon_background":null}' | CODE |
| HIGH | …t_tests/controllers/console/app/test_app_import_api.py | 271 | b'"name":null,"description":null,"icon_type":null,"icon":null,"icon_background":null}' | CODE |
| HIGH | api/tests/unit_tests/services/test_billing_service.py | 417 | """When billing serializes skipped vector_space as null, get_info treats it as absent.""" | STRING |
| HIGH | …tests/unit_tests/services/test_agent_config_service.py | 175 | service.push( | CODE |
| HIGH | …tests/unit_tests/services/test_agent_config_service.py | 248 | manifest = service.push( | CODE |
| HIGH | …/unit_tests/services/tools/test_mcp_tools_transform.py | 312 | mock_provider_full.tools = '[{"name": "tool1", "description": null, "inputSchema": {}}]' | CODE |
| HIGH | …ts/services/agent/test_skill_tool_inference_service.py | 35 | '{"inferable": true, "reason": null, "cli_tools": [{"name": "ffmpeg",' | CODE |
| HIGH | …ts/services/agent/test_skill_tool_inference_service.py | 96 | raw = 'Here you go: {"inferable": true, "cli_tools": [], "reason": null,}' | CODE |
| HIGH | …ntainers_integration_tests/controllers/mcp/test_mcp.py | 595 | """An unsupported header gets a JSON-RPC error echoing the request id (missing id -> null).""" | STRING |
| HIGH | …ntegration_tests/services/test_conversation_service.py | 1115 | composition_layer_specs='[{"name":"history","type":"pydantic_ai.history","deps":{},"metadata":{},"config":nu | CODE |
| HIGH | …ntegration_tests/services/test_conversation_service.py | 1220 | composition_layer_specs='[{"name":"history","type":"pydantic_ai.history","deps":{},"metadata":{},"config":nu | CODE |
| HIGH | …ntegration_tests/services/test_conversation_service.py | 1276 | composition_layer_specs='[{"name":"history","type":"pydantic_ai.history","deps":{},"metadata":{},"config":nu | CODE |
| HIGH | …ntegration_tests/services/test_conversation_service.py | 1321 | composition_layer_specs='[{"name":"history","type":"pydantic_ai.history","deps":{},"metadata":{},"config":nu | CODE |
| HIGH | …repositories/sqlalchemy_api_workflow_run_repository.py | 32 | from sqlalchemy import and_, delete, func, null, or_, select, tuple_ | CODE |
| HIGH | api/controllers/mcp/mcp.py | 104 | offending request's id directly (None -> null) instead of fabricating a placeholder. | STRING |
| HIGH | api/services/billing_service.py | 214 | # Unset proto message fields can be serialized as null; the light billing contract treats it as absent. | COMMENT |
| HIGH | api/services/agent/skill_tool_inference_service.py | 85 | "reason": str | null} | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …dataset-config/settings-modal/__tests__/index.spec.tsx | 416 | // Validation guardrails before saving. | COMMENT |
| MEDIUM | …lls/frontend-code-review/references/dify-invariants.md | 12 | ## Workflow Nodes And RAG Pipe | COMMENT |
| MEDIUM | cli/ARD.md | 29 | ## New command scaffold | COMMENT |
| MEDIUM | cli/test/e2e/README.md | 147 | (PR #37460): `--think` surfaces the chain-of-thought to stderr framed as | CODE |
| MEDIUM⚡ | api/tasks/regenerate_summary_index_task.py | 164 | # Re-vectorize with new embedding model | COMMENT |
| MEDIUM | api/tasks/async_workflow_tasks.py | 199 | # Final failure - no retry logic (simplified like RAG tasks) | COMMENT |
| MEDIUM | api/core/indexing_runner.py | 789 | # get embedding model instance | COMMENT |
| MEDIUM | api/core/rag/datasource/vdb/vector_factory.py | 124 | # construction. The real embedding model is materialized only when an | COMMENT |
| MEDIUM | api/core/workflow/node_factory.py | 507 | # Stage 4 §5/§7: per-output validation + failure orchestration. The | COMMENT |
| MEDIUM | api/core/workflow/nodes/agent_v2/agent_node.py | 412 | # ──── Stage 4: orchestrate retry / default / fail ──── | COMMENT |
| MEDIUM | api/enterprise/telemetry/enterprise_trace.py | 807 | # Get embedding model for this specific dataset | COMMENT |
| MEDIUM⚡ | api/constants/pipeline_templates.json | 1356 | "export_data": "dependencies:\n- current_identifier: null\n type: marketplace\n value:\n marketplace_plugin_u | CODE |
| MEDIUM⚡ | api/constants/pipeline_templates.json | 1356 | "export_data": "dependencies:\n- current_identifier: null\n type: marketplace\n value:\n marketplace_plugin_u | CODE |
| MEDIUM | api/constants/pipeline_templates.json | 122 | "export_data": "dependencies:\n- current_identifier: null\n type: marketplace\n value:\n marketplace_plugin_u | CODE |
| MEDIUM | api/constants/pipeline_templates.json | 122 | "export_data": "dependencies:\n- current_identifier: null\n type: marketplace\n value:\n marketplace_plugin_u | CODE |
| MEDIUM | api/constants/pipeline_templates.json | 3875 | "export_data": "dependencies:\n- current_identifier: null\n type: marketplace\n value:\n marketplace_plugin_u | CODE |
| MEDIUM | api/constants/pipeline_templates.json | 3875 | "export_data": "dependencies:\n- current_identifier: null\n type: marketplace\n value:\n marketplace_plugin_u | CODE |
| MEDIUM | api/constants/pipeline_templates.json | 5191 | "export_data": "dependencies:\n- current_identifier: null\n type: marketplace\n value:\n marketplace_plugin_uni | CODE |
| MEDIUM | …ace-tencent/src/dify_trace_tencent/entities/semconv.py | 85 | RETRIEVER = "RETRIEVER" # RAG | CODE |
| MEDIUM | …t_tests/core/rag/datasource/vdb/test_vector_factory.py | 169 | # embedding model until ``embed_*`` is invoked, so cleanup paths never | COMMENT |
| MEDIUM | api/tests/unit_tests/core/rag/rerank/test_reranker.py | 684 | # Mock embedding model | COMMENT |
| MEDIUM | …ests/unit_tests/core/workflow/generator/test_runner.py | 2096 | # Only "real_search" is installed; "fake_search" is the hallucination. | COMMENT |
| MEDIUM | …ers/console/app/test_workflow_human_input_debug_api.py | 34 | # Skip setup and auth guardrails | COMMENT |
| MEDIUM | …it_tests/controllers/console/datasets/test_datasets.py | 863 | # embedding model NOT configured | COMMENT |
| MEDIUM | api/tests/unit_tests/services/test_workflow_service.py | 170 | # Add trigger node for event-driven workflows (webhook, schedule, etc.) | COMMENT |
| MEDIUM | api/tests/unit_tests/services/test_workflow_service.py | 782 | # Trigger nodes enable event-driven automation which consumes resources | COMMENT |
| MEDIUM | …tests/tasks/test_batch_create_segment_to_index_task.py | 67 | # Mock embedding model for high quality indexing | COMMENT |
| MEDIUM | api/controllers/service_api/dataset/dataset.py | 655 | # check embedding model setting | COMMENT |
| MEDIUM | api/controllers/service_api/dataset/segment.py | 201 | # check embedding model setting | COMMENT |
| MEDIUM | api/controllers/service_api/dataset/segment.py | 291 | # check embedding model setting | COMMENT |
| MEDIUM | api/controllers/service_api/dataset/segment.py | 417 | # check embedding model setting | COMMENT |
| MEDIUM | api/controllers/service_api/dataset/segment.py | 556 | # check embedding model setting | COMMENT |
| MEDIUM | api/controllers/console/app/generator.py | 59 | # planner+builder prompts well inside every mainstream context window. | COMMENT |
| MEDIUM | api/controllers/console/datasets/datasets.py | 667 | # check embedding model setting | COMMENT |
| MEDIUM | api/controllers/console/datasets/datasets_segments.py | 369 | # check embedding model setting | COMMENT |
| MEDIUM | api/controllers/console/datasets/datasets_segments.py | 424 | # check embedding model setting | COMMENT |
| MEDIUM | api/controllers/console/datasets/datasets_segments.py | 498 | # check embedding model setting | COMMENT |
| MEDIUM | api/controllers/console/datasets/datasets_segments.py | 682 | # check embedding model setting | COMMENT |
| MEDIUM | api/services/vector_service.py | 52 | # get embedding model instance | COMMENT |
| MEDIUM | api/services/vector_service.py | 54 | # check embedding model setting | COMMENT |
| MEDIUM⚡ | api/services/dataset_service.py | 935 | # Remove embedding model configuration for economy mode | COMMENT |
| MEDIUM⚡ | api/services/dataset_service.py | 941 | # Configure embedding model for high quality mode | COMMENT |
| MEDIUM⚡ | api/services/dataset_service.py | 945 | # Handle embedding model updates when indexing technique remains the same | COMMENT |
| MEDIUM⚡ | api/services/dataset_service.py | 1023 | # If the dataset already has embedding model settings, use those | COMMENT |
| MEDIUM⚡ | api/services/dataset_service.py | 1030 | # Otherwise, don't try to update embedding model settings at all | COMMENT |
| MEDIUM | api/services/dataset_service.py | 427 | # check if embedding model setting is valid | COMMENT |
| MEDIUM | api/services/dataset_service.py | 790 | # Handle indexing technique changes and embedding model updates | COMMENT |
| MEDIUM | api/services/dataset_service.py | 1002 | # Skip embedding model checks if not provided in the update request | COMMENT |
| MEDIUM | api/services/dataset_service.py | 1096 | # If we can't get the embedding model, preserve existing settings | COMMENT |
| MEDIUM | api/services/dataset_service.py | 1107 | # Skip the rest of the embedding model update | COMMENT |
| MEDIUM | api/services/dataset_service.py | 1110 | # Apply new embedding model settings | COMMENT |
| MEDIUM | api/services/dataset_service.py | 1225 | # get embedding model setting | COMMENT |
| MEDIUM | api/services/dataset_service.py | 1259 | # Skip embedding model checks if not provided in the update request | COMMENT |
| MEDIUM | api/services/dataset_service.py | 1275 | # Only update embedding model if both values are provided and different from current | COMMENT |
| MEDIUM | api/services/dataset_service.py | 1291 | # If we can't get the embedding model, skip updating it | COMMENT |
| MEDIUM | api/services/dataset_service.py | 1293 | # Skip the rest of the embedding model update | COMMENT |
| MEDIUM | api/services/dataset_service.py | 3574 | # get embedding model instance | COMMENT |
| MEDIUM | api/services/dataset_service.py | 3576 | # check embedding model setting | COMMENT |
| MEDIUM | api/services/dataset_service.py | 3685 | # get embedding model instance | COMMENT |
| MEDIUM | api/services/dataset_service.py | 3687 | # check embedding model setting | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | docker/dify-env-sync.sh | 231 | # Numeric check - using arithmetic evaluation for robust comparison | COMMENT |
| MEDIUM | web/app/components/goto-anything/context.tsx | 46 | // Update context based on current pathname using more robust route matching | COMMENT |
| MEDIUM | …/chat-with-history/header/__tests__/operation.spec.tsx | 90 | // Find trigger container by text and traverse to interactive container using a more robust selector | COMMENT |
| MEDIUM | web/app/components/base/mermaid/utils.ts | 193 | // parser is more robust. | COMMENT |
| MEDIUM | web/public/vs/language/css/cssWorker.js | 73 | This is used to produce an effect that is known as tate-ch\u016B-yoko (\u7E26\u4E2D\u6A2A) in Japanese, or as \u76F4\u66 | CODE |
| MEDIUM | web/public/vs/language/html/htmlWorker.js | 259 | * To learn about this declaration in Firefox for Mobile, see [this article](https://developer.mozilla.org/en-US/do | COMMENT |
| MEDIUM | web/public/vs/language/html/htmlWorker.js | 270 | Default mode, which indicates no preference for the decoding mode. The browser decides what is best for the user.`}},{na | CODE |
| MEDIUM | web/public/vs/language/html/htmlWorker.js | 270 | Default mode, which indicates no preference for the decoding mode. The browser decides what is best for the user.`}},{na | CODE |
| MEDIUM | web/public/vs/language/html/htmlWorker.js | 288 | **Note**: Sites that automatically play audio (or videos with an audio track) can be an unpleasant experience for users, | CODE |
| MEDIUM | api/constants/recommended_apps.json | 426 | "export_data": "app:\n icon: \"\\U0001F911\"\n icon_background: '#E4FBCC'\n mode: agent-chat\n name: Inv | CODE |
| MEDIUM | api/constants/recommended_apps.json | 426 | "export_data": "app:\n icon: \"\\U0001F911\"\n icon_background: '#E4FBCC'\n mode: agent-chat\n name: Inv | CODE |
| MEDIUM | api/constants/recommended_apps.json | 444 | "export_data": "app:\n icon: \"\\U0001F916\"\n icon_background: '#FFEAD5'\n mode: chat\n name: Python bu | CODE |
| MEDIUM | api/constants/recommended_apps.json | 484 | "export_data": "app:\n icon: \"\\U0001F522\"\n icon_background: '#E4FBCC'\n mode: agent-chat\n name: You | CODE |
| MEDIUM | api/constants/recommended_apps.json | 500 | "export_data": "app:\n icon: \"\\U0001F916\"\n icon_background: '#FFEAD5'\n mode: workflow\n name: SEO B | CODE |
| MEDIUM | api/constants/recommended_apps.json | 516 | "export_data": "app:\n icon: \"\\U0001F916\"\n icon_background: '#FFEAD5'\n mode: workflow\n name: 'Sent | CODE |
| MEDIUM⚡ | api/constants/pipeline_templates.json | 1356 | "export_data": "dependencies:\n- current_identifier: null\n type: marketplace\n value:\n marketplace_plugin_u | CODE |
| MEDIUM | api/constants/pipeline_templates.json | 3132 | "export_data": "dependencies:\n- current_identifier: null\n type: marketplace\n value:\n marketplace_plugin_u | CODE |
| MEDIUM | api/constants/pipeline_templates.json | 3132 | "export_data": "dependencies:\n- current_identifier: null\n type: marketplace\n value:\n marketplace_plugin_u | CODE |
| MEDIUM⚡ | …i/tests/unit_tests/core/datasource/test_file_upload.py | 888 | """Tests for comprehensive filename validation logic. | STRING |
| LOW | …s/core/datasource/entities/test_datasource_entities.py | 72 | # For STRING, it should just return the value as is (or cast to str) | COMMENT |
| MEDIUM | api/tests/unit_tests/core/plugin/test_plugin_manager.py | 974 | # Arrange & Act: Create resource requirements with comprehensive model permissions | COMMENT |
| LOW⚡ | …sts/unit_tests/core/mcp/session/test_client_session.py | 576 | # Should just pass (case _:) | COMMENT |
| MEDIUM | …/tests/unit_tests/core/workflow/test_workflow_entry.py | 481 | # Define comprehensive variable mapping | COMMENT |
| MEDIUM | …i/tests/unit_tests/core/workflow/test_variable_pool.py | 193 | # Create comprehensive system variables | COMMENT |
| MEDIUM | …i/tests/unit_tests/core/workflow/test_variable_pool.py | 272 | # Create comprehensive user inputs | COMMENT |
| MEDIUM⚡ | …i/tests/unit_tests/core/workflow/test_variable_pool.py | 344 | # Create a comprehensive VariablePool with all data types | COMMENT |
| MEDIUM | …i/tests/unit_tests/core/workflow/test_variable_pool.py | 363 | # Create a comprehensive VariablePool with all data types | COMMENT |
| LOW | …t_tests/core/workflow/generator/test_runner_missing.py | 28 | # BuiltinNodeTypes is not imported directly, we need to mock or just use the generator method | COMMENT |
| MEDIUM | …ts/core/external_data_tool/test_external_data_fetch.py | 30 | # This approach is robust regardless of thread scheduling order | COMMENT |
| MEDIUM | …nit_tests/commands/test_legacy_model_type_migration.py | 1048 | except BaseException as exc: # pragma: no cover - test harness | CODE |
| MEDIUM | …nit_tests/commands/test_legacy_model_type_migration.py | 1135 | except BaseException as exc: # pragma: no cover - test harness | CODE |
| MEDIUM⚡ | api/tests/unit_tests/services/controller_api.py | 930 | # When writing API tests, consider the following best practices: | COMMENT |
| MEDIUM | …s/unit_tests/services/test_external_dataset_service.py | 144 | """Test get_external_knowledge_apis operations - comprehensive coverage.""" | STRING |
| MEDIUM | …s/unit_tests/services/test_external_dataset_service.py | 1236 | """Test process_external_api operations - comprehensive HTTP method coverage.""" | STRING |
| MEDIUM | …s/unit_tests/services/test_external_dataset_service.py | 1384 | """Test assembling_headers operations - comprehensive authorization coverage.""" | STRING |
| MEDIUM | …services/rag_pipeline/test_rag_pipeline_dsl_service.py | 550 | # --- export_rag_pipeline_dsl comprehensive --- | STRING |
| MEDIUM | …ation_tests/tasks/test_create_segment_to_index_task.py | 1075 | # Arrange: Create comprehensive test scenario | COMMENT |
| MEDIUM | …ation_tests/tasks/test_create_segment_to_index_task.py | 1093 | # Assert: Verify comprehensive success | COMMENT |
| MEDIUM | api/models/workflow.py | 1688 | # `WorkflowEntry.handle_special_values`, making a comprehensive migration challenging. | COMMENT |
| LOW | api/libs/external_api.py | 35 | # If Werkzeug already prepared a Response, just use it. This bypasses | COMMENT |
| LOW | api/services/workflow_draft_variable_service.py | 426 | # For consistency, we should simply return when processing VARIABLE_ASSIGNER nodes. | COMMENT |
| LOW⚡ | api/services/snippet_dsl_service.py | 512 | # For now, just return the dataset_id as-is | COMMENT |
| LOW | api/services/variable_truncator.py | 475 | # without any truncation, so just return it as-is | COMMENT |
| MEDIUM | api/services/workflow_event_snapshot_service.py | 110 | # ensure that we can utilize the index. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …fy-agent/tests/local/dify_agent/runtime/test_runner.py | 167 | CODE | |
| LOW | dify-agent/src/dify_agent/agent_stub/cli/_drive.py | 101 | CODE | |
| LOW | dify-agent/src/shellctl/cli.py | 90 | CODE | |
| LOW | dify-agent/src/shellctl/cli.py | 257 | CODE | |
| LOW | api/core/tools/utils/web_reader_tool.py | 97 | CODE | |
| LOW | api/core/app/apps/chat/generate_response_converter.py | 38 | CODE | |
| LOW | api/core/app/apps/workflow/generate_task_pipeline.py | 791 | CODE | |
| LOW | api/core/app/apps/advanced_chat/app_generator.py | 482 | CODE | |
| LOW | …/app/apps/advanced_chat/generate_response_converter.py | 60 | CODE | |
| LOW | …ore/app/apps/agent_chat/generate_response_converter.py | 38 | CODE | |
| LOW | api/core/plugin/impl/model.py | 48 | CODE | |
| LOW | api/core/plugin/backwards_invocation/model.py | 188 | CODE | |
| LOW | api/core/plugin/backwards_invocation/model.py | 211 | CODE | |
| LOW | api/core/rag/datasource/retrieval_service.py | 781 | CODE | |
| LOW | api/core/workflow/nodes/agent/agent_node.py | 196 | CODE | |
| LOW | api/core/helper/code_executor/template_transformer.py | 71 | CODE | |
| LOW | api/core/moderation/api/api.py | 90 | CODE | |
| LOW | …s/vdb/vdb-vikingdb/tests/integration_tests/conftest.py | 24 | CODE | |
| LOW | …rs/vdb/vdb-tencent/tests/integration_tests/conftest.py | 18 | CODE | |
| LOW | …rs/vdb/vdb-tencent/tests/integration_tests/conftest.py | 124 | CODE | |
| LOW | api/tests/workflow_test_utils.py | 32 | CODE | |
| LOW | …ests/core/app/layers/test_pause_state_persist_layer.py | 101 | CODE | |
| LOW | …/test_sqlalchemy_workflow_node_execution_repository.py | 51 | CODE | |
| LOW | …tests/core/rag/datasource/test_datasource_retrieval.py | 198 | CODE | |
| LOW | …nit_tests/core/rag/retrieval/test_dataset_retrieval.py | 444 | CODE | |
| LOW | …nit_tests/core/rag/retrieval/test_dataset_retrieval.py | 515 | CODE | |
| LOW | …nit_tests/core/rag/retrieval/test_dataset_retrieval.py | 594 | CODE | |
| LOW | …nit_tests/core/rag/retrieval/test_dataset_retrieval.py | 1329 | CODE | |
| LOW | …nit_tests/core/rag/retrieval/test_dataset_retrieval.py | 1424 | CODE | |
| LOW | …nit_tests/core/rag/retrieval/test_dataset_retrieval.py | 1477 | CODE | |
| LOW | …nit_tests/core/rag/retrieval/test_dataset_retrieval.py | 1537 | CODE | |
| LOW | …nit_tests/core/rag/retrieval/test_dataset_retrieval.py | 1616 | CODE | |
| LOW | …_tests/core/workflow/graph_engine/test_table_runner.py | 295 | CODE | |
| LOW | api/tests/unit_tests/oss/__mock/aliyun_oss.py | 26 | CODE | |
| LOW | …tests/unit_tests/controllers/inner_api/app/test_dsl.py | 127 | CODE | |
| LOW | …s/unit_tests/controllers/openapi/auth/test_pipeline.py | 13 | CODE | |
| LOW | …ts/unit_tests/services/dataset_service_test_helpers.py | 299 | CODE | |
| LOW | …ts/unit_tests/services/dataset_service_test_helpers.py | 338 | CODE | |
| LOW | …ts/unit_tests/services/dataset_service_test_helpers.py | 158 | CODE | |
| LOW | …ts/unit_tests/services/dataset_service_test_helpers.py | 208 | CODE | |
| LOW | api/tests/unit_tests/services/test_oauth_device_flow.py | 25 | CODE | |
| LOW | …/unit_tests/services/test_agent_app_sandbox_service.py | 209 | CODE | |
| LOW | api/tests/unit_tests/services/test_account_service.py | 39 | CODE | |
| LOW | api/tests/unit_tests/services/test_vector_service.py | 55 | CODE | |
| LOW | …ervices/workflow/test_node_output_inspector_service.py | 64 | CODE | |
| LOW | api/tests/integration_tests/tools/__mock/http.py | 28 | CODE | |
| LOW | …/tests/integration_tests/workflow/nodes/__mock/http.py | 45 | CODE | |
| LOW | …_integration_tests/services/document_service_status.py | 41 | CODE | |
| LOW | …ers_integration_tests/services/test_dataset_service.py | 59 | CODE | |
| LOW | …ration_tests/services/test_dataset_service_document.py | 47 | CODE | |
| LOW | …s/test_dataset_service_batch_update_document_status.py | 58 | CODE | |
| LOW | …_tests/services/test_dataset_service_update_dataset.py | 58 | CODE | |
| LOW | api/extensions/ext_redis.py | 82 | CODE | |
| LOW | api/controllers/service_api/app/file_preview.py | 131 | CODE | |
| LOW | api/controllers/console/workspace/account.py | 567 | CODE | |
| LOW | …console/datasets/rag_pipeline/rag_pipeline_workflow.py | 1030 | CODE | |
| LOW | api/services/workflow_app_service.py | 42 | CODE | |
| LOW | api/services/snippet_generate_service.py | 224 | CODE | |
| LOW | api/services/account_service.py | 1937 | CODE | |
| LOW | api/services/app_dsl_service.py | 89 | CODE | |
| 14 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …/tests/unit_tests/clients/agent_backend/test_client.py | 130 | CODE | |
| MEDIUM | …tests/unit_tests/core/plugin/impl/test_model_client.py | 193 | CODE | |
| MEDIUM | …tests/unit_tests/core/plugin/impl/test_model_client.py | 524 | CODE | |
| MEDIUM | …nit_tests/core/workflow/test_workflow_entry_helpers.py | 987 | CODE | |
| MEDIUM | …/tests/unit_tests/core/workflow/nodes/llm/test_node.py | 1608 | CODE | |
| MEDIUM | …it_tests/controllers/console/app/test_generator_api.py | 673 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | sdks/php-client/README.md | 34 | $apiKey = 'your-api-key-here'; | CODE |
| HIGH | sdks/php-client/README.md | 91 | Replace 'your-api-key-here' with your actual Dify API key. | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | web/docker/entrypoint.sh | 6 | # you can use the Ubuntu terminal to convert this file to unix format | COMMENT |
| MEDIUM | …pp/create-app-dialog/app-card/__tests__/index.spec.tsx | 48 | description: 'A test chat application for demonstration purposes', | CODE |
| LOW | web/public/vs/language/css/cssWorker.js | 32 | `),[{language:"html",value:r}]}doPrint(e,t){for(let r of e)this.doPrintElement(r,t),r.children&&this.doPrint(r.children, | CODE |
| MEDIUM | web/public/vs/language/html/htmlWorker.js | 306 | **Usage note:** Do not use this attribute, as it has been deprecated. The [\`<caption>\`](https://developer.mozilla.org/ | CODE |
| MEDIUM | api/constants/recommended_apps.json | 468 | "export_data": "app:\n icon: \"\\U0001F916\"\n icon_background: '#FFEAD5'\n mode: advanced-chat\n name: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …/workflow-generator/__tests__/example-prompts.spec.tsx | 40 | // The primary content is AI-generated, workspace-grounded chips fetched on | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …ents/workflow/nodes/code/__tests__/code-parser.spec.ts | 119 | print("Hello")`, | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | …/tests/unit_tests/core/workflow/nodes/llm/test_node.py | 528 | # TODO: Add test | COMMENT |
| LOW | …/tests/unit_tests/core/workflow/nodes/llm/test_node.py | 568 | # TODO: Add test | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ix/src/dify_trace_arize_phoenix/arize_phoenix_trace.py | 377 | def process_data(self) -> Mapping[str, Any] | None: ... | CODE |
| LOW | …/unit_tests/extensions/otel/decorators/test_handler.py | 249 | def my_function(x): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | sdks/nodejs-client/scripts/publish.sh | 7 | # Usage: | COMMENT |