AI Slop Code RIsk Monitor

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.

42.9 High pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for LearningCircuit/local-deep-research, a Python project with 9,180 GitHub stars. SynthScan examined 1,635,271 lines of code across 4329 source files, recording 50809 pattern matches distributed across 27 syntactic categories. The legacy adjusted pattern signal is 42.9 (High pattern signal); it is not an authorship estimate.

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

42.9
Adjusted Signal
42.9
Raw Pattern Score
100%
Time Factor
2026-10-11
Last Push
9.2K
Stars
Python
Language
1.6M
Lines of Code
4.3K
Files
50.8K
Pattern Hits
2026-10-12
Scan Date
0.16
HC Hit Rate

Risk Review · v3

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

Cognitive Ownership Risk 68.2/100 · HIGH

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

Hallucinated Dependency & Supply Chain Risk 5.0/100 · LOW

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

Agent Over-Engineering Ratio 85.6/100 · CRITICAL

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

PR Review Velocity Impact 88.5/100 · CRITICAL

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

What These Metrics Mean

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

Pattern-Signal History

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

Severity Breakdown

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

CRITICAL 30HIGH 676MEDIUM 8074LOW 42029

Directory Score Breakdown

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

Pattern Findings

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

Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Hyper-Verbose Identifiers36160 hits · 32236 pts
SeverityFileLineSnippetContext
LOW.pre-commit-hooks/check-release-gate-needs.py99def check_local_workflow_refs(errors: list[str]) -> None:CODE
LOW.pre-commit-hooks/custom-checks.py152 def _format_string_references_exception(self, node):CODE
LOW.pre-commit-hooks/custom-checks.py176 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.py626 def _prescan_safe_patch_receivers(self, tree: ast.Module) -> None:CODE
LOW.pre-commit-hooks/check-sensitive-logging.py696 def _references_before_import(CODE
LOW.pre-commit-hooks/check-sensitive-logging.py746 def _namespace_vocabulary_hit(tree: ast.Module) -> Optional[tuple]:CODE
LOW.pre-commit-hooks/check-sensitive-logging.py884 def _prescan_getattr_binding_state(self, tree: ast.Module) -> None:CODE
LOW.pre-commit-hooks/check-sensitive-logging.py1704 def _compute_wrapper_import_hint(self) -> str:CODE
LOW.pre-commit-hooks/check-sensitive-logging.py1813 def _apply_definite_subject_assignments(CODE
LOW.pre-commit-hooks/check-sensitive-logging.py1862 def _pattern_exception_aliases(CODE
LOW.pre-commit-hooks/check-sensitive-logging.py2147 def _is_literal_dynamic_import(node: ast.AST, module: str) -> bool:CODE
LOW.pre-commit-hooks/check-sensitive-logging.py2239 def _check_import_from_secure_dir(self, node: ast.ImportFrom) -> None:CODE
LOW.pre-commit-hooks/check-sensitive-logging.py2759 def _check_exc_info_on_warning(self, node: ast.Call) -> None:CODE
LOW.pre-commit-hooks/check-sensitive-logging.py2812 def _interpolated_query_names(self, expr: ast.AST) -> List[str]:CODE
LOW.pre-commit-hooks/check-sensitive-logging.py2913 def _check_search_query_in_log(self, node: ast.Call) -> None:CODE
LOW.pre-commit-hooks/check-sensitive-logging.py2951 def _check_exception_var_in_log(self, node: ast.Call) -> None:CODE
LOW.pre-commit-hooks/check-sensitive-logging.py3094 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.py91def _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.py152 def test_environment_variable_type_conversion(self, monkeypatch):CODE
LOWtests/test_api_settings_validation.py170 def test_invalid_environment_variable_values(self, monkeypatch):CODE
LOWtests/test_api_settings_validation.py182 def test_environment_variable_precedence(self, monkeypatch):CODE
LOWtests/test_api_settings_validation.py206 def test_minimal_configuration(self):CODE
LOWtests/test_api_settings_validation.py219 def test_common_research_presets(self):CODE
LOWtests/test_api_settings_validation.py303 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.py65def assert_search_result_format(result: Dict[str, Any]):CODE
LOWtests/test_utils.py115def create_test_research_context(query: str = "test query") -> Dict[str, Any]:CODE
LOWtests/test_utils.py160def assert_progress_callback_called(CODE
LOW⚡tests/test_search_system_factory_high_value.py25 def test_all_entries_are_dicts(self):CODE
36100 more matches not shown…
Decorative Section Separators7219 hits · 26532 pts
SeverityFileLineSnippetContext
MEDIUM⚡docker-compose.gpu.override.yml1# ============================================================================COMMENT
MEDIUM⚡docker-compose.gpu.override.yml3# ============================================================================COMMENT
MEDIUM⚡docker-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.txt49# ---------------------------------------------------------------------------COMMENT
MEDIUM.file-whitelist.txt51# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡.file-whitelist.txt65# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡.file-whitelist.txt68# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡.file-whitelist.txt74# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡.file-whitelist.txt76# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡.file-whitelist.txt84# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡.file-whitelist.txt86# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡.file-whitelist.txt96# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡.file-whitelist.txt98# ---------------------------------------------------------------------------COMMENT
MEDIUM.file-whitelist.txt118# ---------------------------------------------------------------------------COMMENT
MEDIUM.file-whitelist.txt121# ---------------------------------------------------------------------------COMMENT
MEDIUMpyproject.toml506# ---------------------------------------------------------------------------COMMENT
MEDIUMpyproject.toml508# ---------------------------------------------------------------------------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.yaml166 # ==========================================================================COMMENT
MEDIUM.grype.yaml201 # --------------------------------------------------------------------------COMMENT
MEDIUM.grype.yaml214 # --------------------------------------------------------------------------COMMENT
MEDIUM.grype.yaml256 # ==========================================================================COMMENT
MEDIUM.grype.yaml264 # ==========================================================================COMMENT
MEDIUM.grype.yaml306 # ==========================================================================COMMENT
MEDIUM.grype.yaml308 # ==========================================================================COMMENT
MEDIUM.grype.yaml569 # ==========================================================================COMMENT
MEDIUM.grype.yaml585 # ==========================================================================COMMENT
MEDIUM⚡docker-compose.yml34 # ============================================================================COMMENT
MEDIUM⚡docker-compose.yml36 # ============================================================================COMMENT
MEDIUM⚡docker-compose.yml46 # ============================================================================COMMENT
MEDIUM⚡docker-compose.yml48 # ============================================================================COMMENT
MEDIUM⚡docker-compose.yml54 # ============================================================================COMMENT
MEDIUM⚡docker-compose.yml59 # ============================================================================COMMENT
MEDIUM⚡docker-compose.yml66 # ============================================================================COMMENT
MEDIUM⚡docker-compose.yml68 # ============================================================================COMMENT
MEDIUM⚡docker-compose.yml78 # ============================================================================COMMENT
MEDIUM⚡docker-compose.yml82 # ============================================================================COMMENT
MEDIUM⚡docker-compose.yml86 # ============================================================================COMMENT
MEDIUM⚡docker-compose.yml89 # ============================================================================COMMENT
MEDIUM⚡docker-compose.yml92 # ============================================================================COMMENT
MEDIUM⚡docker-compose.yml98 # ============================================================================COMMENT
MEDIUM⚡docker-compose.yml103 # ============================================================================COMMENT
MEDIUM⚡docker-compose.yml109 # ============================================================================COMMENT
MEDIUM⚡docker-compose.yml112 # ============================================================================COMMENT
MEDIUM⚡docker-compose.yml118 # ============================================================================COMMENT
7159 more matches not shown…
Excessive Try-Catch Wrapping2230 hits · 2104 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.py116 except Exception as e:CODE
MEDIUM.pre-commit-hooks/check-absolute-module-paths.py117 print(f"Error reading {filename}: {e}")CODE
LOW.pre-commit-hooks/check-absolute-module-paths.py134 except Exception as e:CODE
MEDIUM.pre-commit-hooks/check-absolute-module-paths.py135 print(f"Error parsing {filename}: {e}")CODE
LOW.pre-commit-hooks/check-absolute-module-paths.py149 except Exception as e:CODE
MEDIUM.pre-commit-hooks/check-absolute-module-paths.py150 print(f"Error reading {filename}: {e}")CODE
LOW.pre-commit-hooks/check-env-vars.py287 except Exception as e:CODE
MEDIUM.pre-commit-hooks/check-env-vars.py288 print(f"Error reading {filename}: {e}")CODE
LOW.pre-commit-hooks/check-env-vars.py305 except Exception as e:CODE
MEDIUM.pre-commit-hooks/check-env-vars.py306 print(f"Error parsing {filename}: {e}")CODE
LOW.pre-commit-hooks/check-pathlib-usage.py177 except Exception as e:CODE
MEDIUM.pre-commit-hooks/check-pathlib-usage.py178 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/check-no-src-test-imports.py111 except Exception as e: # pragma: no cover - unreadable fileCODE
MEDIUM.pre-commit-hooks/check-no-src-test-imports.py112 print(f"Error reading {filename}: {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.py539 except Exception as e:CODE
MEDIUM.pre-commit-hooks/custom-checks.py540 print(f"Error reading {filename}: {e}")CODE
LOW.pre-commit-hooks/custom-checks.py566 except Exception as e:CODE
MEDIUM.pre-commit-hooks/custom-checks.py567 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.py3252 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.py205 except Exception:CODE
LOW.pre-commit-hooks/check-settings-key-namespace.py224 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.py84 except Exception as exc:CODE
LOWtests/test_context_overflow_detection.py548 except Exception as e:CODE
MEDIUMtests/conftest.py534def _get_json(self, force=False, silent=False):CODE
LOW⚡tests/conftest.py460 except Exception: # pragma: no cover - starlette always importable hereCODE
2170 more matches not shown…
Empty Error Handlers237 hits · 1185 pts
SeverityFileLineSnippetContext
HIGH.pre-commit-hooks/check-absolute-module-paths.py131except SyntaxError:CODE
HIGH.pre-commit-hooks/check-env-vars.py302except SyntaxError:CODE
HIGH.pre-commit-hooks/actionlint-self-repository.py82except yaml.YAMLError:CODE
HIGH.pre-commit-hooks/check-silent-cleanup.py207except SyntaxError:CODE
HIGH.pre-commit-hooks/custom-checks.py563except SyntaxError:CODE
HIGH.pre-commit-hooks/check-safe-requests.py114except SyntaxError:CODE
HIGH.pre-commit-hooks/check-service-context-managers.py425except SyntaxError:CODE
HIGH.pre-commit-hooks/check-settings-key-namespace.py133except OSError:CODE
HIGHtests/conftest.py49except ImportError:CODE
HIGHtests/conftest.py347except (ImportError, AttributeError):CODE
HIGHtests/conftest.py366except (ImportError, AttributeError):CODE
HIGHtests/conftest.py460except Exception: # pragma: no cover - starlette always importable hereCODE
HIGHtests/conftest.py466except Exception: # pragma: no cover - httpx always importable hereCODE
HIGHtests/conftest.py79except ImportError:CODE
HIGHtests/conftest.py99except ImportError:CODE
HIGHtests/conftest.py118except ImportError:CODE
HIGHtests/conftest.py120except Exception:CODE
HIGHtests/conftest.py149except ImportError:CODE
HIGHtests/conftest.py157except ImportError:CODE
HIGHtests/conftest.py177except (ImportError, AttributeError):CODE
HIGHtests/conftest.py844except Exception:CODE
HIGHtests/conftest.py92except Exception:CODE
HIGHtests/test_url_utils_simple.py36except ValueError:CODE
HIGHtests/run_all_tests.py297except Exception:CODE
HIGHtests/settings/env_vars/test_env_var_usage.py211except Exception:CODE
HIGHtests/database/test_post_login_settings_atomicity.py67except Exception:CODE
HIGHtests/database/test_encryption_threads.py147except Exception:CODE
HIGHtests/database/test_encrypted_db_manager.py1504except Exception:CODE
HIGHtests/database/backup/test_backup_service.py5845except Exception:CODE
HIGH…s/advanced_search_system/test_list_content_coercion.py291except ValueError:CODE
HIGHtests/advanced_search_system/filters/conftest.py34except ImportError:CODE
HIGH…ts/advanced_search_system/tools/_fetch_sink_support.py168except ValueError:CODE
HIGHtests/llm/test_llm_cancellation.py66except ResearchTerminatedException:CODE
HIGHtests/llm/test_llm_cancellation.py102except ResearchTerminatedException:CODE
HIGHtests/llm/test_llm_cancellation.py135except ResearchTerminatedException:CODE
HIGHtests/llm/test_llm_cancellation.py214except ResearchTerminatedException:CODE
HIGHtests/llm/test_llm_cancellation.py269except ResearchTerminatedException:CODE
HIGHtests/llm/test_llm_cancellation.py306except ResearchTerminatedException:CODE
HIGHtests/llm/test_llm_cancellation.py347except ResearchTerminatedException:CODE
HIGHtests/llm/test_llm_cancellation.py389except ResearchTerminatedException:CODE
HIGHtests/llm/test_llm_cancellation.py433except ResearchTerminatedException:CODE
HIGHtests/llm/test_llm_cancellation.py464except ResearchTerminatedException:CODE
HIGHtests/llm/test_llm_cancellation.py491except ResearchTerminatedException:CODE
HIGHtests/embeddings/test_embeddings_config_behavior.py246except Exception:CODE
HIGHtests/embeddings/test_embeddings_config.py189except Exception:CODE
HIGHtests/chat/conftest.py243except Exception:CODE
HIGHtests/chat/conftest.py502except Exception:CODE
HIGHtests/chat/test_chat_fuzz.py245except ValueError:CODE
HIGHtests/content_fetcher/test_security.py379except (TypeError, AttributeError):CODE
HIGHtests/config/test_thread_settings_high_value.py58except ValueError:CODE
HIGHtests/security/test_path_validator_security.py233except ValueError:CODE
HIGHtests/security/test_credential_leak_phase3.py119except Exception:CODE
HIGHtests/security/test_credential_leak_phase3.py125except Exception:CODE
HIGHtests/security/test_credential_leak_followup.py338except Exception:CODE
HIGHtests/security/test_credential_leak_followup.py118except requests.exceptions.RequestException:CODE
HIGHtests/security/test_egress_policy.py1168except Exception:CODE
HIGHtests/security/test_egress_policy.py1212except Exception:CODE
HIGHtests/security/test_egress_policy.py1228except Exception:CODE
HIGHtests/security/test_egress_policy.py1496except Exception:CODE
HIGHtests/security/test_db_adjacent_backup_posture.py148except (FileNotFoundError, PermissionError):CODE
177 more matches not shown…
Cross-File Repetition224 hits · 1120 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/vector_stores/test_no_plaintext_property.py0every on-disk file under ``root`` that contains ``needle`` (raw bytes).STRING
HIGH…sts/vector_stores/test_no_plaintext_production_path.py0every on-disk file under ``root`` that contains ``needle`` (raw bytes).STRING
HIGHtests/vector_stores/test_cross_tenant_isolation.py0every on-disk file under ``root`` that contains ``needle`` (raw bytes).STRING
HIGHtests/research_library/test_document_full_lifecycle.py0every on-disk file under ``root`` that contains ``needle`` (raw bytes).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
HIGHtests/database/test_change_password_validation.py0a databasemanager writing to an isolated data directory.STRING
HIGHtests/security/test_login_cached_connection_password.py0a databasemanager writing to an isolated data directory.STRING
HIGH…s/security/test_change_password_evicts_stale_engine.py0a databasemanager writing to an isolated data directory.STRING
HIGH…ecurity/test_login_cached_connection_password_extra.py0a databasemanager writing to an isolated data directory.STRING
HIGH…ity/test_login_cached_connection_password_lifecycle.py0a databasemanager writing to an isolated data directory.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/test_openai_base.py0supply a provider_key on the abstract base for these direct tests. openaicompatibleprovider intentionally declares no ``STRING
HIGHtests/llm/providers/test_openai_base.py0supply a provider_key on the abstract base for these direct tests. openaicompatibleprovider intentionally declares no ``STRING
HIGHtests/llm_providers/test_openai_base.py0supply a provider_key on the abstract base for these direct tests. openaicompatibleprovider intentionally declares no ``STRING
HIGHtests/llm/providers/test_openai_base_deep_coverage.py0supply a provider_key on the abstract base for these direct tests. openaicompatibleprovider intentionally declares no ``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…lm_providers/implementations/test_requesty_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
HIGHtests/security/test_api_v1_boundary_fastapi.py0a testclient with its own, monotonically assigned peer address.STRING
HIGHtests/security/test_research_password_gate_fastapi.py0a testclient with its own, monotonically assigned peer address.STRING
HIGH…/security/test_followup_and_settings_guards_fastapi.py0a testclient with its own, monotonically assigned peer address.STRING
HIGHtests/security/test_api_v1_boundary_fastapi.py0a csrf token bound to this client's session (middleware-enforced).STRING
HIGHtests/security/test_research_password_gate_fastapi.py0a csrf token bound to this client's session (middleware-enforced).STRING
HIGH…/security/test_followup_and_settings_guards_fastapi.py0a csrf token bound to this client's session (middleware-enforced).STRING
HIGHtests/security/test_db_connection_temp_store_posture.py0a databasemanager writing to an isolated data directory. same self-contained pattern as the round-1 files, with the sancSTRING
HIGH…curity/test_db_connection_planted_journal_artifacts.py0a databasemanager writing to an isolated data directory. same self-contained pattern as the round-1 files, with the sancSTRING
HIGH…sts/security/test_db_connection_wal_rollback_attack.py0a databasemanager writing to an isolated data directory. same self-contained pattern as the round-1 files, with the sancSTRING
HIGHtests/security/test_db_connection_symlink_toctou.py0a databasemanager writing to an isolated data directory. same self-contained pattern as the round-1 files, with the sancSTRING
HIGHtests/security/test_db_connection_path_and_accessors.py0a databasemanager writing to an isolated data directory. same self-contained pattern as the round-1 files, with the sancSTRING
HIGH…s/security/test_db_connection_change_password_edges.py0a databasemanager writing to an isolated data directory. same self-contained pattern as the round-1 files, with the sancSTRING
HIGHtests/security/test_db_connection_verifier_memory.py0a databasemanager writing to an isolated data directory. same self-contained pattern as the round-1 files, with the sancSTRING
HIGHtests/security/test_db_connection_umask_perms.py0a databasemanager writing to an isolated data directory. same self-contained pattern as the round-1 files, with the sancSTRING
HIGH…ecurity/test_db_connection_close_and_salt_lifecycle.py0a databasemanager writing to an isolated data directory. same self-contained pattern as the round-1 files, with the sancSTRING
HIGH…sts/security/test_db_connection_readonly_hostile_fs.py0a databasemanager writing to an isolated data directory. same self-contained pattern as the round-1 files, with the sancSTRING
HIGHtests/security/test_db_connection_wal_hygiene.py0a databasemanager writing to an isolated data directory. same self-contained pattern as the round-1 files, with the sancSTRING
HIGHtests/security/test_db_connection_integrity_swap.py0a databasemanager writing to an isolated data directory. same self-contained pattern as the round-1 files, with the sancSTRING
HIGHtests/security/test_db_connection_hostile_passwords.py0a databasemanager writing to an isolated data directory. same self-contained pattern as the round-1 files, with the sancSTRING
HIGHtests/security/test_db_connection_legacy_salt.py0a databasemanager writing to an isolated data directory. same self-contained pattern as the round-1 files, with the sancSTRING
HIGHtests/security/test_db_connection_session_lifetime.py0a databasemanager writing to an isolated data directory. same self-contained pattern as the round-1 files, with the sancSTRING
HIGHtests/security/test_db_connection_tamper_resilience.py0a databasemanager writing to an isolated data directory. same self-contained pattern as the round-1 files, with the sancSTRING
HIGHtests/security/test_db_connection_create_safety.py0a databasemanager writing to an isolated data directory. same self-contained pattern as the round-1 files, with the sancSTRING
164 more matches not shown…
Self-Referential Comments327 hits · 1006 pts
SeverityFileLineSnippetContext
MEDIUM.pre-commit-hooks/check-service-context-managers.py195 # Create a fake function body from module-level statementsCOMMENT
MEDIUMtests/conftest.py744 # Create a test client (FastAPI or legacy Flask)COMMENT
MEDIUMtests/conftest.py1080 # 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
MEDIUM⚡tests/test_report_generator.py425 # Define a structure with multiple sectionsCOMMENT
MEDIUMtests/test_report_generator.py473 # 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.py158 # Create a mock LLM instanceCOMMENT
MEDIUMtests/test_api_key_configuration.py181 # Create a mock LLM instanceCOMMENT
MEDIUMtests/test_api_key_configuration.py216 # Create a mock LLM instanceCOMMENT
MEDIUMtests/test_api_key_configuration.py239 # 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.py255 # Create a mock strategy class and instanceCOMMENT
MEDIUMtests/test_search_system.py310 # Create the search system (uses source-based strategy by default)COMMENT
MEDIUMtests/metrics/test_query_utils.py15# Create a model for SQLAlchemy column testingCOMMENT
MEDIUM⚡tests/settings/test_generate_config_docs.py347 # 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
MEDIUM⚡tests/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.py2490 # Create main databaseCOMMENT
MEDIUMtests/database/test_sqlcipher_integration.py2852 # Create main databaseCOMMENT
MEDIUMtests/database/test_sqlcipher_integration.py3160 # Create main databaseCOMMENT
MEDIUMtests/database/test_sqlcipher_integration.py4249 # Create an encrypted database firstCOMMENT
MEDIUMtests/database/test_sqlcipher_integration.py4311 # Create an encrypted database with a tableCOMMENT
MEDIUMtests/database/test_orm_conversions.py80 # Create a research entry first with UUIDCOMMENT
MEDIUM⚡tests/database/test_alembic_migrations.py525 # Create a corrupted alembic_version tableCOMMENT
MEDIUM⚡tests/database/test_alembic_migrations.py3712 # Create an engine with invalid credentials in URLCOMMENT
MEDIUM⚡tests/database/test_alembic_migrations.py4114 # Create a mock migrations directory structureCOMMENT
MEDIUM⚡tests/database/test_alembic_migrations.py4119 # 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.py1144 # Create a conflicting table structureCOMMENT
MEDIUMtests/database/test_alembic_migrations.py2287 # Create a partial state - some tables but not allCOMMENT
MEDIUMtests/database/test_alembic_migrations.py2789 # Create a very long stringCOMMENT
MEDIUMtests/database/test_alembic_migrations.py3676 # Create a read-only directory scenarioCOMMENT
MEDIUMtests/database/test_alembic_migrations.py3883 # Create a scenario that will cause a migration errorCOMMENT
MEDIUMtests/database/test_alembic_migrations.py4057 # Create a mock symlinked path scenarioCOMMENT
MEDIUMtests/database/test_alembic_migrations.py4140 # Create a mock migrations directory with secure filesCOMMENT
MEDIUMtests/database/test_alembic_migrations.py4164 # Create a mock migrations directory (permissions don't matter)COMMENT
MEDIUM⚡tests/database/test_alembic_migrations.py4531 # Create a fresh Alembic databaseSTRING
MEDIUM⚡tests/database/test_alembic_migrations.py4536 # 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.py919 # Create a plain SQLite database (no encryption needed for this test)COMMENT
MEDIUM⚡tests/database/backup/test_backup_service.py2296 # Create a fake database fileCOMMENT
MEDIUM⚡tests/database/backup/test_backup_service.py2304 # Create a backup directory with a double quote in the pathCOMMENT
267 more matches not shown…
Over-Commented Block1160 hits · 862 pts
SeverityFileLineSnippetContext
LOWdocker-compose.gpu.override.yml1# ============================================================================COMMENT
LOWdocker-compose.unraid.yml1# ============================================================================COMMENT
LOW.pre-commit-config.yaml581 language: scriptCOMMENT
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.toml121 # Pinned to the 0.136.x line: fastapi 0.138 breaks app.include_routerCOMMENT
LOWpyproject.toml141 # ``test_production_app_wraps_every_sync_api_route`` (BOTH theCOMMENT
LOWpyproject.toml161 # app.include_router (318 routes -> ~22). That was a misdiagnosis:COMMENT
LOWpyproject.toml501 "local_deep_research.utilities.*",COMMENT
LOWpyproject.toml521# Categories are intentionally lean — the auto-generated PR list alreadyCOMMENT
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 # --------------------------------------------------------------------------COMMENT
LOW.grype.yaml261 # NOT hide unknown, so an explicit entry is needed (empirically confirmed:COMMENT
LOW.grype.yaml421 - vulnerability: CVE-2026-7010COMMENT
LOW.grype.yaml561 reason: "High vuln in nltk 3.9.3 (Zip Slip in downloader). Transitive dep; project never calls nltk.download(). No fCOMMENT
LOW.gitleaks.toml121regexes = ['''^alice123$''']COMMENT
LOW.gitleaks.toml381# scope is set by the CLI (--source / --log-opts); to EXCLUDE paths, add themCOMMENT
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.yml81COMMENT
LOWdocker-compose.yml101 # Get your API key from https://openrouter.ai/COMMENT
LOWdocker-compose.yml121 # The extra_hosts setting above enables this on Linux.COMMENT
LOWdocker-compose.yml141 soft: -1COMMENT
LOWdocker-compose.yml181 condition: service_startedCOMMENT
LOWeslint.config.js241 "chai-friendly/no-unused-expressions": "error",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 # - escapeHtml() inline fallbacks in component filesCOMMENT
LOWbearer.yml101 # Observable timing alerts (javascript_lang_observable_timing)COMMENT
LOWcommunity_benchmark_results/benchmark_template.yaml61test_details:COMMENT
LOW.pre-commit-hooks/check-research-id-type.py41 ),COMMENT
LOW.pre-commit-hooks/check-sensitive-logging.py141# own empty-result warning, undoes the fix for that engine.COMMENT
LOW.pre-commit-hooks/check-sensitive-logging.py161# ``query.split()`` reproduces the query modulo whitespace. This matcherCOMMENT
LOW.pre-commit-hooks/check-sensitive-logging.py181# physical line carrying the logging call's method name, and be followed by aCOMMENT
LOW.pre-commit-hooks/check-sensitive-logging.py261COMMENT
LOW.pre-commit-hooks/check-sensitive-logging.py281# assignment/augmented/annotated target, ``del``, walrus, loop/COMMENT
LOW.pre-commit-hooks/check-sensitive-logging.py301# the module object anywhere (``f(requests)``, ``x = requests``,COMMENT
LOW.pre-commit-hooks/check-sensitive-logging.py441# construct. A binding under one of these fields can only ADD an alias,COMMENT
LOW.pre-commit-hooks/check-sensitive-logging.py461# stays ordered);COMMENT
LOW.pre-commit-hooks/check-sensitive-logging.py581 # _NAME_DOMAIN_BASELINES. Flattened module-level final state,COMMENT
LOW.pre-commit-hooks/check-sensitive-logging.py2961 # logger.debug() is fine — not visible in productionCOMMENT
LOW.pre-commit-hooks/check-email-domains.py281# (``a中`` / ``中a`` round-trip through IDNA to ``xn--`` A-labels), so itCOMMENT
LOW.pre-commit-hooks/check-email-domains.py341 + _FINAL_GUARDCOMMENT
LOW.pre-commit-hooks/check-email-domains.py381# (``テストをご確認ください``) is prose, not a longer domain. Keep theCOMMENT
LOW.pre-commit-hooks/check-email-domains.py421# transliteration), where they open nothing. An opening apostrophe orCOMMENT
LOW.pre-commit-hooks/check-email-domains.py441# assertions joined by ordinary alternation, each internally fixed-width.COMMENT
LOW.pre-commit-hooks/check-email-domains.py501 return spansCOMMENT
LOW.pre-commit-hooks/check-email-domains.py521URI_USERINFO_RE = re.compile(COMMENT
LOW.pre-commit-hooks/check-email-domains.py541# still breaks the asset boundary.COMMENT
LOW.pre-commit-hooks/check-email-domains.py581# escape sequence, not an identity: ``"\n@router.get"`` in a Python string,COMMENT
LOWtests/conftest.py161 #COMMENT
LOWtests/conftest.py321 # That clear was inconsistent with the rest of the teardown: the credentialCOMMENT
LOWtests/test_advertised_but_dead_sweep.py1# allow: no-sut-import - this is a guardian test. It compares what theCOMMENT
LOWtests/test_advertised_but_dead_sweep.py61COMMENT
1100 more matches not shown…
Deep Nesting1005 hits · 724 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.py141CODE
LOW.pre-commit-hooks/check-absolute-module-paths.py188CODE
LOW.pre-commit-hooks/check-absolute-module-paths.py155CODE
LOW.pre-commit-hooks/check-env-vars.py115CODE
LOW.pre-commit-hooks/check-env-vars.py194CODE
LOW.pre-commit-hooks/check-env-vars.py236CODE
LOW.pre-commit-hooks/actionlint-self-repository.py29CODE
LOW.pre-commit-hooks/check-release-gate-needs.py99CODE
LOW.pre-commit-hooks/check-release-gate-needs.py136CODE
LOW.pre-commit-hooks/check-double-escaping.py30CODE
LOW.pre-commit-hooks/check-per-user-isolation.py213CODE
LOW.pre-commit-hooks/check-per-user-isolation.py289CODE
LOW.pre-commit-hooks/check-per-user-isolation.py462CODE
LOW.pre-commit-hooks/check-per-user-isolation.py542CODE
LOW.pre-commit-hooks/check-per-user-isolation.py663CODE
LOW.pre-commit-hooks/fix-exception-logging.py200CODE
LOW.pre-commit-hooks/check-layer-imports.py55CODE
LOW.pre-commit-hooks/check-silent-cleanup.py70CODE
LOW.pre-commit-hooks/custom-checks.py473CODE
LOW.pre-commit-hooks/custom-checks.py64CODE
LOW.pre-commit-hooks/custom-checks.py203CODE
LOW.pre-commit-hooks/custom-checks.py303CODE
LOW.pre-commit-hooks/check-url-for-targets.py268CODE
LOW.pre-commit-hooks/check-url-for-targets.py376CODE
LOW.pre-commit-hooks/check-external-resources.py57CODE
LOW.pre-commit-hooks/check-no-flask.py58CODE
LOW.pre-commit-hooks/check-no-flask.py70CODE
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.py520CODE
LOW.pre-commit-hooks/check-sensitive-logging.py626CODE
LOW.pre-commit-hooks/check-sensitive-logging.py696CODE
LOW.pre-commit-hooks/check-sensitive-logging.py746CODE
LOW.pre-commit-hooks/check-sensitive-logging.py884CODE
LOW.pre-commit-hooks/check-sensitive-logging.py1533CODE
LOW.pre-commit-hooks/check-sensitive-logging.py1610CODE
LOW.pre-commit-hooks/check-sensitive-logging.py1754CODE
LOW.pre-commit-hooks/check-sensitive-logging.py1813CODE
LOW.pre-commit-hooks/check-sensitive-logging.py1862CODE
LOW.pre-commit-hooks/check-sensitive-logging.py2020CODE
LOW.pre-commit-hooks/check-sensitive-logging.py2171CODE
LOW.pre-commit-hooks/check-sensitive-logging.py2239CODE
LOW.pre-commit-hooks/check-sensitive-logging.py2418CODE
LOW.pre-commit-hooks/check-sensitive-logging.py2534CODE
LOW.pre-commit-hooks/check-sensitive-logging.py2600CODE
LOW.pre-commit-hooks/check-sensitive-logging.py2812CODE
LOW.pre-commit-hooks/check-sensitive-logging.py3094CODE
LOW.pre-commit-hooks/check-sensitive-logging.py907CODE
LOW.pre-commit-hooks/check-sensitive-logging.py1003CODE
LOW.pre-commit-hooks/check-sensitive-logging.py1081CODE
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.py54CODE
945 more matches not shown…
Modern AI Meta-Vocabulary223 hits · 678 pts
SeverityFileLineSnippetContext
MEDIUM⚡.gitleaks.toml212 # RAG routes and services use db_password variable names (not actual secrets)COMMENT
MEDIUM⚡.gitleaks.toml215 # RAG service factory passes db_password variable names (not actual secrets)COMMENT
MEDIUM⚡.gitleaks.toml218 # the RAG factory (not actual secrets)COMMENT
MEDIUMdocker-compose.yml235 # 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/test_migration_decision_records.py199 # The removed working tables lagged these 17 mainline-added RAG-uploadCOMMENT
MEDIUMtests/test_relative_imports_resolve.py171# unfinished scaffolding, not a live user-facing regression, andCOMMENT
MEDIUMtests/vector_stores/test_legacy_cleanup_no_plaintext.py135 # Symlink it under the RAG cache root — os.walk will skip it silently.COMMENT
MEDIUMtests/vector_stores/test_legacy_cleanup_no_plaintext.py161 # A symlink to it under the RAG cache root.COMMENT
MEDIUMtests/vector_stores/test_legacy_cleanup_no_plaintext.py197 # EVERY file under the RAG cache — nothing plaintext left on disk.COMMENT
MEDIUM…sts/vector_stores/test_no_plaintext_production_path.py306 # Real service, only the embedding model faked (no network/model load).COMMENT
MEDIUM⚡tests/vector_stores/test_faiss_store.py385 # (embedding model/config changed) must fail closed on apply()'sCOMMENT
MEDIUM⚡tests/vector_stores/test_facade.py318# index_prepared() — bulk path used by parallel RAG indexing (PR #5235)COMMENT
MEDIUM⚡tests/vector_stores/test_legacy_rekey_orchestrator.py210 # test needs -- point the RAG cache root at tmp_path so it runsCOMMENT
MEDIUMtests/settings/test_settings_take_effect.py320 # Unrestricted context window => compute_max_tokens applies no 80% cap,COMMENT
MEDIUMtests/database/test_alembic_migrations.py6171 # 0018: restoring 'mcp'/'agentic' strategy references would recreateCOMMENT
MEDIUMtests/database/test_sqlalchemy_enum_lifecycle.py20 # RAG document listing formats its bound query in a log f-string.COMMENT
MEDIUM…/advanced_search_system/tools/test_library_resolver.py44 """Regression for #5381: RAG citations are emitted asSTRING
MEDIUM⚡tests/advanced_search_system/tools/test_fetch_modes.py343# The library RAG engine and the collection engine emitCOMMENT
MEDIUM⚡tests/followup/test_followup_context_contracts.py583# 4. Multi-turn context window boundsCOMMENT
MEDIUMtests/embeddings/test_openai_embeddings.py890 """The headline regression for #4195: a Nomic embedding modelSTRING
MEDIUMtests/deletion/test_cascade_integration.py315 # Add RAG indexCOMMENT
MEDIUM⚡tests/deletion/test_cascade_integration.py409 # Step 2: Delete RAG indexCOMMENT
MEDIUM⚡tests/deletion/test_collection_deletion.py250 # Verify RAG index existsCOMMENT
MEDIUM⚡tests/deletion/test_collection_deletion.py258 # Manually delete RAG index (should be done by service)COMMENT
MEDIUM⚡tests/deletion/test_collection_deletion.py266 # Verify RAG index is deletedCOMMENT
MEDIUMtests/deletion/test_collection_deletion.py290 # Delete RAG indexCOMMENT
MEDIUMtests/security/test_db_connection_many_users.py107 # The phase-2 RAG index re-key re-enters through vector-store importsCOMMENT
MEDIUM⚡tests/security/test_egress_run_classification.py294 # A RAG run over a collection embeds, so a cloud embedder is an exposingCOMMENT
MEDIUM⚡tests/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.py282 # `both` is retired (ADR-0007): it coerces to ADAPTIVE, and the RAG gateCOMMENT
MEDIUMtests/security/test_password_redaction_invariant.py73 # Phase-2 RAG re-key: rekey_user_indexes(username, db_password) holds theCOMMENT
MEDIUMtests/js/pages/note-detail.test.js43 // renderWikiLinkPlaceholder early-return — no DOM scaffold needed.COMMENT
MEDIUMtests/js/pages/note-detail-ai-handlers.test.js157// The remaining list-style handlers share the same scaffold; lock each one'sCOMMENT
MEDIUM⚡…ts/research_library/test_deletion_cascade_contracts.py671 # Both collections were handed to the RAG purge, not just one.COMMENT
MEDIUM⚡…ts/research_library/test_deletion_cascade_contracts.py981 # RAG index -- the same shape -- IS deleted by the same service. WithoutCOMMENT
MEDIUM…ts/research_library/test_deletion_cascade_contracts.py881 # its RAG index recordCOMMENT
MEDIUMtests/research_library/test_document_full_lifecycle.py335 # Phase 3: delete the document from RAG. Search must returnCOMMENT
MEDIUMtests/research_library/test_document_full_lifecycle.py371 # The Document row itself must still exist (this is a RAG-removal,COMMENT
MEDIUMtests/research_library/zotero/test_sync_service.py638 ) # spy: collection isn't RAG-indexed, so only assert callsCODE
MEDIUM…h_library/routes/test_rag_routes_coverage_main_port.py1820 q.first.return_value = None # No RAG indexCODE
MEDIUM…h_library/routes/test_rag_routes_coverage_main_port.py1914 q.first.return_value = None # No RAG indexCODE
MEDIUM…earch_library/routes/test_rag_routes_gaps_main_port.py1097 # parameter directly, not read back off the RAG service object.COMMENT
MEDIUM…earch_library/routes/test_rag_routes_gaps_main_port.py1229 # parameter directly, not read back off the RAG service object.COMMENT
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.py995# Change 3 (continued): RAG indexing of research downloads has been RETIRED fromCOMMENT
MEDIUM⚡…rch_library/services/test_download_service_3827_fix.py998# assert the inline RAG block is gone: generate_rag no longer drives any RAGCOMMENT
MEDIUM…_library/services/test_issue_6559_rag_indexing_lock.py1"""Exhaustive tests for Issue #6559: RAG Indexing Lock Across Embedding Round-Trip.STRING
MEDIUMtests/web/test_startup_import_weight.py97# scheduler -> RAG service -> splitter chain, so a regression inSTRING
MEDIUM…sts/web/routers/test_rag_reindex_commit_then_unlink.py83 # otherwise the "collection has no embedding model yet" arm would fireCOMMENT
MEDIUM…sts/web/routers/test_rag_reindex_commit_then_unlink.py187 # parameter directly (not read back off the RAG service object) --COMMENT
MEDIUM…s/web/routers/test_unified_search_ranking_precision.py102 # queries: collections, then current RAG index names), once to enrichCOMMENT
MEDIUMtests/web/routers/test_unified_search_routes_port.py273 # and the current RAG index names (.filter().all()).COMMENT
MEDIUM⚡tests/web/dependencies/test_json_body_contract.py216# The front end branches on these key sets: `success` drives the chat, RAGCOMMENT
MEDIUMtests/web/templates/test_url_for_shim.py55 # Library / RAGCOMMENT
MEDIUMtests/web/routes/test_research_routes_policy.py599 # Strategy aliases ("langgraph_agent", "mcp", "agentic") must alsoCOMMENT
MEDIUM⚡tests/text_optimization/test_citation_formatter.py1891# /library/document/<uuid> from RAG / library sources). The threeCOMMENT
163 more matches not shown…
Unused Imports715 hits · 626 pts
SeverityFileLineSnippetContext
LOW.pre-commit-hooks/check-nosemgrep-annotations.py36CODE
LOW.pre-commit-hooks/check-target-blank-rel.py19CODE
LOW.pre-commit-hooks/check-no-flask.py29CODE
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
LOW.pre-commit-hooks/check-fastapi-default-parameters.py11CODE
LOW.pre-commit-hooks/check-email-domains.py77CODE
LOWtests/conftest.py563CODE
LOWtests/migration_evidence_nodes.py11CODE
LOWtests/test_advertised_but_dead_sweep.py37CODE
LOWtests/test_cli_and_mcp_entrypoints.py33CODE
LOWtests/test_known_defect_pattern_sweep.py42CODE
LOWtests/settings/test_settings_take_effect.py23CODE
LOWtests/database/test_schema_index_completeness.py13CODE
LOWtests/database/test_journal_migrations_encrypted.py14CODE
LOWtests/database/test_model_constraint_contracts.py30CODE
LOWtests/database/test_research_strategy_fk_regression.py14CODE
LOWtests/database/test_fk_targets_resolve.py9CODE
LOW…sts/database/test_journal_rebuild_data_preservation.py20CODE
LOW…sts/database/backup/test_backup_windows_attach_path.py16CODE
LOWtests/advanced_search_system/filters/conftest.py12CODE
LOW…vanced_search_system/tools/test_fetch_success_sinks.py8CODE
LOW…/advanced_search_system/tools/test_library_resolver.py12CODE
LOW…ts/advanced_search_system/tools/_fetch_sink_support.py8CODE
LOWtests/advanced_search_system/tools/test_fetch_modes.py8CODE
LOW…dvanced_search_system/tools/test_fetch_library_sink.py11CODE
LOW…advanced_search_system/tools/test_fetch_error_sinks.py8CODE
LOWtests/connected/conftest.py23CODE
LOWtests/connected/test_cleanup_probe_attribution.py12CODE
LOWtests/connected/test_queue_submission_persistence.py1CODE
LOWtests/connected/test_queue_atomic_claim.py1CODE
LOWtests/connected/test_research_submission_policy.py1CODE
LOWtests/connected/test_auth_database_lifecycle.py1CODE
LOWtests/connected/test_library_document_conversion.py1CODE
LOWtests/connected/test_queue_claim_reclaim.py1CODE
LOWtests/connected/queue_test_support.py1CODE
LOWtests/content_fetcher/test_lazy_content_fetcher.py16CODE
LOWtests/security/test_file_whitelist_content.py20CODE
LOWtests/security/test_api_v1_boundary_fastapi.py90CODE
LOWtests/security/test_collection_agent_enabled.py14CODE
LOWtests/security/test_egress_threadpool_propagation.py27CODE
LOWtests/security/test_egress_guidance.py4CODE
LOWtests/security/conftest.py5CODE
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_injection_and_template_safety.py31CODE
LOW…sts/security/test_notification_host_alias_fragments.py17CODE
LOWtests/security/test_egress_notifications_callsite.py20CODE
LOWtests/security/test_csrf_coverage.py43CODE
LOWtests/security/test_socket_teardown_severs.py63CODE
LOWtests/security/test_architecture_fences.py30CODE
LOWtests/security/test_sqlcipher_key_lifecycle.py55CODE
LOWtests/security/test_egress_langgraph_tool_filter.py33CODE
LOWtests/security/test_eml_attachments_not_partitioned.py15CODE
LOWtests/security/test_legacy_office_conversion_bounds.py18CODE
LOWtests/security/test_auth_credential_lifetime_fastapi.py42CODE
LOWtests/security/test_downloader_error_url_redaction.py67CODE
LOWtests/security/test_research_password_gate_fastapi.py52CODE
655 more matches not shown…
Docstring Block Structure103 hits · 515 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.py46 Get the salt for a database file. For new databases (v2+): reads from the .salt file alongside the database. STRING
HIGHsrc/local_deep_research/database/sqlcipher_utils.py111 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.py803Run ``callable_``, retrying on SQLite ``database is locked`` errors. Only retries ``OperationalError`` whose messagSTRING
HIGHsrc/local_deep_research/database/sqlcipher_utils.py927 Create a properly configured SQLCipher connection. Implements the full PRAGMA sequence with proper error cleanSTRING
HIGHsrc/local_deep_research/database/session_context.py111 Context manager that ensures proper database session with encryption. Now uses thread-local sessions for betterSTRING
HIGHsrc/local_deep_research/database/library_init.py305 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.py670Create a properly initialized SQLCipher connection. Follows the canonical SQLCipher initialization order: set kSTRING
HIGH…ced_search_system/filters/journal_reputation_filter.py728Analyze 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.py27 Filter search results by relevance to the follow-up query. Args: results: List of source dSTRING
HIGHsrc/local_deep_research/llm/providers/openai_base.py48Factory 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.py42Factory function for OpenAI LLMs. Args: model_name: Name of the model to use temperaturSTRING
HIGH…ep_research/llm/providers/implementations/anthropic.py43Factory 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.py52 Create OpenAI embeddings instance. Args: model: Model name (defaults to text-embedding-3-sSTRING
HIGH…esearch/embeddings/splitters/text_splitter_registry.py64 Get text splitter based on type. Args: splitter_type: Type of splitter ('recursive', 'token', 'sentencSTRING
HIGHsrc/local_deep_research/chat/service.py255 Add a durable message (query/followup/response) to a chat session. Content is required and stored inliSTRING
HIGHsrc/local_deep_research/chat/service.py455 Get a chat session by ID. Args: session_id: ID of the session Returns: STRING
HIGHsrc/local_deep_research/chat/service.py823 Archive a chat session. Refuses to archive while a research is still in_progress for the sessiSTRING
HIGHsrc/local_deep_research/chat/service.py966Permanently delete one chat attempt (research + its messages + steps). An "attempt" is the user message that trSTRING
HIGHsrc/local_deep_research/chat/service.py1184Return 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/paths.py136Get the database filename for a specific user. Args: username: The username to generate a filename for STRING
HIGHsrc/local_deep_research/config/thread_settings.py85Get setting from context only - no database access from threads. Args: key: Setting key to retrieve STRING
HIGHsrc/local_deep_research/security/safe_requests.py284 Make a safe HTTP GET request with SSRF protection. Args: url: URL to request params: URL paramSTRING
HIGHsrc/local_deep_research/security/safe_requests.py493 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.py984`safe_get` plus exponential-backoff retry on transient errors. Retries on: * ``requests.ConnectionError`` STRING
HIGH…local_deep_research/security/notification_validator.py1448 Strict validation that raises an exception on invalid URLs. Args: url: Service URL to valiSTRING
HIGHsrc/local_deep_research/security/directory_creation.py38Create a directory through the audited security chokepoint. Rejects null bytes and raw ``..`` traversal, resolves tSTRING
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.py95 Validate and sanitize a user-provided path. Args: user_input: The user-provided path strinSTRING
HIGHsrc/local_deep_research/security/path_validator.py187 Validate a user-provided absolute filesystem path for local indexing. This is for features like local STRING
HIGHsrc/local_deep_research/security/path_validator.py310 Re-sanitize a validated path for static analyzer recognition. This method takes an already-validated PSTRING
HIGHsrc/local_deep_research/security/path_validator.py351 Validate a model file path specifically. Args: model_path: Path to the model file STRING
HIGHsrc/local_deep_research/security/path_validator.py402 Validate a path within the data directory. Args: file_path: Path relative to data root STRING
HIGHsrc/local_deep_research/security/path_validator.py431 Validate a configuration file path. Args: config_path: Path to config file conSTRING
HIGHsrc/local_deep_research/security/module_whitelist.py185 Safely import a class from a module, validating against both whitelists. This function provides secure dynamicSTRING
HIGHsrc/local_deep_research/security/filename_sanitizer.py29Sanitize an uploaded filename for safe filesystem storage. Args: filename: Raw filename from the upload. STRING
HIGHsrc/local_deep_research/security/url_validator.py328 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.py159 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…arch/research_library/deletion/utils/cascade_helper.py726 Delete RAGIndex records (and their vectors) for a collection. Vector cleanup is provider-aware, decideSTRING
HIGH…local_deep_research/research_library/utils/__init__.py710 Get absolute path using settings manager for library root. Uses PathValidator to prevent path traversal attackSTRING
HIGH…research/research_library/services/download_service.py579 Queue all downloadable PDFs from a research session. Args: research_id: The research sessiSTRING
HIGHsrc/local_deep_research/exporters/odt_exporter.py106Convert markdown content to ODT using Pandoc. The conversion runs entirely in memory: markdown is piped to STRING
HIGHsrc/local_deep_research/exporters/quarto_exporter.py59Convert 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
HIGHsrc/local_deep_research/web/routers/library.py148 Get authenticated user password from session store. Args: username: The username to get password for STRING
HIGH…l_deep_research/web/services/pdf_extraction_service.py35 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.py112 Delete a resource from the database Args: resource_id (int): The ID of the resource to delete STRING
HIGHsrc/local_deep_research/storage/factory.py20Get a report storage instance that always uses database with optional file backup. Args: session: Database STRING
43 more matches not shown…
Redundant / Tautological Comments303 hits · 457 pts
SeverityFileLineSnippetContext
LOW.pre-commit-hooks/check-env-vars.py246 # 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.py304 # Check if this class inherits from Base (SQLAlchemy model)COMMENT
LOW.pre-commit-hooks/custom-checks.py441 # Check if line has allowed patterns firstCOMMENT
LOW.pre-commit-hooks/custom-checks.py499 # Check if this file is allowed to use datetime.now()COMMENT
LOW.pre-commit-hooks/custom-checks.py518 # 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.py2718 # 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
LOW⚡tests/test_database_initialization.py130 # Check if settings table is queryableCOMMENT
LOW⚡tests/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.py449 # 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.py159 # Check if file is allowed to use os.environCOMMENT
LOW⚡tests/database/test_sqlcipher_integration.py805 # Check if it changed (it shouldn't for an already-initialized DB)COMMENT
LOW⚡tests/database/test_sqlcipher_integration.py2329 # Check if encryption is actually appliedCOMMENT
LOWtests/database/test_sqlcipher_integration.py4208 # Check if salt was actually appliedCOMMENT
LOWtests/database/test_alembic_migrations.py2462 # 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.py150 # 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.py137 # Check if the URL exists in backend (with some flexibility for parameter names)COMMENT
LOWtests/infrastructure_tests/test_urls_js.py393 # 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.py305 # Check if CSP header is present (it's a good security practice)COMMENT
LOWtests/security/test_repo_guardrails.py163 # Check if this pattern matches a binary extensionCOMMENT
LOWtests/exporters/test_odt_exporter.py6# Check if pandoc is available (required by pypandoc)COMMENT
LOW⚡tests/web/routers/test_state_changing_flows.py276 # Check if rate limiting is enabled in this configCOMMENT
LOW⚡tests/web/auth/test_auth_coverage.py621 # Set last_access to 2 hours ago (would expire normal session)COMMENT
LOW⚡tests/strategies/test_strategy_imports.py64 # Check if at least some strategies are exportedCOMMENT
LOWtests/journal_quality/conftest.py16 # Check if DB file exists without triggering auto-downloadCOMMENT
LOW⚡…sts/search_engines/test_search_engine_stackexchange.py271 # Set backoff to a past time so we don't actually waitCOMMENT
243 more matches not shown…
Hallucination Indicators30 hits · 335 pts
SeverityFileLineSnippetContext
CRITICALtests/security/test_research_terminate_cross_user.py81 ctx.__enter__.return_value.query.return_value.filter_by.assert_called_once_with(CODE
CRITICAL⚡tests/security/test_file_integrity_manager_coverage.py908 session.query.return_value.filter_by.return_value.order_by.return_value.limit.assert_called()CODE
CRITICALtests/js/deletion/delete-modules.test.js325 const deleteCall = window.api.fetchWithErrorHandling.mock.calls.find(CODE
CRITICALtests/js/components/settings-dashboard-runtime.test.js299 expect(window.ui.showMessage.mock.calls.flat().join(' ')).not.toContain('[REDACTED]');CODE
CRITICAL⚡tests/js/components/context-overflow-runtime.test.js370 expect(latency.config.options.plugins.tooltip.callbacks.label({CODE
CRITICAL⚡tests/js/components/context-overflow-runtime.test.js373 expect(latency.config.options.scales.y.ticks.callback(1500)).toBe('1.5s');CODE
CRITICAL⚡tests/js/components/context-overflow-runtime.test.js374 expect(latency.config.options.scales.y.ticks.callback(900)).toBe('900ms');CODE
CRITICALtests/js/components/context-overflow-runtime.test.js405 expect(phase.config.options.plugins.tooltip.callbacks.label({CODE
CRITICAL…/js/components/settings-save-validation-errors.test.js66 const [message, level] = window.ui.showMessage.mock.calls.at(-1);CODE
CRITICAL…sts/js/components/details-rich-metrics-runtime.test.js310 expect(barChart.config.options.scales.y.ticks.callback(12345)).toBe('12,345');CODE
CRITICAL…sts/js/components/details-rich-metrics-runtime.test.js342 expect(searchChart.config.options.scales.y.ticks.callback(12345)).toBe('12,345');CODE
CRITICAL…sts/js/components/details-rich-metrics-runtime.test.js349 expect(cumulativeChart.config.options.plugins.tooltip.callbacks.label({CODE
CRITICAL…/js/components/settings-redacted-baseline-sync.test.js262 expect(window.ui.showMessage.mock.calls.flat().join(' ')).not.toContain(SECRET_URL);CODE
CRITICAL…/js/components/settings-redacted-baseline-sync.test.js263 expect(window.ui.showMessage.mock.calls.flat().join(' ')).not.toContain(REDACTED);CODE
CRITICALtests/js/components/settings-submit-runtime.test.js531 expect(window.ui.showMessage.mock.calls.flat().join(' '))CODE
CRITICALtests/js/pages/note-detail-accept-link.test.js177 const infoCalls = window.ui.showMessage.mock.calls.filter(c => c[1] === 'info');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.py197 db.query.return_value.filter_by.return_value.update.assert_called_once()CODE
CRITICAL…_library/services/test_library_rag_service_rollback.py180 session.query.return_value.filter_by.return_value.delete.assert_called_once()CODE
CRITICAL…web/routers/test_settings_routes_rate_limiting_port.py230 session.query.return_value.filter_by.return_value.delete.assert_called_once()CODE
CRITICAL⚡…web/routers/test_settings_routes_rate_limiting_port.py259 session.query.return_value.filter.return_value.delete.assert_called_once()CODE
CRITICAL…web/routers/test_settings_routes_rate_limiting_port.py270 session.query.return_value.filter.return_value.delete.assert_called_once()CODE
CRITICALtests/strategies/test_langgraph_agent_strategy.py5287 strategy.citation_handler.analyze_followup.call_args.kwargs.get(CODE
CRITICALtests/news/test_rating_storage_extended.py529 mock_query.filter_by.return_value.order_by.return_value.limit.assert_called_with(CODE
CRITICAL⚡tests/news/test_folder_manager_behavior.py298 session.query.return_value.filter_by.return_value.update.assert_called()CODE
CRITICAL⚡tests/news/test_folder_manager_behavior.py307 session.query.return_value.filter_by.return_value.update.assert_called()CODE
CRITICALtests/news/test_folder_manager_extended.py293 mock_session.query.return_value.filter_by.return_value.update.assert_called_once_with(CODE
CRITICALtests/news/test_folder_manager_extended.py309 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
Structural Annotation Overuse171 hits · 314 pts
SeverityFileLineSnippetContext
LOW⚡README.md52# Step 1: Pull and run OllamaCOMMENT
LOW⚡README.md56# Step 2: Pull and run SearXNG for optimal search resultsCOMMENT
LOW⚡README.md59# Step 3: Pull and run Local Deep ResearchCOMMENT
LOW⚡docker-compose.yml91 # WARNING: This will disable UI configuration for these settings!COMMENT
LOW⚡tests/test_openai_api_key_e2e.py64 # Step 1: AuthenticateCOMMENT
LOW⚡tests/test_openai_api_key_e2e.py71 # Step 2: Configure settingsCOMMENT
LOW⚡tests/test_openai_api_key_e2e.py109 # Step 3: Test LLM initializationCOMMENT
LOW⚡tests/test_openai_api_key_e2e.py120 # Step 4: Test simple LLM callCOMMENT
LOW⚡tests/test_openai_api_key_e2e.py143 # Step 5: Test research functionalityCOMMENT
LOW⚡tests/vector_stores/test_full_migration_lifecycle.py227 # Step 1: a REALISTIC LEGACY index directly at the SHARED (NOTCOMMENT
LOW⚡tests/vector_stores/test_full_migration_lifecycle.py310 # Step 3: trigger the per-user relocation. In production this isCOMMENT
LOW⚡tests/vector_stores/test_full_migration_lifecycle.py391 # Step 4: SEARCH through the real VectorIndex facade (via theCOMMENT
LOW⚡tests/vector_stores/test_full_migration_lifecycle.py402 # Step 5: a NEW document indexed normally MERGES into the relocated +COMMENT
LOW⚡tests/database/test_alembic_migrations.py4627 # Step 1: Migrate to 0001 onlySTRING
LOW⚡tests/database/test_alembic_migrations.py4631 # Step 2: Insert dataSTRING
LOW⚡tests/database/test_alembic_migrations.py4658 # Step 3: Upgrade to head (0005)STRING
LOW⚡tests/database/test_alembic_migrations.py4662 # Step 4: Verify data survivedSTRING
LOWtests/database/test_alembic_migrations.py4675 # Step 5: Verify new columns existSTRING
LOWtests/database/test_alembic_migrations.py4707 # Step 6: Another run_migrations should be no-opSTRING
LOW⚡tests/deletion/test_cascade_integration.py241 # Step 1: Delete chunks (no FK, manual cleanup required)COMMENT
LOW⚡tests/deletion/test_cascade_integration.py247 # Step 2: Delete document (CASCADE handles blob and collection links)COMMENT
LOW⚡tests/deletion/test_cascade_integration.py404 # Step 1: Delete chunks (no FK, manual cleanup)COMMENT
LOW⚡tests/deletion/test_cascade_integration.py409 # Step 2: Delete RAG indexCOMMENT
LOW⚡tests/deletion/test_cascade_integration.py414 # Step 3: Delete collection (CASCADE handles folders, links)COMMENT
LOW⚡tests/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
LOW…curity/test_db_connection_rekey_kills_held_sessions.py161 # Step 1: close. The session survives via creator-closure reconnectCOMMENT
LOW…curity/test_db_connection_rekey_kills_held_sessions.py174 # Step 2: rekey. The resurrecting connection now derives the OLD keyCOMMENT
LOW⚡tests/security/test_csrf_e2e_flow.py20 # Step 1: stamp the session and fetch a CSRF token for registration.COMMENT
LOW⚡tests/security/test_csrf_e2e_flow.py26 # Step 2: Register (auto-logs in the user).COMMENT
LOW⚡tests/security/test_csrf_e2e_flow.py44 # Step 3: Get the post-login API CSRF token.COMMENT
LOW⚡tests/security/test_csrf_e2e_flow.py47 # Step 4: POST a browser-facing endpoint WITH the token — must passCOMMENT
LOWtests/security/test_csrf_e2e_flow.py61 # Step 5: POST the same endpoint WITHOUT a token — CSRF rejection (403).COMMENT
LOW…ts/security/test_db_connection_change_password_race.py972 # Step 5: the parked OLD-key open tries to publish after the rekey.COMMENT
LOW…s/security/test_settings_secret_redaction_isolation.py1106 # Step 1: submit both items with ONLY api_key visible (masked). IfCOMMENT
LOW⚡tests/security/test_noncollection_agent_enabled.py649 # Step 1: Add API key only. agent_enabled is still False by default.COMMENT
LOW⚡tests/security/test_noncollection_agent_enabled.py656 # Step 2: Explicitly enable for agent.COMMENT
LOW⚡tests/security/test_noncollection_agent_enabled.py676 # Step 1: Add API key. Defaults agent_enabled=True.COMMENT
LOW⚡tests/security/test_noncollection_agent_enabled.py683 # Step 2: Toggle off.COMMENT
LOWtests/research_library/zotero/test_sync_service.py1950 # Step 1: first contact — byte-identical, so the item adopts the upload.COMMENT
LOWtests/research_library/zotero/test_sync_service.py1965 # Step 2: the PDF is replaced in Zotero — content now differs.COMMENT
LOW…arch_library/services/test_index_documents_parallel.py825 # Step 1: pre-create wrapper A and put it in the dict as canonical.COMMENT
LOW⚡…rch_library/services/test_multi_model_switch_revert.py207 # Step 1: index under model A.COMMENT
LOW⚡…rch_library/services/test_multi_model_switch_revert.py255 # Step 2: switch to model B, force-reindex the SAME document/collection.COMMENT
LOW⚡…rch_library/services/test_multi_model_switch_revert.py361 # Step 4: revert for real via the WRITE-path resolutionCOMMENT
LOW⚡tests/web/test_long_integration_flows.py526 # Step 2: B writes its own marker.COMMENT
LOW⚡tests/web/test_long_integration_flows.py534 # Step 3: both read back — each must see only its own marker.COMMENT
LOW⚡tests/web/test_long_integration_flows.py540 # Step 4: A creates a collection; B immediately lists collectionsCOMMENT
LOWtests/web/test_long_integration_flows.py513 # Step 1: A writes, B has not written yet -> B must still see itsCOMMENT
LOWtests/web/test_long_integration_flows.py556 # Step 5: B creates its own collection; A must not see it either.COMMENT
LOWtests/web/test_long_integration_flows.py571 # Step 6: cross-user direct-object access on the collectionCOMMENT
LOW⚡tests/ui_tests/test_research_diagnosis.js75 // Step 1: AuthenticateCOMMENT
LOW⚡tests/ui_tests/test_research_diagnosis.js80 // Step 2: Go to home pageCOMMENT
LOW⚡tests/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
111 more matches not shown…
Cross-Language Confusion59 hits · 302 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/settings/test_settings_manager_contracts.py558 "the stored value is null; InMemorySettingsManager._get_typed"CODE
HIGH⚡tests/config/test_thread_settings_high_value.py128 # embeddings.openai.dimensions defaults to JSON null, thenCOMMENT
HIGHtests/security/test_api_v1_boundary_fastapi.py1046 """``{"model_name": null}`` / ``{"search_tool": null}`` were 200STRING
HIGHtests/security/test_notes_chat_followup_cross_user.py657 # route reports as HTTP 200 ``{"success": false, "title": null}`` -- theCOMMENT
HIGHtests/security/test_pandoc_conversion_bounds.py16to /dev/null, an output-size ceiling checked before the output is read,STRING
HIGH⚡tests/security/test_client_side_xss_sinks.py367 + "const escapeHtml = window.escapeHtml || esc;\n"CODE
HIGH⚡tests/security/test_client_side_xss_sinks.py368 + "const escapeAttr = window.escapeHtmlAttribute || escapeHtml;\n"CODE
HIGH⚡tests/security/test_client_side_xss_sinks.py374 external = "const esc = window.escapeHtml || somethingElse;\n"CODE
HIGHtests/security/test_client_side_xss_sinks.py657 assert "(window.escapeHtml || escapeHtmlFallback)(markdown)" in bodyCODE
HIGH⚡tests/security/test_client_side_xss_sinks.py379 """``x || escapeHtmlFallback`` is only as good as the fallback."""STRING
HIGHtests/security/test_client_side_xss_sinks.py345 """Follow ``a = window.x || b`` chains to the binding that escapes.STRING
HIGH…ts/security/test_research_service_isolation_fastapi.py800 "semi;colon && rm -rf /",CODE
HIGH⚡…earch_library/routes/test_rag_routes_gaps_main_port.py1697 # {"agent_enabled": null} -> stored True (available), serialized True.COMMENT
HIGHtests/ci/test_workflow_artifact_names.py53 and ``a || b`` picks the first non-empty operand. Anything else, such asSTRING
HIGHtests/ci/test_semgrep_workflow.py259# not model raises instead of evaluating to null, because on GitHub such aCOMMENT
HIGHtests/ci/test_semgrep_workflow.py264# null, as on GitHub. && and || short-circuit as on GitHub: an operand theyCOMMENT
HIGH⚡tests/ci/test_semgrep_workflow.py741 assert _evaluate("false || true", context) is TrueCODE
HIGH⚡tests/ci/test_semgrep_workflow.py742 assert _evaluate("true && false", context) is FalseCODE
HIGH⚡tests/ci/test_semgrep_workflow.py751 assert _evaluate("true || github.actor", context) is TrueCODE
HIGH⚡tests/ci/test_semgrep_workflow.py752 assert _evaluate("false && github.actor", context) is FalseCODE
HIGHtests/ci/test_semgrep_workflow.py466 ("deleted-fork PR (head.repo null)", _pr_context(None), False),CODE
HIGHtests/ci/test_semgrep_workflow.py763 "false && nothing.here",CODE
HIGHtests/web/test_auth_session_lifecycle.py227 # cleared session with `session=null; expires=Thu, 01 Jan 1970 ...`.COMMENT
HIGHtests/web/test_save_research_sources_hostile_values.py348 """``{"name": null}`` is the ordinary JSON shape for a missing authorSTRING
HIGHtests/web/routers/test_settings_lock_enforcement.py242 ``message || error || detail`` -- so this is a contract drift worthSTRING
HIGHtests/web/routers/test_rag_hostile_input.py42``{"name": null}``) reached ``.strip()`` untouched and raisedSTRING
HIGH⚡tests/web/routers/test_search_favorites.py175 """``{"favorites": null}`` must not be stored as a null row."""STRING
HIGHtests/web/routers/test_search_favorites.py21* **every 400 on PUT** (``favorites`` absent, null, or not a list; aSTRING
HIGHtests/web/routers/test_settings_news_hostile_input.py168# A body that names no destination -- absent, null, non-dict, or blankCOMMENT
HIGH…/test_settings_routes_save_validation_coverage_port.py28explicit ``{"value": null}`` on ``embeddings.openai.chunk_size``) and #5979STRING
HIGH⚡tests/web/warning_checks/test_hardware.py319 config_file.write_text('{"port": null}', encoding="utf-8")CODE
HIGHtests/theme_tests/test_accent_ink_contrast.py128 undefined, a ``var()`` cycle, translucent, or a value ``_parse_color``STRING
HIGHtests/notes/test_note_ai_service.py275 '{"added": null, "removed": "a paragraph about X", 'CODE
HIGHtests/notes/test_note_ai_service.py276 '"modified": ["real change", null], "summary": null}'CODE
HIGHtests/notes/test_note_ai_service.py897 '{"entities": null, "concepts": "not a list", 'CODE
HIGHtests/notes/test_note_ai_service.py1206 '["real claim", 123, null, " ", {"x": 1}, "second claim"]'CODE
HIGHtests/notes/test_note_ai_service.py1194 ``isinstance(c, str) and c.strip()`` — non-string items (int, null,STRING
HIGHtests/notes/test_note_ai_service.py2348 (id: null) — it must be skipped, not returned."""STRING
HIGHtests/news/test_library_sweep.py889 research orphan (research_id set, text not null, NO default-library link)STRING
HIGH⚡tests/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.py220 """A row with all new columns NULL must serialize as JSON null, notSTRING
HIGHsrc/local_deep_research/settings/manager.py249 # A shipped optional default may legitimately be null; the equalityCOMMENT
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.py546 if (!url || typeof url !== 'string') {CODE
HIGHsrc/local_deep_research/security/url_validator.py577 if (trustedDomains.length > 0 && parsed.hostname) {CODE
HIGHsrc/local_deep_research/security/url_validator.py598 if (!url) return null;CODE
HIGHsrc/local_deep_research/security/url_validator.py602 return null;CODE
HIGHsrc/local_deep_research/security/url_validator.py618 return null;CODE
HIGH…search/research_library/downloaders/playwright_html.py56 if (window.navigator && window.navigator.serviceWorker) {CODE
HIGH…search/research_library/downloaders/playwright_html.py63 get() { return undefined; },CODE
HIGH…rch/research_library/notes/services/note_ai_service.py1573 # drops a section (null).COMMENT
HIGH…rch/research_library/notes/services/note_ai_service.py347 the key is present-but-null, not the default) or a bare string for a keySTRING
HIGHsrc/local_deep_research/web/fastapi_app.py1208 _DELETED_COOKIE_PREFIX = _SESSION_COOKIE_NAME + b"=null;"CODE
HIGH⚡src/local_deep_research/web/fastapi_app.py1185 `session=null; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT; ...`STRING
HIGH⚡src/local_deep_research/web/fastapi_app.py1190 other non-remember-me cookie, downgrades it to `session=null; path=/;STRING
HIGH⚡src/local_deep_research/web/fastapi_app.py1195 client. `session=null;` is the exact, fixed marker Starlette emits forSTRING
HIGHsrc/local_deep_research/web/routers/rag.py4412 # alone only catches FALSY bodies (null, [], ""), letting a truthyCOMMENT
HIGHsrc/local_deep_research/web/routers/api_v1.py192# scalars/dicts/lists/null, never a live callable, so this is the sameCOMMENT
AI Slop Vocabulary109 hits · 300 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.py598 # Legacy comprehensive testing - runs some tests multiple times (< 15min)COMMENT
MEDIUMtests/vector_stores/test_legacy_rekey_quarantine.py48 # Route session.query(Model) by class name so the test is robust to importCOMMENT
MEDIUM⚡tests/settings/test_settings_take_effect.py836# 8. Positive control for the whole harnessCOMMENT
MEDIUM⚡tests/settings/test_settings_take_effect.py839# the harness can tell the difference — i.e. if it would FAIL when the valueCOMMENT
MEDIUMtests/settings/test_settings_take_effect.py609# This is the harness that can actually catch "the setting never reached theCOMMENT
MEDIUMtests/settings/test_settings_manager_contracts.py474 # ---- agreeing: the positive controls for the census harness -------COMMENT
MEDIUMtests/database/test_sqlcipher_utils.py1265 # 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⚡…ts/advanced_search_system/tools/_fetch_sink_support.py80# Sink harness — real Loguru sinks, patched external seams.COMMENT
MEDIUM…ts/advanced_search_system/tools/_fetch_sink_support.py123 # logging by default; re-enable it for the harness and restore thatCOMMENT
MEDIUM…_system/strategies/test_topic_organization_strategy.py822 """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.py54 # 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
MEDIUM⚡tests/security/test_realtime_channel_isolation.py78# Real-user harness (same recipe as tests/security/test_two_user_attack_COMMENT
MEDIUM⚡tests/security/test_socket_ownership_edges_fastapi.py99# Shared harnessCOMMENT
LOW⚡tests/security/test_safe_requests_hook.py224 # Should not raise, just return True (let other tools handle syntax)COMMENT
MEDIUM⚡tests/security/test_news_scheduler_isolation_fastapi.py82# Two-real-user harnessCOMMENT
MEDIUM⚡tests/security/test_url_validator_extended.py96# is_safe_url -- comprehensive scheme / option / pattern testsCOMMENT
MEDIUM⚡…ts/security/test_research_service_isolation_fastapi.py117# Two-real-user harness (real registration, real encrypted per-user DBs)COMMENT
MEDIUM⚡…ts/security/test_research_service_isolation_fastapi.py246# Real-worker harnessCOMMENT
MEDIUMtests/security/test_safe_requests_retries.py186 # 30s band absorbs clock jitter and test-harness latency.COMMENT
LOWtests/research_library/test_utils.py459 # Should not raise an error, just return FalseCOMMENT
MEDIUM⚡…ts/research_library/test_deletion_cascade_contracts.py982 # this the refusal above could be a broken harness.COMMENT
MEDIUM…ts/research_library/test_deletion_cascade_contracts.py712 # the survival above is the guard working, not a broken harness.COMMENT
MEDIUM⚡tests/research_library/test_zotero_sync_contracts.py88# Multi-user on-disk database harnessCOMMENT
LOW…esearch_library/downloaders/test_biorxiv_downloader.py70 # Should not raise, just return FalseCOMMENT
MEDIUM…rch_library/services/test_download_service_3827_fix.py651 # Route session.query(...) by model so the call order is robust to theCOMMENT
MEDIUM…arch_library/services/test_index_finalize_self_heal.py132 # needs real key material; stub it (as the canonical harness does) soCOMMENT
MEDIUM⚡…sts/web/routers/test_settings_persistence_contracts.py150# HTTP harnessCOMMENT
MEDIUM⚡…sts/web/routers/test_settings_persistence_contracts.py1028# of this file that keeps working when the HTTP harness cannot run.COMMENT
MEDIUM⚡tests/web/routers/test_settings_lock_enforcement.py83# HTTP harnessCOMMENT
MEDIUM⚡…sts/web/routers/test_rag_reindex_commit_then_unlink.py368# (#5765 R5) -- reusing the same ``_reindex_recorder``/RUNNERS harness above,COMMENT
MEDIUM⚡tests/web/routers/test_rag_indexing_pipeline.py128# Real-components harness (the embedding backend is the only fake)COMMENT
MEDIUMtests/web/routers/test_rag_indexing_pipeline.py163 # this the harness would silently diverge from production on exactlyCOMMENT
MEDIUM…web/routers/test_research_history_and_status_guards.py123 # query() call (not a positional index) so the guard stays robust ifCOMMENT
LOW⚡tests/web/routes/test_settings_policy_validators.py36 # Should simply return (not raise) for any well-formed input.COMMENT
MEDIUM⚡…b/services/test_research_service_coverage_main_port.py53# Local harness (kept in this module on purpose — see the porting brief)COMMENT
MEDIUM⚡tests/web/services/test_research_service_execution.py166 assert state[0] == 5 # the harness's own baseline emissionCODE
MEDIUMtests/error_handling/test_error_categorization.py311 """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
MEDIUMtests/notes/test_note_stress.py1453 # in this test harness; force the capture to None so update_noteCOMMENT
MEDIUM⚡tests/notes/test_post_review_bugfixes.py74# Route-call harness (only the two route tests need it)COMMENT
LOW⚡tests/news/test_card_factory_extended.py774 # This should not raise, just return NoneCOMMENT
MEDIUM⚡tests/news/test_news_service_contracts.py411# Shared database harness (real on-disk SQLite)COMMENT
LOW…citation_handlers/test_precision_extraction_handler.py817 # Should just return the LLM response without extraction modificationsCOMMENT
MEDIUM⚡tests/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
49 more matches not shown…
Magic Placeholder Names48 hits · 288 pts
SeverityFileLineSnippetContext
HIGH.gitleaks.toml278 '''your-api-key-here''',STRING
HIGH⚡docker-compose.yml95 # - LDR_LLM_OPENAI_API_KEY=<your-api-key> # Lock OpenAI API keyCOMMENT
HIGH⚡docker-compose.yml96 # - LDR_LLM_ANTHROPIC_API_KEY=<your-api-key> # Lock Anthropic API keyCOMMENT
HIGH⚡docker-compose.yml106 # - LDR_LLM_OPENAI_ENDPOINT_API_KEY=<your-api-key>COMMENT
HIGH⚡docker-compose.yml115 # - LDR_LLM_OPENAI_ENDPOINT_API_KEY=<your-api-key>COMMENT
HIGHchangelog.d/4988.bugfix.md3Also added the hyphenated placeholder variants (`your-api-key-here`, `your-openai-key-here`, etc.) that the project's owCODE
HIGHchangelog.d/6289.bugfix.md11An unfilled placeholder (`your-api-key-here`, `<your_api_key>`,CODE
HIGHtests/test_openai_api_key_e2e.py18 export LDR_LLM_OPENAI_API_KEY=your_api_keySTRING
HIGH⚡…research_library/downloaders/test_openalex_coverage.py691 "<your_api_key>",CODE
HIGH⚡…research_library/downloaders/test_openalex_coverage.py692 "your-api-key-here",CODE
HIGH⚡tests/search_engines/test_base_helpers.py155 "YOUR_API_KEY",CODE
HIGH⚡tests/search_engines/test_base_helpers.py156 "your_api_key",CODE
HIGH⚡tests/search_engines/test_base_helpers.py157 "your-api-key",CODE
HIGH⚡tests/search_engines/test_base_helpers.py164 "your-api-key-here",CODE
HIGH⚡tests/search_engines/test_base_helpers.py196 "<your_api_key>",CODE
HIGHtests/search_engines/test_base_helpers.py336 "your_api_key",CODE
HIGHtests/search_engines/test_base_helpers.py347 "your-api-key", # without -here suffixCODE
HIGH⚡tests/utilities/test_openalex_enrichment.py371 "your_api_key",CODE
HIGH⚡tests/utilities/test_openalex_enrichment.py372 "your-api-key-here",CODE
HIGH⚡tests/utilities/test_openalex_enrichment.py374 "<your_api_key>",CODE
HIGHtests/utilities/test_openalex_enrichment.py454 ["${OPENALEX_API_KEY}", "your-api-key-here", "False", " ", True],CODE
HIGH⚡…_search_engines/engines/test_search_engine_openalex.py126 "your-api-key-here",CODE
HIGH⚡…_search_engines/engines/test_search_engine_openalex.py128 "<your_api_key>",CODE
HIGH⚡…_search_engines/engines/test_search_engine_openalex.py129 "your_api_key",CODE
HIGHdocs/faq.md384 export LDR_LLM_OPENAI_ENDPOINT_API_KEY="<your-api-key>"CODE
HIGHdocs/faq.md395 - 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.md142export LDR_LLM_OPENAI_ENDPOINT_API_KEY="<your-api-key>"CODE
HIGHdocs/env_configuration.md156 - LDR_LLM_OPENAI_ENDPOINT_API_KEY=<your-api-key>CODE
HIGHdocs/env_configuration.md172export LDR_LLM_OPENAI_ENDPOINT_API_KEY="<your-api-key>"CODE
HIGHdocs/env_configuration.md182 -e LDR_LLM_OPENAI_API_KEY=your-api-key-here \CODE
HIGHdocs/env_configuration.md220export LDR_LLM_ANTHROPIC_API_KEY=your-api-key-hereCODE
HIGHdocs/env_configuration.md223set 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…c/local_deep_research/utilities/openalex_enrichment.py67 ``your-api-key-here``, ``<your_api_key>``, ``${OPENALEX_API_KEY}``, …STRING
HIGHsrc/local_deep_research/api/research_functions.py240 api_key="your-api-key-here"STRING
HIGH⚡…deep_research/web_search_engines/search_engine_base.py59 "your_api_key",CODE
HIGH⚡…deep_research/web_search_engines/search_engine_base.py67 "your-api-key-here",CODE
HIGH⚡…deep_research/web_search_engines/search_engine_base.py77 "your-api-key", # without -here suffixCODE
HIGH…deep_research/web_search_engines/search_engine_base.py96 - Angle-bracket templates: ``<...>`` (e.g. ``<your_api_key>``)STRING
Verbosity Indicators151 hits · 277 pts
SeverityFileLineSnippetContext
LOW⚡tests/test_openai_api_key_e2e.py64 # Step 1: AuthenticateCOMMENT
LOW⚡tests/test_openai_api_key_e2e.py71 # Step 2: Configure settingsCOMMENT
LOW⚡tests/test_openai_api_key_e2e.py109 # Step 3: Test LLM initializationCOMMENT
LOW⚡tests/test_openai_api_key_e2e.py120 # Step 4: Test simple LLM callCOMMENT
LOW⚡tests/test_openai_api_key_e2e.py143 # Step 5: Test research functionalityCOMMENT
LOW⚡tests/vector_stores/test_full_migration_lifecycle.py227 # Step 1: a REALISTIC LEGACY index directly at the SHARED (NOTCOMMENT
LOW⚡tests/vector_stores/test_full_migration_lifecycle.py310 # Step 3: trigger the per-user relocation. In production this isCOMMENT
LOW⚡tests/vector_stores/test_full_migration_lifecycle.py391 # Step 4: SEARCH through the real VectorIndex facade (via theCOMMENT
LOW⚡tests/vector_stores/test_full_migration_lifecycle.py402 # Step 5: a NEW document indexed normally MERGES into the relocated +COMMENT
LOW⚡tests/database/test_alembic_migrations.py4627 # Step 1: Migrate to 0001 onlySTRING
LOW⚡tests/database/test_alembic_migrations.py4631 # Step 2: Insert dataSTRING
LOW⚡tests/database/test_alembic_migrations.py4658 # Step 3: Upgrade to head (0005)STRING
LOW⚡tests/database/test_alembic_migrations.py4662 # Step 4: Verify data survivedSTRING
LOWtests/database/test_alembic_migrations.py4675 # Step 5: Verify new columns existSTRING
LOWtests/database/test_alembic_migrations.py4707 # Step 6: Another run_migrations should be no-opSTRING
LOW⚡tests/deletion/test_cascade_integration.py241 # Step 1: Delete chunks (no FK, manual cleanup required)COMMENT
LOW⚡tests/deletion/test_cascade_integration.py247 # Step 2: Delete document (CASCADE handles blob and collection links)COMMENT
LOW⚡tests/deletion/test_cascade_integration.py404 # Step 1: Delete chunks (no FK, manual cleanup)COMMENT
LOW⚡tests/deletion/test_cascade_integration.py409 # Step 2: Delete RAG indexCOMMENT
LOW⚡tests/deletion/test_cascade_integration.py414 # Step 3: Delete collection (CASCADE handles folders, links)COMMENT
LOW⚡tests/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
LOW…curity/test_db_connection_rekey_kills_held_sessions.py161 # Step 1: close. The session survives via creator-closure reconnectCOMMENT
LOW…curity/test_db_connection_rekey_kills_held_sessions.py174 # Step 2: rekey. The resurrecting connection now derives the OLD keyCOMMENT
LOW⚡tests/security/test_csrf_e2e_flow.py20 # Step 1: stamp the session and fetch a CSRF token for registration.COMMENT
LOW⚡tests/security/test_csrf_e2e_flow.py26 # Step 2: Register (auto-logs in the user).COMMENT
LOW⚡tests/security/test_csrf_e2e_flow.py44 # Step 3: Get the post-login API CSRF token.COMMENT
LOW⚡tests/security/test_csrf_e2e_flow.py47 # Step 4: POST a browser-facing endpoint WITH the token — must passCOMMENT
LOWtests/security/test_csrf_e2e_flow.py61 # Step 5: POST the same endpoint WITHOUT a token — CSRF rejection (403).COMMENT
LOW…ts/security/test_db_connection_change_password_race.py972 # Step 5: the parked OLD-key open tries to publish after the rekey.COMMENT
LOW…s/security/test_settings_secret_redaction_isolation.py1106 # Step 1: submit both items with ONLY api_key visible (masked). IfCOMMENT
LOW⚡tests/security/test_noncollection_agent_enabled.py649 # Step 1: Add API key only. agent_enabled is still False by default.COMMENT
LOW⚡tests/security/test_noncollection_agent_enabled.py656 # Step 2: Explicitly enable for agent.COMMENT
LOW⚡tests/security/test_noncollection_agent_enabled.py676 # Step 1: Add API key. Defaults agent_enabled=True.COMMENT
LOW⚡tests/security/test_noncollection_agent_enabled.py683 # Step 2: Toggle off.COMMENT
LOWtests/research_library/zotero/test_sync_service.py1950 # Step 1: first contact — byte-identical, so the item adopts the upload.COMMENT
LOWtests/research_library/zotero/test_sync_service.py1965 # Step 2: the PDF is replaced in Zotero — content now differs.COMMENT
LOW…arch_library/services/test_index_documents_parallel.py825 # Step 1: pre-create wrapper A and put it in the dict as canonical.COMMENT
LOW⚡…rch_library/services/test_multi_model_switch_revert.py207 # Step 1: index under model A.COMMENT
LOW⚡…rch_library/services/test_multi_model_switch_revert.py255 # Step 2: switch to model B, force-reindex the SAME document/collection.COMMENT
LOW⚡…rch_library/services/test_multi_model_switch_revert.py361 # Step 4: revert for real via the WRITE-path resolutionCOMMENT
LOW⚡tests/web/test_long_integration_flows.py526 # Step 2: B writes its own marker.COMMENT
LOW⚡tests/web/test_long_integration_flows.py534 # Step 3: both read back — each must see only its own marker.COMMENT
LOW⚡tests/web/test_long_integration_flows.py540 # Step 4: A creates a collection; B immediately lists collectionsCOMMENT
LOWtests/web/test_long_integration_flows.py513 # Step 1: A writes, B has not written yet -> B must still see itsCOMMENT
LOWtests/web/test_long_integration_flows.py556 # Step 5: B creates its own collection; A must not see it either.COMMENT
LOWtests/web/test_long_integration_flows.py571 # Step 6: cross-user direct-object access on the collectionCOMMENT
LOW⚡tests/ui_tests/test_research_diagnosis.js75 // Step 1: AuthenticateCOMMENT
LOW⚡tests/ui_tests/test_research_diagnosis.js80 // Step 2: Go to home pageCOMMENT
LOW⚡tests/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
91 more matches not shown…
Fake / Example Data122 hits · 126 pts
SeverityFileLineSnippetContext
LOW⚡tests/test_advertised_but_dead_sweep.py832 fake_key, fake_env = "made.up.setting", "TOTALLY_NOT_READ_ANYWHERE"CODE
LOW⚡tests/test_advertised_but_dead_sweep.py833 assert fake_env != _derived_env_var(fake_key)CODE
LOW⚡tests/test_llm_rate_limiting.py209 fake_key = "sk-" + "a1b2c3d4e5f6g7h8i9j0" # 20+ chars: real key shapeCODE
LOW⚡tests/test_llm_rate_limiting.py210 err = Exception(f"Error: 429 quota exceeded, key {fake_key}")CODE
LOW⚡tests/test_llm_rate_limiting.py217 assert fake_key not in str(exc_info.value)CODE
LOW⚡tests/test_llm_rate_limiting.py264 fake_key = "sk-" + "a1b2c3d4e5f6g7h8i9j0"CODE
LOW⚡tests/test_llm_rate_limiting.py265 err = Exception(f"Error: 429 quota exceeded, key {fake_key}")CODE
LOW⚡tests/test_llm_rate_limiting.py328 fake_key = "sk-" + "z9y8x7w6v5u4t3s2r1q0"CODE
LOW⚡tests/test_llm_rate_limiting.py332 raise Exception(f"Error: 429 quota exceeded, key {fake_key}")CODE
LOW⚡tests/test_llm_rate_limiting.py403 fake_key = "sk-" + "z9y8x7w6v5u4t3s2r1q0"CODE
LOW⚡tests/test_llm_rate_limiting.py405 side_effect=Exception(f"429 quota, auth Bearer {fake_key}")CODE
LOW⚡tests/test_llm_rate_limiting.py410 assert fake_key not in str(results[0])CODE
LOW⚡tests/test_llm_rate_limiting.py416 fake_key = "sk-" + "m1n2o3p4q5r6s7t8u9v0"CODE
LOW⚡tests/test_llm_rate_limiting.py418 side_effect=Exception(f"429 quota, auth Bearer {fake_key}")CODE
LOW⚡tests/test_llm_rate_limiting.py424 assert fake_key not in str(exc_info.value)CODE
LOW⚡tests/test_llm_rate_limiting.py735 fake_key = self.FAKE_KEYCODE
LOW⚡tests/test_llm_rate_limiting.py742 raise RuntimeError(f"Error: 429 cleanup, key {fake_key}")CODE
LOW⚡tests/test_llm_rate_limiting.py757 fake_key = self.FAKE_KEYCODE
LOW⚡tests/test_llm_rate_limiting.py764 raise RuntimeError(f"Error: 429 cleanup, key {fake_key}")CODE
LOW⚡tests/test_llm_rate_limiting.py773 assert fake_key not in str(exc_info.value)CODE
LOW⚡tests/test_llm_rate_limiting.py783 fake_key = self.FAKE_KEYCODE
LOW⚡tests/test_llm_rate_limiting.py790 raise RuntimeError(f"Error: 429 cleanup, key {fake_key}")CODE
LOW⚡tests/test_llm_rate_limiting.py814 fake_key = self.FAKE_KEYCODE
LOW⚡tests/test_llm_rate_limiting.py821 raise RuntimeError(f"Error: 429 cleanup, key {fake_key}")CODE
LOWtests/test_llm_rate_limiting.py277 assert fake_key not in str(exc_info.value)CODE
LOWtests/test_llm_rate_limiting.py343 assert fake_key not in str(exc_info.value)CODE
LOWtests/test_llm_rate_limiting.py833 assert fake_key not in str(raised)CODE
LOWtests/test_search_engines_enhanced.py167 Mock(name="John Doe"),CODE
LOW⚡tests/mock_fixtures.py122 "authors": [{"name": "John Doe"}, {"name": "Jane Smith"}],CODE
LOW…sts/vector_stores/test_legacy_cleanup_edge_failures.py70 pkl_path.write_bytes(b"placeholder")CODE
LOW…sts/vector_stores/test_legacy_cleanup_edge_failures.py230 faiss_path.write_bytes(b"placeholder")CODE
LOW⚡tests/database/test_credential_store_behavior.py340 special_user = "user@example.com"CODE
LOWtests/database/backup/test_backup_service.py3277 "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_flask_secret_key_gate.py318 Deliberately avoids the words "example"/"placeholder" in the comment:STRING
LOW⚡tests/security/test_csrf_protection.py188 "csrf_token": "invalid-fake-token-12345",CODE
LOWtests/js/utils/form-validation.test.js293 expect(emailLike('user@example.com')).toBeNull();CODE
LOW…/research_library/downloaders/test_arxiv_downloader.py361 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.py426 <meta name="author" content="John Doe">CODE
LOW⚡…rary/downloaders/test_html_downloader_deep_coverage.py435 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
LOW⚡tests/strategies/test_langgraph_agent_strategy.py7641 shared = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. " * 8CODE
LOW⚡tests/strategies/test_langgraph_agent_strategy.py7641 shared = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. " * 8CODE
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
LOW⚡tests/search_engines/test_search_engine_retriever.py184 "author": "John Doe",CODE
LOW⚡tests/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
LOW⚡tests/search_engines/test_base_helpers.py115 assert BaseSearchEngine._is_valid_api_key("placeholder") is FalseCODE
LOW⚡tests/search_engines/test_base_helpers.py145 "placeholder",CODE
LOW⚡tests/search_engines/test_base_helpers.py150 "placeholder",CODE
LOWtests/search_engines/test_base_helpers.py334 "placeholder",CODE
LOWtests/search_engines/test_search_engine_arxiv.py108 mock_result.authors = [Mock(name="John Doe"), Mock(name="Jane Smith")]CODE
62 more matches not shown…
Modern Structural Boilerplate108 hits · 107 pts
SeverityFileLineSnippetContext
LOWtests/security/test_cross_user_settings.py52def _set_provider_secret(user: AuthenticatedUser, secret: str) -> None:CODE
LOWtests/web/routers/test_post_login_worker_dispatch.py55def _set_unique_peer(client: TestClient) -> None:CODE
LOWsrc/local_deep_research/__init__.py15__all__ = [CODE
LOWsrc/local_deep_research/vector_stores/__init__.py16__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.py385__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.py1678 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.py257def set_sqlcipher_key_from_hex(cursor_or_conn: Any, hex_key: str) -> None:CODE
LOWsrc/local_deep_research/database/models/__init__.py114__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__.py780__all__ = [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…earch_system/strategies/topic_organization_strategy.py209 def set_progress_callback(self, callback) -> None: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__.py18__all__ = [CODE
LOWsrc/local_deep_research/content_fetcher/__init__.py19__all__ = ["ContentFetcher", "URLClassifier", "URLType"]CODE
LOWsrc/local_deep_research/security/__init__.py79__all__ = [CODE
LOWsrc/local_deep_research/security/egress/audit_hook.py73def set_active_context(ctx) -> None:CODE
LOWsrc/local_deep_research/security/egress/__init__.py42__all__ = [CODE
LOW…ocal_deep_research/security/file_integrity/__init__.py37__all__ = [CODE
LOW…_research/security/file_integrity/integrity_manager.py346 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__.py15__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…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__.py20__all__ = [CODE
LOW…_deep_research/research_library/zotero/sync_service.py447 def _set_progress(self, **fields) -> None:CODE
LOW…ocal_deep_research/research_library/search/__init__.py10__all__ = ["ResearchHistoryIndexer"]CODE
LOW…_research/research_library/search/services/__init__.py6__all__ = ["ResearchHistoryIndexer", "auto_convert_research"]CODE
LOW…local_deep_research/research_library/notes/__init__.py18__all__ = ["NoteService", "NoteAIService"]CODE
LOW…p_research/research_library/notes/services/__init__.py16__all__ = ["NoteService", "NoteAIService", "get_note_source_type_id"]CODE
LOWsrc/local_deep_research/exporters/__init__.py45__all__ = [CODE
LOW⚡src/local_deep_research/web/fastapi_app.py1994def _setup_rate_limiting(app: FastAPI) -> None:CODE
LOW⚡src/local_deep_research/web/fastapi_app.py2196def _setup_template_globals() -> None:CODE
48 more matches not shown…
AI Structural Patterns64 hits · 54 pts
SeverityFileLineSnippetContext
LOWtests/vector_stores/test_faiss_store.py31CODE
LOWtests/security/test_ooxml_decompression_caps.py7174CODE
LOW…web/routers/test_settings_routes_deep_coverage_port.py41CODE
LOW…eb/routers/test_settings_routes_deep_coverage2_port.py30CODE
LOW…outers/test_settings_routes_corrupted_coverage_port.py25CODE
LOWtests/web/routers/test_settings_routes_coverage_port.py44CODE
LOW…/test_settings_routes_save_validation_coverage_port.py49CODE
LOWtests/web/services/test_settings_manager_extended.py25CODE
LOWtests/web/services/test_settings_manager.py21CODE
LOWtests/web/services/test_research_execution_boundary.py280CODE
LOWtests/news/test_folder_manager_behavior.py20CODE
LOWtests/web_search_engines/engines/test_arxiv_coverage.py48CODE
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.py74CODE
LOW…search_system/strategies/focused_iteration_strategy.py59CODE
LOW…earch_system/strategies/topic_organization_strategy.py29CODE
LOW…nced_search_system/strategies/source_based_strategy.py66CODE
LOW…d_search_system/strategies/langgraph_agent_strategy.py1732CODE
LOWsrc/local_deep_research/config/llm_config.py81CODE
LOW…earch/research_library/services/library_rag_service.py327CODE
LOW…_research/research_library/services/library_service.py269CODE
LOWsrc/local_deep_research/news/api.py1106CODE
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.py36CODE
LOWsrc/local_deep_research/api/research_functions.py191CODE
LOWsrc/local_deep_research/api/research_functions.py376CODE
LOW…p_research/web_search_engines/search_engine_factory.py991CODE
LOW…deep_research/web_search_engines/search_engine_base.py447CODE
LOW…web_search_engines/engines/search_engine_google_pse.py25CODE
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.py26CODE
LOW…rch/web_search_engines/engines/search_engine_tavily.py31CODE
LOW…search/web_search_engines/engines/search_engine_exa.py22CODE
LOW…rch/web_search_engines/engines/search_engine_pubmed.py32CODE
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.py158CODE
LOW…h/web_search_engines/engines/search_engine_guardian.py22CODE
LOW…arch/web_search_engines/engines/search_engine_brave.py29CODE
LOW…arch/web_search_engines/engines/search_engine_arxiv.py75CODE
LOW…h/web_search_engines/engines/search_engine_tinyfish.py28CODE
LOW…eep_research/web_search_engines/engines/full_search.py122CODE
LOW…h/web_search_engines/engines/search_engine_openalex.py60CODE
LOW…rch/web_search_engines/engines/search_engine_github.py33CODE
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
4 more matches not shown…
Dead Code10 hits · 18 pts
SeverityFileLineSnippetContext
MEDIUMtests/metrics/test_link_analytics_computation.py128CODE
MEDIUM…earch_library/routes/test_rag_routes_deep_main_port.py231CODE
MEDIUMtests/web/routers/test_context_overflow_port.py101CODE
MEDIUM…sts/web/routers/test_research_route_error_envelopes.py70CODE
MEDIUM…sts/web/routers/test_metrics_endpoint_edge_branches.py72CODE
MEDIUMtests/web/routers/test_history_branch_recovery.py78CODE
MEDIUMtests/web/routers/test_search_favorites.py90CODE
MEDIUMtests/web/queue/test_queue_manager.py35CODE
MEDIUMtests/utilities/test_arxiv_fetch_api.py161CODE
MEDIUM…rch_engines/engines/test_embedding_manager_coverage.py345CODE
Cross-Language Confusion (JS/TS)3 hits · 18 pts
SeverityFileLineSnippetContext
HIGHtests/ui_tests/test_streaming_realtime_ci.js192 'handler is supposed to return False when request.session has no username.'CODE
HIGHtests/ui_tests/test_lib/test_results.js203 print() {CODE
HIGH…cal_deep_research/web/static/js/components/settings.js3428 * @return True if the content is valid.COMMENT
Overly Generic Function Names16 hits · 17 pts
SeverityFileLineSnippetContext
LOW⚡tests/test_migration_shelved_coverage_ratchet.py242 def helper(value=stop({reason!r}, allow_module_level=True)):CODE
LOWtests/test_migration_shelved_coverage_ratchet.py279 def helper(value=stop({reason!r}, allow_module_level=True)):CODE
LOWtests/test_migration_decision_records.py750 def helper(value=stop("removed in the migration", allow_module_level=True)):CODE
LOW⚡tests/security/test_sensitive_logging_hook.py503 "def helper(requests):\n"CODE
LOW⚡tests/security/test_sensitive_logging_hook.py701 "def helper():\n"CODE
LOW⚡tests/security/test_sensitive_logging_hook.py863 "def helper(log_obj):\n"CODE
LOW⚡tests/security/test_sensitive_logging_hook.py934 "def helper(session):\n"CODE
LOWtests/security/test_llm_object_not_logged.py449 # A nested `def helper(): print(llm)` is ordinary code thatCOMMENT
LOWtests/security/test_llm_object_not_logged.py621 " def helper():\n"CODE
LOWtests/security/test_env_vars_hook.py120def process_data(data):CODE
LOWtests/web/test_startup_ordering_contracts.py256def helper():CODE
LOWtests/web/test_csrf_lifecycle_contracts.py150 def helper(request: Request, token: str):CODE
LOW⚡tests/utilities/test_thread_context.py221 def my_function():CODE
LOWtests/utilities/test_db_utils.py237 def my_function():CODE
LOW⚡tests/hooks/test_check_fastapi_default_parameters.py105 "def helper(path=Path('.'), value=Depends('local')):\n"CODE
LOW⚡tests/hooks/test_check_weak_tests.py150 "def helper():\n assert True\n",CODE
Synthetic Comment Markers2 hits · 15 pts
SeverityFileLineSnippetContext
HIGHtests/test_programmatic_custom_llm_retriever.py76 # Using gemma3n:e4b as requestedCOMMENT
HIGH.github/workflows/release.yml790 # 1. AI-generated narrative (model = vars.AI_MODEL). Fed theCOMMENT
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
LOW⚡docker-compose.gpu.override.yml11# Usage:COMMENT
LOWtests/ui_tests/run_legacy_pkl_migration.sh17# Usage:COMMENT
LOWscripts/dev/restart_server.sh4# Usage:COMMENT
LOW.github/scripts/combine-ai-reviews.sh13# Usage:COMMENT