Repository Analysis

MODSetter/SurfSense

NotebookLM for Competitive Intelligence Research. Give your AI agents access to live data from Reddit, YouTube, Instagram, TikTok, Google Maps, Google Search, open web etc. Join our Discord: https://discord.gg/ejRNvftDp9

25.2 Moderate AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of MODSetter/SurfSense, a Python project with 15,240 GitHub stars. SynthScan v2.0 examined 594,357 lines of code across 3671 source files, recording 10143 pattern matches distributed across 23 syntactic categories. The overall adjusted score of 25.2 places this repository in the Moderate AI signal band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

25.2
Adjusted Score
25.2
Raw Score
100%
Time Factor
2026-07-14
Last Push
15.2K
Stars
Python
Language
594.4K
Lines of Code
3.7K
Files
10.1K
Pattern Hits
2026-07-14
Scan Date
0.06
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 2HIGH 234MEDIUM 1455LOW 8452

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 10143 distinct pattern matches across 23 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Decorative Section Separators1341 hits · 4765 pts
SeverityFileLineSnippetContext
MEDIUMdocker/docker-compose.e2e.yml1# =============================================================================COMMENT
MEDIUMdocker/docker-compose.e2e.yml3# =============================================================================COMMENT
MEDIUMdocker/docker-compose.e2e.yml20# =============================================================================COMMENT
MEDIUMdocker/docker-compose.proxy.yml1# =============================================================================COMMENT
MEDIUMdocker/docker-compose.proxy.yml3# =============================================================================COMMENT
MEDIUMdocker/docker-compose.proxy.yml10# =============================================================================COMMENT
MEDIUMdocker/docker-compose.dev.yml1# =============================================================================COMMENT
MEDIUMdocker/docker-compose.dev.yml3# =============================================================================COMMENT
MEDIUMdocker/docker-compose.dev.yml9# =============================================================================COMMENT
MEDIUMdocker/docker-compose.watch-e2e.yml1# =============================================================================COMMENT
MEDIUMdocker/docker-compose.watch-e2e.yml3# =============================================================================COMMENT
MEDIUMdocker/docker-compose.watch-e2e.yml14# =============================================================================COMMENT
MEDIUMdocker/docker-compose.yml1# =============================================================================COMMENT
MEDIUMdocker/docker-compose.yml4# =============================================================================COMMENT
MEDIUMdocker/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.sh357# ── Legacy all-in-one detection ──────────────────────────────────────────────COMMENT
MEDIUMdocker/scripts/install.sh391# ── Set up .env ──────────────────────────────────────────────────────────────COMMENT
MEDIUMdocker/scripts/install.sh423# ── Start containers ─────────────────────────────────────────────────────────COMMENT
MEDIUMdocker/scripts/install.sh497# ── Watchtower (auto-update) ─────────────────────────────────────────────────COMMENT
MEDIUMdocker/scripts/install.sh525# ── Done ─────────────────────────────────────────────────────────────────────COMMENT
MEDIUMdocker/scripts/migrate-database.sh2# =============================================================================COMMENT
MEDIUMdocker/scripts/migrate-database.sh39# =============================================================================COMMENT
MEDIUMdocker/scripts/migrate-database.sh43# ── Colours ──────────────────────────────────────────────────────────────────COMMENT
MEDIUMdocker/scripts/migrate-database.sh51# ── Logging — tee everything to a log file ───────────────────────────────────COMMENT
MEDIUMdocker/scripts/migrate-database.sh55# ── Output helpers ────────────────────────────────────────────────────────────COMMENT
MEDIUMdocker/scripts/migrate-database.sh62# ── Constants ─────────────────────────────────────────────────────────────────COMMENT
MEDIUMdocker/scripts/migrate-database.sh69# ── Defaults ──────────────────────────────────────────────────────────────────COMMENT
MEDIUMdocker/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_evals/tests/core/test_metrics.py20# ---------------------------------------------------------------------------COMMENT
MEDIUMsurfsense_evals/tests/core/test_metrics.py22# ---------------------------------------------------------------------------COMMENT
MEDIUMsurfsense_evals/tests/core/test_metrics.py59# ---------------------------------------------------------------------------COMMENT
MEDIUMsurfsense_evals/tests/core/test_metrics.py61# ---------------------------------------------------------------------------COMMENT
MEDIUMsurfsense_evals/tests/core/test_metrics.py103# ---------------------------------------------------------------------------COMMENT
MEDIUMsurfsense_evals/tests/core/test_metrics.py105# ---------------------------------------------------------------------------COMMENT
MEDIUMsurfsense_evals/tests/core/test_metrics.py120# ---------------------------------------------------------------------------COMMENT
MEDIUMsurfsense_evals/tests/core/test_metrics.py122# ---------------------------------------------------------------------------COMMENT
MEDIUMsurfsense_evals/tests/core/test_vision_llm.py26# ---------------------------------------------------------------------------COMMENT
MEDIUMsurfsense_evals/tests/core/test_vision_llm.py28# ---------------------------------------------------------------------------COMMENT
MEDIUMsurfsense_evals/tests/core/test_vision_llm.py62# ---------------------------------------------------------------------------COMMENT
MEDIUMsurfsense_evals/tests/core/test_vision_llm.py64# ---------------------------------------------------------------------------COMMENT
1281 more matches not shown…
Hyper-Verbose Identifiers3609 hits · 3859 pts
SeverityFileLineSnippetContext
LOW.cursor/skills/tdd/tests.md9def test_user_can_checkout_with_valid_cart():CODE
LOW.cursor/skills/tdd/tests.md31def test_checkout_calls_payment_service_process():CODE
LOW.cursor/skills/tdd/tests.md49def test_create_user_saves_to_database():CODE
LOW.cursor/skills/tdd/tests.md55def test_create_user_makes_user_retrievable():CODE
LOWsurfsense_browser_extension/routes/pages/HomePage.tsx39async function migrateLegacyWorkspaceKeys(storage: Storage): Promise<void> {CODE
LOWsurfsense_evals/tests/test_integration_smoke.py22async def test_smoke_against_localhost():CODE
LOWsurfsense_evals/tests/core/test_registry.py31def test_auto_discovery_skips_underscore_prefixed_subpackages():CODE
LOWsurfsense_evals/tests/core/test_registry.py40def test_demo_benchmark_registers_on_explicit_import():CODE
LOWsurfsense_evals/tests/core/test_registry.py50def test_register_unregister_roundtrip():CODE
LOWsurfsense_evals/tests/core/test_parse_answer_letter.py29def test_extract_answer_letter(text, expected_letter, expected_strategy):CODE
LOW…fsense_evals/tests/core/test_pdf_render_with_images.py31 def test_renders_pdf_with_no_images(self, tmp_path: Path) -> None:CODE
LOW…fsense_evals/tests/core/test_pdf_render_with_images.py42 def test_renders_pdf_with_one_image(self, tmp_path: Path, tiny_png: Path) -> None:CODE
LOW…fsense_evals/tests/core/test_pdf_render_with_images.py63 def test_skips_invalid_image_silently(self, tmp_path: Path) -> None:CODE
LOWsurfsense_evals/tests/core/test_metrics.py40def test_wilson_ci_known_values(k, n, low, high):CODE
LOWsurfsense_evals/tests/core/test_metrics.py46def test_accuracy_with_wilson_ci_object():CODE
LOWsurfsense_evals/tests/core/test_metrics.py52def test_invalid_inputs_raise():CODE
LOWsurfsense_evals/tests/core/test_metrics.py64def test_mcnemar_degenerate_returns_p_value_one():CODE
LOWsurfsense_evals/tests/core/test_metrics.py73def test_mcnemar_exact_branch_strong_signal():CODE
LOWsurfsense_evals/tests/core/test_metrics.py86def test_mcnemar_chi_square_approx_for_large_discordant():CODE
LOWsurfsense_evals/tests/core/test_metrics.py98def test_mcnemar_length_mismatch():CODE
LOWsurfsense_evals/tests/core/test_metrics.py108def test_bootstrap_delta_ci_shape_and_determinism():CODE
LOWsurfsense_evals/tests/core/test_metrics.py137def test_ndcg_at_k_perfect_order():CODE
LOWsurfsense_evals/tests/core/test_metrics.py142def test_ndcg_at_k_irrelevant_first():CODE
LOWsurfsense_evals/tests/core/test_metrics.py149def test_score_run_aggregates_across_queries():CODE
LOWsurfsense_evals/tests/core/test_auth.py39async def test_acquire_token_jwt_mode_short_circuits():CODE
LOWsurfsense_evals/tests/core/test_auth.py49async def test_acquire_token_local_mode_posts_desktop_login_json():CODE
LOWsurfsense_evals/tests/core/test_auth.py63async def test_acquire_token_no_credentials():CODE
LOWsurfsense_evals/tests/core/test_vision_llm.py31def test_explicit_slug_resolves_to_matching_config_id():CODE
LOWsurfsense_evals/tests/core/test_vision_llm.py42def test_explicit_slug_with_no_match_raises_with_helpful_listing():CODE
LOWsurfsense_evals/tests/core/test_vision_llm.py51def test_explicit_slug_skips_non_openrouter_entries():CODE
LOWsurfsense_evals/tests/core/test_vision_llm.py67def test_auto_pick_walks_priority_list_in_order():CODE
LOWsurfsense_evals/tests/core/test_vision_llm.py80def test_auto_pick_skips_to_next_priority_when_first_unavailable():CODE
LOWsurfsense_evals/tests/core/test_vision_llm.py91def test_auto_pick_falls_back_to_first_openrouter_when_no_recommended_match():CODE
LOWsurfsense_evals/tests/core/test_vision_llm.py102def test_auto_pick_with_zero_openrouter_candidates_raises():CODE
LOWsurfsense_evals/tests/core/test_vision_llm.py109def test_auto_pick_ignores_non_openrouter_entries():CODE
LOWsurfsense_evals/tests/core/test_vision_llm.py117def test_recommended_priority_is_a_stable_public_list():CODE
LOWsurfsense_evals/tests/core/test_pdf_render.py14def test_render_pdf_writes_pdf_with_magic(tmp_path: Path):CODE
LOWsurfsense_evals/tests/core/test_pdf_render.py26def test_render_pdf_deterministic_dates(tmp_path: Path):CODE
LOWsurfsense_evals/tests/core/test_pdf_render.py38def test_render_text_files_uses_filename_as_section(tmp_path: Path):CODE
LOWsurfsense_evals/tests/core/test_clients.py34async def test_create_search_space_returns_row(respx_mock, http):CODE
LOWsurfsense_evals/tests/core/test_clients.py66async def test_set_model_roles_partial_update(respx_mock, http):CODE
LOWsurfsense_evals/tests/core/test_clients.py91async def test_documents_status_parses_state(respx_mock, http):CODE
LOWsurfsense_evals/tests/core/test_clients.py121async def test_documents_upload_returns_payload(respx_mock, http, tmp_path: Path):CODE
LOWsurfsense_evals/tests/core/test_clients.py145async def test_documents_list_chunks_paginated(respx_mock, http):CODE
LOWsurfsense_evals/tests/core/test_clients.py182async def test_create_thread_returns_id(respx_mock, http):CODE
LOWsurfsense_evals/tests/core/test_clients.py213async def test_ask_accumulates_text_deltas(respx_mock, http):CODE
LOW…rfsense_evals/tests/core/test_parse_freeform_answer.py11 def test_empty_string_returns_empty(self) -> None:CODE
LOW…rfsense_evals/tests/core/test_parse_freeform_answer.py15 def test_simple_answer_marker(self) -> None:CODE
LOW…rfsense_evals/tests/core/test_parse_freeform_answer.py21 def test_the_answer_is_marker(self) -> None:CODE
LOW…rfsense_evals/tests/core/test_parse_freeform_answer.py24 def test_multiline_picks_last_answer_marker(self) -> None:CODE
LOW…rfsense_evals/tests/core/test_parse_freeform_answer.py28 def test_falls_back_to_last_nonempty_line(self) -> None:CODE
LOW…rfsense_evals/tests/core/test_parse_freeform_answer.py39 def test_uses_fenced_block_when_no_marker(self) -> None:CODE
LOW…rfsense_evals/tests/core/test_parse_freeform_answer.py43 def test_case_insensitive_markers(self) -> None:CODE
LOW…rfsense_evals/tests/core/test_parse_freeform_answer.py58 def test_inline_answer_after_thinking_trace(self) -> None:CODE
LOW…rfsense_evals/tests/core/test_parse_freeform_answer.py69 def test_inline_picks_last_inline_answer(self) -> None:CODE
LOW…rfsense_evals/tests/core/test_parse_freeform_answer.py73 def test_inline_does_not_override_proper_marker(self) -> None:CODE
LOWsurfsense_evals/tests/core/test_config.py18def test_load_config_defaults_to_localhost(tmp_env): # noqa: ARG001CODE
LOWsurfsense_evals/tests/core/test_config.py26def test_load_config_picks_up_jwt_env(tmp_env, monkeypatch): # noqa: ARG001CODE
LOWsurfsense_evals/tests/core/test_config.py32def test_load_config_picks_up_local_env(tmp_env, monkeypatch): # noqa: ARG001CODE
LOWsurfsense_evals/tests/core/test_config.py39def test_state_roundtrip_per_suite(tmp_env): # noqa: ARG001CODE
3549 more matches not shown…
Unused Imports2208 hits · 2142 pts
SeverityFileLineSnippetContext
LOWsurfsense_evals/tests/conftest.py3CODE
LOWsurfsense_evals/tests/test_integration_smoke.py8CODE
LOWsurfsense_evals/tests/core/test_registry.py9CODE
LOWsurfsense_evals/tests/core/test_parse_answer_letter.py3CODE
LOW…fsense_evals/tests/core/test_pdf_render_with_images.py6CODE
LOWsurfsense_evals/tests/core/test_metrics.py3CODE
LOWsurfsense_evals/tests/core/test_auth.py3CODE
LOWsurfsense_evals/tests/core/test_vision_llm.py3CODE
LOWsurfsense_evals/tests/core/test_pdf_render.py7CODE
LOWsurfsense_evals/tests/core/test_clients.py3CODE
LOW…rfsense_evals/tests/core/test_parse_freeform_answer.py3CODE
LOWsurfsense_evals/tests/core/test_config.py3CODE
LOWsurfsense_evals/tests/core/test_scenarios.py3CODE
LOWsurfsense_evals/tests/core/test_provider_openrouter.py3CODE
LOWsurfsense_evals/tests/core/test_ingest_settings.py17CODE
LOWsurfsense_evals/tests/core/test_parse_citations.py9CODE
LOWsurfsense_evals/tests/core/test_parse_sse.py3CODE
LOWsurfsense_evals/tests/suites/test_crag_html_extract.py12CODE
LOWsurfsense_evals/tests/suites/test_frames_dataset.py14CODE
LOWsurfsense_evals/tests/suites/test_crag_grader.py8CODE
LOWsurfsense_evals/tests/suites/test_frames_wiki_fetch.py12CODE
LOWsurfsense_evals/tests/suites/test_mmlongbench_grader.py8CODE
LOWsurfsense_evals/tests/suites/test_crag_dataset.py8CODE
LOWsurfsense_evals/tests/suites/test_frames_grader.py9CODE
LOWsurfsense_evals/scripts/analyze_failures.py12CODE
LOWsurfsense_evals/scripts/peek_disagreements.py3CODE
LOWsurfsense_evals/scripts/compute_blog_extras.py22CODE
LOWsurfsense_evals/scripts/inspect_first30.py11CODE
LOWsurfsense_evals/scripts/compute_post_retry_accuracy.py22CODE
LOWsurfsense_evals/scripts/analyze_failure_timing.py10CODE
LOWsurfsense_evals/scripts/peek_crag_run.py3CODE
LOWsurfsense_evals/scripts/check_extraction_sizes.py9CODE
LOW…ense_evals/scripts/test_context_overflow_hypothesis.py15CODE
LOWsurfsense_evals/scripts/retry_failed_questions.py41CODE
LOWsurfsense_evals/scripts/summarise_crag_run.py3CODE
LOWsurfsense_evals/scripts/check_uploaded_status.py9CODE
LOWsurfsense_evals/scripts/compute_adjusted_accuracy.py23CODE
LOWsurfsense_evals/scripts/summarise_parser_compare_run.py12CODE
LOW…se_evals/scripts/patch_manifest_for_parallel_ingest.py25CODE
LOWsurfsense_evals/src/surfsense_evals/__init__.py8CODE
LOWsurfsense_evals/src/surfsense_evals/__main__.py8CODE
LOWsurfsense_evals/src/surfsense_evals/core/scenarios.py10CODE
LOWsurfsense_evals/src/surfsense_evals/core/auth.py22CODE
LOWsurfsense_evals/src/surfsense_evals/core/config.py14CODE
LOWsurfsense_evals/src/surfsense_evals/core/registry.py13CODE
LOWsurfsense_evals/src/surfsense_evals/core/registry.py265CODE
LOW…ense_evals/src/surfsense_evals/core/ingest_settings.py46CODE
LOWsurfsense_evals/src/surfsense_evals/core/__init__.py8CODE
LOWsurfsense_evals/src/surfsense_evals/core/cli.py31CODE
LOWsurfsense_evals/src/surfsense_evals/core/vision_llm.py15CODE
LOW…nse_evals/src/surfsense_evals/core/metrics/__init__.py3CODE
LOW…nse_evals/src/surfsense_evals/core/metrics/__init__.py8CODE
LOW…nse_evals/src/surfsense_evals/core/metrics/__init__.py8CODE
LOW…nse_evals/src/surfsense_evals/core/metrics/__init__.py8CODE
LOW…nse_evals/src/surfsense_evals/core/metrics/__init__.py8CODE
LOW…nse_evals/src/surfsense_evals/core/metrics/__init__.py9CODE
LOW…nse_evals/src/surfsense_evals/core/metrics/__init__.py9CODE
LOW…nse_evals/src/surfsense_evals/core/metrics/__init__.py9CODE
LOW…nse_evals/src/surfsense_evals/core/metrics/__init__.py10CODE
LOW…nse_evals/src/surfsense_evals/core/metrics/__init__.py10CODE
2148 more matches not shown…
Excessive Try-Catch Wrapping1180 hits · 1152 pts
SeverityFileLineSnippetContext
LOW.cursor/skills/system-architecture/examples.md111 except Exception as e:CODE
LOWdocker/docker-compose.e2e.yml133 except Exception:CODE
LOWsurfsense_evals/scripts/retry_failed_questions.py434 except Exception:CODE
LOWsurfsense_evals/src/surfsense_evals/core/cli.py779 except Exception as exc: # noqa: BLE001CODE
LOW…se_evals/src/surfsense_evals/core/parsers/pdf_pages.py30 except Exception as exc: # noqa: BLE001CODE
LOWsurfsense_evals/src/surfsense_evals/core/pdf/render.py287 except Exception: # noqa: BLE001 — bad image shouldn't kill PDFCODE
LOW…ense_evals/src/surfsense_evals/core/arms/native_pdf.py76 except Exception as exc: # noqa: BLE001CODE
LOW…sense_evals/src/surfsense_evals/core/arms/surfsense.py62 except Exception as exc: # noqa: BLE001CODE
LOW…sense_evals/src/surfsense_evals/core/arms/surfsense.py74 except Exception as exc: # noqa: BLE001CODE
LOW…fsense_evals/src/surfsense_evals/core/arms/bare_llm.py78 except Exception as exc: # noqa: BLE001CODE
LOWsurfsense_evals/src/surfsense_evals/suites/__init__.py55 except Exception as exc: # noqa: BLE001CODE
LOWsurfsense_evals/src/surfsense_evals/suites/__init__.py62 except Exception as exc: # noqa: BLE001CODE
LOW…s/src/surfsense_evals/suites/research/frames/ingest.py100 except Exception as exc: # noqa: BLE001CODE
LOW…s/src/surfsense_evals/suites/research/frames/grader.py271 except Exception as exc: # noqa: BLE001CODE
LOW…als/src/surfsense_evals/suites/research/crag/ingest.py438 except Exception as exc: # noqa: BLE001CODE
LOW…als/src/surfsense_evals/suites/research/crag/grader.py441 except Exception as exc: # noqa: BLE001CODE
LOW…c/surfsense_evals/suites/research/crag/html_extract.py74 except Exception as exc: # noqa: BLE001 - trafilatura raises a zooCODE
LOW…c/surfsense_evals/suites/research/crag/html_extract.py158 except Exception as exc: # noqa: BLE001 - HTMLParser is fragile on garbage inputCODE
LOW…ense_evals/suites/multimodal_doc/mmlongbench/ingest.py335 except Exception as exc: # noqa: BLE001CODE
LOW…ls/src/surfsense_evals/suites/medical/mirage/ingest.py538 except Exception as exc: # noqa: BLE001CODE
LOW…vals/src/surfsense_evals/suites/medical/cure/ingest.py151 except Exception as exc: # noqa: BLE001CODE
LOW…vals/src/surfsense_evals/suites/medical/cure/ingest.py200 except Exception as exc: # noqa: BLE001CODE
LOW…vals/src/surfsense_evals/suites/medical/cure/runner.py127 except Exception as exc: # noqa: BLE001CODE
LOW…vals/src/surfsense_evals/suites/medical/cure/runner.py160 except Exception as exc: # noqa: BLE001CODE
LOW…rc/surfsense_evals/suites/medical/medxpertqa/ingest.py335 except Exception as exc: # noqa: BLE001CODE
LOWsurfsense_backend/app/db.py3013 except Exception as exc:CODE
LOWsurfsense_backend/app/users.py125 except Exception as e:CODE
LOWsurfsense_backend/app/users.py144 except Exception as e:CODE
LOWsurfsense_backend/app/users.py209 except Exception as e:CODE
LOWsurfsense_backend/app/users.py278 except Exception as e:CODE
LOWsurfsense_backend/app/users.py356 except Exception:CODE
LOWsurfsense_backend/app/users.py367 except Exception:CODE
LOWsurfsense_backend/app/celery_app.py74 except Exception:CODE
LOWsurfsense_backend/app/celery_app.py98 except Exception:CODE
LOWsurfsense_backend/app/app.py548 except Exception:CODE
LOWsurfsense_backend/app/app.py572 except Exception:CODE
LOWsurfsense_backend/app/app.py607 except Exception:CODE
LOWsurfsense_backend/app/app.py633 except Exception:CODE
LOWsurfsense_backend/app/app.py1063 except Exception as exc:CODE
LOWsurfsense_backend/app/connectors/clickup_connector.py207 except Exception as e:CODE
LOWsurfsense_backend/app/connectors/slack_history.py124 except Exception as e:CODE
LOWsurfsense_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
1120 more matches not shown…
Cross-File Repetition136 hits · 680 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…ackend/app/capabilities/google_maps/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…ense_backend/app/capabilities/reddit/scrape/schemas.py0worst-case billable items for the pre-flight gate: ``max_items`` is a hard cross-source ceiling (le=100), so no call canSTRING
HIGH…ense_backend/app/capabilities/tiktok/scrape/schemas.py0worst-case billable items for the pre-flight gate: ``max_items`` is a hard cross-source ceiling (le=100), so no call canSTRING
HIGH…e_backend/app/capabilities/instagram/scrape/schemas.py0worst-case billable items for the pre-flight gate: ``max_items`` is a hard cross-source ceiling (le=100), so no call canSTRING
HIGH…ulti_agent_chat/subagents/connectors/onedrive/agent.py0``deliverables`` route: ``surfsensesubagentspec`` builder for deepagents. tools self-gate inside their bodies via :func:STRING
HIGH…multi_agent_chat/subagents/connectors/dropbox/agent.py0``deliverables`` route: ``surfsensesubagentspec`` builder for deepagents. tools self-gate inside their bodies via :func:STRING
HIGH…_agent_chat/subagents/connectors/google_drive/agent.py0``deliverables`` route: ``surfsensesubagentspec`` builder for deepagents. tools self-gate inside their bodies via :func:STRING
HIGH…ti_agent_chat/subagents/builtins/deliverables/agent.py0``deliverables`` route: ``surfsensesubagentspec`` builder for deepagents. tools self-gate inside their bodies via :func:STRING
HIGH…gent_chat/subagents/connectors/onedrive/tools/index.py0``gmail`` native tools and (empty) permission ruleset. tools self-gate via :func:`request_approval` in their bodies.STRING
HIGH…agent_chat/subagents/connectors/dropbox/tools/index.py0``gmail`` native tools and (empty) permission ruleset. tools self-gate via :func:`request_approval` in their bodies.STRING
HIGH…_chat/subagents/connectors/google_drive/tools/index.py0``gmail`` native tools and (empty) permission ruleset. tools self-gate via :func:`request_approval` in their bodies.STRING
HIGH…nt_chat/subagents/builtins/deliverables/tools/index.py0``gmail`` native tools and (empty) permission ruleset. tools self-gate via :func:`request_approval` in their bodies.STRING
HIGH…/subagents/builtins/mcp_discovery/tools/gmail/index.py0``gmail`` native tools and (empty) permission ruleset. tools self-gate via :func:`request_approval` in their bodies.STRING
HIGH…backend/app/routes/google_gmail_add_connector_route.py0handle jira oauth callback. args: request: fastapi request object code: authorization code from atlassian (if user grantSTRING
76 more matches not shown…
Modern Structural Boilerplate671 hits · 679 pts
SeverityFileLineSnippetContext
LOWsurfsense_evals/src/surfsense_evals/core/scenarios.py55__all__ = ["format_scenario_md"]CODE
LOWsurfsense_evals/src/surfsense_evals/core/auth.py32logger = logging.getLogger(__name__)CODE
LOWsurfsense_evals/src/surfsense_evals/core/auth.py265__all__ = [CODE
LOWsurfsense_evals/src/surfsense_evals/core/config.py254def set_suite_state(config: Config, suite: str, suite_state: SuiteState) -> None:CODE
LOWsurfsense_evals/src/surfsense_evals/core/registry.py248__all__ = [CODE
LOW…ense_evals/src/surfsense_evals/core/ingest_settings.py275__all__ = [CODE
LOWsurfsense_evals/src/surfsense_evals/core/vision_llm.py122__all__ = [CODE
LOW…nse_evals/src/surfsense_evals/core/metrics/__init__.py12__all__ = [CODE
LOW…e_evals/src/surfsense_evals/core/metrics/comparison.py245__all__ = [CODE
LOW…se_evals/src/surfsense_evals/core/metrics/retrieval.py134__all__ = ["RetrievalScores", "mrr", "ndcg_at_k", "recall_at_k", "score_run"]CODE
LOW…_evals/src/surfsense_evals/core/metrics/mc_accuracy.py117__all__ = [CODE
LOW…se_evals/src/surfsense_evals/core/clients/documents.py31logger = logging.getLogger(__name__)CODE
LOW…nse_evals/src/surfsense_evals/core/clients/__init__.py9__all__ = [CODE
LOW…nse_evals/src/surfsense_evals/core/clients/new_chat.py34logger = logging.getLogger(__name__)CODE
LOW…se_evals/src/surfsense_evals/core/parsers/pdf_pages.py19logger = logging.getLogger(__name__)CODE
LOW…se_evals/src/surfsense_evals/core/parsers/pdf_pages.py35__all__ = ["count_pdf_pages"]CODE
LOW…nse_evals/src/surfsense_evals/core/parsers/__init__.py29__all__ = [CODE
LOW…e_evals/src/surfsense_evals/core/parsers/llamacloud.py29logger = logging.getLogger(__name__)CODE
LOW…e_evals/src/surfsense_evals/core/parsers/llamacloud.py174__all__ = ["LlamaCloudError", "parse_with_llamacloud"]CODE
LOW…nse_evals/src/surfsense_evals/core/parsers/azure_di.py30logger = logging.getLogger(__name__)CODE
LOW…nse_evals/src/surfsense_evals/core/parsers/azure_di.py148__all__ = ["AzureDIError", "parse_with_azure_di"]CODE
LOW…/src/surfsense_evals/core/providers/openrouter_chat.py37logger = logging.getLogger(__name__)CODE
LOW…/src/surfsense_evals/core/providers/openrouter_chat.py118__all__ = ["OpenRouterChatProvider"]CODE
LOW…e_evals/src/surfsense_evals/core/providers/__init__.py14__all__ = ["OpenRouterPdfProvider", "OpenRouterResponse"]CODE
LOW…s/src/surfsense_evals/core/providers/openrouter_pdf.py43logger = logging.getLogger(__name__)CODE
LOW…s/src/surfsense_evals/core/providers/openrouter_pdf.py229__all__ = ["OpenRouterPdfProvider", "OpenRouterResponse", "PdfEngine"]CODE
LOW…ense_evals/src/surfsense_evals/core/parse/citations.py104__all__ = [CODE
LOW…vals/src/surfsense_evals/core/parse/freeform_answer.py85__all__ = ["extract_freeform_answer"]CODE
LOW…_evals/src/surfsense_evals/core/parse/answer_letter.py122__all__ = ["AnswerLetterResult", "ParserStrategy", "extract_answer_letter"]CODE
LOW…sense_evals/src/surfsense_evals/core/parse/__init__.py10__all__ = [CODE
LOWsurfsense_evals/src/surfsense_evals/core/parse/sse.py72__all__ = ["SseEvent", "iter_sse_events"]CODE
LOW…rfsense_evals/src/surfsense_evals/core/pdf/__init__.py15__all__ = [CODE
LOW…ense_evals/src/surfsense_evals/core/report/__init__.py10__all__ = ["write_report"]CODE
LOW…fsense_evals/src/surfsense_evals/core/report/writer.py89__all__ = ["ReportSection", "write_report"]CODE
LOW…ense_evals/src/surfsense_evals/core/arms/native_pdf.py18logger = logging.getLogger(__name__)CODE
LOW…ense_evals/src/surfsense_evals/core/arms/native_pdf.py104__all__ = ["NativePdfArm"]CODE
LOW…sense_evals/src/surfsense_evals/core/arms/surfsense.py27logger = logging.getLogger(__name__)CODE
LOW…sense_evals/src/surfsense_evals/core/arms/surfsense.py102__all__ = ["SurfSenseArm"]CODE
LOW…fsense_evals/src/surfsense_evals/core/arms/__init__.py21__all__ = [CODE
LOW…fsense_evals/src/surfsense_evals/core/arms/bare_llm.py19logger = logging.getLogger(__name__)CODE
LOW…fsense_evals/src/surfsense_evals/core/arms/bare_llm.py100__all__ = ["BareLlmArm"]CODE
LOWsurfsense_evals/src/surfsense_evals/suites/__init__.py25logger = logging.getLogger(__name__)CODE
LOW…s/src/surfsense_evals/suites/research/frames/ingest.py62logger = logging.getLogger(__name__)CODE
LOW…s/src/surfsense_evals/suites/research/frames/ingest.py345__all__ = ["run_ingest"]CODE
LOW…s/src/surfsense_evals/suites/research/frames/runner.py53logger = logging.getLogger(__name__)CODE
LOW…s/src/surfsense_evals/suites/research/frames/runner.py724__all__ = ["FramesBenchmark", "FramesRunnerQuestion"]CODE
LOW…s/src/surfsense_evals/suites/research/frames/grader.py44logger = logging.getLogger(__name__)CODE
LOW…s/src/surfsense_evals/suites/research/frames/grader.py348__all__ = [CODE
LOW…/src/surfsense_evals/suites/research/frames/dataset.py31logger = logging.getLogger(__name__)CODE
LOW…/src/surfsense_evals/suites/research/frames/dataset.py171__all__ = [CODE
LOW…s/src/surfsense_evals/suites/research/frames/prompt.py70__all__ = ["build_bare_prompt", "build_surfsense_prompt"]CODE
LOW…c/surfsense_evals/suites/research/frames/wiki_fetch.py38logger = logging.getLogger(__name__)CODE
LOW…c/surfsense_evals/suites/research/frames/wiki_fetch.py241__all__ = [CODE
LOW…als/src/surfsense_evals/suites/research/crag/ingest.py70logger = logging.getLogger(__name__)CODE
LOW…als/src/surfsense_evals/suites/research/crag/ingest.py447__all__ = ["read_page_markdown", "run_ingest"]CODE
LOW…als/src/surfsense_evals/suites/research/crag/runner.py72logger = logging.getLogger(__name__)CODE
LOW…als/src/surfsense_evals/suites/research/crag/runner.py1051__all__ = ["CragBenchmark", "CragRunnerQuestion"]CODE
LOW…als/src/surfsense_evals/suites/research/crag/grader.py45logger = logging.getLogger(__name__)CODE
LOW…als/src/surfsense_evals/suites/research/crag/grader.py562__all__ = [CODE
LOW…c/surfsense_evals/suites/research/crag/html_extract.py33logger = logging.getLogger(__name__)CODE
611 more matches not shown…
Docstring Block Structure83 hits · 415 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…t_chat/subagents/builtins/deliverables/tools/report.py590 Generate a structured Markdown report artifact from provided content. Use this tool when the user asksSTRING
HIGH…/builtins/mcp_discovery/tools/calendar/update_event.py48Update 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.py29Delete 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.py33Create 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.py35Slice ``decisions`` into ``{tool_call_id: {"decisions": <slice>}}``. Args: decisions: Flat list of decisionSTRING
HIGH…are/checkpointed_subagent_middleware/resume_routing.py70Extract ``[(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
23 more matches not shown…
Deep Nesting291 hits · 263 pts
SeverityFileLineSnippetContext
LOWsurfsense_evals/scripts/compute_blog_extras.py102CODE
LOWsurfsense_evals/scripts/compute_blog_extras.py325CODE
LOWsurfsense_evals/scripts/retry_failed_questions.py343CODE
LOW…ense_evals/src/surfsense_evals/core/ingest_settings.py238CODE
LOWsurfsense_evals/src/surfsense_evals/core/cli.py573CODE
LOW…nse_evals/src/surfsense_evals/core/clients/new_chat.py198CODE
LOW…s/src/surfsense_evals/core/providers/openrouter_pdf.py173CODE
LOW…vals/src/surfsense_evals/core/parse/freeform_answer.py34CODE
LOW…/src/surfsense_evals/suites/research/frames/dataset.py119CODE
LOW…als/src/surfsense_evals/suites/research/crag/ingest.py174CODE
LOW…als/src/surfsense_evals/suites/research/crag/runner.py580CODE
LOW…c/surfsense_evals/suites/research/crag/html_extract.py170CODE
LOW…e_evals/suites/multimodal_doc/parser_compare/runner.py134CODE
LOW…e_evals/suites/multimodal_doc/parser_compare/runner.py731CODE
LOW…e_evals/suites/multimodal_doc/parser_compare/runner.py618CODE
LOW…ls/src/surfsense_evals/suites/medical/mirage/ingest.py112CODE
LOW…ls/src/surfsense_evals/suites/medical/mirage/ingest.py290CODE
LOW…vals/src/surfsense_evals/suites/medical/cure/ingest.py121CODE
LOW…vals/src/surfsense_evals/suites/medical/cure/runner.py75CODE
LOW…vals/src/surfsense_evals/suites/medical/cure/runner.py221CODE
LOWsurfsense_backend/app/users.py65CODE
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/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.py454CODE
LOW…sense_backend/app/tasks/celery_tasks/document_tasks.py722CODE
231 more matches not shown…
Structural Annotation Overuse132 hits · 217 pts
SeverityFileLineSnippetContext
LOW.cursor/skills/entity-optimizer/SKILL.md185### Step 1: Entity DiscoveryCOMMENT
LOW.cursor/skills/entity-optimizer/SKILL.md225### Step 2: Entity Signal AuditCOMMENT
LOW.cursor/skills/entity-optimizer/SKILL.md240### Step 3: Report & Action PlanCOMMENT
LOW…s/entity-optimizer/references/knowledge-graph-guide.md110#### Step 1: Check EligibilityCOMMENT
LOW…s/entity-optimizer/references/knowledge-graph-guide.md114#### Step 2: Create the ItemCOMMENT
LOW…s/entity-optimizer/references/knowledge-graph-guide.md122#### Step 3: Add Core StatementsCOMMENT
LOW…s/entity-optimizer/references/knowledge-graph-guide.md159#### Step 4: Add External IdentifiersCOMMENT
LOW…s/entity-optimizer/references/knowledge-graph-guide.md173#### Step 5: Add ReferencesCOMMENT
LOW…keyword-research/references/topic-cluster-templates.md13### Step 1: Define the Pillar TopicCOMMENT
LOW…keyword-research/references/topic-cluster-templates.md36### Step 2: Map Cluster SubtopicsCOMMENT
LOW…keyword-research/references/topic-cluster-templates.md49### Step 3: Define Internal Linking MapCOMMENT
LOW…kills/playwright-testing/core/projects-dependencies.md172 // Step 1: Database setupCOMMENT
LOW…kills/playwright-testing/core/projects-dependencies.md178 // Step 2: Auth setup (needs DB)COMMENT
LOW…kills/playwright-testing/core/projects-dependencies.md185 // Step 3: Seed data (needs auth)COMMENT
LOW…lls/playwright-testing/testing-patterns/api-testing.md474 // Step 1: Create a productCOMMENT
LOW…lls/playwright-testing/testing-patterns/api-testing.md481 // Step 2: Create a cartCOMMENT
LOW…lls/playwright-testing/testing-patterns/api-testing.md489 // Step 3: CheckoutCOMMENT
LOW…lls/playwright-testing/testing-patterns/api-testing.md505 // Step 4: Verify order in listCOMMENT
LOW…lls/playwright-testing/testing-patterns/api-testing.md510 // Step 5: Verify stock decreasedCOMMENT
LOW.cursor/skills/content-quality-auditor/SKILL.md184### Step 1: PreparationCOMMENT
LOW.cursor/skills/content-quality-auditor/SKILL.md204### Step 2: CORE Audit (40 items)COMMENT
LOW.cursor/skills/content-quality-auditor/SKILL.md228### Step 3: EEAT Audit (40 items)COMMENT
LOW.cursor/skills/content-quality-auditor/SKILL.md245### Step 4: Scoring & ReportCOMMENT
LOW.cursor/skills/domain-authority-auditor/SKILL.md170### Step 1: PreparationCOMMENT
LOW.cursor/skills/domain-authority-auditor/SKILL.md201### Step 2: C + I Audit (20 items)COMMENT
LOW.cursor/skills/domain-authority-auditor/SKILL.md232### Step 3: T + E Audit (20 items)COMMENT
LOW.cursor/skills/domain-authority-auditor/SKILL.md258### Step 4: Scoring & ReportCOMMENT
LOW…ent-gap-analysis/references/gap-analysis-frameworks.md20#### Step 1: Define Your Keyword UniverseCOMMENT
LOW…ent-gap-analysis/references/gap-analysis-frameworks.md32#### Step 2: Build Competitor Keyword ProfilesCOMMENT
LOW…ent-gap-analysis/references/gap-analysis-frameworks.md43#### Step 3: Calculate Keyword OverlapCOMMENT
LOW…ent-gap-analysis/references/gap-analysis-frameworks.md68#### Step 4: Filter and Categorize Gaps (Segment C)COMMENT
LOW…ent-gap-analysis/references/gap-analysis-frameworks.md89#### Step 5: Prioritize GapsCOMMENT
LOW…ent-gap-analysis/references/gap-analysis-frameworks.md99#### Step 1: Inventory Your Content FormatsCOMMENT
LOW…ent-gap-analysis/references/gap-analysis-frameworks.md119#### Step 2: Benchmark Against CompetitorsCOMMENT
LOW…ent-gap-analysis/references/gap-analysis-frameworks.md134#### Step 3: Identify Format GapsCOMMENT
LOW…ent-gap-analysis/references/gap-analysis-frameworks.md143#### Step 4: Format-SERP Feature AlignmentCOMMENT
LOW…ent-gap-analysis/references/gap-analysis-frameworks.md164#### Step 1: Define Funnel Stages and Content ExpectationsCOMMENT
LOW…ent-gap-analysis/references/gap-analysis-frameworks.md176#### Step 2: Audit Content by Funnel StageCOMMENT
LOW…ent-gap-analysis/references/gap-analysis-frameworks.md199#### Step 3: Identify Drop-Off PointsCOMMENT
LOW…ent-gap-analysis/references/gap-analysis-frameworks.md260#### Step 1: Group Gaps by Topic ClusterCOMMENT
LOW…ent-gap-analysis/references/gap-analysis-frameworks.md270#### Step 2: Sequence by Priority and DependenciesCOMMENT
LOW…ent-gap-analysis/references/gap-analysis-frameworks.md280#### Step 3: Assign Resources and TrackCOMMENT
LOW.cursor/skills/ugc-brief/SKILL.md12### Step 1: Define Product & Key MessagesCOMMENT
LOW.cursor/skills/ugc-brief/SKILL.md27### Step 2: Specify Hook RequirementsCOMMENT
LOW.cursor/skills/ugc-brief/SKILL.md45### Step 3: List Talking PointsCOMMENT
LOW.cursor/skills/ugc-brief/SKILL.md66### Step 4: Include Authenticity GuidelinesCOMMENT
LOW.cursor/skills/ugc-brief/SKILL.md89### Step 5: Output Creator BriefCOMMENT
LOW…mpetitor-analysis/references/positioning-frameworks.md78#### Step 1: Choose Your AxesCOMMENT
LOW…mpetitor-analysis/references/positioning-frameworks.md95#### Step 2: Plot CompetitorsCOMMENT
LOW…mpetitor-analysis/references/positioning-frameworks.md114#### Step 3: Identify White SpaceCOMMENT
LOW…mpetitor-analysis/references/positioning-frameworks.md121#### Step 4: Choose Your PositionCOMMENT
LOW…ills/content-refresher/references/refresh-templates.md7## Step 5: Create Refresh PlanCOMMENT
LOW…ills/content-refresher/references/refresh-templates.md73## Step 6: Write Refresh ContentCOMMENT
LOW…ills/content-refresher/references/refresh-templates.md120## Step 7: Optimize for GEO During RefreshCOMMENT
LOW…ills/content-refresher/references/refresh-templates.md159## Step 8: Generate Republishing StrategyCOMMENT
LOW…ills/content-refresher/references/refresh-templates.md209## Step 9: Create Refresh ReportCOMMENT
LOW…al-seo-checker/references/technical-audit-templates.md7## Step 3: Audit Site Speed & Core Web VitalsCOMMENT
LOW…al-seo-checker/references/technical-audit-templates.md64## Step 4: Audit Mobile-FriendlinessCOMMENT
LOW…al-seo-checker/references/technical-audit-templates.md104## Step 5: Audit Security & HTTPSCOMMENT
LOW…al-seo-checker/references/technical-audit-templates.md134## Step 6: Audit URL StructureCOMMENT
72 more matches not shown…
Redundant / Tautological Comments116 hits · 171 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
LOWsurfsense_backend/app/connectors/slack_history.py67 # Check if client was initialized with a token directly (not via credentials)COMMENT
LOWsurfsense_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
LOWsurfsense_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.py425 # Check if file exists and is accessibleCOMMENT
LOW…sense_backend/app/tasks/celery_tasks/document_tasks.py548 # Check if this is an insufficient-credit error (either direct orCOMMENT
LOW…sense_backend/app/tasks/celery_tasks/document_tasks.py670 # Check if file exists and is accessibleCOMMENT
LOW…sense_backend/app/tasks/celery_tasks/document_tasks.py820 # Set status to PROCESSING (shows spinner in UI via Zero)COMMENT
LOW…sense_backend/app/tasks/celery_tasks/document_tasks.py872 # 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…
Fake / Example Data109 hits · 103 pts
SeverityFileLineSnippetContext
LOW…r/skills/playwright-testing/advanced/authentication.md200 email: "admin@example.com",CODE
LOW…or/skills/playwright-testing/advanced/multi-context.md53 await popup.getByLabel("Email").fill("user@example.com");CODE
LOW.cursor/skills/playwright-testing/core/test-data.md259 { email: "user@example.com", password: "pass123", expected: "Dashboard" },CODE
LOW.cursor/skills/playwright-testing/core/test-data.md260 { email: "admin@example.com", password: "admin123", expected: "Admin Panel" },CODE
LOW.cursor/skills/playwright-testing/core/test-data.md440 const user = await seedUser({ name: "John Doe" });CODE
LOW.cursor/skills/playwright-testing/core/test-data.md443 await expect(page.getByText("John Doe")).toBeVisible();CODE
LOW…or/skills/playwright-testing/core/page-object-model.md70 await loginPage.login("user@example.com", "password123");CODE
LOW…or/skills/playwright-testing/core/page-object-model.md209const dashboardPage = await loginPage.login("user@example.com", "pass");CODE
LOW…or/skills/playwright-testing/core/page-object-model.md242await loginPage.login("user@example.com", "password");CODE
LOW…or/skills/playwright-testing/core/page-object-model.md307 await loginPage.login("user@example.com", "password");CODE
LOW…ursor/skills/playwright-testing/core/fixtures-hooks.md106 defaultUser: { email: "admin@example.com", password: "admin123" },CODE
LOW…ursor/skills/playwright-testing/core/fixtures-hooks.md283 await login(page, "admin@example.com", "adminpass");CODE
LOW…ursor/skills/playwright-testing/core/fixtures-hooks.md288 await login(page, "user@example.com", "userpass");CODE
LOW.cursor/skills/playwright-testing/core/annotations.md205 await page.getByLabel("Name").fill("John Doe");CODE
LOW…r/skills/playwright-testing/core/assertions-waiting.md47await expect(page.getByLabel("Email")).toHaveValue("user@example.com");CODE
LOW…laywright-testing/testing-patterns/forms-validation.md158 await page.getByLabel("Phone").fill("555-1234");CODE
LOW…laywright-testing/testing-patterns/forms-validation.md205 await page.getByLabel("Phone").fill("555-1234");CODE
LOW…laywright-testing/testing-patterns/forms-validation.md501| `await page.fill('#email', 'test@test.com')` | CSS selector is fragile |CODE
LOW…playwright-testing/testing-patterns/file-operations.md71 expect(content).toContain("John Doe");CODE
LOW…laywright-testing/testing-patterns/security-testing.md180 await page.getByLabel("Email").fill("user@example.com");CODE
LOW…laywright-testing/testing-patterns/security-testing.md207 await page1.getByLabel("Email").fill("user@example.com");CODE
LOW…laywright-testing/testing-patterns/security-testing.md217 await page2.getByLabel("Email").fill("user@example.com");CODE
LOW…laywright-testing/testing-patterns/security-testing.md238 await page.getByLabel("Email").fill("user@example.com");CODE
LOW.cursor/skills/frontend-design/SKILL.md14If the brief does not pin down the product or subject, pin it yourself before designing: name one concrete subject, its CODE
LOWsurfsense_web/messages/zh.json411 "placeholder": "输入 URL 并按 Enter",CODE
LOWsurfsense_web/messages/zh.json440 "placeholder": "在此粘贴 YouTube 视频或播放列表 URL",CODE
LOWsurfsense_web/messages/pt.json412 "placeholder": "Insira uma URL e pressione Enter",CODE
LOWsurfsense_web/messages/pt.json441 "placeholder": "Cole URLs de vídeos ou playlists do YouTube aqui",CODE
LOWsurfsense_web/messages/en.json249 "name_placeholder": "John Doe",CODE
LOWsurfsense_web/messages/en.json412 "placeholder": "Enter a URL and press Enter",CODE
LOWsurfsense_web/messages/en.json441 "placeholder": "Paste YouTube video or playlist URLs here",CODE
LOWsurfsense_web/messages/hi.json412 "placeholder": "URL दर्ज करें और Enter दबाएं",CODE
LOWsurfsense_web/messages/hi.json441 "placeholder": "YouTube वीडियो या प्लेलिस्ट URL यहां पेस्ट करें",CODE
LOWsurfsense_web/messages/ko.json412 "placeholder": "URL을 입력하고 Enter를 누르세요",CODE
LOWsurfsense_web/messages/ko.json441 "placeholder": "유튜브 동영상 또는 재생목록 URL을 붙여넣으세요",CODE
LOWsurfsense_web/messages/es.json412 "placeholder": "Ingresa una URL y presiona Enter",CODE
LOWsurfsense_web/messages/es.json441 "placeholder": "Pega URLs de videos o listas de reproducción de YouTube aquí",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…/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…/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
49 more matches not shown…
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.py567 # 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__.py1208# Create a config instanceCOMMENT
MEDIUMsurfsense_backend/app/routes/new_chat_routes.py2250 # Create a wrapper generator that deletes messages only AFTER streaming succeedsCOMMENT
MEDIUM…_backend/app/routes/search_source_connectors_routes.py1977 # Create a wrapper function that calls index_google_gmail_messages with max_messagesCOMMENT
MEDIUM…_backend/app/routes/search_source_connectors_routes.py2631 # Create the connector with single server configCOMMENT
MEDIUMsurfsense_backend/app/routes/incentive_tasks_routes.py113 # Create the task completion recordCOMMENT
MEDIUMsurfsense_backend/app/services/reranker_service.py95 # Create a deep copy to preserve the full structure including chunksCOMMENT
MEDIUMsurfsense_backend/app/services/llm_router_service.py852 # 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
Verbosity Indicators56 hits · 96 pts
SeverityFileLineSnippetContext
LOW…ense_evals/suites/multimodal_doc/mmlongbench/ingest.py338 # Step 3: upload to SurfSenseCOMMENT
LOW…ense_evals/suites/multimodal_doc/mmlongbench/ingest.py294 # Step 1: questionsCOMMENT
LOW…ense_evals/suites/multimodal_doc/mmlongbench/ingest.py323 # Step 2: download unique PDFsCOMMENT
LOW…ense_evals/suites/multimodal_doc/mmlongbench/ingest.py351 # Step 4: persist doc_id -> document_id manifestCOMMENT
LOW…rc/surfsense_evals/suites/medical/medxpertqa/ingest.py325 # Step 3: render PDFsCOMMENT
LOW…rc/surfsense_evals/suites/medical/medxpertqa/ingest.py279 # Step 1: download jsonl(s)COMMENT
LOW…rc/surfsense_evals/suites/medical/medxpertqa/ingest.py306 # Step 2: download images.zip + extract onceCOMMENT
LOW…rc/surfsense_evals/suites/medical/medxpertqa/ingest.py346 # Step 4: uploadCOMMENT
LOW…rc/surfsense_evals/suites/medical/medxpertqa/ingest.py359 # Step 5: persist manifest + questionsCOMMENT
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…t_chat/subagents/builtins/deliverables/tools/report.py344 # Step 1: Ask LLM which sections need modificationCOMMENT
LOW…t_chat/subagents/builtins/deliverables/tools/report.py417 # Step 2: Revise only the affected sectionsCOMMENT
LOW…t_chat/subagents/builtins/deliverables/tools/report.py484 # Step 3: Handle new section additions (insert in reverse order to preserve indices)COMMENT
LOW…t_chat/subagents/builtins/deliverables/tools/report.py548 # Step 4: Handle removals (reverse order to preserve indices)COMMENT
LOWsurfsense_backend/app/etl_pipeline/picture_describer.py566 # Step 1: layout-aware figures. One-shot batch -- finds ALLCOMMENT
LOWsurfsense_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
Modern AI Meta-Vocabulary37 hits · 88 pts
SeverityFileLineSnippetContext
MEDIUM.cursor/skills/system-architecture/examples.md54application/ # Use cases, orchestrates domainCODE
MEDIUM.cursor/skills/playwright-testing/core/configuration.md18npx playwright init # scaffold config + first testCODE
MEDIUMsurfsense_evals/README.md41# 1a. headline head-to-head: Native PDF (vision) vs SurfSense (vision RAG)COMMENT
MEDIUMsurfsense_evals/src/surfsense_evals/core/config.py135# Measures whether vision-RAG ingestion lets a cheap downstream modelCOMMENT
MEDIUM…s/src/surfsense_evals/suites/research/crag/__init__.py35``(#correct - #incorrect) / total`` — penalising hallucinationsSTRING
MEDIUM…e_evals/suites/multimodal_doc/parser_compare/ingest.py283 # ingestion. parser_compare doesn't re-upload; SurfSense's agenticCOMMENT
MEDIUM…e_evals/suites/multimodal_doc/parser_compare/runner.py96# The SurfSense agentic arm is fed by the existing mmlongbenchCOMMENT
MEDIUMsurfsense_backend/app/config/model_list_fallback.json9 "description": "Gemini 3.1 Pro Preview is Google’s frontier reasoning model, delivering enhanced software engineerCODE
MEDIUMsurfsense_backend/app/config/model_list_fallback.json9 "description": "Gemini 3.1 Pro Preview is Google’s frontier reasoning model, delivering enhanced software engineerCODE
MEDIUMsurfsense_backend/app/config/model_list_fallback.json9 "description": "Gemini 3.1 Pro Preview is Google’s frontier reasoning model, delivering enhanced software engineerCODE
MEDIUMsurfsense_backend/app/config/model_list_fallback.json2715 "description": "Gemini 3 Pro is Google’s flagship frontier model for high-precision multimodal reasoning, combininCODE
MEDIUMsurfsense_backend/app/config/model_list_fallback.json2715 "description": "Gemini 3 Pro is Google’s flagship frontier model for high-precision multimodal reasoning, combininCODE
MEDIUMsurfsense_backend/app/config/model_list_fallback.json2715 "description": "Gemini 3 Pro is Google’s flagship frontier model for high-precision multimodal reasoning, combininCODE
MEDIUMsurfsense_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.py90 # timeout (multi-agent) or HTTP lifetime (single-agent) —COMMENT
MEDIUM…/agents/chat/multi_agent_chat/shared/tools/mcp/tool.py60# multi-agent paths cannot share tool closures with different HITL wiring.COMMENT
MEDIUM…ent_chat/main_agent/middleware/otel_span/middleware.py68 # the usual culprit when the multi-agent path feels slow to start.COMMENT
MEDIUMsurfsense_backend/app/utils/document_converters.py17# This reentrant lock serialises tokenizer + embedding model access so thatCOMMENT
MEDIUMsurfsense_backend/app/utils/document_converters.py121 # Get model context windowCOMMENT
MEDIUMsurfsense_backend/app/routes/documents_routes.py712 # 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
Over-Commented Block79 hits · 68 pts
SeverityFileLineSnippetContext
LOWdocker/docker-compose.e2e.yml1# =============================================================================COMMENT
LOWdocker/docker-compose.watch-e2e.yml1# =============================================================================COMMENT
LOWdocker/docker-compose.yml61 # otel-collector:COMMENT
LOWdocker/docker-compose.yml161 # build: ../surfsense_backend/scripts/whatsapp-bridgeCOMMENT
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/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_evals/src/surfsense_evals/core/config.py121COMMENT
LOW…ense_evals/src/surfsense_evals/core/parse/citations.py21# /[\[【]\u200B?citation:\s*(https?:\/\/[^\]】\u200B]+|urlcite\d+|(?:doc-)?-?\d+(?:\s*,\s*(?:doc-)?-?\d+)*)\s*\u200B?[\]COMMENT
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.ts81 // title: "Podcast Generation Improvements",COMMENT
LOWsurfsense_web/lib/announcements/announcements-data.ts101 // isImportant: true,COMMENT
LOWsurfsense_web/lib/announcements/announcements-data.ts121 // title: "Enhanced Team Collaboration",COMMENT
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.py1361 # copy / duplicate operations. Path uniqueness lives onCOMMENT
LOWsurfsense_backend/app/users.py241COMMENT
LOWsurfsense_backend/app/app.py281 extra_headers={"Retry-After": retry_after},COMMENT
LOWsurfsense_backend/app/tasks/chat/persistence.py81# list with an empty text part so a crash between shell-INSERT and finalizeCOMMENT
LOWsurfsense_backend/app/tasks/chat/content_builder.py101 # streaming is open; -1 means "no active part" and the next deltaCOMMENT
LOW…ckend/app/tasks/chat/streaming/shared/stream_result.py21 write_succeeded: bool = FalseCOMMENT
LOW…ckend/app/proprietary/platforms/google_maps/parsers.py381COMMENT
LOW…ckend/app/proprietary/platforms/google_search/fetch.py61_STICKY_PORT_RANGE = (10000, 20000)COMMENT
LOW…ckend/app/proprietary/platforms/google_search/fetch.py221 return pageCOMMENT
LOW…end/app/proprietary/platforms/google_search/parsers.py461COMMENT
LOW…ense_backend/app/proprietary/platforms/reddit/fetch.py81# is the real safety net if an IP's limit is tighter.COMMENT
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__.py621 )COMMENT
LOWsurfsense_backend/app/config/__init__.py661 # keep crawling effectively-free; hosted deployments set this TRUE.COMMENT
LOWsurfsense_backend/app/config/__init__.py681 # $3/1000 -> 3000 (default) | $5/1000 -> 5000COMMENT
LOWsurfsense_backend/app/config/__init__.py821 # premium-model run. Tune via env.COMMENT
LOWsurfsense_backend/app/config/__init__.py1081 # unchanged (reusing their embeddings) and embed only new/changed chunks.COMMENT
LOWsurfsense_backend/app/config/__init__.py1101 PROXY_URL = os.getenv("PROXY_URL")COMMENT
LOWsurfsense_backend/app/config/__init__.py1121 CAPTCHA_SOLVER_API_KEY = os.getenv("CAPTCHA_SOLVER_API_KEY")COMMENT
LOWsurfsense_backend/app/config/__init__.py1141 # Map the active proxy provider's exit region (ProxyProvider.get_location())COMMENT
LOW…/agents/chat/multi_agent_chat/subagents/shared/spec.py21COMMENT
LOW…p/agents/chat/multi_agent_chat/shared/feature_flags.py61 # PluginsCOMMENT
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.py1321 Access is granted if:COMMENT
LOWsurfsense_backend/app/routes/new_chat_routes.py1401COMMENT
LOWsurfsense_backend/app/routes/new_chat_routes.py1421 # where no Python exception is constructed at all.COMMENT
19 more matches not shown…
AI Slop Vocabulary19 hits · 50 pts
SeverityFileLineSnippetContext
MEDIUMsurfsense_evals/scripts/compute_blog_extras.py379 # because the harness recorded a failure.COMMENT
MEDIUM…vals/src/surfsense_evals/core/parse/freeform_answer.py25# next newline ourselves — robust to multiple inline answers becauseCOMMENT
MEDIUM…stant-ui/connector-popup/utils/mcp-config-validator.ts130 // Use Zod schema validation for robust type checkingCOMMENT
LOWsurfsense_backend/app/connectors/slack_history.py77 # But we can't easily extract the token, so we'll just use the clientCOMMENT
LOWsurfsense_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
MEDIUMsurfsense_backend/app/config/__init__.py1137 # is the single source of truth imported by the crawler AND the 03f harnessCOMMENT
MEDIUMsurfsense_backend/app/config/model_list_fallback.json2715 "description": "Gemini 3 Pro is Google’s flagship frontier model for high-precision multimodal reasoning, combininCODE
MEDIUMsurfsense_backend/app/config/model_list_fallback.json2715 "description": "Gemini 3 Pro is Google’s flagship frontier model for high-precision multimodal reasoning, combininCODE
MEDIUMsurfsense_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.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…t_chat/subagents/builtins/deliverables/tools/report.py92_REPORT_PROMPT = """You are an expert report writer. Generate a comprehensive Markdown report.CODE
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.py204 "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
Cross-Language Confusion8 hits · 42 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.py198 if (cfg && cfg.clients) {CODE
HIGH…rfsense_backend/app/proprietary/web_crawler/captcha.py203 if (o && typeof o === 'object') {CODE
HIGH…rfsense_backend/app/proprietary/web_crawler/captcha.py206 if (cb && cb.callback && typeof cb.callback === 'function') {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
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 Indicators2 hits · 20 pts
SeverityFileLineSnippetContext
CRITICALsurfsense_backend/app/file_storage/backends/azure.py43 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
AI Structural Patterns17 hits · 15 pts
SeverityFileLineSnippetContext
LOWsurfsense_evals/tests/suites/test_crag_dataset.py32CODE
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/reddit.py29CODE
LOW…e_backend/app/tasks/chat/streaming/agent/event_loop.py38CODE
LOW…pp/tasks/chat/streaming/flows/new_chat/orchestrator.py121CODE
LOWsurfsense_backend/app/capabilities/core/runs.py79CODE
LOW…t_chat/subagents/builtins/deliverables/tools/resume.py293CODE
LOW…ts/chat/multi_agent_chat/main_agent/runtime/factory.py59CODE
LOW…agent_chat/main_agent/system_prompt/builder/compose.py42CODE
LOWsurfsense_backend/app/observability/otel.py289CODE
LOWsurfsense_backend/app/routes/logs_routes.py60CODE
LOWsurfsense_backend/app/routes/documents_routes.py328CODE
LOWsurfsense_backend/app/routes/documents_routes.py1678CODE
LOWsurfsense_backend/app/notifications/api/api.py213CODE
LOW…rfsense_backend/app/services/token_tracking_service.py517CODE
LOWsurfsense_backend/app/services/composio_service.py1325CODE
Dead Code7 hits · 14 pts
SeverityFileLineSnippetContext
MEDIUM…ests/unit/platforms/instagram/test_fetch_resilience.py297CODE
MEDIUM…nd/tests/unit/tasks/test_video_presentation_billing.py104CODE
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…_backend/tests/integration/podcasts/test_draft_task.py82CODE
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
LOWdocker/docker-compose.yml5# Usage:COMMENT
LOWdocker/scripts/migrate-database.sh8# Usage:COMMENT