AI Slop Code RIsk Monitor

MODSetter/SurfSense

Air-gapped, privacy-focused, open-source NotebookLM alternative. AI agent that researches, transforms, and edits your documents. Join our Discord: https://discord.gg/ejRNvftDp9

20.2 Elevated pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for MODSetter/SurfSense, a Python project with 16,348 GitHub stars. SynthScan examined 994,569 lines of code across 6359 source files, recording 15009 pattern matches distributed across 25 syntactic categories. The legacy adjusted pattern signal is 20.2 (Elevated pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

20.2
Adjusted Signal
20.2
Raw Pattern Score
100%
Time Factor
2026-10-10
Last Push
16.3K
Stars
Python
Language
994.6K
Lines of Code
6.4K
Files
15.0K
Pattern Hits
2026-10-12
Scan Date
0.06
HC Hit Rate

Risk Review · v3

Use each vector to guide manual verification of the underlying findings.

Cognitive Ownership Risk 38.6/100 · MEDIUM

Can maintainers explain intent, assumptions, and trade-offs? 8558 finding(s).

Hallucinated Dependency & Supply Chain Risk 14.4/100 · LOW

Are imports declared and package/API names verified? 3002 finding(s).

Agent Over-Engineering Ratio 54.3/100 · HIGH

Are wrappers, guards, and repeated structures necessary? 11171 finding(s).

PR Review Velocity Impact 62.1/100 · HIGH

Which changes need focused human review? 15009 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.

Severity Breakdown

Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.

CRITICAL 3HIGH 391MEDIUM 1162LOW 13453

Directory Score Breakdown

This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.

Pattern Findings

The scanner identified 15009 distinct pattern matches across 25 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. 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 configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Hyper-Verbose Identifiers7700 hits · 8275 pts
SeverityFileLineSnippetContext
LOWplugins/core/manifest/tests/test_load_manifest.py44def test_a_valid_manifest_loads_with_its_fields(tmp_path: Path) -> None:CODE
LOWplugins/core/manifest/tests/test_load_manifest.py56def test_what_an_action_leaves_out_takes_its_default(tmp_path: Path) -> None:CODE
LOWplugins/core/manifest/tests/test_load_manifest.py67def test_a_field_this_version_does_not_know_is_ignored(tmp_path: Path) -> None:CODE
LOWplugins/core/manifest/tests/test_load_manifest.py79def test_the_version_is_the_one_a_release_stamped(CODE
LOWplugins/core/manifest/tests/test_load_manifest.py113def test_a_badly_formed_identity_is_refused(CODE
LOWplugins/core/manifest/tests/test_load_manifest.py123def test_access_is_free_or_paid(tmp_path: Path) -> None:CODE
LOWplugins/core/manifest/tests/test_load_manifest.py151def test_a_host_is_exactly_what_the_user_consents_to(CODE
LOWplugins/core/manifest/tests/test_load_manifest.py162def test_a_bare_hostname_or_address_is_a_host(tmp_path: Path, host: str) -> None:CODE
LOWplugins/core/manifest/tests/test_load_manifest.py180def test_a_secret_has_a_title_and_a_name_that_can_be_a_variable(CODE
LOWplugins/core/manifest/tests/test_load_manifest.py216def _a_capitalised_action_name(declared: dict) -> None:CODE
LOWplugins/core/manifest/tests/test_load_manifest.py241def test_actions_and_their_inputs_are_well_formed(CODE
LOWplugins/core/manifest/tests/test_load_manifest.py252def test_a_run_lasts_between_a_second_and_six_hours(CODE
LOWplugins/core/manifest/tests/test_load_manifest.py264def test_every_error_is_reported_at_once(tmp_path: Path) -> None:CODE
LOWplugins/core/manifest/tests/test_load_manifest.py279def test_a_missing_manifest_is_one_error(tmp_path: Path) -> None:CODE
LOWplugins/core/manifest/tests/test_load_manifest.py294def test_a_manifest_that_is_not_a_json_object_is_one_error(CODE
LOW…anifest/surfsense_plugin_manifest/rules/run_timeout.py11def _between_a_second_and_six_hours(value: int) -> int:CODE
LOWplugins/core/cli/surfsense_plugin_cli/new/command.py42def _refuse_what_it_cannot_take(plugin_id: str, manifest: dict[str, object]) -> None:CODE
LOWplugins/core/cli/tests/test_dependencies.py28def test_add_lists_the_library_and_pins_it_with_hashes(cli, written, wheels) -> None:CODE
LOWplugins/core/cli/tests/test_dependencies.py43def test_adding_a_library_keeps_the_versions_already_pinned(CODE
LOWplugins/core/cli/tests/test_dependencies.py61def test_remove_drops_a_library_from_both_files(cli, written, wheels) -> None:CODE
LOWplugins/core/cli/tests/test_dependencies.py79def test_removing_the_last_library_removes_both_files(cli, written, wheels) -> None:CODE
LOWplugins/core/cli/tests/test_dependencies.py94def test_removing_a_library_the_plugin_does_not_list_is_refused(cli, written) -> None:CODE
LOWplugins/core/cli/tests/test_dependencies.py102def test_adding_a_library_that_cannot_be_found_changes_nothing(CODE
LOWplugins/core/cli/tests/test_dependencies.py118def test_pin_dependencies_pins_again_after_a_hand_edit(cli, written, wheels) -> None:CODE
LOWplugins/core/cli/tests/test_dependencies.py134def test_the_pinned_file_says_which_command_made_it(cli, written, wheels) -> None:CODE
LOWplugins/core/cli/tests/test_dependencies.py144def test_a_removal_that_cannot_be_pinned_changes_nothing(cli, written, wheels) -> None:CODE
LOWplugins/core/cli/tests/test_build_targets.py12def test_a_machine_plugins_are_not_built_for_is_told_which_are(CODE
LOWplugins/core/cli/tests/test_example.py20def test_the_example_counts_words_into_numbered_notes(cli, example, real_app) -> None:CODE
LOWplugins/core/cli/tests/test_new.py6def test_new_lays_out_a_plugin_that_passes_the_manifest_rules(cli, tmp_path) -> None:CODE
LOWplugins/core/cli/tests/test_new.py20def test_new_says_how_to_try_the_plugin(cli, tmp_path) -> None:CODE
LOWplugins/core/cli/tests/test_new.py30def test_new_signs_the_plugin_with_the_authors_git_name(cli, tmp_path, home) -> None:CODE
LOWplugins/core/cli/tests/test_new.py41def test_a_new_plugin_runs_with_invoke_unchanged(cli, tmp_path, real_app) -> None:CODE
LOWplugins/core/cli/tests/test_new.py73def test_new_refuses_an_id_it_cannot_take(CODE
LOWplugins/core/cli/tests/test_new.py87def test_new_never_writes_over_a_plugin_that_exists(cli, tmp_path) -> None:CODE
LOWplugins/core/cli/tests/test_new.py101def test_new_works_on_a_machine_without_git(cli, tmp_path) -> None:CODE
LOWplugins/core/cli/tests/invoke/test_feedback.py21def test_invoke_says_where_it_runs_and_that_it_finished(CODE
LOWplugins/core/cli/tests/invoke/test_feedback.py34def test_invoke_says_how_a_failed_run_ended(cli, plugin, real_app) -> None:CODE
LOWplugins/core/cli/tests/invoke/test_feedback.py56def test_a_workspace_the_app_does_not_have_is_refused_before_running(CODE
LOWplugins/core/cli/tests/invoke/test_inputs.py24def test_inputs_arrive_as_their_declared_kinds(cli, plugin, real_app) -> None:CODE
LOWplugins/core/cli/tests/invoke/test_inputs.py62def test_an_input_the_action_cannot_take_is_refused_before_running(CODE
LOWplugins/core/cli/tests/invoke/test_inputs.py78def test_an_action_the_plugin_does_not_declare_is_refused(cli, plugin) -> None:CODE
LOWplugins/core/cli/tests/invoke/test_dependencies.py54def test_a_pinned_dependency_is_installed_for_this_machine_and_imported(CODE
LOWplugins/core/cli/tests/invoke/test_dependencies.py69def test_an_unchanged_list_of_dependencies_is_not_installed_again(CODE
LOWplugins/core/cli/tests/invoke/test_dependencies.py100def test_a_dependency_with_no_wheel_for_this_machine_is_refused(CODE
LOW…s/core/cli/tests/invoke/test_choosing_the_workspace.py6def test_with_one_workspace_invoke_writes_to_it(CODE
LOW…s/core/cli/tests/invoke/test_choosing_the_workspace.py27def test_with_several_workspaces_invoke_lists_them_and_runs_nothing(CODE
LOWplugins/core/cli/tests/invoke/test_finding_the_app.py21def test_invoke_finds_the_app_by_the_file_it_writes(CODE
LOWplugins/core/cli/tests/invoke/test_finding_the_app.py36def test_invoke_finds_the_app_named_in_the_environment(CODE
LOWplugins/core/cli/tests/invoke/test_finding_the_app.py55def test_with_no_app_running_invoke_says_how_to_reach_one(CODE
LOWplugins/core/cli/tests/invoke/test_finding_the_app.py68def test_an_app_that_no_longer_answers_is_not_running(CODE
LOWplugins/core/cli/tests/invoke/test_secrets.py38def test_a_secret_comes_from_the_authors_own_environment(cli, plugin, real_app) -> None:CODE
LOWplugins/core/cli/tests/invoke/test_secrets.py50def test_a_secret_not_in_the_environment_is_asked_for_and_kept_nowhere(CODE
LOWplugins/core/cli/tests/invoke/test_running.py6def test_invoke_runs_the_action_once_against_the_app(CODE
LOWplugins/core/cli/tests/invoke/test_running.py31def test_invoke_exits_with_the_plugins_own_code(cli, plugin, real_app) -> None:CODE
LOWplugins/core/cli/tests/invoke/test_running.py61def test_a_plugin_cannot_import_what_the_cli_has_installed(CODE
LOWplugins/core/cli/tests/invoke/test_data_folder.py18def test_the_plugins_data_is_kept_between_invokes_in_dev_data(STRING
LOWplugins/core/sdk/tests/unit/test_secret.py20def test_a_declared_secret_is_read_from_the_environment_the_app_set(plugin) -> None:CODE
LOWplugins/core/sdk/tests/unit/test_secret.py33def test_a_secret_the_manifest_does_not_declare_is_refused_by_name(plugin) -> None:CODE
LOWplugins/core/sdk/tests/unit/test_secret.py46def test_a_declared_secret_with_no_value_is_refused_by_name(plugin) -> None:CODE
LOWplugins/core/sdk/tests/unit/test_public_surface.py50def test_the_only_any_a_plugin_meets_is_a_sources_json() -> None:CODE
7640 more matches not shown…
Decorative Section Separators1040 hits · 3787 pts
SeverityFileLineSnippetContext
MEDIUMdocker/docker-compose.e2e.yml1# =============================================================================COMMENT
MEDIUMdocker/docker-compose.e2e.yml3# =============================================================================COMMENT
MEDIUMdocker/docker-compose.e2e.yml20# =============================================================================COMMENT
MEDIUM⚡docker/docker-compose.dev.yml1# =============================================================================COMMENT
MEDIUM⚡docker/docker-compose.dev.yml3# =============================================================================COMMENT
MEDIUM⚡docker/docker-compose.dev.yml9# =============================================================================COMMENT
MEDIUM⚡docker/docker-compose.yml1# =============================================================================COMMENT
MEDIUM⚡docker/docker-compose.yml4# =============================================================================COMMENT
MEDIUM⚡docker/docker-compose.yml8# =============================================================================COMMENT
MEDIUMdocker/docker-compose.deps-only.yml1# =============================================================================COMMENT
MEDIUMdocker/docker-compose.deps-only.yml3# =============================================================================COMMENT
MEDIUMdocker/docker-compose.deps-only.yml34# =============================================================================COMMENT
MEDIUMdocker/scripts/install.sh2# =============================================================================COMMENT
MEDIUMdocker/scripts/install.sh27# =============================================================================COMMENT
MEDIUMdocker/scripts/install.sh49# ── Parse flags ─────────────────────────────────────────────────────────────COMMENT
MEDIUMdocker/scripts/install.sh126# ── Pre-flight checks ────────────────────────────────────────────────────────COMMENT
MEDIUMdocker/scripts/install.sh147# ── Wait-for-postgres helper ─────────────────────────────────────────────────COMMENT
MEDIUMdocker/scripts/install.sh166# ── Stack startup helper ─────────────────────────────────────────────────────COMMENT
MEDIUMdocker/scripts/install.sh192# ── Variant and .env helpers ─────────────────────────────────────────────────COMMENT
MEDIUMdocker/scripts/install.sh330# ── Download files ───────────────────────────────────────────────────────────COMMENT
MEDIUMdocker/scripts/install.sh360# ── Legacy all-in-one detection ──────────────────────────────────────────────COMMENT
MEDIUMdocker/scripts/install.sh394# ── Set up .env ──────────────────────────────────────────────────────────────COMMENT
MEDIUMdocker/scripts/install.sh426# ── Start containers ─────────────────────────────────────────────────────────COMMENT
MEDIUMdocker/scripts/install.sh500# ── Watchtower (auto-update) ─────────────────────────────────────────────────COMMENT
MEDIUMdocker/scripts/install.sh528# ── Done ─────────────────────────────────────────────────────────────────────COMMENT
MEDIUMdocker/scripts/migrate-database.sh2# =============================================================================COMMENT
MEDIUM⚡docker/scripts/migrate-database.sh39# =============================================================================COMMENT
MEDIUM⚡docker/scripts/migrate-database.sh43# ── Colours ──────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡docker/scripts/migrate-database.sh51# ── Logging — tee everything to a log file ───────────────────────────────────COMMENT
MEDIUM⚡docker/scripts/migrate-database.sh55# ── Output helpers ────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡docker/scripts/migrate-database.sh62# ── Constants ─────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡docker/scripts/migrate-database.sh69# ── Defaults ──────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡docker/scripts/migrate-database.sh75# ── Argument parsing ──────────────────────────────────────────────────────────COMMENT
MEDIUMdocker/scripts/migrate-database.sh90# ── Confirmation helper ───────────────────────────────────────────────────────COMMENT
MEDIUMdocker/scripts/migrate-database.sh98# ── Cleanup trap — always remove the temp container ──────────────────────────COMMENT
MEDIUMdocker/scripts/migrate-database.sh114# ── Wait-for-postgres helper ──────────────────────────────────────────────────COMMENT
MEDIUMdocker/scripts/migrate-database.sh137# ── Step 0: Pre-flight checks ─────────────────────────────────────────────────COMMENT
MEDIUMdocker/scripts/migrate-database.sh195# ── Confirmation prompt ───────────────────────────────────────────────────────COMMENT
MEDIUMdocker/scripts/migrate-database.sh204# ── Step 1: Start temporary PostgreSQL 14 container ──────────────────────────COMMENT
MEDIUMdocker/scripts/migrate-database.sh239# ── Step 2: Dump the database ─────────────────────────────────────────────────COMMENT
MEDIUMdocker/scripts/migrate-database.sh275# ── Step 3: Recover SECRET_KEY ────────────────────────────────────────────────COMMENT
MEDIUMdocker/scripts/migrate-database.sh314# ── Done ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUMsurfsense_backend/app/celery_app.py225# ── Queue names ──────────────────────────────────────────────COMMENT
MEDIUMsurfsense_backend/app/celery_app.py258 # ── Task routing ─────────────────────────────────────────COMMENT
MEDIUMsurfsense_backend/app/app.py77# ============================================================================COMMENT
MEDIUMsurfsense_backend/app/app.py79# ============================================================================COMMENT
MEDIUMsurfsense_backend/app/app.py123# ---------------------------------------------------------------------------COMMENT
MEDIUMsurfsense_backend/app/app.py125# ---------------------------------------------------------------------------COMMENT
MEDIUMsurfsense_backend/app/app.py311# ============================================================================COMMENT
MEDIUMsurfsense_backend/app/app.py313# ============================================================================COMMENT
MEDIUMsurfsense_backend/app/app.py761# ---------------------------------------------------------------------------COMMENT
MEDIUMsurfsense_backend/app/app.py763# ---------------------------------------------------------------------------COMMENT
MEDIUMsurfsense_backend/app/app.py782# ---------------------------------------------------------------------------COMMENT
MEDIUMsurfsense_backend/app/app.py784# ---------------------------------------------------------------------------COMMENT
MEDIUMsurfsense_backend/app/app.py827# ---------------------------------------------------------------------------COMMENT
MEDIUMsurfsense_backend/app/app.py829# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡surfsense_backend/app/connectors/notion_history.py804 # =========================================================================COMMENT
MEDIUM⚡surfsense_backend/app/connectors/notion_history.py806 # =========================================================================COMMENT
MEDIUMsurfsense_backend/app/connectors/notion_history.py32# ============================================================================COMMENT
MEDIUMsurfsense_backend/app/connectors/notion_history.py36# ============================================================================COMMENT
980 more matches not shown…
Unused Imports2854 hits · 2792 pts
SeverityFileLineSnippetContext
LOW…ns/core/manifest/surfsense_plugin_manifest/__init__.py3CODE
LOW…ns/core/manifest/surfsense_plugin_manifest/__init__.py4CODE
LOW…ns/core/manifest/surfsense_plugin_manifest/__init__.py5CODE
LOW…ns/core/manifest/surfsense_plugin_manifest/__init__.py5CODE
LOW…ns/core/manifest/surfsense_plugin_manifest/__init__.py5CODE
LOW…ns/core/manifest/surfsense_plugin_manifest/__init__.py5CODE
LOWplugins/core/sdk/surfsense_plugin_sdk/__init__.py3CODE
LOWplugins/core/sdk/surfsense_plugin_sdk/__init__.py4CODE
LOWplugins/core/sdk/surfsense_plugin_sdk/__init__.py5CODE
LOWplugins/core/sdk/surfsense_plugin_sdk/__init__.py6CODE
LOWplugins/core/sdk/surfsense_plugin_sdk/__init__.py7CODE
LOWplugins/core/sdk/surfsense_plugin_sdk/http/__init__.py3CODE
LOWplugins/core/sdk/surfsense_plugin_sdk/http/__init__.py4CODE
LOWplugins/core/sdk/surfsense_plugin_sdk/http/__init__.py5CODE
LOWplugins/core/sdk/surfsense_plugin_sdk/http/__init__.py5CODE
LOWplugins/core/sdk/surfsense_plugin_sdk/http/__init__.py5CODE
LOWplugins/example/main.py6CODE
LOWsurfsense_mcp/tests/test_auth_headers.py3CODE
LOWsurfsense_mcp/tests/test_workspace_context.py3CODE
LOWsurfsense_mcp/tests/test_update_document.py8CODE
LOWsurfsense_mcp/tests/test_client_errors.py3CODE
LOWsurfsense_mcp/tests/test_note_ingestion.py3CODE
LOWsurfsense_mcp/tests/test_rendering.py3CODE
LOWsurfsense_mcp/tests/test_client_params.py3CODE
LOWsurfsense_mcp/tests/test_get_document_okf.py9CODE
LOWsurfsense_mcp/tests/test_request_auth.py8CODE
LOWsurfsense_mcp/mcp_server/server.py7CODE
LOWsurfsense_mcp/mcp_server/selfcheck.py8CODE
LOWsurfsense_mcp/mcp_server/config.py7CODE
LOWsurfsense_mcp/mcp_server/__main__.py12CODE
LOWsurfsense_mcp/mcp_server/core/rendering.py8CODE
LOWsurfsense_mcp/mcp_server/core/client.py7CODE
LOWsurfsense_mcp/mcp_server/core/workspace_matching.py8CODE
LOWsurfsense_mcp/mcp_server/core/workspace_context.py8CODE
LOWsurfsense_mcp/mcp_server/core/errors.py8CODE
LOWsurfsense_mcp/mcp_server/core/transport/__init__.py3CODE
LOWsurfsense_mcp/mcp_server/core/transport/http.py7CODE
LOWsurfsense_mcp/mcp_server/core/auth/__init__.py4CODE
LOWsurfsense_mcp/mcp_server/core/auth/__init__.py4CODE
LOWsurfsense_mcp/mcp_server/core/auth/__init__.py5CODE
LOWsurfsense_mcp/mcp_server/core/auth/headers.py6CODE
LOWsurfsense_mcp/mcp_server/core/auth/identity.py9CODE
LOWsurfsense_mcp/mcp_server/core/auth/middleware.py12CODE
LOW…rfsense_mcp/mcp_server/features/workspaces/__init__.py8CODE
LOW…mcp/mcp_server/features/knowledge_base/search_tools.py7CODE
LOW…p/mcp_server/features/knowledge_base/note_ingestion.py9CODE
LOW…nse_mcp/mcp_server/features/knowledge_base/__init__.py8CODE
LOW…p/mcp_server/features/knowledge_base/document_tools.py7CODE
LOW…_mcp/mcp_server/features/knowledge_base/annotations.py3CODE
LOWsurfsense_mcp/mcp_server/features/scrapers/__init__.py10CODE
LOW…rfsense_mcp/mcp_server/features/scrapers/capability.py7CODE
LOW…fsense_mcp/mcp_server/features/scrapers/annotations.py3CODE
LOW…fsense_mcp/mcp_server/features/scrapers/run_history.py7CODE
LOW…/mcp_server/features/scrapers/platforms/google_maps.py3CODE
LOW…ense_mcp/mcp_server/features/scrapers/platforms/web.py3CODE
LOW…_mcp/mcp_server/features/scrapers/platforms/youtube.py3CODE
LOW…_mcp/mcp_server/features/scrapers/platforms/walmart.py3CODE
LOW…cp_server/features/scrapers/platforms/google_search.py3CODE
LOW…cp/mcp_server/features/scrapers/platforms/instagram.py3CODE
LOW…e_mcp/mcp_server/features/scrapers/platforms/tiktok.py3CODE
2794 more matches not shown…
Excessive Try-Catch Wrapping1293 hits · 1262 pts
SeverityFileLineSnippetContext
LOWdocker/docker-compose.e2e.yml133 except Exception:CODE
LOWsurfsense_backend/app/db.py3097 except Exception as exc:CODE
LOWsurfsense_backend/app/users.py168 except Exception as e:CODE
LOWsurfsense_backend/app/users.py187 except Exception as e:CODE
LOWsurfsense_backend/app/users.py239 except Exception as e:CODE
LOWsurfsense_backend/app/users.py308 except Exception as e:CODE
LOWsurfsense_backend/app/users.py394 except Exception:CODE
LOWsurfsense_backend/app/users.py405 except Exception:CODE
LOWsurfsense_backend/app/celery_app.py78 except Exception:CODE
LOWsurfsense_backend/app/celery_app.py102 except Exception:CODE
LOWsurfsense_backend/app/app.py574 except Exception:CODE
LOWsurfsense_backend/app/app.py598 except Exception:CODE
LOWsurfsense_backend/app/app.py633 except Exception:CODE
LOWsurfsense_backend/app/app.py659 except Exception:CODE
LOWsurfsense_backend/app/app.py1141 except Exception as exc:CODE
LOWsurfsense_backend/app/connectors/clickup_connector.py207 except Exception as e:CODE
LOW⚡surfsense_backend/app/connectors/slack_history.py124 except Exception as e:CODE
LOW⚡surfsense_backend/app/connectors/slack_history.py134 except Exception as e:CODE
LOWsurfsense_backend/app/connectors/slack_history.py182 except Exception as e:CODE
LOWsurfsense_backend/app/connectors/slack_history.py302 except Exception as general_error:CODE
LOWsurfsense_backend/app/connectors/slack_history.py409 except Exception as general_error: # Catch any other unexpected errorsCODE
LOWsurfsense_backend/app/connectors/slack_history.py519 except Exception as general_error: # Catch any other unexpected errorsCODE
LOWsurfsense_backend/app/connectors/slack_history.py556 except Exception:CODE
LOW…sense_backend/app/connectors/google_gmail_connector.py50 except Exception as e:CODE
LOW…sense_backend/app/connectors/google_gmail_connector.py166 except Exception as e:CODE
LOW…sense_backend/app/connectors/google_gmail_connector.py197 except Exception as e:CODE
LOW…sense_backend/app/connectors/google_gmail_connector.py225 except Exception as e:CODE
LOW…sense_backend/app/connectors/google_gmail_connector.py266 except Exception as e:CODE
LOW…sense_backend/app/connectors/google_gmail_connector.py300 except Exception as e:CODE
LOW…sense_backend/app/connectors/google_gmail_connector.py370 except Exception as e:CODE
LOW…sense_backend/app/connectors/google_gmail_connector.py431 except Exception as e:CODE
LOW…sense_backend/app/connectors/google_gmail_connector.py497 except Exception as e:CODE
LOWsurfsense_backend/app/connectors/notion_history.py171 except Exception as e:CODE
LOWsurfsense_backend/app/connectors/notion_history.py205 except Exception as e:CODE
LOWsurfsense_backend/app/connectors/notion_history.py258 except Exception as e:CODE
LOWsurfsense_backend/app/connectors/notion_history.py396 except Exception as callback_error:CODE
LOWsurfsense_backend/app/connectors/notion_history.py789 except Exception:CODE
LOWsurfsense_backend/app/connectors/notion_history.py832 except Exception as e:CODE
LOWsurfsense_backend/app/connectors/notion_history.py928 except Exception as e:CODE
LOWsurfsense_backend/app/connectors/notion_history.py969 except Exception as e:CODE
LOWsurfsense_backend/app/connectors/notion_history.py997 except Exception as e:CODE
LOWsurfsense_backend/app/connectors/notion_history.py1027 except Exception as e:CODE
LOWsurfsense_backend/app/connectors/notion_history.py1076 except Exception as e:CODE
LOWsurfsense_backend/app/connectors/confluence_history.py120 except Exception as e:CODE
LOWsurfsense_backend/app/connectors/confluence_history.py148 except Exception as e:CODE
LOWsurfsense_backend/app/connectors/confluence_history.py228 except Exception as e:CODE
LOWsurfsense_backend/app/connectors/confluence_history.py651 except Exception as e:CODE
LOWsurfsense_backend/app/connectors/linear_connector.py75 except Exception as e:STRING
LOWsurfsense_backend/app/connectors/linear_connector.py154 except Exception as e:CODE
LOWsurfsense_backend/app/connectors/linear_connector.py174 except Exception as e:CODE
LOWsurfsense_backend/app/connectors/linear_connector.py222 except Exception as e:CODE
LOWsurfsense_backend/app/connectors/linear_connector.py284 except Exception:CODE
LOWsurfsense_backend/app/connectors/linear_connector.py555 except Exception as e:STRING
LOWsurfsense_backend/app/connectors/linear_connector.py684 except Exception as e:STRING
LOWsurfsense_backend/app/connectors/linear_connector.py748 except Exception as e:STRING
LOWsurfsense_backend/app/connectors/linear_connector.py772 except Exception as e:STRING
LOWsurfsense_backend/app/connectors/teams_history.py57 except Exception as e:CODE
LOWsurfsense_backend/app/connectors/teams_history.py75 except Exception as e:CODE
LOWsurfsense_backend/app/connectors/teams_history.py123 except Exception:CODE
LOWsurfsense_backend/app/connectors/teams_history.py140 except Exception as e:CODE
1233 more matches not shown…
Cross-File Repetition168 hits · 840 pts
SeverityFileLineSnippetContext
HIGHsurfsense_backend/app/connectors/notion_history.py0initialize the airtablehistoryconnector with auto-refresh capability. args: session: database session for updating conneSTRING
HIGHsurfsense_backend/app/connectors/confluence_history.py0initialize the airtablehistoryconnector with auto-refresh capability. args: session: database session for updating conneSTRING
HIGHsurfsense_backend/app/connectors/airtable_history.py0initialize the airtablehistoryconnector with auto-refresh capability. args: session: database session for updating conneSTRING
HIGHsurfsense_backend/app/connectors/notion_history.py0get valid airtable access token, refreshing if needed. returns: valid access token raises: valueerror: if credentials arSTRING
HIGHsurfsense_backend/app/connectors/confluence_history.py0get valid airtable access token, refreshing if needed. returns: valid access token raises: valueerror: if credentials arSTRING
HIGHsurfsense_backend/app/connectors/linear_connector.py0get valid airtable access token, refreshing if needed. returns: valid access token raises: valueerror: if credentials arSTRING
HIGHsurfsense_backend/app/connectors/teams_connector.py0get valid airtable access token, refreshing if needed. returns: valid access token raises: valueerror: if credentials arSTRING
HIGHsurfsense_backend/app/connectors/airtable_history.py0get valid airtable access token, refreshing if needed. returns: valid access token raises: valueerror: if credentials arSTRING
HIGH…ackend/app/tasks/connector_indexers/discord_indexer.py0slack connector indexer. implements batch indexing: groups up to slack_batch_size messages per channel into a single docSTRING
HIGH…_backend/app/tasks/connector_indexers/teams_indexer.py0slack connector indexer. implements batch indexing: groups up to slack_batch_size messages per channel into a single docSTRING
HIGH…_backend/app/tasks/connector_indexers/slack_indexer.py0slack connector indexer. implements batch indexing: groups up to slack_batch_size messages per channel into a single docSTRING
HIGH…ackend/app/tasks/connector_indexers/discord_indexer.py0index slack messages from all accessible channels. messages are grouped into batches of slack_batch_size per channel, soSTRING
HIGH…_backend/app/tasks/connector_indexers/teams_indexer.py0index slack messages from all accessible channels. messages are grouped into batches of slack_batch_size per channel, soSTRING
HIGH…_backend/app/tasks/connector_indexers/slack_indexer.py0index slack messages from all accessible channels. messages are grouped into batches of slack_batch_size per channel, soSTRING
HIGH…ckend/app/tasks/connector_indexers/onedrive_indexer.py0download and etl files in parallel. returns (connector_docs, failed_files), where failed_files is a list of (file_id, reSTRING
HIGH…ackend/app/tasks/connector_indexers/dropbox_indexer.py0download and etl files in parallel. returns (connector_docs, failed_files), where failed_files is a list of (file_id, reSTRING
HIGH…d/app/tasks/connector_indexers/google_drive_indexer.py0download and etl files in parallel. returns (connector_docs, failed_files), where failed_files is a list of (file_id, reSTRING
HIGH…ckend/app/tasks/connector_indexers/onedrive_indexer.py0full scan indexing of a folder. returns (indexed, skipped, unsupported_count).STRING
HIGH…d/app/tasks/connector_indexers/google_drive_indexer.py0full scan indexing of a folder. returns (indexed, skipped, unsupported_count).STRING
HIGH…ackend/app/tasks/connector_indexers/dropbox_indexer.py0full scan indexing of a folder. returns (indexed, skipped, unsupported_count).STRING
HIGH…ckend/app/proprietary/platforms/google_maps/scraper.py0collect :func:`iter_serps` into a list, honoring an optional ``limit``. ``limit`` is a request-time policy guard (used bSTRING
HIGH…e_backend/app/proprietary/platforms/youtube/scraper.py0collect :func:`iter_serps` into a list, honoring an optional ``limit``. ``limit`` is a request-time policy guard (used bSTRING
HIGH…end/app/proprietary/platforms/google_search/scraper.py0collect :func:`iter_serps` into a list, honoring an optional ``limit``. ``limit`` is a request-time policy guard (used bSTRING
HIGH…ckend/app/proprietary/platforms/google_maps/schemas.py0serialize to the flat dict shape apify emits (keeps extras).STRING
HIGH…e_backend/app/proprietary/platforms/youtube/schemas.py0serialize to the flat dict shape apify emits (keeps extras).STRING
HIGH…end/app/proprietary/platforms/google_search/schemas.py0serialize to the flat dict shape apify emits (keeps extras).STRING
HIGH…backend/app/proprietary/platforms/youtube/innertube.py0drop the current ip and connect through a fresh one. returns new session.STRING
HIGH…ense_backend/app/proprietary/platforms/reddit/fetch.py0drop the current ip and connect through a fresh one. returns new session.STRING
HIGH…e_backend/app/proprietary/platforms/instagram/fetch.py0drop the current ip and connect through a fresh one. returns new session.STRING
HIGH…backend/app/proprietary/platforms/youtube/innertube.py0open a warm rotate-on-block session holder (caller owns ``close()``).STRING
HIGH…ense_backend/app/proprietary/platforms/reddit/fetch.py0open a warm rotate-on-block session holder (caller owns ``close()``).STRING
HIGH…kend/app/proprietary/platforms/tiktok/session/proxy.py0open a warm rotate-on-block session holder (caller owns ``close()``).STRING
HIGH…e_backend/app/proprietary/platforms/instagram/fetch.py0open a warm rotate-on-block session holder (caller owns ``close()``).STRING
HIGH…backend/app/proprietary/platforms/youtube/innertube.py0open one reused, rotate-on-block proxy session for a continuation chain.STRING
HIGH…ense_backend/app/proprietary/platforms/reddit/fetch.py0open one reused, rotate-on-block proxy session for a continuation chain.STRING
HIGH…kend/app/proprietary/platforms/tiktok/session/proxy.py0open one reused, rotate-on-block proxy session for a continuation chain.STRING
HIGH…e_backend/app/proprietary/platforms/instagram/fetch.py0open one reused, rotate-on-block proxy session for a continuation chain.STRING
HIGH…e_backend/app/proprietary/platforms/walmart/schemas.py0serialize to the flat output dict shape (keeps extras).STRING
HIGH…se_backend/app/proprietary/platforms/reddit/schemas.py0serialize to the flat output dict shape (keeps extras).STRING
HIGH…backend/app/proprietary/platforms/instagram/schemas.py0serialize to the flat output dict shape (keeps extras).STRING
HIGH…ense_backend/app/proprietary/platforms/reddit/fetch.py0utc timestamp in the millisecond iso shape used by scraper output.STRING
HIGH…backend/app/proprietary/platforms/indeed_jobs/fetch.py0utc timestamp in the millisecond iso shape used by scraper output.STRING
HIGH…e_backend/app/proprietary/platforms/instagram/fetch.py0utc timestamp in the millisecond iso shape used by scraper output.STRING
HIGH…ackend/app/capabilities/google_maps/scrape/executor.py0bind the executor to a comments fn (defaults to the proprietary actor).STRING
HIGH…nse_backend/app/capabilities/indeed/scrape/executor.py0bind the executor to a comments fn (defaults to the proprietary actor).STRING
HIGH…se_backend/app/capabilities/youtube/scrape/executor.py0bind the executor to a comments fn (defaults to the proprietary actor).STRING
HIGH…kend/app/capabilities/google_search/scrape/executor.py0bind the executor to a comments fn (defaults to the proprietary actor).STRING
HIGH…nse_backend/app/capabilities/reddit/scrape/executor.py0bind the executor to a comments fn (defaults to the proprietary actor).STRING
HIGH…nse_backend/app/capabilities/tiktok/scrape/executor.py0bind the executor to a comments fn (defaults to the proprietary actor).STRING
HIGH…backend/app/capabilities/instagram/details/executor.py0bind the executor to a comments fn (defaults to the proprietary actor).STRING
HIGH…_backend/app/capabilities/instagram/scrape/executor.py0bind the executor to a comments fn (defaults to the proprietary actor).STRING
HIGH…ckend/app/capabilities/google_maps/reviews/executor.py0bind the executor to a comments fn (defaults to the proprietary actor).STRING
HIGH…_backend/app/capabilities/youtube/comments/executor.py0bind the executor to a comments fn (defaults to the proprietary actor).STRING
HIGH…e_backend/app/capabilities/tiktok/comments/executor.py0bind the executor to a comments fn (defaults to the proprietary actor).STRING
HIGH…nse_backend/app/capabilities/amazon/scrape/executor.py0bind the capability input mapping to a replaceable reviews scraper function.STRING
HIGH…se_backend/app/capabilities/walmart/scrape/executor.py0bind the capability input mapping to a replaceable reviews scraper function.STRING
HIGH…e_backend/app/capabilities/walmart/reviews/executor.py0bind the capability input mapping to a replaceable reviews scraper function.STRING
HIGH…ense_backend/app/capabilities/indeed/scrape/schemas.py0per-call cap on urls + search_queries: bounds a synchronous request's fan-out.STRING
HIGH…ense_backend/app/capabilities/reddit/scrape/schemas.py0per-call cap on urls + search_queries: bounds a synchronous request's fan-out.STRING
HIGH…e_backend/app/capabilities/instagram/scrape/schemas.py0per-call cap on urls + search_queries: bounds a synchronous request's fan-out.STRING
108 more matches not shown…
Modern Structural Boilerplate827 hits · 838 pts
SeverityFileLineSnippetContext
LOW…ns/core/manifest/surfsense_plugin_manifest/__init__.py7__all__ = ["Action", "Input", "Manifest", "ManifestError", "Secret", "load_manifest"]CODE
LOWplugins/core/sdk/surfsense_plugin_sdk/__init__.py9__all__ = ["action", "data", "document", "http", "secret"]CODE
LOWplugins/core/sdk/surfsense_plugin_sdk/http/__init__.py7__all__ = ["HostNotDeclared", "Response", "get", "post", "request"]CODE
LOWsurfsense_mcp/mcp_server/core/transport/__init__.py5__all__ = ["build_http_app"]CODE
LOWsurfsense_mcp/mcp_server/core/auth/__init__.py7__all__ = ["current_api_key", "current_identity", "ApiKeyIdentityMiddleware"]CODE
LOWsurfsense_backend/app/db.py38logger = logging.getLogger(__name__)CODE
LOWsurfsense_backend/app/users.py40logger = logging.getLogger(__name__)CODE
LOWsurfsense_backend/app/session_events.py19logger = logging.getLogger(__name__)CODE
LOWsurfsense_backend/app/app.py1018 def _set_google_oauth_csrf_cookie(response: Response, csrf_token: str) -> None:CODE
LOWsurfsense_backend/app/connectors/clickup_connector.py26 def set_api_token(self, api_token: str) -> None:CODE
LOWsurfsense_backend/app/connectors/slack_history.py24logger = logging.getLogger(__name__) # Added loggerCODE
LOWsurfsense_backend/app/connectors/slack_history.py211 def set_token(self, token: str) -> None:CODE
LOW…sense_backend/app/connectors/google_gmail_connector.py26logger = logging.getLogger(__name__)CODE
LOWsurfsense_backend/app/connectors/notion_history.py18logger = logging.getLogger(__name__)CODE
LOWsurfsense_backend/app/connectors/notion_history.py99 def set_retry_callback(self, callback: RetryCallbackType | None) -> None:CODE
LOWsurfsense_backend/app/connectors/confluence_history.py20logger = logging.getLogger(__name__)CODE
LOWsurfsense_backend/app/connectors/linear_connector.py21logger = logging.getLogger(__name__)CODE
LOWsurfsense_backend/app/connectors/teams_history.py17logger = logging.getLogger(__name__)CODE
LOWsurfsense_backend/app/connectors/luma_connector.py27 def set_api_key(self, api_key: str) -> None:CODE
LOWsurfsense_backend/app/connectors/teams_connector.py23logger = logging.getLogger(__name__)CODE
LOWsurfsense_backend/app/connectors/discord_connector.py24logger = logging.getLogger(__name__)CODE
LOWsurfsense_backend/app/connectors/discord_connector.py272 def set_token(self, token: str) -> None:CODE
LOWsurfsense_backend/app/connectors/airtable_connector.py15logger = logging.getLogger(__name__)CODE
LOWsurfsense_backend/app/connectors/composio_connector.py17logger = logging.getLogger(__name__)CODE
LOWsurfsense_backend/app/connectors/bookstack_connector.py16logger = logging.getLogger(__name__)CODE
LOWsurfsense_backend/app/connectors/bookstack_connector.py45 def set_credentials(self, base_url: str, token_id: str, token_secret: str) -> None:CODE
LOWsurfsense_backend/app/connectors/github_connector.py14logger = logging.getLogger(__name__)CODE
LOWsurfsense_backend/app/connectors/airtable_history.py19logger = logging.getLogger(__name__)CODE
LOWsurfsense_backend/app/connectors/clickup_history.py21logger = logging.getLogger(__name__)CODE
LOW…rfsense_backend/app/connectors/confluence_connector.py36 def set_credentials(self, base_url: str, email: str, api_token: str) -> None:CODE
LOW…rfsense_backend/app/connectors/confluence_connector.py49 def set_email(self, email: str) -> None:CODE
LOW…rfsense_backend/app/connectors/confluence_connector.py58 def set_api_token(self, api_token: str) -> None:CODE
LOW…ense_backend/app/connectors/elasticsearch_connector.py15logger = logging.getLogger(__name__)CODE
LOW…ense_backend/app/connectors/onedrive/folder_manager.py9logger = logging.getLogger(__name__)CODE
LOW…e_backend/app/connectors/onedrive/content_extractor.py13logger = logging.getLogger(__name__)CODE
LOWsurfsense_backend/app/connectors/onedrive/client.py16logger = logging.getLogger(__name__)CODE
LOWsurfsense_backend/app/connectors/onedrive/__init__.py7__all__ = [CODE
LOW…sense_backend/app/connectors/dropbox/folder_manager.py9logger = logging.getLogger(__name__)CODE
LOW…se_backend/app/connectors/dropbox/content_extractor.py16logger = logging.getLogger(__name__)CODE
LOWsurfsense_backend/app/connectors/dropbox/client.py17logger = logging.getLogger(__name__)CODE
LOWsurfsense_backend/app/connectors/dropbox/__init__.py7__all__ = [CODE
LOW…_backend/app/connectors/google_drive/folder_manager.py8logger = logging.getLogger(__name__)CODE
LOW…ckend/app/connectors/google_drive/content_extractor.py24logger = logging.getLogger(__name__)CODE
LOW…nse_backend/app/connectors/google_drive/credentials.py17logger = logging.getLogger(__name__)CODE
LOWsurfsense_backend/app/connectors/google_drive/client.py21logger = logging.getLogger(__name__)CODE
LOW…fsense_backend/app/connectors/google_drive/__init__.py9__all__ = [CODE
LOW…_backend/app/connectors/google_drive/change_tracker.py9logger = logging.getLogger(__name__)CODE
LOWsurfsense_backend/app/artifacts/service.py32logger = logging.getLogger(__name__)CODE
LOWsurfsense_backend/app/artifacts/__init__.py12__all__ = [CODE
LOWsurfsense_backend/app/artifacts/flashcards/__init__.py13__all__ = [CODE
LOWsurfsense_backend/app/artifacts/access/authenticated.py43logger = logging.getLogger(__name__)CODE
LOW…fsense_backend/app/artifacts/infographic/generation.py103__all__ = [CODE
LOWsurfsense_backend/app/artifacts/infographic/presets.py121__all__ = [CODE
LOWsurfsense_backend/app/artifacts/infographic/__init__.py14__all__ = [CODE
LOWsurfsense_backend/app/artifacts/infographic/schemas.py82__all__ = [CODE
LOW…rfsense_backend/app/artifacts/infographic/selection.py185__all__ = [CODE
LOWsurfsense_backend/app/artifacts/infographic/prompt.py44__all__ = ["assemble_infographic_prompt"]CODE
LOWsurfsense_backend/app/artifacts/quiz/__init__.py13__all__ = [CODE
LOWsurfsense_backend/app/artifacts/schemas/__init__.py10__all__ = [CODE
LOWsurfsense_backend/app/artifacts/schemas/input.py12__all__ = ["ArtifactFileInput", "ArtifactFormat", "ArtifactInput"]CODE
767 more matches not shown…
Empty Error Handlers110 hits · 550 pts
SeverityFileLineSnippetContext
HIGH…core/cli/surfsense_plugin_cli/invoke/request/inputs.py45except ValueError:CODE
HIGHsurfsense_backend/app/celery_app.py78except Exception:CODE
HIGHsurfsense_backend/app/celery_app.py102except Exception:CODE
HIGHsurfsense_backend/app/connectors/linear_connector.py284except Exception:CODE
HIGHsurfsense_backend/app/connectors/airtable_connector.py102except Exception:CODE
HIGHsurfsense_backend/app/connectors/onedrive/client.py121except Exception:CODE
HIGHsurfsense_backend/app/connectors/dropbox/client.py118except Exception:CODE
HIGH…_backend/app/connectors/google_drive/change_tracker.py178except Exception:CODE
HIGHsurfsense_backend/app/artifacts/verification/service.py149except ValueError:CODE
HIGH…se_backend/app/artifacts/verification/formats/video.py61except (TypeError, ValueError, json.JSONDecodeError):CODE
HIGH…sense_backend/app/tasks/celery_tasks/document_tasks.py117except Exception:CODE
HIGH…sense_backend/app/tasks/celery_tasks/document_tasks.py140except asyncio.CancelledError:CODE
HIGH…sense_backend/app/tasks/celery_tasks/document_tasks.py1363except Exception:CODE
HIGH…sense_backend/app/tasks/celery_tasks/document_tasks.py1491except Exception:CODE
HIGH…ackend/app/tasks/chat/streaming/handlers/tool_start.py179except (TypeError, ValueError, OverflowError):CODE
HIGH…d/app/tasks/connector_indexers/local_folder_indexer.py375except Exception:CODE
HIGH…nd/app/tasks/document_processors/_direct_converters.py51except (UnicodeDecodeError, UnicodeError):CODE
HIGH…nd/app/tasks/document_processors/_direct_converters.py56except (UnicodeDecodeError, UnicodeError):CODE
HIGH…se_backend/app/proprietary/platforms/amazon/parsers.py315except (json.JSONDecodeError, TypeError):CODE
HIGH…ckend/app/proprietary/platforms/google_search/fetch.py333except Exception: # clamp absent/detached; the collapsed text still parsesCODE
HIGH…nd/app/proprietary/platforms/tiktok/session/listing.py105except Exception:CODE
HIGH…app/proprietary/web_crawler/testbench/suite_stealth.py73except Exception:CODE
HIGH…sense_backend/app/indexing_pipeline/pipeline_logger.py65except Exception:CODE
HIGHsurfsense_backend/app/agents/chat/runtime/llm_config.py202except Exception:CODE
HIGH…ckend/app/agents/chat/shared/middleware/retry_after.py112except (TypeError, ValueError):CODE
HIGH…ckend/app/agents/chat/shared/middleware/retry_after.py118except (TypeError, ValueError):CODE
HIGH…red/middleware/filesystem/middleware/async_dispatch.py20except RuntimeError:CODE
HIGH…/shared/middleware/filesystem/backends/local_folder.py440except StopIteration:CODE
HIGH…/agents/chat/multi_agent_chat/shared/tools/mcp/tool.py946except ImportError:CODE
HIGH…nt_chat/main_agent/middleware/action_log/middleware.py294except Exception: # pragma: no cover - defensiveCODE
HIGH…nt_chat/main_agent/middleware/action_log/middleware.py338except Exception: # pragma: no coverCODE
HIGH…nt_chat/main_agent/middleware/action_log/middleware.py369except Exception: # pragma: no cover - defensiveCODE
HIGH…hat/main_agent/middleware/knowledge_tree/middleware.py75except Exception:CODE
HIGH…hat/main_agent/middleware/knowledge_tree/middleware.py174except RuntimeError:CODE
HIGH…at/main_agent/middleware/context_editing/middleware.py86except RuntimeError:CODE
HIGH…ent_chat/main_agent/middleware/otel_span/middleware.py180except Exception: # pragma: no cover — defensiveCODE
HIGH…ent_chat/main_agent/middleware/otel_span/middleware.py197except Exception: # pragma: no cover — defensiveCODE
HIGH…ent_chat/main_agent/middleware/otel_span/middleware.py224except Exception: # pragma: no cover — defensiveCODE
HIGH…ent_chat/main_agent/middleware/otel_span/middleware.py276except Exception: # pragma: no cover — defensiveCODE
HIGH…ent_chat/main_agent/middleware/otel_span/middleware.py299except Exception: # pragma: no cover — defensiveCODE
HIGH…rfsense_backend/app/agents/video_presentation/nodes.py428except (json.JSONDecodeError, ValueError):CODE
HIGH…rfsense_backend/app/agents/video_presentation/nodes.py438except (json.JSONDecodeError, ValueError):CODE
HIGHsurfsense_backend/app/utils/structured_output.py45except (ValidationError, ValueError):CODE
HIGHsurfsense_backend/app/utils/structured_output.py54except (ValidationError, ValueError):CODE
HIGHsurfsense_backend/app/utils/connector_naming.py90except (ValueError, TypeError, AttributeError):CODE
HIGHsurfsense_backend/app/utils/crawl/net_guard.py83except ValueError:CODE
HIGHsurfsense_backend/app/knowledge_store/remote/shadow.py93except KeyError:CODE
HIGH…sense_backend/app/routes/linear_add_connector_route.py300except Exception:CODE
HIGH…sense_backend/app/routes/linear_add_connector_route.py537except Exception:CODE
HIGH…nse_backend/app/routes/airtable_add_connector_route.py248except Exception:CODE
HIGH…nse_backend/app/routes/airtable_add_connector_route.py434except Exception:CODE
HIGH…fsense_backend/app/routes/slack_add_connector_route.py228except Exception:CODE
HIGH…fsense_backend/app/routes/slack_add_connector_route.py426except Exception:CODE
HIGH…e_backend/app/routes/confluence_add_connector_route.py238except Exception:CODE
HIGH…e_backend/app/routes/confluence_add_connector_route.py554except Exception:CODE
HIGHsurfsense_backend/app/routes/new_chat_routes.py544except RuntimeError:CODE
HIGH…sense_backend/app/routes/notion_add_connector_route.py299except Exception:CODE
HIGH…sense_backend/app/routes/notion_add_connector_route.py539except Exception:CODE
HIGH…_backend/app/routes/search_source_connectors_routes.py124except asyncio.CancelledError:CODE
HIGH…_backend/app/routes/search_source_connectors_routes.py1787except Exception:CODE
50 more matches not shown…
Docstring Block Structure81 hits · 405 pts
SeverityFileLineSnippetContext
HIGHsurfsense_backend/app/connectors/clickup_connector.py58 Make a request to the ClickUp API. Args: endpoint: API endpoint (without base URL) STRING
HIGHsurfsense_backend/app/connectors/clickup_connector.py105 Fetch all tasks from a ClickUp workspace using the filtered team tasks endpoint. Args: worSTRING
HIGHsurfsense_backend/app/connectors/clickup_connector.py211 Fetch detailed information about a specific task. Args: task_id: ClickUp task ID STRING
HIGHsurfsense_backend/app/connectors/clickup_connector.py227 Fetch comments for a specific task. Args: task_id: ClickUp task ID Returns: STRING
HIGHsurfsense_backend/app/connectors/slack_history.py223 Fetch all channels that the bot has access to, with rate limit handling. Args: include_priSTRING
HIGHsurfsense_backend/app/connectors/slack_history.py320 Fetch conversation history for a channel. Args: channel_id: The ID of the channel to fetchSTRING
HIGHsurfsense_backend/app/connectors/slack_history.py475 Get information about a user. Args: user_id: The ID of the user to get info for RSTRING
HIGHsurfsense_backend/app/connectors/notion_history.py288 Execute Notion API call with retry logic and exponential backoff. Handles retryable errors per Notion STRING
HIGHsurfsense_backend/app/connectors/notion_history.py843 Create a new Notion page. Args: title: Page title content: Page content (markdSTRING
HIGHsurfsense_backend/app/connectors/notion_history.py938 Update an existing Notion page by appending new content. Note: Content is appended to the page, not reSTRING
HIGHsurfsense_backend/app/connectors/notion_history.py1035 Delete (archive) a Notion page. Note: Notion doesn't truly delete pages, it archives them. ArSTRING
HIGHsurfsense_backend/app/connectors/confluence_history.py288 Make a request to the Confluence API. Args: endpoint: API endpoint (without base URL) STRING
HIGHsurfsense_backend/app/connectors/confluence_history.py449 Fetch all pages in a specific space. Args: space_id: The ID of the space to fetch pages frSTRING
HIGHsurfsense_backend/app/connectors/confluence_history.py500 Fetch all comments for a specific page (both footer and inline comments). Args: page_id: TSTRING
HIGHsurfsense_backend/app/connectors/linear_connector.py292 Execute a GraphQL query against the Linear API with automatic token refresh. Args: query: STRING
HIGHsurfsense_backend/app/connectors/linear_connector.py332 Fetch all issues from Linear. Args: include_comments: Whether to include comments in the rSTRING
HIGHsurfsense_backend/app/connectors/luma_connector.py57 Make a request to the Luma API. Args: endpoint: API endpoint path (without base URL) STRING
HIGHsurfsense_backend/app/connectors/discord_connector.py345 Fetch all text channels in a guild. Args: guild_id (str): The ID of the guild to fetch chaSTRING
HIGHsurfsense_backend/app/connectors/discord_connector.py384 Fetch message history from a text channel. Args: channel_id (str): The ID of the channel tSTRING
HIGHsurfsense_backend/app/connectors/discord_connector.py460 Get information about a user in a guild. Args: guild_id (str): The ID of the guild. STRING
HIGHsurfsense_backend/app/connectors/bookstack_connector.py107 Make a request to the BookStack API. Args: endpoint: API endpoint (without base URL, e.g.,STRING
HIGHsurfsense_backend/app/connectors/bookstack_connector.py159 Fetch all pages from BookStack with pagination. Args: count: Number of records per requestSTRING
HIGHsurfsense_backend/app/connectors/bookstack_connector.py202 Get detailed information for a single page. The response includes 'html' (rendered) and optionally 'maSTRING
HIGHsurfsense_backend/app/connectors/bookstack_connector.py225 Export a page as Markdown content. Args: page_id: The ID of the page Returns: STRING
HIGHsurfsense_backend/app/connectors/bookstack_connector.py244 Get detailed information for a single book. The response includes a 'content' property with the book'sSTRING
HIGHsurfsense_backend/app/connectors/bookstack_connector.py272 Fetch pages updated within a specific date range. Uses the filter[updated_at:gt] parameter for incremeSTRING
HIGHsurfsense_backend/app/connectors/bookstack_connector.py334 Get page details along with its full content. Args: page_id: The ID of the page STRING
HIGHsurfsense_backend/app/connectors/clickup_history.py271 Fetch all tasks from a ClickUp workspace. Args: workspace_id: ClickUp workspace (team) ID STRING
HIGHsurfsense_backend/app/connectors/clickup_history.py318 Fetch detailed information about a specific task. Args: task_id: ClickUp task ID STRING
HIGHsurfsense_backend/app/connectors/clickup_history.py335 Fetch comments for a specific task. Args: task_id: ClickUp task ID Returns: STRING
HIGH…rfsense_backend/app/connectors/confluence_connector.py96 Make a request to the Confluence API. Args: endpoint: API endpoint (without base URL) STRING
HIGH…rfsense_backend/app/connectors/confluence_connector.py172 Fetch all pages in a specific space. Args: space_id: The ID of the space to fetch pages frSTRING
HIGH…rfsense_backend/app/connectors/confluence_connector.py223 Fetch all comments for a specific page (both footer and inline comments). Args: page_id: TSTRING
HIGH…nse_backend/app/connectors/google_drive/credentials.py24 Get valid Google OAuth credentials, refreshing if needed. Args: session: Database session connSTRING
HIGHsurfsense_backend/app/tasks/composio_indexer.py60 Dynamically import and return the indexer function for a toolkit. Args: toolkit_id: The toolkit ID (e.STRING
HIGHsurfsense_backend/app/tasks/connector_indexers/base.py66 Parse date from multiple common formats. Args: date_str: Date string to parse Returns: PaSTRING
HIGH…subagents/connectors/google_drive/tools/create_file.py34Create a new Google Doc or Google Sheet in Google Drive. Use this tool when the user explicitly asks to create STRING
HIGH…/subagents/connectors/google_drive/tools/trash_file.py27Move a Google Drive file to trash. Use this tool when the user explicitly asks to delete, remove, or trash STRING
HIGH…/builtins/mcp_discovery/tools/calendar/update_event.py49Update an existing Google Calendar event. Use when the user asks to modify, reschedule, or change a calendar evSTRING
HIGH…/builtins/mcp_discovery/tools/calendar/delete_event.py30Delete a Google Calendar event. Use when the user asks to delete, remove, or cancel a calendar event. STRING
HIGH…/builtins/mcp_discovery/tools/calendar/create_event.py34Create a new event on Google Calendar. Use when the user asks to schedule, create, or add a calendar event. STRING
HIGH…nts/builtins/mcp_discovery/tools/gmail/create_draft.py32Create a draft email in Gmail. Use when the user asks to draft, compose, or prepare an email without seSTRING
HIGH…ts/builtins/mcp_discovery/tools/gmail/search_emails.py28Search emails in the user's Gmail inbox using Gmail search syntax. Args: query: Gmail search query,STRING
HIGH…gents/builtins/mcp_discovery/tools/gmail/send_email.py37Send an email via Gmail. Use when the user explicitly asks to send an email. This sends the email immedSTRING
HIGH…ents/builtins/mcp_discovery/tools/gmail/trash_email.py27Move an email or draft to trash in Gmail. Use when the user asks to delete, remove, or trash an email or draft.STRING
HIGH…nts/builtins/mcp_discovery/tools/gmail/update_draft.py33Update an existing Gmail draft. Use when the user asks to modify, edit, or add content to an existing eSTRING
HIGH…pp/agents/chat/multi_agent_chat/shared/date_filters.py11 Parse either an ISO date (YYYY-MM-DD) or ISO datetime into an aware UTC datetime. - If `value` is a date, inteSTRING
HIGH…gents/chat/multi_agent_chat/shared/tools/mcp/client.py46Connect to the MCP server and manage its lifecycle. Retries only apply to the **connection** phase (spawning thSTRING
HIGH…gents/chat/multi_agent_chat/shared/tools/mcp/client.py181Call a tool on the MCP server. Args: tool_name: Name of the tool to call arguments: ArgSTRING
HIGH…are/checkpointed_subagent_middleware/resume_routing.py88Extract ``[(tool_call_id, action_count), ...]`` from a paused parent state. Reads ``state.interrupts`` (the bundle STRING
HIGHsurfsense_backend/app/utils/oauth_security.py100 Validate and decode state parameter with signature verification. Args: state: The state paSTRING
HIGHsurfsense_backend/app/utils/validators.py69 Validate and convert workspace_id to integer. Args: workspace_id: The workspace ID to validate ReSTRING
HIGHsurfsense_backend/app/utils/validators.py123 Validate and convert document_ids to list of integers. Args: document_ids: The document IDs to validatSTRING
HIGHsurfsense_backend/app/utils/validators.py189 Validate selected_connectors list. Args: connectors: The connectors to validate Returns: STRING
HIGHsurfsense_backend/app/utils/validators.py233 Validate research_mode parameter. Args: research_mode: The research mode to validate Returns: STRING
HIGHsurfsense_backend/app/utils/validators.py264 Validate search_mode parameter. Args: search_mode: The search mode to validate Returns: sSTRING
HIGHsurfsense_backend/app/utils/validators.py295 Validate and convert top_k to integer. Args: top_k: The top_k value to validate Returns: STRING
HIGHsurfsense_backend/app/utils/validators.py349 Validate messages structure. Args: messages: The messages to validate Returns: List[dict]STRING
HIGHsurfsense_backend/app/utils/validators.py411 Validate email address using pyvalidators library. Args: email: The email address to validate RetSTRING
HIGHsurfsense_backend/app/utils/validators.py435 Validate URL using pyvalidators library. Args: url: The URL to validate Returns: str: ValSTRING
21 more matches not shown…
Deep Nesting363 hits · 337 pts
SeverityFileLineSnippetContext
LOWplans/community-local/seo/data/parse.py522CODE
LOWplans/community-local/seo/data/parse.py785CODE
LOWplans/community-local/seo/data/parse.py1061CODE
LOW…core/cli/surfsense_plugin_cli/invoke/request/inputs.py11CODE
LOWplugins/core/sdk/tests/unit/test_public_surface.py27CODE
LOWdocs/contracts/check-export-sample.py29CODE
LOWsurfsense_backend/app/users.py108CODE
LOWsurfsense_backend/app/connectors/slack_history.py55CODE
LOWsurfsense_backend/app/connectors/slack_history.py220CODE
LOWsurfsense_backend/app/connectors/slack_history.py313CODE
LOWsurfsense_backend/app/connectors/slack_history.py474CODE
LOW…sense_backend/app/connectors/google_gmail_connector.py79CODE
LOW…sense_backend/app/connectors/google_gmail_connector.py385CODE
LOWsurfsense_backend/app/connectors/notion_history.py115CODE
LOWsurfsense_backend/app/connectors/notion_history.py281CODE
LOWsurfsense_backend/app/connectors/notion_history.py591CODE
LOWsurfsense_backend/app/connectors/notion_history.py675CODE
LOWsurfsense_backend/app/connectors/notion_history.py757CODE
LOWsurfsense_backend/app/connectors/notion_history.py935CODE
LOWsurfsense_backend/app/connectors/confluence_history.py57CODE
LOWsurfsense_backend/app/connectors/confluence_history.py347CODE
LOWsurfsense_backend/app/connectors/confluence_history.py574CODE
LOWsurfsense_backend/app/connectors/linear_connector.py102CODE
LOWsurfsense_backend/app/connectors/linear_connector.py256CODE
LOWsurfsense_backend/app/connectors/linear_connector.py406CODE
LOWsurfsense_backend/app/connectors/teams_history.py79CODE
LOW…se_backend/app/connectors/google_calendar_connector.py50CODE
LOWsurfsense_backend/app/connectors/luma_connector.py54CODE
LOWsurfsense_backend/app/connectors/luma_connector.py210CODE
LOWsurfsense_backend/app/connectors/teams_connector.py53CODE
LOWsurfsense_backend/app/connectors/discord_connector.py87CODE
LOWsurfsense_backend/app/connectors/airtable_connector.py53CODE
LOWsurfsense_backend/app/connectors/airtable_connector.py332CODE
LOWsurfsense_backend/app/connectors/airtable_history.py49CODE
LOWsurfsense_backend/app/connectors/clickup_history.py53CODE
LOW…rfsense_backend/app/connectors/confluence_connector.py295CODE
LOW…ense_backend/app/connectors/onedrive/folder_manager.py50CODE
LOW…sense_backend/app/connectors/dropbox/folder_manager.py43CODE
LOW…nse_backend/app/connectors/google_drive/credentials.py20CODE
LOW…fsense_backend/app/artifacts/infographic/generation.py39CODE
LOW…_backend/app/artifacts/verification/formats/mindmap.py32CODE
LOW…_backend/app/artifacts/verification/formats/mindmap.py158CODE
LOW…nse_backend/app/artifacts/verification/formats/xlsx.py53CODE
LOW…se_backend/app/artifacts/verification/formats/ooxml.py19CODE
LOW…kend/app/artifacts/verification/formats/infographic.py61CODE
LOW…ckend/app/artifacts/verification/formats/study_text.py26CODE
LOW…ckend/app/artifacts/verification/formats/study_text.py44CODE
LOW…nse_backend/app/artifacts/verification/formats/pptx.py184CODE
LOW…fsense_backend/app/tasks/celery_tasks/gateway_tasks.py66CODE
LOW…fsense_backend/app/tasks/celery_tasks/gateway_tasks.py67CODE
LOW…d/app/tasks/celery_tasks/stripe_reconciliation_task.py39CODE
LOW…/tasks/celery_tasks/stale_notification_cleanup_task.py81CODE
LOW…/tasks/celery_tasks/stale_notification_cleanup_task.py264CODE
LOW…sense_backend/app/tasks/celery_tasks/document_tasks.py542CODE
LOW…sense_backend/app/tasks/celery_tasks/document_tasks.py825CODE
LOW…sense_backend/app/tasks/celery_tasks/document_tasks.py1262CODE
LOW…sense_backend/app/tasks/celery_tasks/document_tasks.py1401CODE
LOW…ackend/app/tasks/celery_tasks/schedule_checker_task.py30CODE
LOWsurfsense_backend/app/tasks/chat/persistence.py114CODE
LOW…sense_backend/app/tasks/chat/llm_history_normalizer.py43CODE
303 more matches not shown…
Redundant / Tautological Comments116 hits · 170 pts
SeverityFileLineSnippetContext
LOWsurfsense_backend/app/connectors/clickup_connector.py143 # Check if there are more pagesCOMMENT
LOWsurfsense_backend/app/connectors/clickup_connector.py196 # Check if there are more pagesCOMMENT
LOW⚡surfsense_backend/app/connectors/slack_history.py67 # Check if client was initialized with a token directly (not via credentials)COMMENT
LOW⚡surfsense_backend/app/connectors/slack_history.py137 # Check if token is expired and refreshableCOMMENT
LOWsurfsense_backend/app/connectors/notion_history.py211 # Check if token is expired and refreshableCOMMENT
LOWsurfsense_backend/app/connectors/notion_history.py323 # Check if this error is retryableCOMMENT
LOWsurfsense_backend/app/connectors/notion_history.py328 # Check if we've exhausted retriesCOMMENT
LOWsurfsense_backend/app/connectors/notion_history.py638 # Check if this is an unsupported block type errorCOMMENT
LOWsurfsense_backend/app/connectors/notion_history.py691 # Check if this is a known unsupported block type before processingCOMMENT
LOWsurfsense_backend/app/connectors/notion_history.py709 # Check if block has childrenCOMMENT
LOWsurfsense_backend/app/connectors/notion_history.py731 # Check if this is an unsupported block type errorCOMMENT
LOWsurfsense_backend/app/connectors/confluence_history.py82 # Check if using OAuth or legacy API tokenCOMMENT
LOWsurfsense_backend/app/connectors/confluence_history.py89 # Check if access_token exists before processingCOMMENT
LOWsurfsense_backend/app/connectors/confluence_history.py168 # Check if token is expired and refreshable (only for OAuth)COMMENT
LOWsurfsense_backend/app/connectors/confluence_history.py432 # Check if there are more spaces to fetchCOMMENT
LOWsurfsense_backend/app/connectors/confluence_history.py485 # Check if there are more pages to fetchCOMMENT
LOWsurfsense_backend/app/connectors/confluence_history.py560 # Check if there are more comments to fetchCOMMENT
LOWsurfsense_backend/app/connectors/linear_connector.py127 # Check if access_token exists before processingCOMMENT
LOWsurfsense_backend/app/connectors/linear_connector.py177 # Check if token is expired and refreshableCOMMENT
LOWsurfsense_backend/app/connectors/linear_connector.py538 # Check if there are more pagesSTRING
LOW…se_backend/app/connectors/google_calendar_connector.py241 # Set start to beginning of day (00:00:00) and end to end of day (23:59:59)COMMENT
LOWsurfsense_backend/app/connectors/luma_connector.py246 # Check if event falls within the date rangeCOMMENT
LOWsurfsense_backend/app/connectors/teams_connector.py127 # Check if token is expired and refreshableCOMMENT
LOWsurfsense_backend/app/connectors/teams_connector.py295 # Check if message is within date rangeCOMMENT
LOW⚡surfsense_backend/app/connectors/discord_connector.py159 # Check if token is expired and refreshableCOMMENT
LOWsurfsense_backend/app/connectors/bookstack_connector.py191 # Check if we've fetched all pagesCOMMENT
LOWsurfsense_backend/app/connectors/bookstack_connector.py312 # Check if we've fetched all pagesCOMMENT
LOWsurfsense_backend/app/connectors/airtable_history.py74 # Check if access_token exists before processingCOMMENT
LOWsurfsense_backend/app/connectors/airtable_history.py124 # Check if token is expired and refreshableCOMMENT
LOWsurfsense_backend/app/connectors/clickup_history.py83 # Check if using OAuth or legacy API tokenCOMMENT
LOWsurfsense_backend/app/connectors/clickup_history.py162 # Check if token is expired and refreshable (only for OAuth)COMMENT
LOW…rfsense_backend/app/connectors/confluence_connector.py155 # Check if there are more spaces to fetchCOMMENT
LOW…rfsense_backend/app/connectors/confluence_connector.py208 # Check if there are more pages to fetchCOMMENT
LOW…rfsense_backend/app/connectors/confluence_connector.py281 # Check if there are more comments to fetchCOMMENT
LOW…nse_backend/app/connectors/google_drive/credentials.py141 # Check if this is an invalid_grant error (token expired/revoked)COMMENT
LOWsurfsense_backend/app/tasks/composio_indexer.py161 # Check if toolkit is indexableCOMMENT
LOW…sense_backend/app/tasks/celery_tasks/document_tasks.py495 # Check if file exists and is accessibleCOMMENT
LOW…sense_backend/app/tasks/celery_tasks/document_tasks.py636 # Check if this is an insufficient-credit error (either direct orCOMMENT
LOW…sense_backend/app/tasks/celery_tasks/document_tasks.py758 # Check if file exists and is accessibleCOMMENT
LOW…sense_backend/app/tasks/celery_tasks/document_tasks.py923 # Set status to PROCESSING (shows spinner in UI via Zero)COMMENT
LOW…sense_backend/app/tasks/celery_tasks/document_tasks.py975 # Check if this is an insufficient-credit errorCOMMENT
LOW…e_backend/app/tasks/connector_indexers/luma_indexer.py299 # Check if document with this unique identifier already existsCOMMENT
LOW…e_backend/app/tasks/connector_indexers/luma_indexer.py341 # Check if a document with the same content_hash exists (from another connector)COMMENT
LOW…kend/app/tasks/connector_indexers/bookstack_indexer.py251 # Check if document with this unique identifier already existsCOMMENT
LOW…kend/app/tasks/connector_indexers/bookstack_indexer.py293 # Check if a document with the same content_hash exists (from another connector)COMMENT
LOW…ackend/app/tasks/connector_indexers/discord_indexer.py240 # Check if using OAuth (has bot_token in config) or legacy (has DISCORD_BOT_TOKEN)COMMENT
LOW…ackend/app/tasks/connector_indexers/discord_indexer.py517 # Check if document with this unique identifier already existsCOMMENT
LOW…ackend/app/tasks/connector_indexers/discord_indexer.py562 # Check if a document with the same content_hash exists (from another connector)COMMENT
LOW…_backend/app/tasks/connector_indexers/teams_indexer.py409 # Check if document with this unique identifier already existsCOMMENT
LOW…_backend/app/tasks/connector_indexers/teams_indexer.py454 # Check if a document with the same content_hash exists (from another connector)COMMENT
LOW…_backend/app/tasks/connector_indexers/slack_indexer.py391 # Check if document with this unique identifier already existsCOMMENT
LOW…_backend/app/tasks/connector_indexers/slack_indexer.py434 # Check if a document with the same content_hash exists (from another connector)COMMENT
LOW…ackend/app/tasks/connector_indexers/clickup_indexer.py100 # Check if using OAuth (has access_token in config) or legacy (has CLICKUP_API_TOKEN)COMMENT
LOW…ackend/app/tasks/connector_indexers/clickup_indexer.py252 # Check if document with this unique identifier already existsCOMMENT
LOW…ackend/app/tasks/connector_indexers/clickup_indexer.py296 # Check if a document with the same content_hash exists (from another connector)COMMENT
LOW…backend/app/tasks/connector_indexers/github_indexer.py230 # Check if document with this unique identifier already existsCOMMENT
LOW…backend/app/tasks/connector_indexers/github_indexer.py264 # Check if a document with the same content_hash exists (from another connector)COMMENT
LOW…/app/tasks/connector_indexers/elasticsearch_indexer.py504 # Check if custom query is providedCOMMENT
LOW…ckend/app/tasks/connector_indexers/airtable_indexer.py270 # Check if document with this unique identifier already existsCOMMENT
LOW…ckend/app/tasks/connector_indexers/airtable_indexer.py306 # Check if a document with the same content_hash exists (from another connector)COMMENT
56 more matches not shown…
Cross-Language Confusion23 hits · 120 pts
SeverityFileLineSnippetContext
HIGH…/tasks/celery_tasks/stale_notification_cleanup_task.py87 3. Mark those as failed with O(1) batch UPDATE using JSONB || operatorSTRING
HIGH…/tasks/celery_tasks/stale_notification_cleanup_task.py159 SET metadata = metadata || CAST(:update_json AS jsonb),CODE
HIGH…/tasks/celery_tasks/stale_notification_cleanup_task.py335 SET metadata = metadata || CAST(:update_json AS jsonb),CODE
HIGH⚡…rfsense_backend/app/proprietary/web_crawler/captcha.py172 if (cfg && cfg.clients) {CODE
HIGH⚡…rfsense_backend/app/proprietary/web_crawler/captcha.py177 if (o && typeof o === 'object') {CODE
HIGH⚡…rfsense_backend/app/proprietary/web_crawler/captcha.py180 if (cb && cb.callback && typeof cb.callback === 'function') {CODE
HIGHsurfsense_backend/app/knowledge_store/service.py167 lambda: engine.push(CODE
HIGHsurfsense_backend/app/knowledge_store/engines/git.py207 porcelain.push(CODE
HIGHsurfsense_backend/app/knowledge_store/remote/facade.py302 return shadow.push(CODE
HIGHsurfsense_backend/app/knowledge_store/remote/facade.py417 return shadow.push(CODE
HIGHsurfsense_backend/app/knowledge_store/remote/shadow.py131 porcelain.push(CODE
HIGH⚡…backend/tests/unit/knowledge_store/engines/test_git.py369 pushed = source.push(CODE
HIGH…backend/tests/unit/knowledge_store/engines/test_git.py395 source.push(CODE
HIGH…ckend/tests/unit/knowledge_store/remote/test_shadow.py54 shadow.push(url=str(dest._path), ref=shadow.head_ref())CODE
HIGH…sts/integration/knowledge_store/remote/test_connect.py47 seed.push(CODE
HIGH…/tests/integration/knowledge_store/remote/test_sync.py22 seed.push(CODE
HIGH…/tests/integration/knowledge_store/remote/test_sync.py279 editor.push(url=str(dest._path), ref="refs/heads/main")CODE
HIGH…/tests/integration/knowledge_store/remote/test_sync.py325 editor.push(url=str(dest._path), ref="refs/heads/main")CODE
HIGH…/tests/integration/knowledge_store/remote/test_sync.py371 editor.push(url=str(dest._path), ref="refs/heads/main")CODE
HIGH…/tests/integration/knowledge_store/remote/test_sync.py409 editor.push(url=str(dest._path), ref="refs/heads/main")CODE
HIGH…/alembic/versions/107_add_video_presentations_table.py34 WHEN duplicate_object THEN null;CODE
HIGH…d/alembic/versions/82_add_podcast_status_and_thread.py26 WHEN duplicate_object THEN null;STRING
HIGH…ckend/tests/unit/llm/providers/test_prompt_progress.py29 'data: {"choices":[{"delta":{"role":"assistant","content":null}}],'CODE
Fake / Example Data115 hits · 112 pts
SeverityFileLineSnippetContext
LOWdocs/proposals/plugins/core/02-registry.md134 "author": "Jane Doe",CODE
LOWdocs/proposals/file-agent/01-sources-and-folders.md124 state CHECK in ('ready','placeholder','trashed','deleting'),CODE
LOWdocs/proposals/file-agent/01-sources-and-folders.md128 WHERE parent_id IS NOT NULL AND state IN ('ready','placeholder')CODE
LOWdocs/proposals/file-agent/01-sources-and-folders.md141 state CHECK in ('queued','indexed','stale','unsupported','placeholder',CODE
LOWsurfsense_web/messages/zh.json433 "placeholder": "输入 URL 并按 Enter",CODE
LOWsurfsense_web/messages/zh.json462 "placeholder": "在此粘贴 YouTube 视频或播放列表 URL",CODE
LOWsurfsense_web/messages/pt.json433 "placeholder": "Insira uma URL e pressione Enter",CODE
LOWsurfsense_web/messages/pt.json462 "placeholder": "Cole URLs de vídeos ou playlists do YouTube aqui",CODE
LOWsurfsense_web/messages/en.json257 "name_placeholder": "John Doe",CODE
LOWsurfsense_web/messages/en.json433 "placeholder": "Enter a URL and press Enter",CODE
LOWsurfsense_web/messages/en.json462 "placeholder": "Paste YouTube video or playlist URLs here",CODE
LOWsurfsense_web/messages/hi.json433 "placeholder": "URL दर्ज करें और Enter दबाएं",CODE
LOWsurfsense_web/messages/hi.json462 "placeholder": "YouTube वीडियो या प्लेलिस्ट URL यहां पेस्ट करें",CODE
LOWsurfsense_web/messages/ko.json433 "placeholder": "URL을 입력하고 Enter를 누르세요",CODE
LOWsurfsense_web/messages/ko.json462 "placeholder": "유튜브 동영상 또는 재생목록 URL을 붙여넣으세요",CODE
LOWsurfsense_web/messages/es.json433 "placeholder": "Ingresa una URL y presiona Enter",CODE
LOWsurfsense_web/messages/es.json462 "placeholder": "Pega URLs de videos o listas de reproducción de YouTube aquí",CODE
LOW…se_web/features/chat-messages/timeline/turn-timing.tsx64 if (display.phase === "placeholder") return null;CODE
LOW…b/features/chat-messages/timeline/turn-timing-state.ts10 | { phase: "placeholder" }CODE
LOW…b/features/chat-messages/timeline/turn-timing-state.ts22 if (!snapshot) return { phase: "placeholder" };CODE
LOWsurfsense_web/tests/unit/chat/turn-timing.test.ts7 assert.deepEqual(resolveTurnTimingDisplay(null, true), { phase: "placeholder" });CODE
LOW…tant-ui/connector-popup/views/youtube-crawler-view.tsx254 placeholder={t("placeholder")}CODE
LOW…fsense_backend/app/tasks/celery_tasks/gateway_tasks.py154 parsed = TelegramAdapter("placeholder").parse_inbound(raw_update)CODE
LOWsurfsense_backend/app/utils/crawl/contacts.py143 "placeholder",CODE
LOWsurfsense_backend/app/utils/crawl/contacts.py163 "placeholder",CODE
LOW…ckend/tests/unit/platforms/indeed_jobs/test_parsers.py26 "company": "Acme Corp",CODE
LOW…ckend/tests/unit/platforms/indeed_jobs/test_parsers.py71 assert item["company"] == "Acme Corp"CODE
LOW…/tests/unit/proprietary/web_crawler/test_url_policy.py76 "text": "Jane Doe",STRING
LOW⚡…fsense_backend/tests/unit/capabilities/test_billing.py35 fake_user = _FakeUser(balance_micros)CODE
LOW⚡…fsense_backend/tests/unit/capabilities/test_billing.py42 result.unique.return_value.scalar_one_or_none.return_value = fake_user # debitCODE
LOW⚡…fsense_backend/tests/unit/capabilities/test_billing.py46 return session, fake_userCODE
LOW…backend/tests/unit/capabilities/test_run_truncation.py243 "text": "Jane Doe",CODE
LOW…backend/tests/unit/capabilities/test_run_truncation.py256 "text": "Jane Doe",CODE
LOW⚡…backend/tests/unit/capabilities/test_run_truncation.py278 assert links[0]["text"] == "Jane Doe"CODE
LOW⚡…backend/tests/unit/capabilities/test_run_truncation.py291 assert "Jane Doe" in lines[1]CODE
LOW⚡…ense_backend/tests/unit/license/test_license_routes.py397 ["user@example.com", "user+a@example.com", "user+b@example.com"]CODE
LOW⚡…/unit/connector_indexers/test_google_drive_parallel.py258 fake_user = _FakeUser(balance_micros, reserved_micros)CODE
LOW⚡…/unit/connector_indexers/test_google_drive_parallel.py264 fake_user.credit_micros_balance,CODE
LOW⚡…/unit/connector_indexers/test_google_drive_parallel.py265 fake_user.credit_micros_reserved,CODE
LOW⚡…/unit/connector_indexers/test_google_drive_parallel.py267 r.unique.return_value.scalar_one_or_none.return_value = fake_userCODE
LOW⚡…/unit/connector_indexers/test_google_drive_parallel.py271 return session, fake_userCODE
LOW⚡…kend/tests/unit/connector_indexers/test_etl_credits.py129 fake_user = _FakeUser(balance_micros, reserved_micros)CODE
LOW⚡…kend/tests/unit/connector_indexers/test_etl_credits.py135 fake_user.credit_micros_balance,CODE
LOW⚡…kend/tests/unit/connector_indexers/test_etl_credits.py136 fake_user.credit_micros_reserved,CODE
LOW⚡…kend/tests/unit/connector_indexers/test_etl_credits.py138 result.unique.return_value.scalar_one_or_none.return_value = fake_userCODE
LOW⚡…kend/tests/unit/connector_indexers/test_etl_credits.py142 return session, fake_userCODE
LOW⚡…kend/tests/unit/connector_indexers/test_etl_credits.py164 session, fake_user = _make_credit_session(_micros(100))CODE
LOW⚡…kend/tests/unit/connector_indexers/test_etl_credits.py291 assert m["fake_user"].credit_micros_balance == _micros(100) - _micros(2)CODE
LOW⚡…kend/tests/unit/connector_indexers/test_etl_credits.py297 m["fake_user"].credit_micros_balance = _micros(95)CODE
LOW⚡…kend/tests/unit/connector_indexers/test_etl_credits.py307 assert m["fake_user"].credit_micros_balance == _micros(95)CODE
LOW⚡…kend/tests/unit/connector_indexers/test_etl_credits.py313 m["fake_user"].credit_micros_balance = 0CODE
LOW⚡…kend/tests/unit/connector_indexers/test_etl_credits.py338 session, fake_user = _make_credit_session(_micros(100))CODE
LOW⚡…kend/tests/unit/connector_indexers/test_etl_credits.py427 assert m["fake_user"].credit_micros_balance == _micros(100) - _micros(3)CODE
LOW⚡…kend/tests/unit/connector_indexers/test_etl_credits.py583 assert m["fake_user"].credit_micros_balance == _micros(100) - _micros(2)CODE
LOW…kend/tests/unit/connector_indexers/test_etl_credits.py188 "fake_user": fake_user,CODE
LOW…kend/tests/unit/connector_indexers/test_etl_credits.py213 m["fake_user"].credit_micros_balance = _micros(100)CODE
LOW…kend/tests/unit/connector_indexers/test_etl_credits.py235 m["fake_user"].credit_micros_balance = _micros(2)CODE
LOW…kend/tests/unit/connector_indexers/test_etl_credits.py254 m["fake_user"].credit_micros_balance = _micros(2)CODE
LOW…kend/tests/unit/connector_indexers/test_etl_credits.py276 m["fake_user"].credit_micros_balance = _micros(100)CODE
LOW…kend/tests/unit/connector_indexers/test_etl_credits.py359 "fake_user": fake_user,CODE
55 more matches not shown…
Modern AI Meta-Vocabulary43 hits · 104 pts
SeverityFileLineSnippetContext
MEDIUMplans/community-local/file-agent-strategy.md100| Engine | built: `docxkit` about 19,000 lines, `crlib` about 12,000 ([02, Today](../../docs/proposals/file-agent/02-skiCODE
MEDIUMdocs/architecture/studio.md12[`service.py`](../../surfsense_local/backend/modules/artifacts/service.py)`::create_artifact_job(session, workspace, payCODE
MEDIUMdocs/architecture/studio.md162The agent's PDF tools make their file themselves ([agent](agent.md#pdfs-the-agent-works-on)), so [`made_file.py`](../../CODE
MEDIUMdocs/proposals/embedding-model-choice.md20# Choosing the embedding model onceCOMMENT
MEDIUMdocs/proposals/embedding-model-change.md9# Changing the embedding modelCOMMENT
MEDIUMdocs/proposals/file-agent/README.md48- **Editing the customer's file is now expected.** Claude for Word writes native tracked changes ([Anthropic](https://clCODE
MEDIUM.github/workflows/desktop-tests.yml92 # Tests that need the real embedding model skip without it.COMMENT
MEDIUM⚡surfsense_backend/app/config/model_list_fallback.json9 "description": "Gemini 3.1 Pro Preview is Google’s frontier reasoning model, delivering enhanced software engineerCODE
MEDIUM⚡surfsense_backend/app/config/model_list_fallback.json9 "description": "Gemini 3.1 Pro Preview is Google’s frontier reasoning model, delivering enhanced software engineerCODE
MEDIUM⚡surfsense_backend/app/config/model_list_fallback.json9 "description": "Gemini 3.1 Pro Preview is Google’s frontier reasoning model, delivering enhanced software engineerCODE
MEDIUM⚡surfsense_backend/app/config/model_list_fallback.json2715 "description": "Gemini 3 Pro is Google’s flagship frontier model for high-precision multimodal reasoning, combininCODE
MEDIUM⚡surfsense_backend/app/config/model_list_fallback.json2715 "description": "Gemini 3 Pro is Google’s flagship frontier model for high-precision multimodal reasoning, combininCODE
MEDIUM⚡surfsense_backend/app/config/model_list_fallback.json2715 "description": "Gemini 3 Pro is Google’s flagship frontier model for high-precision multimodal reasoning, combininCODE
MEDIUM⚡surfsense_backend/app/config/model_list_fallback.json9834 "description": "Note: Sonar Pro pricing includes Perplexity search pricing. See [details here](https://docs.perpleCODE
MEDIUMsurfsense_backend/app/config/model_list_fallback.json1011 "description": "GPT-5.2-Codex is an upgraded version of GPT-5.1-Codex optimized for software engineering and codinCODE
MEDIUMsurfsense_backend/app/config/model_list_fallback.json1011 "description": "GPT-5.2-Codex is an upgraded version of GPT-5.1-Codex optimized for software engineering and codinCODE
MEDIUMsurfsense_backend/app/config/model_list_fallback.json1762 "description": "The relace-search model uses 4-12 `view_file` and `grep` tools in parallel to explore a codebase aCODE
MEDIUMsurfsense_backend/app/config/model_list_fallback.json2896 "description": "GPT-5.1-Codex is a specialized version of GPT-5.1 optimized for software engineering and coding woCODE
MEDIUMsurfsense_backend/app/config/model_list_fallback.json2896 "description": "GPT-5.1-Codex is a specialized version of GPT-5.1 optimized for software engineering and coding woCODE
MEDIUMsurfsense_backend/app/config/model_list_fallback.json4311 "description": "DeepSeek-V3.2-Exp is an experimental large language model released by DeepSeek as an intermediate CODE
MEDIUMsurfsense_backend/app/config/model_list_fallback.json4311 "description": "DeepSeek-V3.2-Exp is an experimental large language model released by DeepSeek as an intermediate CODE
MEDIUMsurfsense_backend/app/config/model_list_fallback.json4670 "description": "GPT-5-Codex is a specialized version of GPT-5 optimized for software engineering and coding workflCODE
MEDIUMsurfsense_backend/app/config/model_list_fallback.json4670 "description": "GPT-5-Codex is a specialized version of GPT-5 optimized for software engineering and coding workflCODE
MEDIUMsurfsense_backend/app/config/model_list_fallback.json4713 "description": "DeepSeek-V3.1 Terminus is an update to [DeepSeek V3.1](/deepseek/deepseek-chat-v3.1) that maintainCODE
MEDIUMsurfsense_backend/app/config/model_list_fallback.json4713 "description": "DeepSeek-V3.1 Terminus is an update to [DeepSeek V3.1](/deepseek/deepseek-chat-v3.1) that maintainCODE
MEDIUMsurfsense_backend/app/config/model_list_fallback.json4764 "description": "DeepSeek-V3.1 Terminus is an update to [DeepSeek V3.1](/deepseek/deepseek-chat-v3.1) that maintainCODE
MEDIUMsurfsense_backend/app/config/model_list_fallback.json4764 "description": "DeepSeek-V3.1 Terminus is an update to [DeepSeek V3.1](/deepseek/deepseek-chat-v3.1) that maintainCODE
MEDIUMsurfsense_backend/app/config/model_list_fallback.json5558 "description": "DeepSeek-V3.1 is a large hybrid reasoning model (671B parameters, 37B active) that supports both tCODE
MEDIUMsurfsense_backend/app/config/model_list_fallback.json5558 "description": "DeepSeek-V3.1 is a large hybrid reasoning model (671B parameters, 37B active) that supports both tCODE
MEDIUMsurfsense_backend/app/config/model_list_fallback.json9794 "description": "Note: Sonar Pro pricing includes Perplexity search pricing. See [details here](https://docs.perpleCODE
MEDIUM…ents/builtins/deliverables/tools/video_presentation.py92 # timeout (multi-agent) or HTTP lifetime (single-agent) —COMMENT
MEDIUM…/agents/chat/multi_agent_chat/shared/tools/mcp/tool.py61# multi-agent paths cannot share tool closures with different HITL wiring.COMMENT
MEDIUM…ent_chat/main_agent/middleware/otel_span/middleware.py69 # the usual culprit when the multi-agent path feels slow to start.COMMENT
MEDIUM⚡surfsense_backend/app/utils/document_converters.py19# This reentrant lock serialises tokenizer + embedding model access so thatCOMMENT
MEDIUMsurfsense_backend/app/utils/document_converters.py145 # Get model context windowCOMMENT
MEDIUMsurfsense_backend/app/routes/documents_routes.py741 # Local import: the retriever pulls in the embedding model + agent stack,COMMENT
MEDIUMsurfsense_backend/tests/e2e/fakes/embeddings.py74 # passthrough to a real embedding model would be expensiveCOMMENT
MEDIUMsurfsense_local/backend/tests/conftest.py33# Where the real embedding model might be: the staged pack `pnpm dev` points theCOMMENT
MEDIUM…sense_local/backend/tests/integration/chat/conftest.py22# The context window /props reports, or None to omit it (an older build /COMMENT
MEDIUMsurfsense_local/backend/scripts/retrieval_eval/run.py76 # Imported here: it pulls onnxruntime and the embedding model.COMMENT
MEDIUM…local/backend/modules/llm/catalog/remote/classifier.py25 # context window.COMMENT
MEDIUM…fsense_local/backend/modules/llm/connections/router.py59# spending the budget on a reasoning trace gets near it. At 64 such a modelCOMMENT
MEDIUMsurfsense_local/backend/modules/llm/profile/classify.py3# Under the first a model loses accuracy when asked to follow a scaffold; betweenCOMMENT
Self-Referential Comments33 hits · 100 pts
SeverityFileLineSnippetContext
MEDIUMsurfsense_backend/app/connectors/notion_history.py890 # Create the page with standard title propertyCOMMENT
MEDIUMsurfsense_backend/app/connectors/github_connector.py90 # Create a temporary file for outputCOMMENT
MEDIUM…nse_backend/app/tasks/celery_tasks/auto_reload_task.py133 # Create the PENDING purchase row first so its id seeds the StripeCOMMENT
MEDIUM…sense_backend/app/tasks/celery_tasks/document_tasks.py655 # Create a dedicated insufficient credits notificationCOMMENT
MEDIUM…rfsense_backend/app/proprietary/web_crawler/captcha.py3# This module is part of the ``app.proprietary`` package and is licensedCOMMENT
MEDIUM…rfsense_backend/app/proprietary/web_crawler/stealth.py3# This module is part of the ``app.proprietary`` package and is licensedCOMMENT
MEDIUM…sense_backend/app/proprietary/web_crawler/connector.py3# This module is part of the ``app.proprietary`` package and is licensedCOMMENT
MEDIUM…app/proprietary/web_crawler/testbench/suite_stealth.py3# This module is part of the ``app.proprietary`` package and is licensedCOMMENT
MEDIUM…kend/app/proprietary/web_crawler/testbench/__init__.py3# This module is part of the ``app.proprietary`` package and is licensedCOMMENT
MEDIUM…_backend/app/proprietary/web_crawler/testbench/core.py3# This module is part of the ``app.proprietary`` package and is licensedCOMMENT
MEDIUM…/proprietary/web_crawler/testbench/suite_extraction.py3# This module is part of the ``app.proprietary`` package and is licensedCOMMENT
MEDIUM…kend/app/proprietary/web_crawler/testbench/__main__.py3# This module is part of the ``app.proprietary`` package and is licensedCOMMENT
MEDIUM…ense_backend/app/config/global_llm_config.example.yaml8# This file is intentionally safe to commit. Do not put real API keys in thisCOMMENT
MEDIUMsurfsense_backend/app/config/__init__.py1359# Create a config instanceCOMMENT
MEDIUMsurfsense_backend/app/routes/new_chat_routes.py2302 # Create a wrapper generator that deletes messages only AFTER streaming succeedsCOMMENT
MEDIUM…_backend/app/routes/search_source_connectors_routes.py2058 # Create a wrapper function that calls index_google_gmail_messages with max_messagesCOMMENT
MEDIUM…_backend/app/routes/search_source_connectors_routes.py2712 # Create the connector with single server configCOMMENT
MEDIUMsurfsense_backend/app/routes/incentive_tasks_routes.py114 # Create the task completion recordCOMMENT
MEDIUMsurfsense_backend/app/services/reranker_service.py106 # Create a deep copy to preserve the full structure including chunksCOMMENT
MEDIUMsurfsense_backend/app/services/llm_router_service.py745 # Create a new instance with tools bound. Carry through ``model_kwargs``COMMENT
MEDIUM…sions/9_add_discord_connector_enum_and_documenttype.py17# Define the ENUM type name and the new valueCOMMENT
MEDIUM…ckend/alembic/versions/59_add_teams_connector_enums.py17# Define the ENUM type name and the new valueCOMMENT
MEDIUM…d/alembic/versions/48_add_note_to_documenttype_enum.py18# Define the ENUM type name and the new valueCOMMENT
MEDIUM…ic/versions/3_add_linear_connector_to_documenttype_.py18# Define the ENUM type name and the new valueCOMMENT
MEDIUM…/e55302644c51_add_github_connector_to_documenttype_.py11# Define the ENUM type name and the new valueCOMMENT
MEDIUM…backend/alembic/versions/73_add_user_memories_table.py30 # Create the MemoryCategory enum typeCOMMENT
MEDIUM…66_add_notifications_table_and_electric_replication.py113 # Create the publication if not existsSTRING
MEDIUM…ons/10_update_chattype_enum_to_qna_report_structure.py19# Define the ENUM type nameCOMMENT
MEDIUM…sense_backend/alembic/versions/99_add_reports_table.py21 # Create the reports tableCOMMENT
MEDIUM…nd/alembic/versions/79_add_composio_connector_enums.py30# Define the ENUM type names and the new valuesCOMMENT
MEDIUM…mbic/versions/61_add_chat_visibility_and_created_by.py26 # Create the ChatVisibility enum typeCOMMENT
MEDIUM⚡…/alembic/versions/80_add_user_incentive_tasks_table.py35 # Create the enum type only if it doesn't existCOMMENT
MEDIUM⚡…/alembic/versions/80_add_user_incentive_tasks_table.py53 # Create the user_incentive_tasks tableCOMMENT
Over-Commented Block90 hits · 82 pts
SeverityFileLineSnippetContext
LOWdocker/docker-compose.e2e.yml1# =============================================================================COMMENT
LOWdocker/docker-compose.yml181 timeout: 5sCOMMENT
LOWdocker/docker-compose.deps-only.yml1# =============================================================================COMMENT
LOWdocker/docker-compose.deps-only.yml21# - Web .env: NEXT_PUBLIC_ZERO_CACHE_URL=http://localhost:${ZERO_CACHE_PORT:-4848}COMMENT
LOWdocker/opensandbox/sandbox.toml21# leaving network_mode at its "host" default, which egress rejects.COMMENT
LOWdocker/scripts/install.sh1#!/usr/bin/env bashCOMMENT
LOWdocker/scripts/migrate-database.sh1#!/usr/bin/env bashCOMMENT
LOWdocker/scripts/migrate-database.sh21# - ~500 MB free disk space for the dump fileCOMMENT
LOWsurfsense_web/components/editor/plate-editor.tsx221 [onSave, hasUnsavedChanges, isSaving, canToggleMode, reserveToolbarSpace]COMMENT
LOW…fsense_web/components/editor/utils/safe-deserialize.ts1// ---------------------------------------------------------------------------COMMENT
LOWsurfsense_web/components/editor/utils/escape-mdx.ts1// ---------------------------------------------------------------------------COMMENT
LOWsurfsense_web/lib/markdown/code-regions.ts1// Matches fenced (```...```) and inline (`...`) code regions. Used by MDXCOMMENT
LOWsurfsense_web/lib/announcements/announcements-data.ts61 // category: "feature",COMMENT
LOWsurfsense_web/lib/announcements/announcements-data.ts81 // id: "2026-02-08-scheduled-maintenance",COMMENT
LOWsurfsense_web/lib/announcements/announcements-data.ts101 // audience: "users",COMMENT
LOW.github/workflows/release-local.yml361 surfsense_local/electron/release/*.debCOMMENT
LOWsurfsense_backend/alembic.ini1# A generic, single database configuration.COMMENT
LOWsurfsense_backend/alembic.ini21# leave blank for localtimeCOMMENT
LOWsurfsense_backend/alembic.ini41COMMENT
LOWsurfsense_backend/alembic.ini61# are written from script.py.makoCOMMENT
LOWsurfsense_backend/app/db.py1381 document_type = Column(SQLAlchemyEnum(DocumentType), nullable=False)COMMENT
LOWsurfsense_backend/app/users.py281# CookieTransport,COMMENT
LOW…e_backend/app/tasks/chat/streaming/agent/event_loop.py141COMMENT
LOW…ckend/app/proprietary/platforms/google_maps/parsers.py381COMMENT
LOW…ckend/app/proprietary/platforms/google_search/fetch.py81# Gateways whose sticky sessions are selected by destination port. A random portCOMMENT
LOW…ckend/app/proprietary/platforms/google_search/fetch.py101# IP is exactly what Google re-walls), and each pool IP is solved **once** — soCOMMENT
LOW…ckend/app/proprietary/platforms/google_search/fetch.py121_WARM_IP_MAX_CONCURRENCY = int(os.getenv("GOOGLE_SEARCH_IP_MAX_CONCURRENCY", "2"))COMMENT
LOW…ckend/app/proprietary/platforms/google_search/fetch.py381 return await _expand_blocks(page)COMMENT
LOW…ckend/app/proprietary/platforms/google_search/fetch.py401COMMENT
LOW…end/app/proprietary/platforms/google_search/parsers.py521# ---------------------------------------------------------------------------COMMENT
LOW…ense_backend/app/proprietary/platforms/reddit/fetch.py81# different handling per status (spec section 3).COMMENT
LOW…ense_backend/app/proprietary/platforms/reddit/fetch.py101# floor just ADDED ~0.4s of dead sleep to every fetch. A 0.5s floor is a no-opCOMMENT
LOW…ense_backend/app/proprietary/platforms/reddit/fetch.py121# The browser warm loads *a* public HTML page so Reddit's JS challenge runs andCOMMENT
LOW…backend/app/proprietary/platforms/instagram/parsers.py281# 1. An inline ``<script type="application/json">`` block embedding the mobileCOMMENT
LOW…ense_backend/app/config/global_llm_config.example.yaml1# Global LLM ConfigurationCOMMENT
LOW…ense_backend/app/config/global_llm_config.example.yaml21# - Connection fields: provider, api_key, api_base, api_versionCOMMENT
LOW…ense_backend/app/config/global_llm_config.example.yaml41#COMMENT
LOW…ense_backend/app/config/global_llm_config.example.yaml61router_settings:COMMENT
LOW…ense_backend/app/config/global_llm_config.example.yaml181 tpm: 4000000COMMENT
LOW…ense_backend/app/config/global_llm_config.example.yaml281# Field NotesCOMMENT
LOW…ense_backend/app/config/global_llm_config.example.yaml301# - is_planner: true marks the internal-only planner model. Only one configCOMMENT
LOWsurfsense_backend/app/config/__init__.py501 # CREATE INDEX / CREATE TABLE fails fast instead of hanging the FastAPICOMMENT
LOWsurfsense_backend/app/config/__init__.py721 # app/users.py grow up -- so these are named like the other sharedCOMMENT
LOWsurfsense_backend/app/config/__init__.py741 SMTP_FROM = os.getenv("SMTP_FROM", "").strip()COMMENT
LOWsurfsense_backend/app/config/__init__.py781 # Web-crawl billing debits the credit wallet per *successful* crawl requestCOMMENT
LOWsurfsense_backend/app/config/__init__.py801 # crawl-billing flag. Price is config-driven (no hardcoded rate):COMMENT
LOWsurfsense_backend/app/config/__init__.py1241 # Phase 3d — Captcha solving (reCAPTCHA v2/v3, hCaptcha, v2-Enterprise) viaCOMMENT
LOWsurfsense_backend/app/config/__init__.py1261 # Abort a single solve after this many seconds (solves take 10-60s).COMMENT
LOW…/agents/chat/multi_agent_chat/subagents/shared/spec.py21COMMENT
LOW…p/agents/chat/multi_agent_chat/shared/feature_flags.py61 enable_revert_route: bool = TrueCOMMENT
LOWsurfsense_backend/app/utils/validators.py541 "BAIDU_SEARCH_API": {COMMENT
LOWsurfsense_backend/app/utils/validators.py561 # "scope",COMMENT
LOWsurfsense_backend/app/utils/validators.py581 # "JIRA_EMAIL": lambda: validate_email_field("JIRA_EMAIL", "JIRA"),COMMENT
LOWsurfsense_backend/app/etl_pipeline/picture_describer.py61# raises if OCR failed unrecoverably (which the describer catches andCOMMENT
LOWsurfsense_backend/app/etl_pipeline/picture_describer.py401 parts.append(description.strip())COMMENT
LOWsurfsense_backend/app/routes/new_chat_routes.py1441 # Update thread's updated_at timestamp (always — both insertCOMMENT
LOWsurfsense_backend/app/routes/new_chat_routes.py1461 # async greenlet boundary, so even ``Raised Exceptions``COMMENT
LOWsurfsense_backend/app/routes/new_chat_routes.py1561 status_code=500,COMMENT
LOWsurfsense_backend/app/routes/new_chat_routes.py2041 status_code=400, detail="No conversation history found for this thread"COMMENT
LOWsurfsense_backend/app/routes/new_chat_routes.py2061 # ``from_message_id`` we look up its persisted ``turn_id`` (addedCOMMENT
30 more matches not shown…
Verbosity Indicators43 hits · 75 pts
SeverityFileLineSnippetContext
LOWsurfsense_web/tests/helpers/api/connectors.ts176 // Step 1: kick off OAuth, get auth_url.COMMENT
LOWsurfsense_web/tests/helpers/api/connectors.ts193 // Step 2: follow the auth_url. The fake makes this same-origin andCOMMENT
LOWsurfsense_web/tests/helpers/api/connectors.ts204 // Step 3: look up the resulting connector (if any).COMMENT
LOW…ckend/app/connectors/google_drive/content_extractor.py178 # Step 1: Download or export the fileCOMMENT
LOW⚡surfsense_backend/app/etl_pipeline/picture_describer.py566 # Step 1: layout-aware figures. One-shot batch -- finds ALLCOMMENT
LOW⚡surfsense_backend/app/etl_pipeline/picture_describer.py571 # Step 2: Docling-style replacement markers. One match perCOMMENT
LOW⚡…tests/integration/chat/test_append_message_recovery.py477 # Step 2: server stream's persist_assistant_shell now racesCOMMENT
LOW⚡…tests/integration/chat/test_append_message_recovery.py486 # Step 3: server finalize then overwrites the FE's stub withCOMMENT
LOW…tests/integration/chat/test_append_message_recovery.py343 # Step 1: server stream completes. Server-built rich content isCOMMENT
LOW…tests/integration/chat/test_append_message_recovery.py363 # Step 2: simulate the legacy FE ``appendMessage`` round-tripCOMMENT
LOW…tests/integration/chat/test_append_message_recovery.py462 # Step 1: legacy FE appendMessage lands first. No prior shellCOMMENT
LOW⚡…versions/23_associate_connectors_with_search_spaces.py42 # Step 1: Add search_space_id column as nullable first (if it doesn't exist)COMMENT
LOW⚡…versions/23_associate_connectors_with_search_spaces.py49 # Step 2: Populate search_space_id with each user's first search spaceCOMMENT
LOW⚡…versions/23_associate_connectors_with_search_spaces.py65 # Step 3: Make search_space_id NOT NULLCOMMENT
LOW⚡…versions/23_associate_connectors_with_search_spaces.py72 # Step 4: Add foreign key constraint (if it doesn't exist)COMMENT
LOW…versions/23_associate_connectors_with_search_spaces.py86 # Step 5: Drop the old unique constraint (user_id, connector_type) if it existsCOMMENT
LOW…versions/23_associate_connectors_with_search_spaces.py98 # Step 6: Create new unique constraint (search_space_id, user_id, connector_type) if it doesn't existCOMMENT
LOW⚡…versions/23_associate_connectors_with_search_spaces.py130 # Step 1: Drop the new unique constraint if it existsCOMMENT
LOW⚡…versions/23_associate_connectors_with_search_spaces.py138 # Step 2: Recreate the old unique constraint (user_id, connector_type) if it doesn't existCOMMENT
LOW⚡…versions/23_associate_connectors_with_search_spaces.py148 # Step 3: Drop the foreign key constraint if it existsCOMMENT
LOW⚡…versions/23_associate_connectors_with_search_spaces.py156 # Step 4: Drop the search_space_id column if it existsCOMMENT
LOW…nse_backend/alembic/versions/72_simplify_rbac_roles.py70 # Step 1: Move all memberships from Admin roles to corresponding Editor roles (BULK)COMMENT
LOW…nse_backend/alembic/versions/72_simplify_rbac_roles.py84 # Step 2: Move all invites from Admin roles to corresponding Editor roles (BULK)STRING
LOW⚡…nse_backend/alembic/versions/72_simplify_rbac_roles.py97 # Step 3: Delete all Admin roles (BULK)STRING
LOW⚡…nse_backend/alembic/versions/72_simplify_rbac_roles.py105 # Step 4: Update Editor permissions for all search spaces (BULK)STRING
LOW…nse_backend/alembic/versions/72_simplify_rbac_roles.py118 # Step 5: Update Viewer permissions for all search spaces (BULK)STRING
LOW⚡…ic/versions/46_remove_last_edited_at_from_documents.py33 # Step 1: Copy last_edited_at values to updated_at where updated_at is NULLCOMMENT
LOW⚡…ic/versions/46_remove_last_edited_at_from_documents.py43 # Step 2: For documents where both exist, use the most recent timestampSTRING
LOW⚡…ic/versions/46_remove_last_edited_at_from_documents.py53 # Step 3: Drop the last_edited_at columnSTRING
LOW⚡…ons/10_update_chattype_enum_to_qna_report_structure.py63 # Step 1: Rename the current enum typeCOMMENT
LOW⚡…ons/10_update_chattype_enum_to_qna_report_structure.py66 # Step 2: Create the new enum type with new valuesCOMMENT
LOW⚡…ons/10_update_chattype_enum_to_qna_report_structure.py69 # Step 3: Add a temporary column with the new typeCOMMENT
LOW⚡…ons/10_update_chattype_enum_to_qna_report_structure.py74 # Step 4: Update the temporary column with mapped valuesCOMMENT
LOW⚡…ons/10_update_chattype_enum_to_qna_report_structure.py88 # Step 5: Drop the old columnCOMMENT
LOW⚡…ons/10_update_chattype_enum_to_qna_report_structure.py91 # Step 6: Rename the new column to the original nameCOMMENT
LOW⚡…ons/10_update_chattype_enum_to_qna_report_structure.py96 # Step 7: Drop the old enum typeCOMMENT
LOW⚡…ons/10_update_chattype_enum_to_qna_report_structure.py118 # Step 1: Rename the current enum typeCOMMENT
LOW⚡…ons/10_update_chattype_enum_to_qna_report_structure.py121 # Step 2: Create the new enum type with original valuesCOMMENT
LOW⚡…ons/10_update_chattype_enum_to_qna_report_structure.py124 # Step 3: Add a temporary column with the original typeCOMMENT
LOW⚡…ons/10_update_chattype_enum_to_qna_report_structure.py129 # Step 4: Update the temporary column with mapped values back to old valuesCOMMENT
LOW⚡…ons/10_update_chattype_enum_to_qna_report_structure.py143 # Step 5: Drop the old columnCOMMENT
LOW⚡…ons/10_update_chattype_enum_to_qna_report_structure.py146 # Step 6: Rename the new column to the original nameCOMMENT
LOW⚡…ons/10_update_chattype_enum_to_qna_report_structure.py151 # Step 7: Drop the old enum typeCOMMENT
Structural Annotation Overuse43 hits · 74 pts
SeverityFileLineSnippetContext
LOWsurfsense_web/tests/helpers/api/connectors.ts176 // Step 1: kick off OAuth, get auth_url.COMMENT
LOWsurfsense_web/tests/helpers/api/connectors.ts193 // Step 2: follow the auth_url. The fake makes this same-origin andCOMMENT
LOWsurfsense_web/tests/helpers/api/connectors.ts204 // Step 3: look up the resulting connector (if any).COMMENT
LOW…ckend/app/connectors/google_drive/content_extractor.py178 # Step 1: Download or export the fileCOMMENT
LOW⚡surfsense_backend/app/etl_pipeline/picture_describer.py566 # Step 1: layout-aware figures. One-shot batch -- finds ALLCOMMENT
LOW⚡surfsense_backend/app/etl_pipeline/picture_describer.py571 # Step 2: Docling-style replacement markers. One match perCOMMENT
LOW⚡…tests/integration/chat/test_append_message_recovery.py477 # Step 2: server stream's persist_assistant_shell now racesCOMMENT
LOW⚡…tests/integration/chat/test_append_message_recovery.py486 # Step 3: server finalize then overwrites the FE's stub withCOMMENT
LOW…tests/integration/chat/test_append_message_recovery.py343 # Step 1: server stream completes. Server-built rich content isCOMMENT
LOW…tests/integration/chat/test_append_message_recovery.py363 # Step 2: simulate the legacy FE ``appendMessage`` round-tripCOMMENT
LOW…tests/integration/chat/test_append_message_recovery.py462 # Step 1: legacy FE appendMessage lands first. No prior shellCOMMENT
LOW⚡…versions/23_associate_connectors_with_search_spaces.py42 # Step 1: Add search_space_id column as nullable first (if it doesn't exist)COMMENT
LOW⚡…versions/23_associate_connectors_with_search_spaces.py49 # Step 2: Populate search_space_id with each user's first search spaceCOMMENT
LOW⚡…versions/23_associate_connectors_with_search_spaces.py65 # Step 3: Make search_space_id NOT NULLCOMMENT
LOW⚡…versions/23_associate_connectors_with_search_spaces.py72 # Step 4: Add foreign key constraint (if it doesn't exist)COMMENT
LOW…versions/23_associate_connectors_with_search_spaces.py86 # Step 5: Drop the old unique constraint (user_id, connector_type) if it existsCOMMENT
LOW…versions/23_associate_connectors_with_search_spaces.py98 # Step 6: Create new unique constraint (search_space_id, user_id, connector_type) if it doesn't existCOMMENT
LOW⚡…versions/23_associate_connectors_with_search_spaces.py130 # Step 1: Drop the new unique constraint if it existsCOMMENT
LOW⚡…versions/23_associate_connectors_with_search_spaces.py138 # Step 2: Recreate the old unique constraint (user_id, connector_type) if it doesn't existCOMMENT
LOW⚡…versions/23_associate_connectors_with_search_spaces.py148 # Step 3: Drop the foreign key constraint if it existsCOMMENT
LOW⚡…versions/23_associate_connectors_with_search_spaces.py156 # Step 4: Drop the search_space_id column if it existsCOMMENT
LOW…nse_backend/alembic/versions/72_simplify_rbac_roles.py70 # Step 1: Move all memberships from Admin roles to corresponding Editor roles (BULK)COMMENT
LOW…nse_backend/alembic/versions/72_simplify_rbac_roles.py84 # Step 2: Move all invites from Admin roles to corresponding Editor roles (BULK)STRING
LOW⚡…nse_backend/alembic/versions/72_simplify_rbac_roles.py97 # Step 3: Delete all Admin roles (BULK)STRING
LOW⚡…nse_backend/alembic/versions/72_simplify_rbac_roles.py105 # Step 4: Update Editor permissions for all search spaces (BULK)STRING
LOW…nse_backend/alembic/versions/72_simplify_rbac_roles.py118 # Step 5: Update Viewer permissions for all search spaces (BULK)STRING
LOW⚡…ic/versions/46_remove_last_edited_at_from_documents.py33 # Step 1: Copy last_edited_at values to updated_at where updated_at is NULLCOMMENT
LOW⚡…ic/versions/46_remove_last_edited_at_from_documents.py43 # Step 2: For documents where both exist, use the most recent timestampSTRING
LOW⚡…ic/versions/46_remove_last_edited_at_from_documents.py53 # Step 3: Drop the last_edited_at columnSTRING
LOW⚡…ons/10_update_chattype_enum_to_qna_report_structure.py63 # Step 1: Rename the current enum typeCOMMENT
LOW⚡…ons/10_update_chattype_enum_to_qna_report_structure.py66 # Step 2: Create the new enum type with new valuesCOMMENT
LOW⚡…ons/10_update_chattype_enum_to_qna_report_structure.py69 # Step 3: Add a temporary column with the new typeCOMMENT
LOW⚡…ons/10_update_chattype_enum_to_qna_report_structure.py74 # Step 4: Update the temporary column with mapped valuesCOMMENT
LOW⚡…ons/10_update_chattype_enum_to_qna_report_structure.py88 # Step 5: Drop the old columnCOMMENT
LOW⚡…ons/10_update_chattype_enum_to_qna_report_structure.py91 # Step 6: Rename the new column to the original nameCOMMENT
LOW⚡…ons/10_update_chattype_enum_to_qna_report_structure.py96 # Step 7: Drop the old enum typeCOMMENT
LOW⚡…ons/10_update_chattype_enum_to_qna_report_structure.py118 # Step 1: Rename the current enum typeCOMMENT
LOW⚡…ons/10_update_chattype_enum_to_qna_report_structure.py121 # Step 2: Create the new enum type with original valuesCOMMENT
LOW⚡…ons/10_update_chattype_enum_to_qna_report_structure.py124 # Step 3: Add a temporary column with the original typeCOMMENT
LOW⚡…ons/10_update_chattype_enum_to_qna_report_structure.py129 # Step 4: Update the temporary column with mapped values back to old valuesCOMMENT
LOW⚡…ons/10_update_chattype_enum_to_qna_report_structure.py143 # Step 5: Drop the old columnCOMMENT
LOW⚡…ons/10_update_chattype_enum_to_qna_report_structure.py146 # Step 6: Rename the new column to the original nameCOMMENT
LOW⚡…ons/10_update_chattype_enum_to_qna_report_structure.py151 # Step 7: Drop the old enum typeCOMMENT
AI Slop Vocabulary20 hits · 50 pts
SeverityFileLineSnippetContext
MEDIUMdocker/sandbox/remotion/package-lock.json4720 "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.3.tgz",CODE
MEDIUM…stant-ui/connector-popup/utils/mcp-config-validator.ts130 // Use Zod schema validation for robust type checkingCOMMENT
LOW⚡surfsense_backend/app/connectors/slack_history.py77 # But we can't easily extract the token, so we'll just use the clientCOMMENT
LOW⚡surfsense_backend/app/connectors/slack_history.py79 # This is the old pattern - just use the client as-isCOMMENT
MEDIUM…_backend/app/proprietary/web_crawler/testbench/core.py27# Results live next to the harness; screenshots are gitignored, scorecard JSON isCOMMENT
MEDIUM⚡surfsense_backend/app/config/__init__.py1274 # is the single source of truth imported by the crawler AND the 03f harnessCOMMENT
MEDIUM⚡surfsense_backend/app/config/model_list_fallback.json2715 "description": "Gemini 3 Pro is Google’s flagship frontier model for high-precision multimodal reasoning, combininCODE
MEDIUM⚡surfsense_backend/app/config/model_list_fallback.json2715 "description": "Gemini 3 Pro is Google’s flagship frontier model for high-precision multimodal reasoning, combininCODE
MEDIUM⚡surfsense_backend/app/config/model_list_fallback.json9834 "description": "Note: Sonar Pro pricing includes Perplexity search pricing. See [details here](https://docs.perpleCODE
MEDIUM⚡surfsense_backend/app/config/model_list_fallback.json9834 "description": "Note: Sonar Pro pricing includes Perplexity search pricing. See [details here](https://docs.perpleCODE
MEDIUMsurfsense_backend/app/config/model_list_fallback.json9794 "description": "Note: Sonar Pro pricing includes Perplexity search pricing. See [details here](https://docs.perpleCODE
MEDIUM…nts/chat/multi_agent_chat/main_agent/tools/registry.py35 # call-time import to keep module import order robust.COMMENT
MEDIUM⚡…nts/chat/multi_agent_chat/main_agent/plugins/loader.py110 except Exception: # pragma: no cover - defensive (entry_points is robust)CODE
MEDIUM…sense_backend/app/agents/video_presentation/prompts.py218 "content_in_markdown": "## The Quantum Leap\\n- Classical computers use **bits** (0 or 1)\\n- Quantum computers usSTRING
MEDIUM…d/tests/unit/services/test_token_quota_service_cost.py582 # simulate "no outer" explicitly to be robust against test order.COMMENT
MEDIUM…rsions/35_update_litellmprovider_enum_comprehensive.py1"""Update LiteLLMProvider enum with comprehensive provider supportSTRING
LOW…ackend/alembic/versions/1_add_github_connector_enum.py72 # For now, we'll just pass. If you needed to reverse this, you'd likelyCOMMENT
LOW…ocal/backend/tests/integration/search/test_retrieve.py19# Five distinct topics, so ranking has to discriminate, not just return the oneCOMMENT
MEDIUMsurfsense_local/backend/tests/live/sweep/runner.py35# Harness faults in a row, across models, that stop the sweep: then the harness is broken, not the models.COMMENT
MEDIUM…_local/backend/modules/agent/previews/inline_images.py18# not on llama-server. Deterministic, which the live harness relies on.COMMENT
Magic Placeholder Names6 hits · 30 pts
SeverityFileLineSnippetContext
HIGHsurfsense_web/messages/zh.json127 "your_api_key": "您的API密钥",CODE
HIGHsurfsense_web/messages/pt.json127 "your_api_key": "Sua chave API",CODE
HIGHsurfsense_web/messages/en.json127 "your_api_key": "Your API Key",CODE
HIGHsurfsense_web/messages/hi.json127 "your_api_key": "आपकी API कुंजी",CODE
HIGHsurfsense_web/messages/ko.json127 "your_api_key": "내 API 키",CODE
HIGHsurfsense_web/messages/es.json127 "your_api_key": "Tu clave API",CODE
Hallucination Indicators3 hits · 30 pts
SeverityFileLineSnippetContext
CRITICALsurfsense_backend/app/file_storage/backends/azure.py74 from azure.core.exceptions import ResourceNotFoundErrorCODE
CRITICAL…ration/document_upload/test_stripe_credit_purchases.py22from tests.utils.helpers import TEST_EMAIL, TEST_PASSWORD, auth_headersCODE
CRITICAL…end/tests/integration/document_upload/test_okf_read.py14from tests.utils.helpers import poll_document_status, upload_fileCODE
Dead Code11 hits · 22 pts
SeverityFileLineSnippetContext
MEDIUM…ests/unit/platforms/instagram/test_fetch_resilience.py297CODE
MEDIUM…nd/tests/unit/tasks/test_video_presentation_billing.py108CODE
MEDIUM…ackend/tests/unit/tasks/chat/test_activity_contract.py902CODE
MEDIUM…ents/new_chat/middleware/test_scoped_model_fallback.py50CODE
MEDIUM…i_agent_chat/subagents/shared/test_subagent_builder.py71CODE
MEDIUMsurfsense_backend/tests/unit/podcasts/test_renderer.py45CODE
MEDIUM…d/tests/unit/services/test_quota_checked_vision_llm.py111CODE
MEDIUM…nse_backend/tests/integration/artifacts/test_roster.py148CODE
MEDIUM…_backend/tests/integration/podcasts/test_draft_task.py82CODE
MEDIUM…ion/knowledge_store/test_paused_turn_keeps_its_copy.py60CODE
MEDIUM…end/tests/unit/llm/catalog/local/test_install_steps.py57CODE
AI Structural Patterns22 hits · 20 pts
SeverityFileLineSnippetContext
LOW…/mcp_server/features/scrapers/platforms/google_maps.py28CODE
LOW…/mcp_server/features/scrapers/platforms/google_maps.py90CODE
LOW…e_mcp/mcp_server/features/scrapers/platforms/indeed.py40CODE
LOW…e_mcp/mcp_server/features/scrapers/platforms/reddit.py29CODE
LOW…e_mcp/mcp_server/features/scrapers/platforms/amazon.py26CODE
LOW…e_backend/app/tasks/chat/streaming/agent/event_loop.py48CODE
LOW…tasks/chat/streaming/flows/resume_chat/orchestrator.py108CODE
LOW…pp/tasks/chat/streaming/flows/new_chat/orchestrator.py126CODE
LOW…ense_backend/app/proprietary/platforms/amazon/fetch.py144CODE
LOW…/app/proprietary/platforms/indeed_jobs/url_resolver.py89CODE
LOWsurfsense_backend/app/capabilities/core/runs.py79CODE
LOW…/shared/middleware/filesystem/middleware/middleware.py46CODE
LOW…ts/chat/multi_agent_chat/main_agent/runtime/factory.py65CODE
LOW…agent_chat/main_agent/system_prompt/builder/compose.py42CODE
LOWsurfsense_backend/app/observability/domains/chat.py12CODE
LOWsurfsense_backend/app/routes/logs_routes.py60CODE
LOWsurfsense_backend/app/routes/documents_routes.py357CODE
LOWsurfsense_backend/app/routes/documents_routes.py1670CODE
LOWsurfsense_backend/app/notifications/api/api.py213CODE
LOW…rfsense_backend/app/services/token_tracking_service.py549CODE
LOWsurfsense_backend/app/services/composio_service.py1325CODE
LOW…nse_local/backend/modules/llm/catalog/local/service.py71CODE
Synthetic Comment Markers2 hits · 10 pts
SeverityFileLineSnippetContext
HIGH…/community-local/seo/data/keyword-ideas-questions.json892 "core_keyword": "is this generated by ai",CODE
HIGH…ures/models/remote/models/server-model-picker.test.tsx304 await screen.findByRole("img", { name: "Test generated by gpt-image-1" })CODE
Cross-Language Confusion (JS/TS)1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHsurfsense_web/lib/playground/code-snippets.ts80print(data["items"])`;CODE
Example Usage Blocks2 hits · 4 pts
SeverityFileLineSnippetContext
LOW⚡docker/docker-compose.yml5# Usage:COMMENT
LOWdocker/scripts/migrate-database.sh8# Usage:COMMENT