Repository Analysis

LearningCircuit/local-deep-research

~95% on SimpleQA (e.g. Qwen3.6-27B on a 3090). Supports all local and cloud LLMs (llama.cpp, Ollama, Google, ...). 10+ search engines - arXiv, PubMed, your private documents. Everything Local & Encrypted.

48.0 Strong AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of LearningCircuit/local-deep-research, a Python project with 8,712 GitHub stars. SynthScan v2.0 examined 1,053,173 lines of code across 2978 source files, recording 36250 pattern matches distributed across 26 syntactic categories. The overall adjusted score of 48.0 places this repository in the Strong 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).

48.0
Adjusted Score
48.0
Raw Score
100%
Time Factor
2026-07-14
Last Push
8.7K
Stars
Python
Language
1.1M
Lines of Code
3.0K
Files
36.2K
Pattern Hits
2026-07-14
Scan Date
0.11
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 18HIGH 303MEDIUM 5762LOW 30167

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 36250 distinct pattern matches across 26 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.

Hyper-Verbose Identifiers26244 hits · 24426 pts
SeverityFileLineSnippetContext
LOW.pre-commit-hooks/custom-checks.py156 def _format_string_references_exception(self, node):CODE
LOW.pre-commit-hooks/custom-checks.py180 def _string_concat_references_exception(self, node):CODE
LOW.pre-commit-hooks/check-bearer-disable.py112def _classify_js_line_comment(CODE
LOW.pre-commit-hooks/check-fixture-duplication.py78def find_module_level_fixture_redefinitions(CODE
LOW…e-commit-hooks/check-settings-manager-thread-safety.py81 def _check_body_for_unsafe_calls(self, node) -> None:CODE
LOW…e-commit-hooks/check-settings-manager-thread-safety.py117 def _is_get_settings_manager_call(call_node: ast.Call) -> bool:CODE
LOW.pre-commit-hooks/check-sensitive-logging.py268 def _is_literal_dynamic_import(node: ast.AST, module: str) -> bool:CODE
LOW.pre-commit-hooks/check-sensitive-logging.py360 def _check_import_from_secure_dir(self, node: ast.ImportFrom) -> None:CODE
LOW.pre-commit-hooks/check-sensitive-logging.py815 def _check_exc_info_on_warning(self, node: ast.Call) -> None:CODE
LOW.pre-commit-hooks/check-sensitive-logging.py837 def _check_exception_var_in_log(self, node: ast.Call) -> None:CODE
LOW.pre-commit-hooks/check-sensitive-logging.py972 def _check_expression_for_sensitive_data(CODE
LOW.pre-commit-hooks/check-service-context-managers.py229 def _check_statements_recursive(CODE
LOW.pre-commit-hooks/check-session-context-manager.py34 def _check_function_for_pattern(self, func_node) -> None:CODE
LOW.pre-commit-hooks/check-session-context-manager.py62 def _get_session_var_from_assign(self, assign_node: ast.Assign) -> str:CODE
LOW.pre-commit-hooks/check-session-context-manager.py93 def _has_session_close_in_finally(CODE
LOW.pre-commit-hooks/check-settings-key-namespace.py88def _extract_frozenset_strings(node):CODE
LOWtests/test_api_settings_validation.py16 def test_temperature_validation(self):CODE
LOWtests/test_api_settings_validation.py48 def test_provider_name_normalization(self):CODE
LOWtests/test_api_settings_validation.py65 def test_search_results_validation(self):CODE
LOWtests/test_api_settings_validation.py84 def test_quick_summary_with_invalid_provider(self, mock_init):CODE
LOWtests/test_api_settings_validation.py96 def test_quick_summary_with_missing_api_key(self, mock_init):CODE
LOWtests/test_api_settings_validation.py118 def test_settings_with_circular_references(self):CODE
LOWtests/test_api_settings_validation.py141 def test_environment_variable_type_conversion(self, monkeypatch):CODE
LOWtests/test_api_settings_validation.py159 def test_invalid_environment_variable_values(self, monkeypatch):CODE
LOWtests/test_api_settings_validation.py171 def test_environment_variable_precedence(self, monkeypatch):CODE
LOWtests/test_api_settings_validation.py195 def test_minimal_configuration(self):CODE
LOWtests/test_api_settings_validation.py208 def test_common_research_presets(self):CODE
LOWtests/test_api_settings_validation.py292 def test_legacy_setting_names(self):CODE
LOWtests/test_context_overflow_detection.py58 def test_context_overflow_detection_no_overflow(self, token_callback):CODE
LOWtests/test_context_overflow_detection.py87 def test_context_overflow_detection_with_overflow(self, token_callback):CODE
LOWtests/test_context_overflow_detection.py117 def test_ollama_raw_metrics_capture(self, token_callback):CODE
LOWtests/test_context_overflow_detection.py150 def test_context_limit_from_research_context(self):CODE
LOWtests/test_context_overflow_detection.py168 def test_prompt_size_estimation(self, token_callback):CODE
LOWtests/test_context_overflow_detection.py192 def test_overflow_warning_logged(self, mock_logger, token_callback):CODE
LOWtests/test_context_overflow_detection.py223 def test_estimated_overflow_for_non_ollama_provider(CODE
LOWtests/test_context_overflow_detection.py259 def test_provider_confirmed_total_context_overflow(CODE
LOWtests/test_context_overflow_detection.py295 def test_estimated_total_context_overflow_for_non_ollama(CODE
LOWtests/test_context_overflow_detection.py335 def test_estimated_total_context_overflow_via_llm_output(CODE
LOWtests/test_context_overflow_detection.py386 def test_estimated_path_fires_on_subsequent_calls_after_first_truncation(CODE
LOWtests/test_context_overflow_detection.py399 def llm_output_overflow_response():CODE
LOWtests/test_context_overflow_detection.py428 def test_estimated_overflow_skipped_when_context_limit_none(CODE
LOWtests/test_context_overflow_detection.py456 def test_estimated_overflow_zero_prompt_estimate(CODE
LOWtests/test_context_overflow_detection.py481 def test_estimated_overflow_without_on_llm_start(CODE
LOWtests/test_context_overflow_detection.py510 def test_ollama_context_overflow_real(self):CODE
LOWtests/TESTING_PROPOSAL.md263def test_create_documents_empty(citation_handler):CODE
LOWtests/TESTING_PROPOSAL.md269def test_create_documents_string(citation_handler):CODE
LOWtests/test_utils.py62def assert_search_result_format(result: Dict[str, Any]):CODE
LOWtests/test_utils.py112def create_test_research_context(query: str = "test query") -> Dict[str, Any]:CODE
LOWtests/test_utils.py157def assert_progress_callback_called(CODE
LOWtests/test_search_system_factory_high_value.py25 def test_all_entries_are_dicts(self):CODE
LOWtests/test_search_system_factory_high_value.py29 def test_all_entries_have_name_key(self):CODE
LOWtests/test_search_system_factory_high_value.py33 def test_all_entries_have_description_key(self):CODE
LOWtests/test_search_system_factory_high_value.py37 def test_all_names_are_nonempty_strings(self):CODE
LOWtests/test_search_system_factory_high_value.py42 def test_all_descriptions_are_nonempty_strings(self):CODE
LOWtests/test_search_system_factory_high_value.py77 def test_returns_copy_not_original(self):CODE
LOWtests/test_search_system_factory_high_value.py81 def test_copy_has_same_length(self):CODE
LOWtests/test_search_system_factory_high_value.py85 def test_copy_has_same_content(self):CODE
LOWtests/test_search_system_factory_high_value.py89 def test_modifying_returned_list_does_not_affect_original(self):CODE
LOWtests/test_search_system_factory_high_value.py95 def test_removing_from_returned_list_does_not_affect_original(self):CODE
LOWtests/test_search_system_factory_high_value.py105 def test_returns_default_when_snapshot_is_none(self):CODE
26184 more matches not shown…
Decorative Section Separators5041 hits · 18504 pts
SeverityFileLineSnippetContext
MEDIUMdocker-compose.gpu.override.yml1# ============================================================================COMMENT
MEDIUMdocker-compose.gpu.override.yml3# ============================================================================COMMENT
MEDIUMdocker-compose.gpu.override.yml21# ============================================================================COMMENT
MEDIUMdocker-compose.unraid.yml1# ============================================================================COMMENT
MEDIUMdocker-compose.unraid.yml3# ============================================================================COMMENT
MEDIUMdocker-compose.unraid.yml16# ============================================================================COMMENT
MEDIUM.file-whitelist.txt1# ============================================================================COMMENT
MEDIUM.file-whitelist.txt11# ============================================================================COMMENT
MEDIUM.file-whitelist.txt13# ---------------------------------------------------------------------------COMMENT
MEDIUM.file-whitelist.txt15# ---------------------------------------------------------------------------COMMENT
MEDIUM.file-whitelist.txt23# ---------------------------------------------------------------------------COMMENT
MEDIUM.file-whitelist.txt25# ---------------------------------------------------------------------------COMMENT
MEDIUM.file-whitelist.txt40# ---------------------------------------------------------------------------COMMENT
MEDIUM.file-whitelist.txt42# ---------------------------------------------------------------------------COMMENT
MEDIUM.file-whitelist.txt56# ---------------------------------------------------------------------------COMMENT
MEDIUM.file-whitelist.txt58# ---------------------------------------------------------------------------COMMENT
MEDIUM.file-whitelist.txt66# ---------------------------------------------------------------------------COMMENT
MEDIUM.file-whitelist.txt68# ---------------------------------------------------------------------------COMMENT
MEDIUM.file-whitelist.txt77# ---------------------------------------------------------------------------COMMENT
MEDIUM.file-whitelist.txt79# ---------------------------------------------------------------------------COMMENT
MEDIUM.file-whitelist.txt97# ---------------------------------------------------------------------------COMMENT
MEDIUM.file-whitelist.txt100# ---------------------------------------------------------------------------COMMENT
MEDIUMpyproject.toml419# ---------------------------------------------------------------------------COMMENT
MEDIUMpyproject.toml421# ---------------------------------------------------------------------------COMMENT
MEDIUM.grype.yaml9 # ==========================================================================COMMENT
MEDIUM.grype.yaml11 # ==========================================================================COMMENT
MEDIUM.grype.yaml32 # ==========================================================================COMMENT
MEDIUM.grype.yaml34 # ==========================================================================COMMENT
MEDIUM.grype.yaml88 # ==========================================================================COMMENT
MEDIUM.grype.yaml93 # ==========================================================================COMMENT
MEDIUM.grype.yaml143 # ==========================================================================COMMENT
MEDIUM.grype.yaml164 # ==========================================================================COMMENT
MEDIUM.grype.yaml199 # ==========================================================================COMMENT
MEDIUM.grype.yaml207 # ==========================================================================COMMENT
MEDIUM.grype.yaml215 # ==========================================================================COMMENT
MEDIUM.grype.yaml217 # ==========================================================================COMMENT
MEDIUMdocker-compose.yml34 # ============================================================================COMMENT
MEDIUMdocker-compose.yml36 # ============================================================================COMMENT
MEDIUMdocker-compose.yml46 # ============================================================================COMMENT
MEDIUMdocker-compose.yml48 # ============================================================================COMMENT
MEDIUMdocker-compose.yml54 # ============================================================================COMMENT
MEDIUMdocker-compose.yml59 # ============================================================================COMMENT
MEDIUMdocker-compose.yml66 # ============================================================================COMMENT
MEDIUMdocker-compose.yml68 # ============================================================================COMMENT
MEDIUMdocker-compose.yml74 # ============================================================================COMMENT
MEDIUMdocker-compose.yml78 # ============================================================================COMMENT
MEDIUMdocker-compose.yml82 # ============================================================================COMMENT
MEDIUMdocker-compose.yml85 # ============================================================================COMMENT
MEDIUMdocker-compose.yml88 # ============================================================================COMMENT
MEDIUMdocker-compose.yml94 # ============================================================================COMMENT
MEDIUMdocker-compose.yml99 # ============================================================================COMMENT
MEDIUMdocker-compose.yml105 # ============================================================================COMMENT
MEDIUMdocker-compose.yml108 # ============================================================================COMMENT
MEDIUMdocker-compose.yml114 # ============================================================================COMMENT
MEDIUMdocker-compose.yml118 # ============================================================================COMMENT
MEDIUMdocker-compose.yml126 # ============================================================================COMMENT
MEDIUMdocker-compose.yml130 # ============================================================================COMMENT
MEDIUMdocker-compose.yml133 # ============================================================================COMMENT
MEDIUMdocker-compose.yml139 # ============================================================================COMMENT
MEDIUMdocker-compose.yml141 # ============================================================================COMMENT
4981 more matches not shown…
Excessive Try-Catch Wrapping1708 hits · 1687 pts
SeverityFileLineSnippetContext
LOW.pre-commit-hooks/check-css-class-prefix.py177 except Exception as e:CODE
MEDIUM.pre-commit-hooks/check-css-class-prefix.py178 print(f"Error reading {file_path}: {e}", file=sys.stderr)CODE
LOW.pre-commit-hooks/check-css-class-prefix.py331 except Exception as e:CODE
MEDIUM.pre-commit-hooks/check-css-class-prefix.py332 print(f"Error reading {file_path}: {e}", file=sys.stderr)CODE
LOW.pre-commit-hooks/check-css-class-prefix.py450 except Exception as e:CODE
MEDIUM.pre-commit-hooks/check-css-class-prefix.py451 print(f"Error reading {file_path}: {e}", file=sys.stderr)CODE
LOW.pre-commit-hooks/check-absolute-module-paths.py115 except Exception as e:CODE
MEDIUM.pre-commit-hooks/check-absolute-module-paths.py116 print(f"Error reading {filename}: {e}")CODE
LOW.pre-commit-hooks/check-absolute-module-paths.py133 except Exception as e:CODE
MEDIUM.pre-commit-hooks/check-absolute-module-paths.py134 print(f"Error parsing {filename}: {e}")CODE
LOW.pre-commit-hooks/check-absolute-module-paths.py148 except Exception as e:CODE
MEDIUM.pre-commit-hooks/check-absolute-module-paths.py149 print(f"Error reading {filename}: {e}")CODE
LOW.pre-commit-hooks/check-env-vars.py279 except Exception as e:CODE
MEDIUM.pre-commit-hooks/check-env-vars.py280 print(f"Error reading {filename}: {e}")CODE
LOW.pre-commit-hooks/check-env-vars.py297 except Exception as e:CODE
MEDIUM.pre-commit-hooks/check-env-vars.py298 print(f"Error parsing {filename}: {e}")CODE
LOW.pre-commit-hooks/check-pathlib-usage.py147 except Exception as e:CODE
MEDIUM.pre-commit-hooks/check-pathlib-usage.py148 print(f"Error reading {filepath}: {e}", file=sys.stderr)CODE
LOW.pre-commit-hooks/check-utcnow-parens.py34 except Exception:CODE
LOW.pre-commit-hooks/check-double-escaping.py130 except Exception as e:CODE
MEDIUM.pre-commit-hooks/check-double-escaping.py131 print(f"Error checking {file_path}: {e}")CODE
LOW.pre-commit-hooks/check-url-security.py143 except Exception as e:CODE
MEDIUM.pre-commit-hooks/check-url-security.py144 print(f"Error checking {file_path}: {e}")CODE
LOW.pre-commit-hooks/fix-exception-logging.py234 except Exception:CODE
LOW.pre-commit-hooks/check-silent-cleanup.py187 except Exception as e:CODE
MEDIUM.pre-commit-hooks/check-silent-cleanup.py188 print(f"Error reading {filename}: {e}")CODE
LOW.pre-commit-hooks/check-silent-cleanup.py209 except Exception as e:CODE
MEDIUM.pre-commit-hooks/check-silent-cleanup.py210 print(f"Error parsing {filename}: {e}")CODE
LOW.pre-commit-hooks/custom-checks.py535 except Exception as e:CODE
MEDIUM.pre-commit-hooks/custom-checks.py536 print(f"Error reading {filename}: {e}")CODE
LOW.pre-commit-hooks/custom-checks.py562 except Exception as e:CODE
MEDIUM.pre-commit-hooks/custom-checks.py563 print(f"Error parsing {filename}: {e}")CODE
LOW.pre-commit-hooks/check-weak-tests.py59 except Exception: # pragma: no cover - unparse is stable on 3.9+CODE
LOW…e-commit-hooks/check-settings-manager-thread-safety.py149 except Exception as e:CODE
MEDIUM…e-commit-hooks/check-settings-manager-thread-safety.py150 print(f"Error checking {filepath}: {e}", file=sys.stderr)CODE
LOW.pre-commit-hooks/check-sensitive-logging.py1128 except Exception as e:CODE
LOW.pre-commit-hooks/check-open-encoding.py140 except Exception:CODE
LOW.pre-commit-hooks/check-safe-requests.py99 except Exception as e:CODE
MEDIUM.pre-commit-hooks/check-safe-requests.py100 print(f"Error reading {filename}: {e}")CODE
LOW.pre-commit-hooks/check-safe-requests.py117 except Exception as e:CODE
MEDIUM.pre-commit-hooks/check-safe-requests.py118 print(f"Error parsing {filename}: {e}")CODE
LOW.pre-commit-hooks/check-service-context-managers.py408 except Exception as e:CODE
MEDIUM.pre-commit-hooks/check-service-context-managers.py409 print(f"Error reading {filename}: {e}")CODE
LOW.pre-commit-hooks/check-service-context-managers.py428 except Exception as e:CODE
MEDIUM.pre-commit-hooks/check-service-context-managers.py429 print(f"Error parsing {filename}: {e}")CODE
LOW.pre-commit-hooks/check-deprecated-settings-wrapper.py63 except Exception as e:CODE
MEDIUM.pre-commit-hooks/check-deprecated-settings-wrapper.py64 print(f"Error checking {filepath}: {e}", file=sys.stderr)CODE
LOW.pre-commit-hooks/check-session-context-manager.py130 except Exception as e:CODE
MEDIUM.pre-commit-hooks/check-session-context-manager.py131 print(f"Error checking {filepath}: {e}", file=sys.stderr)CODE
LOW.pre-commit-hooks/check-settings-key-namespace.py197 except Exception:CODE
LOW.pre-commit-hooks/check-settings-key-namespace.py216 except Exception:CODE
LOW.pre-commit-hooks/check-unmarked-sleep.py155 except Exception as exc:CODE
LOW.pre-commit-hooks/check-loguru-formatting.py119 except Exception as exc:CODE
LOW.pre-commit-hooks/check-golden-master-settings.py45 except Exception:CODE
LOW.pre-commit-hooks/check-silent-exceptions.py75 except Exception as exc:CODE
LOWtests/test_api_settings_validation.py133 except Exception as e:CODE
LOWtests/test_context_overflow_detection.py546 except Exception as e:CODE
LOWtests/conftest.py87 except Exception:CODE
LOWtests/conftest.py115 except Exception:CODE
LOWtests/conftest.py327 except Exception as e:CODE
1648 more matches not shown…
Self-Referential Comments330 hits · 1016 pts
SeverityFileLineSnippetContext
MEDIUM.pre-commit-hooks/check-service-context-managers.py195 # Create a fake function body from module-level statementsCOMMENT
MEDIUMtests/conftest.py330 # Create a test clientCOMMENT
MEDIUMtests/conftest.py592 # Create a mock moduleCOMMENT
MEDIUMtests/test_openai_api_key_usage.py110 # Create a mock LLM instanceCOMMENT
MEDIUMtests/test_reexport_modules.py80 # Create a fake config.config_files moduleCOMMENT
MEDIUMtests/test_report_generator.py306 # Define a structure with multiple sectionsCOMMENT
MEDIUMtests/test_report_generator.py354 # Define a structure with 5 sectionsCOMMENT
MEDIUMtests/test_settings_manager.py226 session = SessionLocal() # Create a new session instance for this testCODE
MEDIUMtests/test_settings_manager.py262 # Create a new session for this testCOMMENT
MEDIUMtests/test_search_engines_enhanced.py159 # Create a mock paper objectCOMMENT
MEDIUMtests/test_search_engines_enhanced.py274 # Create a minimal settings snapshot for the factoryCOMMENT
MEDIUMtests/test_api_key_configuration.py159 # Create a mock LLM instanceCOMMENT
MEDIUMtests/test_api_key_configuration.py182 # Create a mock LLM instanceCOMMENT
MEDIUMtests/test_api_key_configuration.py217 # Create a mock LLM instanceCOMMENT
MEDIUMtests/test_api_key_configuration.py240 # Create a mock LLM instance with invoke methodCOMMENT
MEDIUMtests/test_search_system.py41 # Create a mock strategy class and instanceCOMMENT
MEDIUMtests/test_search_system.py64 # Create the search system (will use default source-based strategy)COMMENT
MEDIUMtests/test_search_system.py67 # Create a mock progress callbackCOMMENT
MEDIUMtests/test_search_system.py196 # Create a mock callbackCOMMENT
MEDIUMtests/test_search_system.py216 # Create a mock strategy class and instanceCOMMENT
MEDIUMtests/test_search_system.py271 # Create the search system (uses source-based strategy by default)COMMENT
MEDIUMtests/metrics/test_query_utils.py15# Create a model for SQLAlchemy column testingCOMMENT
MEDIUMtests/settings/test_generate_config_docs.py294 # Create a minimal project structure with a bad JSON fileCOMMENT
MEDIUMtests/database/test_database_init.py223 # Create a research recordCOMMENT
MEDIUMtests/database/test_database_init.py268 # Create a benchmark run with resultsCOMMENT
MEDIUMtests/database/test_benchmark_models.py100 # Create a benchmark run firstCOMMENT
MEDIUMtests/database/test_benchmark_models.py210 # Create a benchmark runCOMMENT
MEDIUMtests/database/test_benchmark_models.py273 # Create a runCOMMENT
MEDIUMtests/database/test_benchmark_models.py399 # Create a completed runCOMMENT
MEDIUMtests/database/test_sqlcipher_integration.py1309 # Create main databaseCOMMENT
MEDIUMtests/database/test_sqlcipher_integration.py960 # Create a regular (unencrypted) SQLite databaseCOMMENT
MEDIUMtests/database/test_sqlcipher_integration.py2465 # Create main databaseCOMMENT
MEDIUMtests/database/test_sqlcipher_integration.py2827 # Create main databaseCOMMENT
MEDIUMtests/database/test_sqlcipher_integration.py3135 # Create main databaseCOMMENT
MEDIUMtests/database/test_sqlcipher_integration.py4224 # Create an encrypted database firstCOMMENT
MEDIUMtests/database/test_sqlcipher_integration.py4286 # Create an encrypted database with a tableCOMMENT
MEDIUMtests/database/test_orm_conversions.py80 # Create a research entry first with UUIDCOMMENT
MEDIUMtests/database/test_alembic_migrations.py525 # Create a corrupted alembic_version tableCOMMENT
MEDIUMtests/database/test_alembic_migrations.py3682 # Create an engine with invalid credentials in URLCOMMENT
MEDIUMtests/database/test_alembic_migrations.py4020 # Create a mock migrations directory structureCOMMENT
MEDIUMtests/database/test_alembic_migrations.py4025 # Create a world-writable migration fileCOMMENT
MEDIUMtests/database/test_alembic_migrations.py318 # Create a few more tables to simulate existing databaseCOMMENT
MEDIUMtests/database/test_alembic_migrations.py1114 # Create a conflicting table structureCOMMENT
MEDIUMtests/database/test_alembic_migrations.py2257 # Create a partial state - some tables but not allCOMMENT
MEDIUMtests/database/test_alembic_migrations.py2759 # Create a very long stringCOMMENT
MEDIUMtests/database/test_alembic_migrations.py3646 # Create a read-only directory scenarioCOMMENT
MEDIUMtests/database/test_alembic_migrations.py3817 # Create a scenario that will cause a migration errorCOMMENT
MEDIUMtests/database/test_alembic_migrations.py3963 # Create a mock symlinked path scenarioCOMMENT
MEDIUMtests/database/test_alembic_migrations.py4046 # Create a mock migrations directory with secure filesCOMMENT
MEDIUMtests/database/test_alembic_migrations.py4070 # Create a mock migrations directory (permissions don't matter)COMMENT
MEDIUMtests/database/test_alembic_migrations.py4437 # Create a fresh Alembic databaseSTRING
MEDIUMtests/database/test_alembic_migrations.py4442 # Create a pre-Alembic database and upgrade itSTRING
MEDIUMtests/database/test_auth_db.py90 # Create the fileCOMMENT
MEDIUMtests/database/test_auth_db.py153 # Create the file so init is skippedCOMMENT
MEDIUMtests/database/test_auth_db.py362 # Create an engineCOMMENT
MEDIUMtests/database/test_auth_db.py390 # Create an engineCOMMENT
MEDIUMtests/database/test_encrypted_db_manager.py106 # Create the database fileCOMMENT
MEDIUMtests/database/test_encrypted_db_manager.py911 # Create a plain SQLite database (no encryption needed for this test)COMMENT
MEDIUMtests/database/backup/test_backup_service.py2294 # Create a fake database fileCOMMENT
MEDIUMtests/database/backup/test_backup_service.py2302 # Create a backup directory with a double quote in the pathCOMMENT
270 more matches not shown…
Cross-File Repetition159 hits · 795 pts
SeverityFileLineSnippetContext
HIGHtests/test_report_generator_edge_cases.py0create a report generator with mocked dependencies.STRING
HIGHtests/report/test_report_structure_parsing.py0create a report generator with mocked dependencies.STRING
HIGHtests/report/test_report_section_generation.py0create a report generator with mocked dependencies.STRING
HIGHtests/metrics/test_token_counter_high_value.py0create a tokencountingcallback with sensible defaults.STRING
HIGHtests/metrics/test_token_counter_logic.py0create a tokencountingcallback with sensible defaults.STRING
HIGHtests/metrics/test_token_counter_coverage.py0create a tokencountingcallback with sensible defaults.STRING
HIGH…dvanced_search_system/strategies/test_base_strategy.py0concrete implementation for testing abstract class.STRING
HIGHtests/news/test_rating_system_behavior.py0concrete implementation for testing abstract class.STRING
HIGHtests/news/test_base_recommender_behavior.py0concrete implementation for testing abstract class.STRING
HIGHtests/citation_handlers/test_base_citation_handler.py0concrete implementation for testing abstract class.STRING
HIGHtests/news/test_preference_manager_behavior.py0concrete implementation for testing abstract class.STRING
HIGHtests/benchmarks/evaluators/test_base.py0concrete implementation for testing abstract class.STRING
HIGHtests/news/test_preference_manager_extended.py0concrete implementation for testing abstract class.STRING
HIGHtests/llm/providers/test_openai_base.py0raises valueerror when no model name is provided (no silent default).STRING
HIGHtests/llm/providers/test_openai_base_deep_coverage.py0raises valueerror when no model name is provided (no silent default).STRING
HIGHtests/llm_providers/test_openai_base.py0raises valueerror when no model name is provided (no silent default).STRING
HIGH…_providers/implementations/test_orcarouter_provider.py0raises valueerror when no model name is provided (no silent default).STRING
HIGH…sts/llm_providers/implementations/test_xai_provider.py0raises valueerror when no model name is provided (no silent default).STRING
HIGH…/llm_providers/implementations/test_openai_provider.py0raises valueerror when no model name is provided (no silent default).STRING
HIGH…m_providers/implementations/test_anthropic_provider.py0raises valueerror when no model name is provided (no silent default).STRING
HIGH…/llm_providers/implementations/test_google_provider.py0raises valueerror when no model name is provided (no silent default).STRING
HIGH…s/llm_providers/implementations/test_ionos_provider.py0raises valueerror when no model name is provided (no silent default).STRING
HIGH…_providers/implementations/test_openrouter_provider.py0raises valueerror when no model name is provided (no silent default).STRING
HIGH…h_library/routes/test_library_routes_extra_coverage.py0return a magicmock that satisfies the login_required db_manager check.STRING
HIGHtests/web/routes/test_settings_routes_deep_coverage2.py0return a magicmock that satisfies the login_required db_manager check.STRING
HIGHtests/web/routes/test_api_routes_coverage.py0return a magicmock that satisfies the login_required db_manager check.STRING
HIGHtests/followup_research/test_routes_coverage.py0return a magicmock that satisfies the login_required db_manager check.STRING
HIGHtests/web/routes/test_history_routes_extended.py0return a magicmock that satisfies the login_required db_manager check.STRING
HIGH…h_library/routes/test_library_routes_extra_coverage.py0build a mock context-manager for get_user_db_session.STRING
HIGHtests/web/routes/test_history_routes_extended.py0build a mock context-manager for get_user_db_session.STRING
HIGHtests/web/routes/test_settings_routes_deep_coverage2.py0build a mock context-manager for get_user_db_session.STRING
HIGHtests/web/routes/test_api_routes_coverage.py0build a mock context-manager for get_user_db_session.STRING
HIGHtests/followup_research/test_routes_coverage.py0build a mock context-manager for get_user_db_session.STRING
HIGH…h_library/routes/test_library_routes_extra_coverage.py0issue an authenticated post request and return the response.STRING
HIGHtests/web/routes/test_api_routes_coverage.py0issue an authenticated post request and return the response.STRING
HIGHtests/followup_research/test_routes_coverage.py0issue an authenticated post request and return the response.STRING
HIGH…ary/services/test_library_service_collections_stats.py0patch get_user_db_session as a proper context manager.STRING
HIGH…arch_library/services/test_library_service_coverage.py0patch get_user_db_session as a proper context manager.STRING
HIGH…rch_library/services/test_library_service_crud_deep.py0patch get_user_db_session as a proper context manager.STRING
HIGHtests/exporters/test_latex_exporter.py0test handling of markdown with tables, code, lists.STRING
HIGHtests/exporters/test_pdf_exporter.py0test handling of markdown with tables, code, lists.STRING
HIGHtests/exporters/test_quarto_exporter.py0test handling of markdown with tables, code, lists.STRING
HIGHtests/web_services/test_pdf_service.py0test handling of markdown with tables, code, lists.STRING
HIGHtests/exporters/test_latex_exporter.py0test that valueerror is raised for content exceeding size limit.STRING
HIGHtests/exporters/test_pdf_exporter.py0test that valueerror is raised for content exceeding size limit.STRING
HIGHtests/exporters/test_odt_exporter.py0test that valueerror is raised for content exceeding size limit.STRING
HIGHtests/exporters/test_ris_exporter.py0test that valueerror is raised for content exceeding size limit.STRING
HIGHtests/exporters/test_quarto_exporter.py0test that valueerror is raised for content exceeding size limit.STRING
HIGHtests/exporters/test_latex_exporter.py0test that content at exactly the limit is accepted.STRING
HIGHtests/exporters/test_pdf_exporter.py0test that content at exactly the limit is accepted.STRING
HIGHtests/exporters/test_ris_exporter.py0test that content at exactly the limit is accepted.STRING
HIGHtests/exporters/test_quarto_exporter.py0test that content at exactly the limit is accepted.STRING
HIGHtests/exporters/test_latex_exporter.py0test that filename is truncated when title exceeds 50 chars.STRING
HIGHtests/exporters/test_pdf_exporter.py0test that filename is truncated when title exceeds 50 chars.STRING
HIGHtests/exporters/test_odt_exporter.py0test that filename is truncated when title exceeds 50 chars.STRING
HIGHtests/exporters/test_ris_exporter.py0test that filename is truncated when title exceeds 50 chars.STRING
HIGHtests/exporters/test_quarto_exporter.py0test that filename is truncated when title exceeds 50 chars.STRING
HIGHtests/exporters/test_latex_exporter.py0test that filename is not truncated when under 50 chars.STRING
HIGHtests/exporters/test_pdf_exporter.py0test that filename is not truncated when under 50 chars.STRING
HIGHtests/exporters/test_odt_exporter.py0test that filename is not truncated when under 50 chars.STRING
99 more matches not shown…
Deep Nesting684 hits · 522 pts
SeverityFileLineSnippetContext
LOW.pre-commit-hooks/check-css-class-prefix.py136CODE
LOW.pre-commit-hooks/check-css-class-prefix.py183CODE
LOW.pre-commit-hooks/check-css-class-prefix.py337CODE
LOW.pre-commit-hooks/check-css-class-prefix.py456CODE
LOW.pre-commit-hooks/check-absolute-module-paths.py140CODE
LOW.pre-commit-hooks/check-absolute-module-paths.py187CODE
LOW.pre-commit-hooks/check-absolute-module-paths.py154CODE
LOW.pre-commit-hooks/check-env-vars.py109CODE
LOW.pre-commit-hooks/check-env-vars.py188CODE
LOW.pre-commit-hooks/check-env-vars.py230CODE
LOW.pre-commit-hooks/check-double-escaping.py30CODE
LOW.pre-commit-hooks/fix-exception-logging.py200CODE
LOW.pre-commit-hooks/check-layer-imports.py53CODE
LOW.pre-commit-hooks/check-silent-cleanup.py70CODE
LOW.pre-commit-hooks/custom-checks.py469CODE
LOW.pre-commit-hooks/custom-checks.py68CODE
LOW.pre-commit-hooks/custom-checks.py207CODE
LOW.pre-commit-hooks/custom-checks.py307CODE
LOW.pre-commit-hooks/check-external-resources.py57CODE
LOW.pre-commit-hooks/check-bearer-disable.py82CODE
LOW.pre-commit-hooks/check-bearer-disable.py126CODE
LOW…e-commit-hooks/check-settings-manager-thread-safety.py55CODE
LOW.pre-commit-hooks/check-sensitive-logging.py292CODE
LOW.pre-commit-hooks/check-sensitive-logging.py360CODE
LOW.pre-commit-hooks/check-sensitive-logging.py631CODE
LOW.pre-commit-hooks/check-sensitive-logging.py684CODE
LOW.pre-commit-hooks/check-sensitive-logging.py972CODE
LOW.pre-commit-hooks/check-service-context-managers.py117CODE
LOW.pre-commit-hooks/check-service-context-managers.py229CODE
LOW.pre-commit-hooks/check-session-context-manager.py34CODE
LOW.pre-commit-hooks/check-session-context-manager.py93CODE
LOW.pre-commit-hooks/check-settings-key-namespace.py51CODE
LOW.pre-commit-hooks/_commit_analysis.py199CODE
LOWtests/test_openai_api_key_e2e.py44CODE
LOWtests/test_llm_provider_integration.py207CODE
LOWtests/test_llm_provider_integration.py343CODE
LOWtests/run_all_tests.py530CODE
LOWtests/run_all_tests.py77CODE
LOWtests/run_all_tests.py250CODE
LOWtests/settings/test_settings_manager.py599CODE
LOWtests/settings/test_settings_defaults_integrity.py328CODE
LOWtests/database/test_sqlcipher_integration.py564CODE
LOWtests/database/test_sqlcipher_integration.py3632CODE
LOWtests/database/test_sqlcipher_integration.py3719CODE
LOWtests/database/test_sqlcipher_integration.py4040CODE
LOWtests/database/test_sqlcipher_integration.py4683CODE
LOWtests/database/test_sqlcipher_integration.py4717CODE
LOWtests/database/test_db_file_permissions.py70CODE
LOWtests/database/test_alembic_migrations.py4167CODE
LOWtests/database/test_alembic_migrations.py6491CODE
LOWtests/database/test_auth_db.py147CODE
LOWtests/database/test_auth_db.py180CODE
LOWtests/database/test_auth_db.py220CODE
LOWtests/database/test_encryption_threads.py112CODE
LOWtests/database/test_encryption_threads.py155CODE
LOWtests/database/test_no_raw_sql.py16CODE
LOWtests/database/test_no_raw_sql.py182CODE
LOWtests/database/test_encrypted_db_manager.py27CODE
LOWtests/database/test_encrypted_db_manager.py123CODE
LOWtests/database/test_encrypted_db_manager.py193CODE
624 more matches not shown…
Redundant / Tautological Comments344 hits · 520 pts
SeverityFileLineSnippetContext
LOW.pre-commit-hooks/check-env-vars.py240 # Check if the left side is a system varCOMMENT
LOW.pre-commit-hooks/check-image-pinning.sh61 # Check if any image lines lack @sha256COMMENT
LOW.pre-commit-hooks/check-url-security.py29 # Check if the file imports or includes URL validationCOMMENT
LOW.pre-commit-hooks/check-url-security.py82 # Check if it's preceded by validationCOMMENT
LOW.pre-commit-hooks/fix-exception-logging.py210 # Check if the variable is still used anywhere in nearby linesCOMMENT
LOW.pre-commit-hooks/check-silent-cleanup.py48 # Check if the handler is "except Exception:" or bare "except:"COMMENT
LOW.pre-commit-hooks/check-silent-cleanup.py55 # Check if handler body is *only* `pass` (no logging, no raise)COMMENT
LOW.pre-commit-hooks/custom-checks.py308 # Check if this class inherits from Base (SQLAlchemy model)COMMENT
LOW.pre-commit-hooks/custom-checks.py437 # Check if line has allowed patterns firstCOMMENT
LOW.pre-commit-hooks/custom-checks.py495 # Check if this file is allowed to use datetime.now()COMMENT
LOW.pre-commit-hooks/custom-checks.py514 # Check if it's already using UTCCOMMENT
LOW.pre-commit-hooks/check-external-resources.py73 # Check if line contains external patternsCOMMENT
LOW.pre-commit-hooks/check-external-resources.py76 # Check if it's an allowed exceptionCOMMENT
LOW.pre-commit-hooks/check-pdm-lock.sh2# Check if pdm.lock is in sync with pyproject.tomlCOMMENT
LOW.pre-commit-hooks/check-sensitive-logging.py767 # Check if it's a logger callCOMMENT
LOW.pre-commit-hooks/check-service-context-managers.py89 # Check if it's a service classCOMMENT
LOW.pre-commit-hooks/check-service-context-managers.py93 # Check if it's a function returning a resourceCOMMENT
LOW.pre-commit-hooks/check-service-context-managers.py359 # Check if this is a safe instantiationCOMMENT
LOW.pre-commit-hooks/check-session-context-manager.py38 # Check if this is a session assignmentCOMMENT
LOW.pre-commit-hooks/check-session-context-manager.py50 # Check if finally has session.close()COMMENT
LOW.pre-commit-hooks/check-session-context-manager.py104 # Check if it's our session variableCOMMENT
LOW.pre-commit-hooks/check-unmarked-sleep.py89 # Check if enclosing function or class has @pytest.mark.slowCOMMENT
LOW.pre-commit-hooks/check-golden-master-settings.py34 # Check if regeneration changed the fileCOMMENT
LOWtests/test_context_overflow_detection.py538 # Check if overflow was detectedCOMMENT
LOWtests/run_followup_tests.sh13# Check if server is runningCOMMENT
LOWtests/test_openai_api_key_e2e.py84 # Check if API key exists in settings or environmentCOMMENT
LOWtests/test_database_initialization.py130 # Check if settings table is queryableCOMMENT
LOWtests/test_citation_handler.py61 # Check if the correct number of documents was createdCOMMENT
LOWtests/test_citation_handler.py86 # Check if indexes were correctly offsetCOMMENT
LOWtests/test_citation_handler.py106 # Check if sources are correctly formatted with citation numbersCOMMENT
LOWtests/test_citation_handler.py119 # Check if LLM was called with the correct promptCOMMENT
LOWtests/test_citation_handler.py123 # Check if prompt contains expected elementsCOMMENT
LOWtests/run_all_tests.py444 # Check if we're in a headless environment (CI)COMMENT
LOWtests/test_search_system.py117 # Check if the correct strategy type was createdCOMMENT
LOWtests/metrics/test_research_metrics_extended.py378 # Check if current is better than baselineCOMMENT
LOWtests/metrics/test_token_counter_extended.py151 # Set usage_metadata to None to force response_metadata pathCOMMENT
LOWtests/settings/env_vars/test_env_var_usage.py155 # Check if file is allowed to use os.environCOMMENT
LOWtests/database/test_sqlcipher_integration.py805 # Check if it changed (it shouldn't for an already-initialized DB)COMMENT
LOWtests/database/test_sqlcipher_integration.py2304 # Check if encryption is actually appliedCOMMENT
LOWtests/database/test_sqlcipher_integration.py4183 # Check if salt was actually appliedCOMMENT
LOWtests/database/test_alembic_migrations.py2432 # Check if 'key' has unique constraintCOMMENT
LOWtests/database/test_no_raw_sql.py68 # Check if it's in a comment or docstringCOMMENT
LOWtests/database/test_no_raw_sql.py77 # Check if it's an allowed patternCOMMENT
LOWtests/database/test_no_raw_sql.py144 # Check if file has database operationsCOMMENT
LOWtests/database/test_no_raw_sql.py155 # Check if it has ORM importsCOMMENT
LOWtests/database/test_schema_stability.py143 # Check if there are new tables that might be renamesCOMMENT
LOWtests/deletion/test_document_deletion.py209 # Check if document is in any collectionCOMMENT
LOWtests/test_llm/test_llm_benchmarks.py24 # Check if we have a predefined answerCOMMENT
LOW…i_tests_with_login/pytest_tests/test_start_research.py70 # Check if model appears in logsCOMMENT
LOWtests/infrastructure_tests/test_urls_js.py118 # Check if the URL exists in backend (with some flexibility for parameter names)COMMENT
LOWtests/infrastructure_tests/test_urls_js.py343 # Check if this is an allowed duplicateCOMMENT
LOWtests/accessibility_tests/test_accessibility_backend.py87 # Check if there are any fieldsetsCOMMENT
LOWtests/security/test_xss_prevention.py280 # Check if CSP header is present (it's a good security practice)COMMENT
LOWtests/security/test_repo_guardrails.py162 # Check if this pattern matches a binary extensionCOMMENT
LOWtests/security/test_csrf_protection.py116 # Check if it's a CSRF error specificallyCOMMENT
LOWtests/exporters/test_odt_exporter.py6# Check if pandoc is available (required by pypandoc)COMMENT
LOWtests/web/auth/test_auth_coverage.py622 # Set last_access to 2 hours ago (would expire normal session)COMMENT
LOWtests/web/services/test_research_service.py830 # Check if pandoc is availableCOMMENT
LOWtests/web/services/test_research_service_core.py79 # Check if research is terminatedCOMMENT
LOWtests/strategies/test_strategy_imports.py64 # Check if at least some strategies are exportedCOMMENT
284 more matches not shown…
Modern AI Meta-Vocabulary163 hits · 504 pts
SeverityFileLineSnippetContext
MEDIUM.gitleaks.toml146 # RAG routes and services use db_password variable names (not actual secrets)COMMENT
MEDIUM.gitleaks.toml149 # RAG service factory passes db_password variable names (not actual secrets)COMMENT
MEDIUM.gitleaks.toml152 # the RAG factory (not actual secrets)COMMENT
MEDIUMdocker-compose.yml231 # digest are the meaningful guardrails. See #3874.COMMENT
MEDIUM.pre-commit-hooks/check-service-context-managers.py373 # Variable is passed to another function (dependency injection) - receiver responsibleCOMMENT
MEDIUMtests/test_context_overflow_detection.py520 # Create LLM with small context windowCOMMENT
MEDIUMtests/database/test_alembic_migrations.py6050 # 0018: restoring 'mcp'/'agentic' strategy references would recreateCOMMENT
MEDIUMtests/embeddings/test_openai_embeddings.py618 """The headline regression for #4195: a Nomic embedding modelSTRING
MEDIUMtests/deletion/test_cascade_integration.py317 # Add RAG indexCOMMENT
MEDIUMtests/deletion/test_cascade_integration.py411 # Step 2: Delete RAG indexCOMMENT
MEDIUMtests/deletion/test_collection_deletion.py250 # Verify RAG index existsCOMMENT
MEDIUMtests/deletion/test_collection_deletion.py258 # Manually delete RAG index (should be done by service)COMMENT
MEDIUMtests/deletion/test_collection_deletion.py266 # Verify RAG index is deletedCOMMENT
MEDIUMtests/deletion/test_collection_deletion.py290 # Delete RAG indexCOMMENT
MEDIUMtests/security/test_egress_run_classification.py294 # A RAG run over a collection embeds, so a cloud embedder is an exposingCOMMENT
MEDIUMtests/security/test_egress_run_classification.py295 # sink for the sensitive source -> refused even with a local LLM. The RAGCOMMENT
MEDIUMtests/security/test_egress_pep_coverage.py290 # `both` is retired (ADR-0007): it coerces to ADAPTIVE, and the RAG gateCOMMENT
MEDIUMtests/research_library/zotero/test_sync_service.py637 ) # spy: collection isn't RAG-indexed, so only assert callsCODE
MEDIUM…ts/research_library/routes/test_rag_routes_coverage.py325 # No more "try a dedicated embedding model" guessing.COMMENT
MEDIUM…ts/research_library/routes/test_rag_routes_coverage.py1187 q.first.return_value = None # No RAG indexCODE
MEDIUM…ts/research_library/routes/test_rag_routes_coverage.py1233 q.first.return_value = None # No RAG indexCODE
MEDIUM…search_library/routes/test_rag_routes_deep_coverage.py1100 q.first.return_value = None # No RAG indexCODE
MEDIUM…arch_library/services/test_library_rag_service_info.py47 # Collection found, but no RAG indexCOMMENT
MEDIUM…arch_library/services/test_library_rag_service_info.py75 # RAG index foundCOMMENT
MEDIUM…arch_library/services/test_library_rag_service_info.py119 # No RAG indexCOMMENT
MEDIUM…rch_library/services/test_download_service_3827_fix.py936 # (RAG, last_run commit) sees a clean session.COMMENT
MEDIUM…rch_library/services/test_download_service_3827_fix.py944# Change 3 (continued): RAG indexing of research downloads has been RETIRED fromCOMMENT
MEDIUM…rch_library/services/test_download_service_3827_fix.py947# assert the inline RAG block is gone: generate_rag no longer drives any RAGCOMMENT
MEDIUM…/research_library/services/test_library_rag_service.py735 # Mock RAG index recordCOMMENT
MEDIUM…/research_library/services/test_library_rag_service.py800 # Mock RAG index that will fail integrity checkCOMMENT
MEDIUM…/research_library/services/test_library_rag_service.py853 # Mock RAG index with different dimensionCOMMENT
MEDIUMtests/research_library/services/test_faiss_safe_load.py38 # Metadata mirrors what the RAG service attaches: plain scalars + lists.COMMENT
MEDIUMtests/web/test_startup_import_weight.py96# scheduler -> RAG service -> splitter chain, so a regression inSTRING
MEDIUMtests/web/routes/test_metrics_routes_coverage.py220 # 5 strategies after the 'mcp'/'agentic' strategy was removed (#4548):COMMENT
MEDIUMtests/web/services/test_research_service_core.py387 # Use 80% of context windowCOMMENT
MEDIUMtests/text_optimization/test_citation_formatter.py1891# /library/document/<uuid> from RAG / library sources). The threeCOMMENT
MEDIUMtests/feature_tests/IMPLEMENTATION_GUIDE_241.md46# Get context window size from settingsCOMMENT
MEDIUMtests/feature_tests/IMPLEMENTATION_GUIDE_241.md49# Ensure max_tokens doesn't exceed context window sizeCOMMENT
MEDIUMtests/feature_tests/IMPLEMENTATION_GUIDE_241.md51 # Use 80% of context window to leave room for promptsCOMMENT
MEDIUMtests/feature_tests/IMPLEMENTATION_GUIDE_241.md70 n_ctx=context_window_size, # Set context window sizeCODE
MEDIUMtests/ui_tests/test_context_overflow_ci.js19 // The page-specific scaffold is server-rendered (pages/context_overflow.html):COMMENT
MEDIUMtests/ui_tests/test_context_overflow_ci.js185 // assert on the overflow-specific chart scaffold: the #context-overflow-sectionCOMMENT
MEDIUMtests/ui_tests/test_context_overflow_ci.js219 // wrong page or the overflow scaffold did not load.COMMENT
MEDIUMtests/ui_tests/test_context_overflow_ci.js223 ? 'No token data: #context-overflow-section scaffold present and #empty-no-data shown (no #context-chartCODE
MEDIUMtests/news/test_base_recommender.py1964# Tests for dependency injection patternsCOMMENT
MEDIUMtests/news/test_library_sweep.py146 # One RAG service built per distinct collection (A, B). No orphans here soCOMMENT
MEDIUMtests/news/test_library_sweep.py186 # The RAG service for the orphan path was built for the default library.COMMENT
MEDIUMtests/news/test_library_sweep.py1229 # No work to do, so no RAG service was built.COMMENT
MEDIUMtests/news/test_topic_generator_coverage.py259# generate_topics – orchestration (uses real _validate_topics)COMMENT
MEDIUM…s/news/subscription_manager/test_scheduler_coverage.py56# NOTE: RAG indexing moved out of _process_user_documents into the unifiedCOMMENT
MEDIUMtests/performance/relevance_filter/eval_prompt.py48# The shared scaffolding around the guidance block. The variants below onlyCOMMENT
MEDIUM…_search_engines/test_search_engine_library_settings.py40# search.rag.max_results — cap local RAG retrieval (vector search returns manyCOMMENT
MEDIUM…_search_engines/test_search_engine_library_settings.py42# search.rag.enable_relevance_filter — opt-in LLM relevance filter for RAG.COMMENT
MEDIUMtests/web_search_engines/test_engine_groups.py29 # A collection is still "collections" even though it is Local RAG.COMMENT
MEDIUM…engines/engines/test_search_engine_library_coverage.py135 # col1 fails when its RAG service is created; col2 succeedsCOMMENT
MEDIUM…b_search_engines/engines/test_local_search_coverage.py744 # No RAG index -> skipCOMMENT
MEDIUM…b_search_engines/engines/test_local_search_coverage.py160 # RAG index lookupCOMMENT
MEDIUM…b_search_engines/engines/test_local_search_coverage.py163 # RAG service context managerCOMMENT
MEDIUM…b_search_engines/engines/test_local_search_coverage.py436 # RAG serviceCOMMENT
MEDIUM…b_search_engines/engines/test_local_search_coverage.py528 # 1) For RAG index lookup (inside collection loop)COMMENT
103 more matches not shown…
Docstring Block Structure99 hits · 495 pts
SeverityFileLineSnippetContext
HIGHtests/mock_modules.py16 Create a mock module with specified attributes. Args: module_name: Name of the module to create STRING
HIGHexamples/optimization/run_gemini_benchmark.py87 Run benchmarks with Gemini Flash via OpenRouter. Args: examples: Number of examples to evaluate for eaSTRING
HIGHexamples/benchmarks/run_browsecomp.py62 Run BrowseComp benchmark with proper decryption using canary field. Args: num_examples: Number of examSTRING
HIGHsrc/local_deep_research/database/sqlcipher_utils.py78 Create and store a new random salt for a database. This should be called when creating a new database. TheSTRING
HIGHsrc/local_deep_research/database/sqlcipher_utils.py599 Create a properly configured SQLCipher connection. Implements the full PRAGMA sequence with proper error cleanSTRING
HIGHsrc/local_deep_research/database/session_context.py84 Context manager that ensures proper database session with encryption. Now uses thread-local sessions for betterSTRING
HIGHsrc/local_deep_research/database/library_init.py294 Get the ID of a source type by name. Args: username: User to query for type_name: Name of sourSTRING
HIGHsrc/local_deep_research/database/encrypted_db.py410Create a properly initialized SQLCipher connection. Follows the canonical SQLCipher initialization order: set kSTRING
HIGH…ced_search_system/filters/journal_reputation_filter.py709Analyze journal reputation via 1 SearXNG search + 1 LLM call. This is Tier 4 — the last-resort scoring path. OnSTRING
HIGH…ced_search_system/filters/followup_relevance_filter.py26 Filter search results by relevance to the follow-up query. Args: results: List of source dSTRING
HIGHsrc/local_deep_research/llm/providers/openai_base.py35Factory function for OpenAI-compatible LLMs. Args: model_name: Name of the model to use STRING
HIGHsrc/local_deep_research/llm/providers/base.py82Create and return a LangChain chat model instance. Subclasses MUST override this method. The returned LLM is BASTRING
HIGH…_deep_research/llm/providers/implementations/openai.py36Factory function for OpenAI LLMs. Args: model_name: Name of the model to use temperaturSTRING
HIGH…ep_research/llm/providers/implementations/anthropic.py37Factory function for Anthropic LLMs. Args: model_name: Name of the model to use temperaSTRING
HIGH…_deep_research/llm/providers/implementations/ollama.py106Factory function for Ollama LLMs. Args: model_name: Name of the model to use temperaturSTRING
HIGHsrc/local_deep_research/embeddings/embeddings_config.py132 Get embeddings instance based on provider and model. Args: provider: Embedding provider to use (if NonSTRING
HIGHsrc/local_deep_research/embeddings/providers/base.py41 Create an embeddings instance for this provider. Args: model: Name of the embedding model STRING
HIGH…esearch/embeddings/providers/implementations/openai.py49 Create OpenAI embeddings instance. Args: model: Model name (defaults to text-embedding-3-sSTRING
HIGH…esearch/embeddings/splitters/text_splitter_registry.py61 Get text splitter based on type. Args: splitter_type: Type of splitter ('recursive', 'token', 'sentencSTRING
HIGHsrc/local_deep_research/chat/service.py249 Add a durable message (query/followup/response) to a chat session. Content is required and stored inliSTRING
HIGHsrc/local_deep_research/chat/service.py448 Get a chat session by ID. Args: session_id: ID of the session Returns: STRING
HIGHsrc/local_deep_research/chat/service.py813 Archive a chat session. Refuses to archive while a research is still in_progress for the sessiSTRING
HIGHsrc/local_deep_research/chat/service.py922Permanently delete one chat attempt (research + its messages + steps). An "attempt" is the user message that trSTRING
HIGHsrc/local_deep_research/chat/service.py1128Return the original user message content for a chat research. Used by the retry route to re-submit the same queSTRING
HIGHsrc/local_deep_research/config/thread_settings.py77Get setting from context only - no database access from threads. Args: key: Setting key to retrieve STRING
HIGHsrc/local_deep_research/security/safe_requests.py149 Make a safe HTTP GET request with SSRF protection. Args: url: URL to request params: URL paramSTRING
HIGHsrc/local_deep_research/security/safe_requests.py285 Make a safe HTTP POST request with SSRF protection. Args: url: URL to request data: Data to seSTRING
HIGHsrc/local_deep_research/security/safe_requests.py590`safe_get` plus exponential-backoff retry on transient errors. Retries on: * ``requests.ConnectionError`` STRING
HIGH…local_deep_research/security/notification_validator.py202 Validate a notification service URL for security issues. This function prevents SSRF attacks by validaSTRING
HIGH…local_deep_research/security/notification_validator.py393 Strict validation that raises an exception on invalid URLs. Args: url: Service URL to valiSTRING
HIGHsrc/local_deep_research/security/url_builder.py44 Build a base URL from application settings with intelligent fallbacks. This function handles the common patterSTRING
HIGHsrc/local_deep_research/security/url_builder.py98 Build a complete URL from base URL and path. Args: base_url: Base URL (e.g., "https://myapp.com") STRING
HIGHsrc/local_deep_research/security/url_builder.py136 Validate a constructed URL. Args: url: URL to validate allowed_schemes: List of allowed schemeSTRING
HIGHsrc/local_deep_research/security/path_validator.py94 Validate and sanitize a user-provided path. Args: user_input: The user-provided path strinSTRING
HIGHsrc/local_deep_research/security/path_validator.py176 Validate a user-provided absolute filesystem path for local indexing. This is for features like local STRING
HIGHsrc/local_deep_research/security/path_validator.py299 Re-sanitize a validated path for static analyzer recognition. This method takes an already-validated PSTRING
HIGHsrc/local_deep_research/security/path_validator.py340 Validate a model file path specifically. Args: model_path: Path to the model file STRING
HIGHsrc/local_deep_research/security/path_validator.py383 Validate a path within the data directory. Args: file_path: Path relative to data root STRING
HIGHsrc/local_deep_research/security/path_validator.py412 Validate a configuration file path. Args: config_path: Path to config file conSTRING
HIGHsrc/local_deep_research/security/module_whitelist.py181 Safely import a class from a module, validating against both whitelists. This function provides secure dynamicSTRING
HIGHsrc/local_deep_research/security/filename_sanitizer.py28Sanitize an uploaded filename for safe filesystem storage. Args: filename: Raw filename from the upload. STRING
HIGHsrc/local_deep_research/security/url_validator.py287 Validate that a callback URL is well-formed and safe for HTTP/HTTPS use. This is stricter than is_safeSTRING
HIGHsrc/local_deep_research/security/network_utils.py11Check if hostname is a private/local IP address. Recognizes: - Localhost values (127.0.0.1, localhost, [::1], 0STRING
HIGH…_research/security/file_integrity/integrity_manager.py116 Create or update integrity record for a file. Args: file_path: Path to file to record STRING
HIGH…deep_research/security/file_integrity/base_verifier.py67 Calculate SHA256 checksum of file. Can be overridden by subclasses for different algorithms. STRING
HIGH…eep_research/research_library/routes/library_routes.py74 Get authenticated user password from session store with fallback to g.user_password. Args: username: TSTRING
HIGH…_research/research_library/services/faiss_safe_load.py106Load a FAISS index from disk without dangerous deserialization. Drop-in replacement for ``FAISS.load_local(..., STRING
HIGH…research/research_library/services/download_service.py428 Queue all downloadable PDFs from a research session. Args: research_id: The research sessiSTRING
HIGHsrc/local_deep_research/exporters/odt_exporter.py61Convert markdown content to ODT using Pandoc. The conversion runs entirely in memory: markdown is piped to STRING
HIGHsrc/local_deep_research/exporters/quarto_exporter.py57Convert markdown content to Quarto format. Args: markdown_content: The markdown text to convert STRING
HIGHsrc/local_deep_research/exporters/ris_exporter.py50Extract references from markdown and convert to RIS format. Args: markdown_content: The markdown teSTRING
HIGHsrc/local_deep_research/exporters/latex_exporter.py49Convert markdown content to LaTeX. Args: markdown_content: The markdown text to convert STRING
HIGHsrc/local_deep_research/exporters/pdf_exporter.py53Convert markdown content to PDF using existing PDFService. Args: markdown_content: The markdown texSTRING
HIGH…l_deep_research/web/services/pdf_extraction_service.py24 Extract text and metadata from PDF in a single pass. This method opens the PDF only once and extracts STRING
HIGH…c/local_deep_research/web/services/resource_service.py95 Delete a resource from the database Args: resource_id (int): The ID of the resource to delete RetSTRING
HIGHsrc/local_deep_research/storage/factory.py20Get a report storage instance that always uses database with optional file backup. Args: session: Database STRING
HIGHsrc/local_deep_research/utilities/type_utils.py13 Convert a value to boolean, handling string representations. This is a standalone utility for converting any vSTRING
HIGHsrc/local_deep_research/utilities/url_utils.py42 Normalize a URL to ensure it has a proper scheme and format. Args: raw_url: The raw URL string to normSTRING
HIGHsrc/local_deep_research/news/core/card_factory.py60Get or create the storage instance. Args: session: SQLAlchemy session. If not provided, attempts toSTRING
HIGHsrc/local_deep_research/news/core/card_factory.py104 Create a new card of the specified type. Args: card_type: Type of card to create ('news', STRING
39 more matches not shown…
Unused Imports516 hits · 464 pts
SeverityFileLineSnippetContext
LOW.pre-commit-hooks/check-target-blank-rel.py19CODE
LOW.pre-commit-hooks/check-bearer-disable.py30CODE
LOW.pre-commit-hooks/check-journal-quality-readonly.py15CODE
LOW.pre-commit-hooks/check-author-identity.py26CODE
LOWtests/database/test_schema_index_completeness.py13CODE
LOWtests/database/test_journal_migrations_encrypted.py14CODE
LOWtests/database/test_research_strategy_fk_regression.py14CODE
LOWtests/database/test_fk_targets_resolve.py9CODE
LOW…sts/database/test_journal_rebuild_data_preservation.py20CODE
LOWtests/advanced_search_system/filters/conftest.py12CODE
LOWtests/advanced_search_system/tools/test_fetch_modes.py8CODE
LOWtests/content_fetcher/test_lazy_content_fetcher.py16CODE
LOWtests/security/test_collection_agent_enabled.py14CODE
LOWtests/security/test_egress_threadpool_propagation.py27CODE
LOWtests/security/test_egress_guidance.py4CODE
LOW…ts/security/test_egress_pep_llm_embeddings_callsite.py26CODE
LOWtests/security/test_egress_policy.py3CODE
LOWtests/security/test_egress_pep_factory_callsite.py19CODE
LOWtests/security/test_egress_notifications_callsite.py20CODE
LOWtests/security/test_egress_langgraph_tool_filter.py31CODE
LOWtests/security/test_egress_e2e_private_only_tripwire.py27CODE
LOWtests/security/test_egress_inference_gates_followup.py20CODE
LOWtests/security/test_egress_run_classification.py8CODE
LOWtests/security/test_egress_audit_hook.py20CODE
LOW…ts/security/test_egress_pep_fetch_download_callsite.py24CODE
LOWtests/security/test_egress_fullsearch.py15CODE
LOWtests/security/test_egress_url_edgecases_followup.py28CODE
LOWtests/security/test_egress_backstop_rearm_followup.py22CODE
LOW…s/security/test_egress_adaptive_resolution_followup.py21CODE
LOW…/security/test_egress_collection_semantics_followup.py18CODE
LOW…/security/test_egress_downloader_threading_followup.py26CODE
LOW…sts/security/test_egress_news_subscription_callsite.py24CODE
LOWtests/security/test_egress_classification.py7CODE
LOWtests/security/test_egress_unprotected.py8CODE
LOWtests/integration/test_journal_quality_release_gate.py49CODE
LOWtests/journal_quality/test_lookup_institution_keys.py8CODE
LOWtests/journal_quality/test_openalex_common.py9CODE
LOWtests/journal_quality/test_openalex_schema_drift.py11CODE
LOW…s/journal_quality/test_institutions_malformed_lines.py11CODE
LOWtests/journal_quality/test_predatory_min_floor.py10CODE
LOWtests/mcp/test_server_coverage.py19CODE
LOWtests/mcp/test_validation.py11CODE
LOWtests/mcp/test_server_validators.py9CODE
LOWtests/mcp/test_egress_audit_net.py20CODE
LOWtests/mcp/test_server.py14CODE
LOWtests/mcp/test_edge_cases.py13CODE
LOWtests/mcp/test_integration.py13CODE
LOWtests/error_handling/test_openai_compat_errors.py9CODE
LOWtests/performance/_shared/build_eval_dataset.py25CODE
LOWtests/performance/_shared/run_full_search.py19CODE
LOWtests/performance/relevance_filter/eval_prompt.py17CODE
LOWtests/performance/relevance_filter/test_live.py19CODE
LOWtests/performance/relevance_filter/eval_models.py20CODE
LOWsrc/local_deep_research/__init__.py10CODE
LOWsrc/local_deep_research/search_system_factory.py14CODE
LOWsrc/local_deep_research/search_system_factory.py14CODE
LOWsrc/local_deep_research/metrics/__init__.py3CODE
LOWsrc/local_deep_research/metrics/__init__.py3CODE
LOWsrc/local_deep_research/metrics/__init__.py4CODE
LOWsrc/local_deep_research/metrics/__init__.py4CODE
456 more matches not shown…
Structural Annotation Overuse146 hits · 269 pts
SeverityFileLineSnippetContext
LOWREADME.md52# Step 1: Pull and run OllamaCOMMENT
LOWREADME.md56# Step 2: Pull and run SearXNG for optimal search resultsCOMMENT
LOWREADME.md59# Step 3: Pull and run Local Deep ResearchCOMMENT
LOWdocker-compose.yml87 # WARNING: This will disable UI configuration for these settings!COMMENT
LOWtests/test_openai_api_key_e2e.py64 # Step 1: AuthenticateCOMMENT
LOWtests/test_openai_api_key_e2e.py71 # Step 2: Configure settingsCOMMENT
LOWtests/test_openai_api_key_e2e.py109 # Step 3: Test LLM initializationCOMMENT
LOWtests/test_openai_api_key_e2e.py120 # Step 4: Test simple LLM callCOMMENT
LOWtests/test_openai_api_key_e2e.py143 # Step 5: Test research functionalityCOMMENT
LOWtests/database/test_alembic_migrations.py4533 # Step 1: Migrate to 0001 onlySTRING
LOWtests/database/test_alembic_migrations.py4537 # Step 2: Insert dataSTRING
LOWtests/database/test_alembic_migrations.py4564 # Step 3: Upgrade to head (0005)STRING
LOWtests/database/test_alembic_migrations.py4568 # Step 4: Verify data survivedSTRING
LOWtests/database/test_alembic_migrations.py4581 # Step 5: Verify new columns existSTRING
LOWtests/database/test_alembic_migrations.py4613 # Step 6: Another run_migrations should be no-opSTRING
LOWtests/deletion/test_cascade_integration.py241 # Step 1: Delete chunks (no FK, manual cleanup required)COMMENT
LOWtests/deletion/test_cascade_integration.py247 # Step 2: Delete document (CASCADE handles blob and collection links)COMMENT
LOWtests/deletion/test_cascade_integration.py406 # Step 1: Delete chunks (no FK, manual cleanup)COMMENT
LOWtests/deletion/test_cascade_integration.py411 # Step 2: Delete RAG indexCOMMENT
LOWtests/deletion/test_cascade_integration.py416 # Step 3: Delete collection (CASCADE handles folders, links)COMMENT
LOWtests/chat/test_chat_e2e_flows.py19 # Step 1: Create sessionCOMMENT
LOWtests/chat/test_chat_e2e_flows.py30 # Step 2: Send a messageCOMMENT
LOWtests/chat/test_chat_e2e_flows.py44 # Step 3: Get messagesCOMMENT
LOWtests/security/test_csrf_e2e_flow.py31 # Step 1: GET /auth/login to get a CSRF token for registrationCOMMENT
LOWtests/security/test_csrf_e2e_flow.py43 # Step 2: Register (auto-logs in the user)COMMENT
LOWtests/security/test_csrf_e2e_flow.py62 # Step 3: Get API CSRF token from /auth/csrf-tokenCOMMENT
LOWtests/security/test_csrf_e2e_flow.py69 # Step 4: POST /api/start_research WITH CSRF token — should pass CSRFCOMMENT
LOWtests/security/test_csrf_e2e_flow.py89 # Step 5: POST /api/start_research WITHOUT CSRF token — should be rejectedCOMMENT
LOWtests/research_library/zotero/test_sync_service.py1738 # Step 1: first contact — byte-identical, so the item adopts the upload.COMMENT
LOWtests/research_library/zotero/test_sync_service.py1753 # Step 2: the PDF is replaced in Zotero — content now differs.COMMENT
LOWtests/web/routes/test_search_favorites.py458 # Step 1: Get empty favoritesCOMMENT
LOWtests/web/routes/test_search_favorites.py465 # Step 2: Add searxng to favoritesCOMMENT
LOWtests/web/routes/test_search_favorites.py474 # Step 3: Add arxiv to favoritesCOMMENT
LOWtests/web/routes/test_search_favorites.py484 # Step 4: Remove searxng from favoritesCOMMENT
LOWtests/ui_tests/test_research_diagnosis.js75 // Step 1: AuthenticateCOMMENT
LOWtests/ui_tests/test_research_diagnosis.js80 // Step 2: Go to home pageCOMMENT
LOWtests/ui_tests/test_research_diagnosis.js86 // Step 3: Check what's on the pageCOMMENT
LOWtests/ui_tests/test_research_diagnosis.js151 // Step 4: Fill the formCOMMENT
LOWtests/ui_tests/test_research_diagnosis.js190 // Step 5: Check JavaScript stateCOMMENT
LOWtests/ui_tests/test_research_diagnosis.js235 // Step 6: Submit the formCOMMENT
LOWtests/ui_tests/test_research_diagnosis.js279 // Step 7: SummaryCOMMENT
LOW…ts/ui_tests/NO_CI_executes_research_followup_simple.js41 // Step 1: LoginCOMMENT
LOW…ts/ui_tests/NO_CI_executes_research_followup_simple.js55 // Step 2: Navigate to parent researchCOMMENT
LOW…ts/ui_tests/NO_CI_executes_research_followup_simple.js65 // Step 3: Test direct API call for follow-upCOMMENT
LOW…sts/ui_tests/NO_CI_executes_research_fixed_research.js27 // Step 1: AuthenticateCOMMENT
LOW…sts/ui_tests/NO_CI_executes_research_fixed_research.js32 // Step 2: Navigate to homeCOMMENT
LOW…sts/ui_tests/NO_CI_executes_research_fixed_research.js39 // Step 3: Configure modelCOMMENT
LOW…sts/ui_tests/NO_CI_executes_research_fixed_research.js47 // Step 4: Enter queryCOMMENT
LOW…sts/ui_tests/NO_CI_executes_research_fixed_research.js53 // Step 5: Submit researchCOMMENT
LOW…sts/ui_tests/NO_CI_executes_research_fixed_research.js69 // Step 6: Verify research startedCOMMENT
LOWtests/ui_tests/test_metrics_display.js17 // Step 1: Create and authenticate userCOMMENT
LOWtests/ui_tests/test_metrics_display.js27 // Step 2: Start a simple researchCOMMENT
LOWtests/ui_tests/test_metrics_display.js54 // Step 3: Wait a bit for metrics to be generatedCOMMENT
LOWtests/ui_tests/test_metrics_display.js58 // Step 4: Go to metrics pageCOMMENT
LOWtests/ui_tests/test_metrics_display.js63 // Step 5: Check what's on the page (with error handling)COMMENT
LOWtests/ui_tests/DEBUG_research_submit_debug.js49 // Step 1: LoginCOMMENT
LOWtests/ui_tests/DEBUG_research_submit_debug.js73 // Step 2: Wait for form to loadCOMMENT
LOWtests/ui_tests/DEBUG_research_submit_debug.js98 // Step 3: Fill the formCOMMENT
LOWtests/ui_tests/DEBUG_research_submit_debug.js148 // Step 4: Check form valuesCOMMENT
LOWtests/ui_tests/DEBUG_research_submit_debug.js166 // Step 5: Submit the formCOMMENT
86 more matches not shown…
Over-Commented Block289 hits · 240 pts
SeverityFileLineSnippetContext
LOWdocker-compose.gpu.override.yml1# ============================================================================COMMENT
LOWdocker-compose.unraid.yml1# ============================================================================COMMENT
LOW.pre-commit-config.yaml461#COMMENT
LOW.hadolint.yaml1# Hadolint configuration fileCOMMENT
LOW.hadolint.yaml21 # caching. npm ci, npm run build, and pdm install have different changeCOMMENT
LOW.file-whitelist.txt1# ============================================================================COMMENT
LOWpyproject.toml421# ---------------------------------------------------------------------------COMMENT
LOWpyproject.toml441# would fail with ModuleNotFoundError. `package`/`package_dir` areCOMMENT
LOW.grype.yaml1# Grype vulnerability ignore fileCOMMENT
LOW.grype.yaml21 # fixability only, not by severity.COMMENT
LOW.grype.yaml141 reason: "Heap overflow in Media. Playwright 1.58 bundles pre-fix Chromium. Headless scraping only."COMMENT
LOW.grype.yaml201 # The binary-cataloged CPython is matched via NVD CPE data, which carriesCOMMENT
LOW.grype.yaml421COMMENT
LOWdocker-compose.yml1# ============================================================================COMMENT
LOWdocker-compose.yml41 # Only use environment variables if you want to enforce specific settingsCOMMENT
LOWdocker-compose.yml61 # Example - to expose on port 8080 instead of 5000:COMMENT
LOWdocker-compose.yml81 # Register your initial account FIRST, then set this to false.COMMENT
LOWdocker-compose.yml101 # - LDR_LLM_OPENAI_ENDPOINT_URL=https://openrouter.ai/api/v1COMMENT
LOWdocker-compose.yml121 # - LDR_LLM_LMSTUDIO_API_KEY=<api-key-if-required> # optional; leave out for unauth instancesCOMMENT
LOWdocker-compose.yml141 # ============================================================================COMMENT
LOWdocker-compose.yml181 image: ollama/ollama:latest@sha256:8850b8b33936b9fb246e7b3e02849941f1151ea847e5fb15511f17de9589aea1COMMENT
LOWeslint.config.js241 "chai-friendly/no-unused-expressions": "error",COMMENT
LOWeslint.config.js301 confirm: "readonly",COMMENT
LOWbearer.yml1# Bearer SAST Scanner ConfigurationCOMMENT
LOWbearer.yml21COMMENT
LOWbearer.yml41 # - validate_config_path(): Validates config file pathsCOMMENT
LOWbearer.yml61 # SAFE TO SKIP: Same rationale as python_lang_insecure_random above.COMMENT
LOWbearer.yml81 # - All user data in HTML templates is escapedCOMMENT
LOWbearer.yml101 # ------------------------------------------------------------COMMENT
LOWcommunity_benchmark_results/benchmark_template.yaml61test_details:COMMENT
LOWtests/settings/test_settings_defaults_integrity.py61 # 'dark' was a legacy theme name; dynamic options from theme_registryCOMMENT
LOWtests/database/test_alembic_migrations.py6041 # data migrations that delete stale keys with no consumers).COMMENT
LOWtests/database/test_settings_models.py421 # Note: onupdate might not trigger in SQLite without proper configurationCOMMENT
LOWtests/database/test_encrypted_db_manager.py1561COMMENT
LOWtests/database/test_migration_0010.py221 # Relies on 0010 using server_default="0" (SQL-side, applied byCOMMENT
LOWtests/database/test_paper_dedup_integration.py461 assert len(all_papers) == 1, (COMMENT
LOWtests/database/test_paper_dedup_integration.py481 # dedup coverage above (test_same_doi_deduped_across_two_sources,COMMENT
LOWtests/database/test_sqlcipher_connection_factory.py341# the inline SQLCipher creator inside create_thread_safe_session_for_metrics.COMMENT
LOWtests/database/backup/test_backup_service.py4121 username="testuser", password="testpass", max_backups=3COMMENT
LOWtests/chat/test_chat_send_message_followups.py181 session_a = _create_session(authenticated_client)COMMENT
LOWtests/chat/test_chat_send_message_followups.py201 # thread is dead, gated only by a 30s grace window onCOMMENT
LOWtests/chat/test_chat_research_history_integration.py101# stored inline (snapshot semantics). The "fetch fromCOMMENT
LOWtests/security/test_xss_prevention.py221 # DOM-based XSS happens when client-side JavaScript uses untrusted dataCOMMENT
LOWtests/security/test_xss_prevention.py241 @pytest.mark.skip(reason="documentation/placeholder test - not implemented")COMMENT
LOWtests/security/test_egress_langgraph_tool_filter.py221 assert _specialized(names) == set()COMMENT
LOWtests/security/test_egress_langgraph_tool_filter.py281COMMENT
LOWtests/security/test_auth_security.py21 LDR uses SQLCipher encryption for user databases.COMMENT
LOWtests/security/test_auth_security.py121 """Test that logout completely invalidates the session."""COMMENT
LOWtests/security/test_api_key_leakage.py861 # call fails — its message embeds the *assembled* URL with theCOMMENT
LOWtests/security/test_sql_injection.py281 # - session.query() - ✓ Safe (parameterized)COMMENT
LOWtests/security/test_csrf_protection.py161COMMENT
LOWtests/security/test_csrf_protection.py201 # - Request headers (X-CSRFToken)COMMENT
LOWtests/js/components/logpanel.test.js321 });COMMENT
LOWtests/js/components/logpanel.test.js421 'live-A',COMMENT
LOWtests/js/components/logpanel.test.js901 if (!el) return null;COMMENT
LOWtests/js/components/logpanel.test.js981 // Explicit timeout + faked timers: this test fills the DOM to the realCOMMENT
LOWtests/js/services/ui.test.js361 });COMMENT
LOWtests/web/test_api_coverage.py1661COMMENT
LOWtests/web/test_api_coverage.py1821 f"This bug class — endpoint passes kwargs the function "COMMENT
LOWtests/web/queue/test_processor_v2_real.py921 # that distinguishes this branch from the generic spawn-failureCOMMENT
229 more matches not shown…
Verbosity Indicators125 hits · 230 pts
SeverityFileLineSnippetContext
LOWtests/test_openai_api_key_e2e.py64 # Step 1: AuthenticateCOMMENT
LOWtests/test_openai_api_key_e2e.py71 # Step 2: Configure settingsCOMMENT
LOWtests/test_openai_api_key_e2e.py109 # Step 3: Test LLM initializationCOMMENT
LOWtests/test_openai_api_key_e2e.py120 # Step 4: Test simple LLM callCOMMENT
LOWtests/test_openai_api_key_e2e.py143 # Step 5: Test research functionalityCOMMENT
LOWtests/database/test_alembic_migrations.py4533 # Step 1: Migrate to 0001 onlySTRING
LOWtests/database/test_alembic_migrations.py4537 # Step 2: Insert dataSTRING
LOWtests/database/test_alembic_migrations.py4564 # Step 3: Upgrade to head (0005)STRING
LOWtests/database/test_alembic_migrations.py4568 # Step 4: Verify data survivedSTRING
LOWtests/database/test_alembic_migrations.py4581 # Step 5: Verify new columns existSTRING
LOWtests/database/test_alembic_migrations.py4613 # Step 6: Another run_migrations should be no-opSTRING
LOWtests/deletion/test_cascade_integration.py241 # Step 1: Delete chunks (no FK, manual cleanup required)COMMENT
LOWtests/deletion/test_cascade_integration.py247 # Step 2: Delete document (CASCADE handles blob and collection links)COMMENT
LOWtests/deletion/test_cascade_integration.py406 # Step 1: Delete chunks (no FK, manual cleanup)COMMENT
LOWtests/deletion/test_cascade_integration.py411 # Step 2: Delete RAG indexCOMMENT
LOWtests/deletion/test_cascade_integration.py416 # Step 3: Delete collection (CASCADE handles folders, links)COMMENT
LOWtests/chat/test_chat_e2e_flows.py19 # Step 1: Create sessionCOMMENT
LOWtests/chat/test_chat_e2e_flows.py30 # Step 2: Send a messageCOMMENT
LOWtests/chat/test_chat_e2e_flows.py44 # Step 3: Get messagesCOMMENT
LOWtests/security/test_csrf_e2e_flow.py31 # Step 1: GET /auth/login to get a CSRF token for registrationCOMMENT
LOWtests/security/test_csrf_e2e_flow.py43 # Step 2: Register (auto-logs in the user)COMMENT
LOWtests/security/test_csrf_e2e_flow.py62 # Step 3: Get API CSRF token from /auth/csrf-tokenCOMMENT
LOWtests/security/test_csrf_e2e_flow.py69 # Step 4: POST /api/start_research WITH CSRF token — should pass CSRFCOMMENT
LOWtests/security/test_csrf_e2e_flow.py89 # Step 5: POST /api/start_research WITHOUT CSRF token — should be rejectedCOMMENT
LOWtests/research_library/zotero/test_sync_service.py1738 # Step 1: first contact — byte-identical, so the item adopts the upload.COMMENT
LOWtests/research_library/zotero/test_sync_service.py1753 # Step 2: the PDF is replaced in Zotero — content now differs.COMMENT
LOWtests/web/routes/test_search_favorites.py458 # Step 1: Get empty favoritesCOMMENT
LOWtests/web/routes/test_search_favorites.py465 # Step 2: Add searxng to favoritesCOMMENT
LOWtests/web/routes/test_search_favorites.py474 # Step 3: Add arxiv to favoritesCOMMENT
LOWtests/web/routes/test_search_favorites.py484 # Step 4: Remove searxng from favoritesCOMMENT
LOWtests/ui_tests/test_research_diagnosis.js75 // Step 1: AuthenticateCOMMENT
LOWtests/ui_tests/test_research_diagnosis.js80 // Step 2: Go to home pageCOMMENT
LOWtests/ui_tests/test_research_diagnosis.js86 // Step 3: Check what's on the pageCOMMENT
LOWtests/ui_tests/test_research_diagnosis.js151 // Step 4: Fill the formCOMMENT
LOWtests/ui_tests/test_research_diagnosis.js190 // Step 5: Check JavaScript stateCOMMENT
LOWtests/ui_tests/test_research_diagnosis.js235 // Step 6: Submit the formCOMMENT
LOWtests/ui_tests/test_research_diagnosis.js279 // Step 7: SummaryCOMMENT
LOW…ts/ui_tests/NO_CI_executes_research_followup_simple.js41 // Step 1: LoginCOMMENT
LOW…ts/ui_tests/NO_CI_executes_research_followup_simple.js55 // Step 2: Navigate to parent researchCOMMENT
LOW…ts/ui_tests/NO_CI_executes_research_followup_simple.js65 // Step 3: Test direct API call for follow-upCOMMENT
LOW…sts/ui_tests/NO_CI_executes_research_fixed_research.js27 // Step 1: AuthenticateCOMMENT
LOW…sts/ui_tests/NO_CI_executes_research_fixed_research.js32 // Step 2: Navigate to homeCOMMENT
LOW…sts/ui_tests/NO_CI_executes_research_fixed_research.js39 // Step 3: Configure modelCOMMENT
LOW…sts/ui_tests/NO_CI_executes_research_fixed_research.js47 // Step 4: Enter queryCOMMENT
LOW…sts/ui_tests/NO_CI_executes_research_fixed_research.js53 // Step 5: Submit researchCOMMENT
LOW…sts/ui_tests/NO_CI_executes_research_fixed_research.js69 // Step 6: Verify research startedCOMMENT
LOWtests/ui_tests/test_metrics_display.js17 // Step 1: Create and authenticate userCOMMENT
LOWtests/ui_tests/test_metrics_display.js27 // Step 2: Start a simple researchCOMMENT
LOWtests/ui_tests/test_metrics_display.js54 // Step 3: Wait a bit for metrics to be generatedCOMMENT
LOWtests/ui_tests/test_metrics_display.js58 // Step 4: Go to metrics pageCOMMENT
LOWtests/ui_tests/test_metrics_display.js63 // Step 5: Check what's on the page (with error handling)COMMENT
LOWtests/ui_tests/DEBUG_research_submit_debug.js49 // Step 1: LoginCOMMENT
LOWtests/ui_tests/DEBUG_research_submit_debug.js73 // Step 2: Wait for form to loadCOMMENT
LOWtests/ui_tests/DEBUG_research_submit_debug.js98 // Step 3: Fill the formCOMMENT
LOWtests/ui_tests/DEBUG_research_submit_debug.js148 // Step 4: Check form valuesCOMMENT
LOWtests/ui_tests/DEBUG_research_submit_debug.js166 // Step 5: Submit the formCOMMENT
LOWtests/ui_tests/test_research_search_analysis.js42 // Step 1: AuthenticationCOMMENT
LOWtests/ui_tests/test_research_search_analysis.js47 // Step 2: Navigate to research pageCOMMENT
LOWtests/ui_tests/test_research_search_analysis.js58 // Step 3: Fill in research questionCOMMENT
LOWtests/ui_tests/test_research_search_analysis.js172 // Step 4: Submit researchCOMMENT
65 more matches not shown…
Hallucination Indicators18 hits · 200 pts
SeverityFileLineSnippetContext
CRITICALtests/security/test_file_integrity_manager_coverage.py927 session.query.return_value.filter_by.return_value.order_by.return_value.limit.assert_called()CODE
CRITICALtests/js/deletion/delete-modules.test.js115 const deleteCall = window.api.fetchWithErrorHandling.mock.calls.find(CODE
CRITICALtests/research_library/zotero/test_client.py420 assert client.session.get.call_args.kwargs.get("allow_redirects") is FalseCODE
CRITICAL…s/research_library/routes/test_rag_indexing_helpers.py185 db.query.return_value.filter_by.return_value.update.assert_called_once()CODE
CRITICALtests/web/auth/test_cleanup_middleware.py332 mock_db_session.query.return_value.filter_by.return_value.limit.assert_called_with(CODE
CRITICALtests/web/routes/test_history_routes_coverage.py252 chain.group_by.return_value.order_by.return_value.limit.assert_called_with(CODE
CRITICALtests/web/routes/test_history_routes_coverage.py255 chain.group_by.return_value.order_by.return_value.limit.return_value.offset.assert_called_with(CODE
CRITICALtests/web/routes/test_history_routes_coverage.py275 chain.group_by.return_value.order_by.return_value.limit.assert_called_with(CODE
CRITICALtests/web/routes/test_settings_routes_rate_limiting.py171 session.query.return_value.filter_by.return_value.delete.assert_called_once()CODE
CRITICALtests/web/routes/test_settings_routes_rate_limiting.py197 session.query.return_value.filter.return_value.delete.assert_called_once()CODE
CRITICALtests/web/routes/test_settings_routes_rate_limiting.py208 session.query.return_value.filter.return_value.delete.assert_called_once()CODE
CRITICALtests/news/test_rating_storage_extended.py529 mock_query.filter_by.return_value.order_by.return_value.limit.assert_called_with(CODE
CRITICALtests/news/test_folder_manager_behavior.py268 session.query.return_value.filter_by.return_value.update.assert_called()CODE
CRITICALtests/news/test_folder_manager_behavior.py277 session.query.return_value.filter_by.return_value.update.assert_called()CODE
CRITICALtests/news/test_folder_manager_extended.py255 mock_session.query.return_value.filter_by.return_value.update.assert_called_once_with(CODE
CRITICALtests/news/test_folder_manager_extended.py271 mock_session.query.return_value.filter_by.return_value.update.assert_called_once_with(CODE
CRITICALtests/news/rating_system/test_storage.py373 mock_query.order_by.return_value.limit.return_value.offset.assert_called_once_with(CODE
CRITICAL.github/workflows/welcome-first-time.yml59 const opts = github.rest.issues.listForRepo.endpoint.merge({CODE
AI Slop Vocabulary79 hits · 183 pts
SeverityFileLineSnippetContext
MEDIUMtests/test_api_settings_e2e.py80 """Test detailed_research with comprehensive settings.STRING
MEDIUMtests/test_openai_api_key_e2e.py247 # diagnose=False: this e2e harness passes args.api_key andSTRING
MEDIUMtests/run_all_tests.py593 # Legacy comprehensive testing - runs some tests multiple times (< 15min)COMMENT
MEDIUMtests/database/test_sqlcipher_utils.py1243 # robust if that min_value is ever raised.COMMENT
MEDIUM…earch_system/filters/test_followup_relevance_filter.py349 assert call_args.count("A") < 200 # Definitely truncated from originalCODE
MEDIUM…_system/strategies/test_topic_organization_strategy.py783 """Format topic findings creates comprehensive output."""STRING
LOW…ed_search_system/questions/test_browsecomp_question.py692 # Should not raise, just return FalseCOMMENT
MEDIUM…_system/questions/test_flexible_browsecomp_question.py257 assert call_args.count("A") < 500 # Definitely truncated from originalCODE
MEDIUMtests/infrastructure_tests/test_urls_js.py39 # More robust extraction pattern that handles multiline and commentsCOMMENT
LOWtests/content_fetcher/test_html_content_extraction.py155 # Should not crash, just return minimal/empty outputCOMMENT
LOWtests/security/test_safe_requests_hook.py224 # Should not raise, just return True (let other tools handle syntax)COMMENT
MEDIUMtests/security/test_url_validator_extended.py96# is_safe_url -- comprehensive scheme / option / pattern testsCOMMENT
MEDIUMtests/security/test_safe_requests_retries.py186 # 30s band absorbs clock jitter and test-harness latency.COMMENT
LOWtests/research_library/test_utils.py457 # Should not raise an error, just return FalseCOMMENT
LOW…esearch_library/downloaders/test_biorxiv_downloader.py70 # Should not raise, just return FalseCOMMENT
MEDIUMtests/research_library/routes/test_rag_routes.py2558 # Create comprehensive mock for SettingsManagerCOMMENT
MEDIUMtests/web/routes/test_research_routes.py365 # call (not a positional index) so the guard stays robust if queriesCOMMENT
LOWtests/web/routes/test_settings_policy_validators.py34 # Should simply return (not raise) for any well-formed input.COMMENT
MEDIUMtests/error_handling/test_error_categorization.py301 """Tests for comprehensive error analysis."""STRING
MEDIUMtests/ui_tests/run_api_key_test.sh38# Run the comprehensive testCOMMENT
MEDIUMtests/ui_tests/test_register_full_flow.js350 // Uses AuthHelper for robust CI-compatible registration with proper timeoutsCOMMENT
MEDIUMtests/ui_tests/test_register_full_flow.js372 // Use AuthHelper which has robust CI-compatible registration logicCOMMENT
MEDIUMtests/ui_tests/test_checkbox_settings.js342 // Toggle checkbox using robust methodCOMMENT
MEDIUMtests/ui_tests/test_checkbox_settings.js384 // Toggle using robust methodCOMMENT
MEDIUMtests/ui_tests/test_checkbox_settings.js485 // Toggle the checkbox using robust methodCOMMENT
MEDIUMtests/ui_tests/test_research_submit.js88 // Submit the form with robust retry logicCOMMENT
LOWtests/news/test_card_factory_extended.py777 # This should not raise, just return NoneCOMMENT
LOW…citation_handlers/test_precision_extraction_handler.py817 # Should just return the LLM response without extraction modificationsCOMMENT
MEDIUMtests/document_loaders/test_loader_registry_coverage.py314# get_loader_for_path - comprehensive coverageCOMMENT
MEDIUMtests/pdf_tests/test_file_validator.py242 """Tests for validate_upload comprehensive method."""STRING
MEDIUMtests/health_check/test_endpoints_health.py67 """Run comprehensive health check and print summary"""STRING
LOW…ch_engines/rate_limiting/test_tracker_quality_stats.py512 # Should not raise, just return earlyCOMMENT
MEDIUM…web_search_engines/engines/test_search_engine_sofya.py530 # distinct class objects; only `.value` (or `.name`) is robust.COMMENT
MEDIUMexamples/optimization/strategy_benchmark_plan.py141 num_examples=NUM_EXAMPLES, # Use 500 examples for robust evaluationCODE
MEDIUMexamples/optimization/strategy_benchmark_plan.py185 num_examples=NUM_EXAMPLES, # Use 500 examples for robust evaluationCODE
MEDIUMexamples/optimization/strategy_benchmark_plan.py229 num_examples=NUM_EXAMPLES, # Use 500 examples for robust evaluationCODE
MEDIUMexamples/optimization/strategy_benchmark_plan.py274 num_examples=NUM_EXAMPLES, # Use 500 examples for robust evaluationCODE
LOWexamples/api_usage/simple_client_example.py37 # Now just use it - no more CSRF hassles!COMMENT
MEDIUM…es/api_usage/programmatic/advanced_features_example.py54 # Generate a comprehensive reportSTRING
MEDIUM…/api_usage/programmatic/simple_programmatic_example.py75# Generate a comprehensive reportCOMMENT
MEDIUM…pi_usage/programmatic/api_public_contract_guardrail.py32# DO NOT MODIFY this function — it is the test harness for the guardrailCOMMENT
MEDIUMexamples/benchmarks/claude_grading/run_benchmark.sh26# Use a long timeout for comprehensive benchmarksCOMMENT
MEDIUM.github/workflows/ai-code-reviewer.yml144 # spaces — model ids shouldn't have either, but this is robust.)COMMENT
MEDIUM.github/workflows/file-whitelist-check.yml2# Enhanced security checks with comprehensive file type detectionCOMMENT
MEDIUM.github/workflows/gitleaks.yml37 fetch-depth: 0 # Fetch full history for comprehensive secret scanningCODE
MEDIUM.github/workflows/playwright-webkit-tests.yml154 # - mobile-ui-audit: comprehensive mobile UI quality checksCOMMENT
MEDIUM.github/workflows/playwright-webkit-tests.yml324 # - mobile-ui-audit: comprehensive mobile UI quality checksCOMMENT
MEDIUM.github/scripts/file-whitelist-check.sh4# Enhanced security checks with comprehensive file type detectionCOMMENT
MEDIUM.github/scripts/file-whitelist-check.sh57# Use a more robust approach that handles edge casesCOMMENT
MEDIUMsrc/local_deep_research/report_generator.py422 # Section-level prompt - more comprehensiveSTRING
MEDIUMsrc/local_deep_research/search_system.py62 strategy_name: str = "source-based", # Default to comprehensive research strategyCODE
MEDIUM…ced_search_system/filters/journal_reputation_filter.py93 # controls — the comprehensive pattern audited in log_sanitizer,COMMENT
MEDIUM…earch_system/strategies/topic_organization_strategy.py1675 # Part 2: Generate comprehensive summary based on the topic sectionsCOMMENT
MEDIUM…em/strategies/followup/enhanced_contextual_followup.py69 # Build comprehensive contextCOMMENT
MEDIUM…research/advanced_search_system/findings/repository.py275 prompt = f"""Use IEEE style citations [1], [2], etc. Never make up your own citations. Synthesize the followCODE
LOWsrc/local_deep_research/security/url_builder.py213 # If parsing fails, just return generic maskCOMMENT
MEDIUMsrc/local_deep_research/security/security_headers.py159 """Add comprehensive security headers to Flask response.STRING
MEDIUM…earch/research_library/downloaders/semantic_scholar.py101 # Use urlparse for more robust URL handling (handles query strings, fragments)COMMENT
MEDIUM…deep_research/research_library/downloaders/openalex.py104 # Use urlparse for more robust URL handling (handles query strings, fragments)COMMENT
LOW…_deep_research/research_library/zotero/sync_service.py1125 # document just add the collection link — never clobber the user'sCOMMENT
19 more matches not shown…
Magic Placeholder Names27 hits · 158 pts
SeverityFileLineSnippetContext
HIGH.gitleaks.toml212 '''your-api-key-here''',STRING
HIGHdocker-compose.yml91 # - LDR_LLM_OPENAI_API_KEY=<your-api-key> # Lock OpenAI API keyCOMMENT
HIGHdocker-compose.yml92 # - LDR_LLM_ANTHROPIC_API_KEY=<your-api-key> # Lock Anthropic API keyCOMMENT
HIGHdocker-compose.yml102 # - LDR_LLM_OPENAI_ENDPOINT_API_KEY=<your-api-key>COMMENT
HIGHdocker-compose.yml111 # - LDR_LLM_OPENAI_ENDPOINT_API_KEY=<your-api-key>COMMENT
HIGHtests/test_openai_api_key_e2e.py18 export LDR_LLM_OPENAI_API_KEY=your_api_keySTRING
HIGHdocs/faq.md359 export LDR_LLM_OPENAI_ENDPOINT_API_KEY="<your-api-key>"CODE
HIGHdocs/faq.md370 - LDR_LLM_OPENAI_ENDPOINT_API_KEY=<your-api-key>CODE
HIGHdocs/docker-compose-guide.md140 - LDR_LLM_OPENAI_ENDPOINT_API_KEY=<your-api-key>CODE
HIGHdocs/troubleshooting-openai-api-key.md19export OPENAI_API_KEY=sk-your-api-keyCODE
HIGHdocs/troubleshooting-openai-api-key.md42 export OPENAI_API_KEY=sk-your-api-keyCODE
HIGHdocs/troubleshooting-openai-api-key.md54 settings_manager.set_setting("llm.openai.api_key", "sk-your-api-key")CODE
HIGHdocs/troubleshooting-openai-api-key.md74 -H "Authorization: Bearer YOUR_API_KEY"CODE
HIGHdocs/troubleshooting-openai-api-key.md218settings_manager.set_setting("llm.openai.api_key", "your-api-key")CODE
HIGHdocs/env_configuration.md75export LDR_LLM_OPENAI_ENDPOINT_API_KEY="<your-api-key>"CODE
HIGHdocs/env_configuration.md89 - LDR_LLM_OPENAI_ENDPOINT_API_KEY=<your-api-key>CODE
HIGHdocs/env_configuration.md105export LDR_LLM_OPENAI_ENDPOINT_API_KEY="<your-api-key>"CODE
HIGHdocs/env_configuration.md115 -e LDR_LLM_OPENAI_API_KEY=your-api-key-here \CODE
HIGHdocs/env_configuration.md153export LDR_LLM_ANTHROPIC_API_KEY=your-api-key-hereCODE
HIGHdocs/env_configuration.md156set LDR_LLM_ANTHROPIC_API_KEY=your-api-key-hereCODE
HIGHexamples/optimization/README.md47 python update_llm_config.py --model "google/gemini-2.0-flash" --provider "openai_endpoint" --endpoint "https://openrouCODE
HIGHexamples/optimization/README.md52 python run_gemini_benchmark.py --api-key "your-api-key" --examples 10CODE
HIGHexamples/optimization/update_llm_config.py14 pdm run python examples/optimization/update_llm_config.py --model "google/gemini-2.0-flash" --provider "openai_endpoSTRING
HIGHexamples/benchmarks/run_gemini_benchmark.py13 pdm run python examples/benchmarks/run_gemini_benchmark.py --api-key YOUR_API_KEYSTRING
HIGH…deep_research/web_search_engines/search_engine_base.py45 "YOUR_API_KEY",CODE
HIGH…deep_research/web_search_engines/search_engine_base.py47 "your_api_key",CODE
HIGH…deep_research/web_search_engines/search_engine_base.py48 "your-api-key",CODE
Modern Structural Boilerplate98 hits · 98 pts
SeverityFileLineSnippetContext
LOWsrc/local_deep_research/__init__.py15__all__ = [CODE
LOWsrc/local_deep_research/metrics/__init__.py6__all__ = [CODE
LOWsrc/local_deep_research/metrics/pricing/__init__.py12__all__ = ["CostCalculator", "PricingCache", "PricingFetcher"]CODE
LOWsrc/local_deep_research/settings/env_settings.py376__all__ = [CODE
LOWsrc/local_deep_research/settings/__init__.py18__all__ = [CODE
LOWsrc/local_deep_research/settings/env_registry.py147__all__ = [CODE
LOWsrc/local_deep_research/settings/manager.py1255 def update_db_version(self, commit: bool = True) -> None:CODE
LOW…cal_deep_research/settings/env_definitions/__init__.py27__all__ = [CODE
LOWsrc/local_deep_research/database/sqlcipher_utils.py216def set_sqlcipher_key_from_hex(cursor_or_conn: Any, hex_key: str) -> None:CODE
LOWsrc/local_deep_research/database/models/__init__.py102__all__ = [CODE
LOWsrc/local_deep_research/database/models/base.py14__all__ = ["Base"]CODE
LOWsrc/local_deep_research/database/backup/__init__.py12__all__ = [CODE
LOW…local_deep_research/advanced_search_system/__init__.py7__all__ = []CODE
LOW…research/advanced_search_system/candidates/__init__.py5__all__ = ["Candidate"]CODE
LOW…ep_research/advanced_search_system/filters/__init__.py8__all__ = ["CrossEngineFilter"]CODE
LOW…esearch/advanced_search_system/tools/fetch/__init__.py414__all__ = ["FETCH_MODES", "build_fetch_tool"]CODE
LOW…p_research/advanced_search_system/evidence/__init__.py6__all__ = [CODE
LOW…esearch/advanced_search_system/constraints/__init__.py6__all__ = ["Constraint", "ConstraintAnalyzer", "ConstraintType"]CODE
LOW…earch/advanced_search_system/summarization/__init__.py11__all__ = [CODE
LOW…research/advanced_search_system/strategies/__init__.py7__all__ = [CODE
LOW…advanced_search_system/strategies/followup/__init__.py10__all__ = ["EnhancedContextualFollowUpStrategy"]CODE
LOW…vanced_search_system/candidate_exploration/__init__.py15__all__ = [CODE
LOW…search/advanced_search_system/repositories/__init__.py7__all__ = ["FindingsRepository"]CODE
LOW…deep_research/advanced_search_system/findings/topic.py41 def update_lead_source(self, new_lead: Dict[str, Any]) -> None:CODE
LOW…deep_research/advanced_search_system/findings/topic.py100 def set_parent_child(self, parent_id: str, child_id: str) -> None:CODE
LOW…_research/advanced_search_system/questions/__init__.py10__all__ = [CODE
LOW…/advanced_search_system/questions/followup/__init__.py11__all__ = [CODE
LOWsrc/local_deep_research/llm/__init__.py12__all__ = [CODE
LOWsrc/local_deep_research/llm/providers/__init__.py10__all__ = [CODE
LOWsrc/local_deep_research/embeddings/__init__.py29__all__ = [CODE
LOW…c/local_deep_research/embeddings/providers/__init__.py5__all__ = ["BaseEmbeddingProvider"]CODE
LOW…earch/embeddings/providers/implementations/__init__.py7__all__ = [CODE
LOW…c/local_deep_research/embeddings/splitters/__init__.py9__all__ = ["get_text_splitter", "VALID_SPLITTER_TYPES"]CODE
LOWsrc/local_deep_research/chat/__init__.py15__all__ = [CODE
LOWsrc/local_deep_research/content_fetcher/__init__.py19__all__ = ["ContentFetcher", "URLClassifier", "URLType"]CODE
LOWsrc/local_deep_research/security/__init__.py70__all__ = [CODE
LOWsrc/local_deep_research/security/egress/audit_hook.py73def set_active_context(ctx) -> None:CODE
LOWsrc/local_deep_research/security/egress/__init__.py39__all__ = [CODE
LOW…ocal_deep_research/security/file_integrity/__init__.py37__all__ = [CODE
LOW…_research/security/file_integrity/integrity_manager.py249 def update_checksum(self, file_path: Path) -> None:CODE
LOW…research/security/file_integrity/verifiers/__init__.py5__all__ = ["FAISSIndexVerifier"]CODE
LOWsrc/local_deep_research/research_library/__init__.py20__all__ = [CODE
LOW…al_deep_research/research_library/deletion/__init__.py21__all__ = [CODE
LOW…p_research/research_library/deletion/utils/__init__.py5__all__ = ["CascadeHelper"]CODE
LOW…_research/research_library/deletion/routes/__init__.py5__all__ = ["delete_bp"]CODE
LOW…esearch/research_library/deletion/services/__init__.py7__all__ = [CODE
LOW…deep_research/research_library/downloaders/__init__.py19__all__ = [CODE
LOW…ch/research_library/downloaders/extraction/__init__.py21__all__ = [CODE
LOW…ocal_deep_research/research_library/zotero/__init__.py16__all__ = [CODE
LOW…_deep_research/research_library/zotero/sync_service.py345 def _set_progress(self, **fields) -> None:CODE
LOW…ocal_deep_research/research_library/search/__init__.py12__all__ = ["search_bp", "ResearchHistoryIndexer"]CODE
LOW…ep_research/research_library/search/routes/__init__.py3__all__ = ["search_bp"]CODE
LOW…_research/research_library/search/services/__init__.py6__all__ = ["ResearchHistoryIndexer", "auto_convert_research"]CODE
LOWsrc/local_deep_research/exporters/__init__.py45__all__ = [CODE
LOWsrc/local_deep_research/web/auth/__init__.py9__all__ = ["auth_bp", "current_user", "login_required"]CODE
LOWsrc/local_deep_research/web/queue/__init__.py6__all__ = ["QueueManager", "QueueProcessorV2"]CODE
LOWsrc/local_deep_research/web/themes/__init__.py233__all__ = [CODE
LOWsrc/local_deep_research/journal_quality/downloader.py99def _set_source_state(key: str, **updates) -> None:CODE
LOW…deep_research/journal_quality/data_sources/__init__.py45__all__ = ["DataSource", "ALL_SOURCES", "get_source"]CODE
LOWsrc/local_deep_research/scheduler/background.py196 def set_app(self, app) -> None:CODE
38 more matches not shown…
Cross-Language Confusion14 hits · 82 pts
SeverityFileLineSnippetContext
HIGH.pre-commit-hooks/recommend-pr-description-update.py64 The ``currentBranch`` key is a single object (or null) — not an array.STRING
HIGHtests/config/test_thread_settings_high_value.py128 # embeddings.openai.dimensions defaults to JSON null, thenCOMMENT
HIGH…search_library/routes/test_rag_routes_gaps_coverage.py929 # {"agent_enabled": null} → stored True (available), serialized True.COMMENT
HIGHtests/web/warning_checks/test_hardware.py319 config_file.write_text('{"port": null}', encoding="utf-8")CODE
HIGHtests/web/services/test_settings_manager_extended.py692 ctx.push()CODE
HIGHtests/news/test_library_sweep.py787 research orphan (research_id set, text not null, NO default-library link)STRING
HIGHtests/news/test_topic_generator_coverage.py113 result = self._run_with_llm_content('[123, "Valid", null, true]')CODE
HIGH…s/benchmarks/web_api/test_benchmark_export_metadata.py140 """A row with all new columns NULL must serialize as JSON null, notSTRING
HIGHsrc/local_deep_research/config/thread_settings.py25# (e.g. embeddings.openai.dimensions, which defaults to JSON null) into theCOMMENT
HIGHsrc/local_deep_research/security/url_validator.py500 if (!url || typeof url !== 'string') {CODE
HIGHsrc/local_deep_research/security/url_validator.py531 if (trustedDomains.length > 0 && parsed.hostname) {CODE
HIGHsrc/local_deep_research/security/url_validator.py552 if (!url) return null;CODE
HIGHsrc/local_deep_research/security/url_validator.py556 return null;CODE
HIGHsrc/local_deep_research/security/url_validator.py572 return null;CODE
Fake / Example Data77 hits · 78 pts
SeverityFileLineSnippetContext
LOWtests/test_search_engines_enhanced.py167 Mock(name="John Doe"),CODE
LOWtests/mock_fixtures.py122 "authors": [{"name": "John Doe"}, {"name": "Jane Smith"}],CODE
LOWtests/database/test_credential_store_behavior.py340 special_user = "user@example.com"CODE
LOWtests/database/backup/test_backup_service.py3274 "user@example.com", # Email formatCODE
LOW…/advanced_search_system/evidence/test_base_evidence.py120 metadata = {"author": "John Doe", "publication": "Science Journal"}CODE
LOW…/advanced_search_system/evidence/test_base_evidence.py129 assert evidence.metadata["author"] == "John Doe"CODE
LOW…ystem/questions/followup/test_llm_followup_question.py240 assert "placeholder" in docstring.lower() or "NOTE" in docstringCODE
LOWtests/security/test_csrf_protection.py87 "csrf_token": "invalid-fake-token-12345",CODE
LOWtests/js/utils/form-validation.test.js271 expect(emailLike('user@example.com')).toBeNull();CODE
LOW…/research_library/downloaders/test_arxiv_downloader.py254 assert "John Doe" in metadataCODE
LOW…esearch_library/downloaders/test_metadata_extractor.py80 "author": {"name": "Jane Doe"},CODE
LOW…esearch_library/downloaders/test_metadata_extractor.py90 assert "Jane Doe" in resultCODE
LOW…rary/downloaders/test_html_downloader_deep_coverage.py425 <meta name="author" content="John Doe">CODE
LOW…rary/downloaders/test_html_downloader_deep_coverage.py434 assert meta["author"] == "John Doe"STRING
LOW…ibrary/downloaders/test_metadata_extractor_expanded.py157 item = {"headline": "Story", "author": "Jane Doe"}CODE
LOW…ibrary/downloaders/test_metadata_extractor_expanded.py160 assert "Jane Doe" in textCODE
LOWtests/search_engines/conftest.py138 "authors": ["John Doe", "Jane Smith"],CODE
LOW…sts/search_engines/test_search_engine_stackexchange.py345 "display_name": "John Doe",CODE
LOW…sts/search_engines/test_search_engine_stackexchange.py375 assert previews[0]["author"] == "John Doe"CODE
LOWtests/search_engines/test_search_engine_retriever.py184 "author": "John Doe",CODE
LOWtests/search_engines/test_search_engine_retriever.py194 assert result["author"] == "John Doe"CODE
LOWtests/search_engines/test_search_engine_paperless.py307 "correspondent_name": "Acme Corp",CODE
LOWtests/search_engines/test_search_engine_paperless.py321 assert preview["author"] == "Acme Corp"CODE
LOWtests/search_engines/test_search_engine_arxiv.py106 mock_result.authors = [Mock(name="John Doe"), Mock(name="Jane Smith")]CODE
LOWtests/search_engines/test_search_engine_zenodo.py132 {"name": "Jane Doe"},CODE
LOWtests/search_engines/test_search_engine_zenodo.py136 assert result == ["John Smith", "Jane Doe"]CODE
LOWtests/ui_tests/test_loading_feedback_ci.js75 '[class*="placeholder"], ' +CODE
LOWtests/ui_tests/test_loading_feedback_ci.js88 if (cssText.includes('skeleton') || cssText.includes('placeholder') ||CODE
LOWtests/ui_tests/test_keyboard_accessibility_ci.js593 const hasPlaceholder = input.hasAttribute('placeholder');CODE
LOWtests/ui_tests/playwright/tests/mobile-ui-audit.spec.js87 text: (el.textContent || el.getAttribute('placeholder') || '').trim().slice(0, 30),CODE
LOWtests/ui_tests/playwright/tests/mobile-ui-audit.spec.js101 text: (el.textContent || el.getAttribute('placeholder') || '').trim().slice(0, 30),CODE
LOWtests/ui_tests/playwright/tests/mobile-ui-audit.spec.js191 const hasPlaceholder = input.getAttribute('placeholder');CODE
LOWtests/ui_tests/playwright/tests/mobile-ui-audit.spec.js304 placeholder: textarea.getAttribute('placeholder'),CODE
LOWtests/utilities/test_openalex_enrichment.py305 results, email="researcher@example.org"CODE
LOWtests/utilities/test_openalex_enrichment.py308 assert call.kwargs["params"]["mailto"] == "researcher@example.org"CODE
LOWtests/utilities/test_openalex_enrichment.py309 assert "researcher@example.org" in call.kwargs["headers"]["User-Agent"]CODE
LOWtests/utilities/test_citation_normalizer.py79 result = _parse_authors_list(["John Smith", "Jane Doe"])CODE
LOWtests/news/test_base_recommender.py4114 user_id = "user@example.com"CODE
LOWtests/news/test_preference_storage.py868 "user_id": "user@example.com",CODE
LOWtests/news/test_preference_storage.py875 result = storage.get_user_preferences("user@example.com")CODE
LOWtests/news/test_preference_storage.py877 assert result["user_id"] == "user@example.com"CODE
LOWtests/news/test_base_card_extended.py879 "people": ["John Doe", "Jane Smith"],CODE
LOWtests/news/test_base_card_extended.py885 assert "John Doe" in card.entities["people"]CODE
LOWtests/llm_providers/test_custom_openai_endpoint.py163 assert call_kwargs["api_key"] == "dummy-key-for-models-list"CODE
LOWtests/llm_providers/test_custom_openai_endpoint.py91 assert call_kwargs["api_key"] == "dummy-key-for-models-list"CODE
LOWtests/llm_providers/test_openai_base_coverage.py90 # dummy-key was passedCOMMENT
LOWtests/llm_providers/test_openai_base_coverage.py6- create_llm() uses 'dummy-key' when api_key_setting is None (local providers)STRING
LOWtests/llm_providers/test_openai_base_coverage.py9- _create_llm_instance() uses dummy-key by defaultSTRING
LOW…lm_providers/implementations/test_lmstudio_provider.py310 """Falls back to parent's dummy-key path when no key is configured."""STRING
LOW…lm_providers/implementations/test_lmstudio_provider.py327 assert call_kwargs["api_key"] == "dummy-key-for-models-list"CODE
LOWtests/hooks/test_check_author_identity.py76 assert not mod._is_noreply("user@example.com")STRING
LOWtests/document_loaders/test_upload_integration.py218 assert "John Doe" in extracted or "name" in extractedSTRING
LOW…_engines/engines/test_search_engine_serper_coverage.py100 "attributes": {"Author": "Jane Doe"},CODE
LOW…_engines/engines/test_search_engine_serper_coverage.py111 assert p["attributes"] == {"Author": "Jane Doe"}CODE
LOW…_search_engines/engines/test_search_engine_openalex.py164 {"author": {"display_name": "John Doe"}},CODE
LOW…_search_engines/engines/test_search_engine_openalex.py189 assert "John Doe" in previews[0]["authors"]CODE
LOW…_search_engines/engines/test_search_engine_openalex.py492 "authors": "John Doe",CODE
LOW…_search_engines/engines/test_search_engine_openalex.py506 assert results[0]["metadata"]["authors"] == "John Doe"CODE
LOW…engines/engines/test_search_engine_semantic_scholar.py504 "authors": [{"name": "John Doe"}],CODE
LOW…_search_engines/engines/test_search_engine_guardian.py259 "byline": "John Doe",CODE
17 more matches not shown…
AI Structural Patterns60 hits · 52 pts
SeverityFileLineSnippetContext
LOWtests/web/routes/test_research_routes_deep_coverage.py48CODE
LOWtests/web/routes/_settings_route_helpers.py27CODE
LOWtests/web/routes/test_settings_routes_deep_coverage2.py56CODE
LOWtests/web/routes/test_context_overflow_coverage.py168CODE
LOWtests/web/routes/test_research_routes_extra_coverage.py50CODE
LOWtests/web/routes/test_context_overflow_logic.py267CODE
LOWtests/web/services/test_settings_manager_extended.py24CODE
LOWtests/web/services/test_settings_manager.py21CODE
LOWtests/news/test_folder_manager_behavior.py18CODE
LOWtests/web_search_engines/engines/test_arxiv_coverage.py36CODE
LOW…s/web_search_engines/engines/test_guardian_coverage.py50CODE
LOW…mples/benchmarks/browsecomp/run_browsecomp_fixed_v2.py81CODE
LOWsrc/local_deep_research/search_system.py58CODE
LOW…search_system/strategies/focused_iteration_strategy.py54CODE
LOW…earch_system/strategies/topic_organization_strategy.py25CODE
LOW…nced_search_system/strategies/source_based_strategy.py60CODE
LOW…earch/research_library/services/library_rag_service.py106CODE
LOW…_research/research_library/services/library_service.py265CODE
LOWsrc/local_deep_research/news/api.py1038CODE
LOW…/local_deep_research/benchmarks/benchmark_functions.py25CODE
LOW…/local_deep_research/benchmarks/benchmark_functions.py112CODE
LOW…/local_deep_research/benchmarks/benchmark_functions.py199CODE
LOWsrc/local_deep_research/benchmarks/runners.py41CODE
LOWsrc/local_deep_research/benchmarks/optimization/api.py15CODE
LOW…p_research/benchmarks/optimization/optuna_optimizer.py1068CODE
LOW…p_research/benchmarks/optimization/optuna_optimizer.py98CODE
LOWsrc/local_deep_research/api/benchmark_functions.py21CODE
LOWsrc/local_deep_research/api/benchmark_functions.py75CODE
LOWsrc/local_deep_research/api/benchmark_functions.py129CODE
LOWsrc/local_deep_research/api/research_functions.py33CODE
LOWsrc/local_deep_research/api/research_functions.py166CODE
LOWsrc/local_deep_research/api/research_functions.py344CODE
LOW…p_research/web_search_engines/search_engine_factory.py624CODE
LOW…deep_research/web_search_engines/search_engine_base.py277CODE
LOW…web_search_engines/engines/search_engine_google_pse.py24CODE
LOW…/web_search_engines/engines/search_engine_scaleserp.py22CODE
LOW…search/web_search_engines/engines/search_engine_ddg.py21CODE
LOW…rch/web_search_engines/engines/search_engine_mojeek.py38CODE
LOW…ch/web_search_engines/engines/search_engine_serpapi.py21CODE
LOW…rch/web_search_engines/engines/search_engine_tavily.py22CODE
LOW…search/web_search_engines/engines/search_engine_exa.py22CODE
LOW…rch/web_search_engines/engines/search_engine_pubmed.py30CODE
LOW…_search_engines/engines/search_engine_stackexchange.py57CODE
LOW…rch/web_search_engines/engines/search_engine_zenodo.py34CODE
LOW…rch/web_search_engines/engines/search_engine_serper.py28CODE
LOW…ch/web_search_engines/engines/search_engine_searxng.py96CODE
LOW…h/web_search_engines/engines/search_engine_guardian.py21CODE
LOW…arch/web_search_engines/engines/search_engine_brave.py24CODE
LOW…arch/web_search_engines/engines/search_engine_arxiv.py26CODE
LOW…h/web_search_engines/engines/search_engine_tinyfish.py28CODE
LOW…eep_research/web_search_engines/engines/full_search.py26CODE
LOW…h/web_search_engines/engines/search_engine_openalex.py26CODE
LOW…rch/web_search_engines/engines/search_engine_github.py32CODE
LOW…h/web_search_engines/engines/search_engine_nasa_ads.py26CODE
LOW…arch/web_search_engines/engines/search_engine_sofya.py48CODE
LOW…/web_search_engines/engines/search_engine_gutenberg.py32CODE
LOW…arch_engines/engines/search_engine_semantic_scholar.py31CODE
LOW…h/web_search_engines/engines/search_engine_wikinews.py58CODE
LOW…_search_engines/engines/search_engine_elasticsearch.py76CODE
LOW…/web_search_engines/engines/search_engine_paperless.py46CODE
Dead Code11 hits · 19 pts
SeverityFileLineSnippetContext
MEDIUM…ch_library/routes/test_rag_routes_indexing_coverage.py228CODE
MEDIUM…search_library/routes/test_rag_routes_deep_coverage.py1182CODE
MEDIUM…search_library/routes/test_rag_routes_deep_coverage.py1209CODE
MEDIUM…search_library/routes/test_rag_routes_deep_coverage.py1234CODE
MEDIUMtests/web/queue/test_queue_manager.py35CODE
MEDIUMtests/web/routes/test_context_overflow_coverage.py649CODE
MEDIUMtests/web/routes/test_context_overflow_coverage.py873CODE
MEDIUMtests/web/routes/test_context_overflow_api_http.py328CODE
MEDIUMtests/web/routes/test_context_overflow_api_http.py476CODE
MEDIUM…rch_engines/engines/test_embedding_manager_coverage.py481CODE
MEDIUM…rch_engines/engines/test_embedding_manager_coverage.py626CODE
Synthetic Comment Markers2 hits · 15 pts
SeverityFileLineSnippetContext
HIGHtests/test_programmatic_custom_llm_retriever.py76 # Using gemma3n:e4b as requestedCOMMENT
HIGH.github/workflows/release.yml698 # 1. AI-generated narrative (model = vars.AI_MODEL). Fed theCOMMENT
Cross-Language Confusion (JS/TS)2 hits · 12 pts
SeverityFileLineSnippetContext
HIGHtests/ui_tests/test_lib/test_results.js203 print() {CODE
HIGH…cal_deep_research/web/static/js/components/settings.js2698 * @return True if the content is valid.COMMENT
Slop Phrases6 hits · 12 pts
SeverityFileLineSnippetContext
MEDIUM…tation_handlers/test_forced_answer_citation_handler.py90 content = "I cannot provide a specific answer based on the sources."CODE
MEDIUMexamples/optimization/example_quick_optimization.py35 This is just for demonstration purposes.STRING
MEDIUMexamples/optimization/example_quick_optimization.py274 "\nNote: This is a simulation for demonstration purposes only. Real optimization"CODE
MEDIUMexamples/optimization/multi_benchmark_simulation.py176 """Simulates Optuna optimizer for demonstration purposes."""STRING
MEDIUMexamples/optimization/multi_benchmark_simulation.py406 print("\nNote: This is a simulation for demonstration purposes only.")CODE
MEDIUM.github/workflows/codeql.yml61 # If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize howCOMMENT
Example Usage Blocks4 hits · 7 pts
SeverityFileLineSnippetContext
LOWdocker-compose.gpu.override.yml11# Usage:COMMENT
LOWscripts/dev/restart_server.sh4# Usage:COMMENT
LOW.github/scripts/combine-ai-reviews.sh13# Usage:COMMENT
LOWsrc/local_deep_research/web/routes/route_registry.py354 # Example usageCOMMENT
Overly Generic Function Names4 hits · 5 pts
SeverityFileLineSnippetContext
LOWtests/security/test_env_vars_hook.py120def process_data(data):CODE
LOWtests/utilities/test_thread_context.py221 def my_function():CODE
LOWtests/utilities/test_db_utils.py242 def my_function():CODE
LOWtests/hooks/test_check_weak_tests.py150 "def helper():\n assert True\n",CODE