Interactive architecture diagrams for codebases
This report summarizes scanner evidence for CodeBoarding/CodeBoarding, a Python project with 2,547 GitHub stars. SynthScan examined 77,090 lines of code across 340 source files, recording 2962 pattern matches distributed across 20 syntactic categories. The legacy adjusted pattern signal is 43.3 (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.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 2393 finding(s).
Are imports declared and package/API names verified? 276 finding(s).
Are wrappers, guards, and repeated structures necessary? 2544 finding(s).
Which changes need focused human review? 2962 finding(s).
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.
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.
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.
The scanner identified 2962 distinct pattern matches across 20 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.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | diagram_analysis/incremental_update.py | 127 | def generate_all_scope_relations( | CODE |
| LOW | diagram_analysis/incremental_update.py | 151 | def _create_component_from_operation( | CODE |
| LOW | diagram_analysis/incremental_update.py | 184 | def _sync_noop_component_cluster_ids( | CODE |
| LOW | diagram_analysis/incremental_update.py | 198 | def _update_component_from_operation( | CODE |
| LOW | diagram_analysis/incremental_update.py | 219 | def _patch_scope_file_methods( | CODE |
| LOW | diagram_analysis/incremental_update.py | 252 | def _generate_scope_relations( | CODE |
| LOW | diagram_analysis/incremental_update.py | 341 | def _operation_source_cluster_ids(scope_id: str, operation: ScopeOperation) -> list[str]: | CODE |
| LOW | diagram_analysis/incremental_update.py | 350 | def _remove_reassigned_clusters( | CODE |
| LOW | diagram_analysis/incremental_update.py | 378 | def _log_duplicate_cluster_ownership(scope_id: str, components: list[Component]) -> None: | CODE |
| LOW | diagram_analysis/incremental_update.py | 479 | def _merge_file_method_groups( | CODE |
| LOW | diagram_analysis/incremental_update.py | 518 | def _component_has_live_cfg_methods(component: Component, live_qnames: set[str]) -> bool: | CODE |
| LOW | diagram_analysis/scope_assembly.py | 342 | def qualify_source_cluster_ids(analysis: AnalysisInsights, scope_id: str) -> None: | CODE |
| LOW | diagram_analysis/file_index.py | 24 | def build_file_methods_from_nodes( | CODE |
| LOW | diagram_analysis/file_index.py | 112 | def refresh_method_spans_from_cfg( | CODE |
| LOW | diagram_analysis/diagram_generator.py | 124 | def _component_expansion_seeds(components: list[Component], max_depth: int) -> list[tuple[Component, int]]: | CODE |
| LOW | diagram_analysis/diagram_generator.py | 295 | def _capture_baseline_member_keys( | CODE |
| LOW | diagram_analysis/diagram_generator.py | 315 | def _capture_membership_baseline( | CODE |
| LOW | diagram_analysis/diagram_generator.py | 349 | def _restore_unchanged_metadata( | CODE |
| LOW | diagram_analysis/diagram_generator.py | 403 | def _fully_unchanged_component_ids( | CODE |
| LOW | diagram_analysis/diagram_generator.py | 437 | def _restore_unchanged_subtrees( | CODE |
| LOW | diagram_analysis/diagram_generator.py | 472 | def _incremental_changed_component_ids( | CODE |
| LOW | diagram_analysis/diagram_generator.py | 530 | def distinguish_expanded_component_names( | CODE |
| LOW | diagram_analysis/diagram_generator.py | 874 | def _enrich_incremental_scopes( | CODE |
| LOW | diagram_analysis/diagram_generator.py | 919 | def _incremental_changed_files(self, root_analysis: AnalysisInsights) -> set[str]: | CODE |
| LOW | diagram_analysis/diagram_generator.py | 1005 | def _prepare_incremental_clustering( | CODE |
| LOW | diagram_analysis/diagram_generator.py | 1201 | def _changed_files_for_static_analysis(self) -> set[Path] | None: | CODE |
| LOW | diagram_analysis/diagram_generator.py | 1216 | def _get_static_with_injected_analyzer(self) -> StaticAnalysisResults: | CODE |
| LOW | diagram_analysis/diagram_generator.py | 1234 | def _get_static_with_new_analyzer(self) -> StaticAnalysisResults: | CODE |
| LOW | diagram_analysis/diagram_generator.py | 1250 | def _persist_static_analysis_artifact(self) -> None: | CODE |
| LOW | diagram_analysis/diagram_generator.py | 1258 | def _source_tree_fingerprint_map(self) -> dict[str, str]: | CODE |
| LOW | diagram_analysis/diagram_generator.py | 1559 | def _build_file_coverage_summary(self) -> FileCoverageSummary | None: | CODE |
| LOW | diagram_analysis/diagram_generator.py | 1606 | def _apply_incremental_hierarchy( | CODE |
| LOW | diagram_analysis/diagram_generator.py | 1644 | def generate_analysis_incremental( | CODE |
| LOW | diagram_analysis/diagram_generator.py | 1817 | def _collect_components_by_id( | CODE |
| LOW | diagram_analysis/diagram_generator.py | 1835 | def _drop_removed_subtree_analyses(sub_analyses: dict[str, AnalysisInsights], removed_ids: set[str]) -> None: | CODE |
| LOW | diagram_analysis/cluster_relations.py | 37 | def build_global_node_to_component_map( | CODE |
| LOW | diagram_analysis/cluster_relations.py | 50 | def build_component_relations( | CODE |
| LOW | diagram_analysis/cluster_relations.py | 107 | def _collect_authoritative_relations( | CODE |
| LOW | diagram_analysis/cluster_relations.py | 138 | def _relation_key_edges_for_pair( | CODE |
| LOW | diagram_analysis/tree_shape.py | 12 | def absorb_single_child_components( | CODE |
| LOW | diagram_analysis/io_utils.py | 49 | def _compute_expandable_components( | CODE |
| LOW | diagram_analysis/io_utils.py | 277 | def load_expandable_component_ids(output_dir: Path) -> set[str]: | CODE |
| LOW | diagram_analysis/analysis_json.py | 166 | def _build_files_index_from_analysis( | CODE |
| LOW | diagram_analysis/analysis_json.py | 187 | def _source_reference_method_key(reference: SourceCodeReference, repo_dir: Path) -> str: | CODE |
| LOW | diagram_analysis/analysis_json.py | 218 | def _to_component_file_method_refs(file_methods: list[FileMethodGroup]) -> list[ComponentFileMethodGroupJson]: | CODE |
| LOW | diagram_analysis/analysis_json.py | 233 | def _method_refs_to_placeholders(method_names: list[str]) -> list[MethodEntry]: | CODE |
| LOW | diagram_analysis/analysis_json.py | 245 | def _build_methods_index_from_files(files_index: dict[str, FileEntry]) -> dict[str, MethodIndexEntry]: | CODE |
| LOW | diagram_analysis/analysis_json.py | 260 | def _build_file_entry_json_from_files(files_index: dict[str, FileEntry]) -> dict[str, FileEntryJson]: | CODE |
| LOW | diagram_analysis/analysis_json.py | 272 | def _hydrate_component_methods_from_refs( | CODE |
| LOW | diagram_analysis/analysis_json.py | 322 | def from_component_to_json_component( | CODE |
| LOW | diagram_analysis/analysis_json.py | 452 | def build_unified_analysis_json( | CODE |
| LOW | diagram_analysis/analysis_json.py | 577 | def _extract_analysis_recursive( | CODE |
| LOW | diagram_analysis/reference_resolver.py | 47 | def fix_source_code_reference_lines(self, analysis: AnalysisInsights) -> AnalysisInsights: | CODE |
| LOW | diagram_analysis/reference_resolver.py | 73 | def repair_key_entity_references( | CODE |
| LOW | diagram_analysis/reference_resolver.py | 142 | def _resolve_symbol_reference( | CODE |
| LOW | diagram_analysis/reference_resolver.py | 281 | def remove_unresolved_references(self, analysis: AnalysisInsights) -> None: | CODE |
| LOW | diagram_analysis/reference_resolver.py | 382 | def _try_file_path_resolution( | CODE |
| LOW | diagram_analysis/reference_resolver.py | 389 | def _try_existing_reference_file(self, reference: SourceCodeReference, lang: Language) -> bool: | CODE |
| LOW | diagram_analysis/reference_resolver.py | 401 | def _try_qualified_name_as_path( | CODE |
| LOW | infra/install.py | 105 | def bootstrapped_npm_cli_path(target_dir: Path) -> Path: | CODE |
| 2190 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | diagram_analysis/io_utils.py | 237 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | diagram_analysis/io_utils.py | 239 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | diagram_analysis/io_utils.py | 252 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | diagram_analysis/io_utils.py | 254 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | infra/repo_utils/ignore.py | 25 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | infra/repo_utils/ignore.py | 27 | # ============================================================================ | COMMENT |
| MEDIUM | infra/repo_utils/ignore.py | 57 | # ============================================================================ | COMMENT |
| MEDIUM | infra/repo_utils/ignore.py | 59 | # ============================================================================ | COMMENT |
| MEDIUM | infra/repo_utils/ignore.py | 104 | # ============================================================================ | COMMENT |
| MEDIUM | infra/repo_utils/ignore.py | 106 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | infra/repo_utils/ignore.py | 119 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | infra/repo_utils/ignore.py | 121 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | infra/repo_utils/ignore.py | 130 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | infra/repo_utils/ignore.py | 132 | # ============================================================================ | COMMENT |
| MEDIUM | infra/repo_utils/change_detector.py | 307 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | infra/repo_utils/change_detector.py | 309 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …s/diagram_analysis/test_reference_resolve_real_refs.py | 27 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …s/diagram_analysis/test_reference_resolve_real_refs.py | 29 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …s/diagram_analysis/test_reference_resolve_real_refs.py | 78 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …s/diagram_analysis/test_reference_resolve_real_refs.py | 80 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/diagram_analysis/test_global_relations.py | 60 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/diagram_analysis/test_global_relations.py | 62 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/diagram_analysis/test_global_relations.py | 86 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/diagram_analysis/test_global_relations.py | 88 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/diagram_analysis/test_global_relations.py | 117 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/diagram_analysis/test_global_relations.py | 119 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/diagram_analysis/test_global_relations.py | 294 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/diagram_analysis/test_global_relations.py | 296 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/infra/repo_utils/test_non_ascii_paths.py | 40 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/infra/repo_utils/test_non_ascii_paths.py | 42 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/infra/repo_utils/test_non_ascii_paths.py | 81 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/infra/repo_utils/test_non_ascii_paths.py | 83 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/infra/repo_utils/test_non_ascii_paths.py | 211 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/infra/repo_utils/test_non_ascii_paths.py | 213 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/output_generators/test_rendering.py | 123 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/output_generators/test_rendering.py | 125 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/output_generators/test_rendering.py | 21 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/output_generators/test_rendering.py | 23 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/health/test_unused_code_diagnostics.py | 278 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/health/test_unused_code_diagnostics.py | 280 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/health/test_unused_code_diagnostics.py | 406 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/health/test_unused_code_diagnostics.py | 408 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/health/test_unused_code_diagnostics.py | 440 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/health/test_unused_code_diagnostics.py | 442 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/health/test_unused_code_diagnostics.py | 485 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/health/test_unused_code_diagnostics.py | 487 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/health/test_unused_code_diagnostics.py | 515 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/health/test_unused_code_diagnostics.py | 517 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/health/test_unused_code_diagnostics.py | 545 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/health/test_unused_code_diagnostics.py | 547 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/health/test_unused_code_diagnostics.py | 332 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/health/test_unused_code_diagnostics.py | 334 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/static_analyzer/test_result_converter.py | 95 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/static_analyzer/test_result_converter.py | 97 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/static_analyzer/test_result_converter.py | 114 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/static_analyzer/test_result_converter.py | 116 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/static_analyzer/test_result_converter.py | 232 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/static_analyzer/test_result_converter.py | 234 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/static_analyzer/test_result_converter.py | 354 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/static_analyzer/test_result_converter.py | 356 | # --------------------------------------------------------------------------- | COMMENT |
| 26 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | diagram_analysis/run_mode.py | 3 | CODE | |
| LOW | diagram_analysis/__init__.py | 1 | CODE | |
| LOW | diagram_analysis/file_coverage.py | 17 | CODE | |
| LOW | diagram_analysis/file_coverage.py | 18 | CODE | |
| LOW | infra/utils.py | 10 | CODE | |
| LOW | infra/utils.py | 10 | CODE | |
| LOW | infra/utils.py | 11 | CODE | |
| LOW | infra/utils.py | 11 | CODE | |
| LOW | infra/repo_utils/git_ops.py | 17 | CODE | |
| LOW | infra/repo_utils/__init__.py | 13 | CODE | |
| LOW | infra/repo_utils/__init__.py | 13 | CODE | |
| LOW | infra/repo_utils/change_detector.py | 13 | CODE | |
| LOW | infra/tool_registry/__init__.py | 6 | CODE | |
| LOW | infra/tool_registry/__init__.py | 6 | CODE | |
| LOW | infra/tool_registry/__init__.py | 6 | CODE | |
| LOW | infra/tool_registry/__init__.py | 6 | CODE | |
| LOW | infra/tool_registry/__init__.py | 6 | CODE | |
| LOW | infra/tool_registry/__init__.py | 6 | CODE | |
| LOW | infra/tool_registry/__init__.py | 6 | CODE | |
| LOW | infra/tool_registry/__init__.py | 6 | CODE | |
| LOW | infra/tool_registry/__init__.py | 6 | CODE | |
| LOW | infra/tool_registry/__init__.py | 6 | CODE | |
| LOW | infra/tool_registry/__init__.py | 6 | CODE | |
| LOW | infra/tool_registry/__init__.py | 6 | CODE | |
| LOW | infra/tool_registry/__init__.py | 6 | CODE | |
| LOW | infra/tool_registry/__init__.py | 6 | CODE | |
| LOW | infra/tool_registry/__init__.py | 6 | CODE | |
| LOW | infra/tool_registry/__init__.py | 6 | CODE | |
| LOW | infra/tool_registry/__init__.py | 6 | CODE | |
| LOW | infra/tool_registry/__init__.py | 6 | CODE | |
| LOW | infra/tool_registry/__init__.py | 6 | CODE | |
| LOW | infra/tool_registry/__init__.py | 27 | CODE | |
| LOW | infra/tool_registry/__init__.py | 27 | CODE | |
| LOW | infra/tool_registry/__init__.py | 27 | CODE | |
| LOW | infra/tool_registry/__init__.py | 27 | CODE | |
| LOW | infra/tool_registry/__init__.py | 27 | CODE | |
| LOW | infra/tool_registry/__init__.py | 27 | CODE | |
| LOW | infra/tool_registry/__init__.py | 27 | CODE | |
| LOW | infra/tool_registry/__init__.py | 27 | CODE | |
| LOW | infra/tool_registry/__init__.py | 27 | CODE | |
| LOW | infra/tool_registry/__init__.py | 27 | CODE | |
| LOW | infra/tool_registry/__init__.py | 27 | CODE | |
| LOW | infra/tool_registry/__init__.py | 27 | CODE | |
| LOW | infra/tool_registry/__init__.py | 27 | CODE | |
| LOW | infra/tool_registry/__init__.py | 27 | CODE | |
| LOW | infra/tool_registry/__init__.py | 27 | CODE | |
| LOW | infra/tool_registry/__init__.py | 27 | CODE | |
| LOW | infra/tool_registry/__init__.py | 27 | CODE | |
| LOW | infra/tool_registry/__init__.py | 46 | CODE | |
| LOW | infra/tool_registry/__init__.py | 46 | CODE | |
| LOW | infra/tool_registry/__init__.py | 46 | CODE | |
| LOW | infra/tool_registry/__init__.py | 46 | CODE | |
| LOW | infra/tool_registry/__init__.py | 46 | CODE | |
| LOW | infra/tool_registry/__init__.py | 46 | CODE | |
| LOW | infra/tool_registry/__init__.py | 46 | CODE | |
| LOW | infra/tool_registry/__init__.py | 46 | CODE | |
| LOW | infra/tool_registry/__init__.py | 46 | CODE | |
| LOW | infra/tool_registry/__init__.py | 46 | CODE | |
| LOW | infra/tool_registry/__init__.py | 46 | CODE | |
| LOW | infra/tool_registry/__init__.py | 46 | CODE | |
| 211 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | diagram_analysis/incremental_update.py | 31 | logger = logging.getLogger(__name__) | CODE |
| LOW | diagram_analysis/scope_assembly.py | 29 | logger = logging.getLogger(__name__) | CODE |
| LOW | diagram_analysis/__init__.py | 3 | __all__ = ["DiagramGenerator", "RunContext", "RunPaths", "DEFAULT_DEPTH_CAP", "configure_models"] | CODE |
| LOW | diagram_analysis/diagram_generator.py | 95 | logger = logging.getLogger(__name__) | CODE |
| LOW | diagram_analysis/cluster_relations.py | 25 | logger = logging.getLogger(__name__) | CODE |
| LOW | diagram_analysis/scope_plan.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | diagram_analysis/tree_shape.py | 7 | logger = logging.getLogger(__name__) | CODE |
| LOW | diagram_analysis/file_coverage.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | diagram_analysis/io_utils.py | 36 | logger = logging.getLogger(__name__) | CODE |
| LOW | diagram_analysis/analysis_json.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | diagram_analysis/reference_resolver.py | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW | infra/utils.py | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW | infra/repo_utils/git_ops.py | 24 | logger = logging.getLogger(__name__) | CODE |
| LOW | infra/repo_utils/__init__.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | infra/repo_utils/ignore.py | 9 | logger = logging.getLogger(__name__) | CODE |
| LOW | infra/tool_registry/java.py | 11 | logger = logging.getLogger(__name__) | CODE |
| LOW | infra/tool_registry/grammars.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW | infra/tool_registry/paths.py | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW | infra/tool_registry/manifest.py | 39 | logger = logging.getLogger(__name__) | CODE |
| LOW | infra/tool_registry/installers.py | 45 | logger = logging.getLogger(__name__) | CODE |
| LOW | infra/monitoring/telemetry/service.py | 8 | logger = logging.getLogger(__name__) | CODE |
| LOW | infra/monitoring/telemetry/events.py | 33 | logger = logging.getLogger(__name__) | CODE |
| LOW | infra/monitoring/telemetry/__init__.py | 11 | __all__ = ["ProductTelemetry", "telemetry"] | CODE |
| LOW | output_generators/rendering.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | output_generators/html.py | 10 | logger = logging.getLogger(__name__) | CODE |
| LOW | output_generators/__init__.py | 5 | __all__ = ["FORMAT_EXTENSIONS", "SUPPORTED_FORMATS", "render"] | CODE |
| LOW | health/runner.py | 26 | logger = logging.getLogger(__name__) | CODE |
| LOW | health/config.py | 14 | logger = logging.getLogger(__name__) | CODE |
| LOW | health/models.py | 7 | logger = logging.getLogger(__name__) | CODE |
| LOW | health/__init__.py | 3 | __all__ = ["run_health_checks"] | CODE |
| LOW | health/main.py | 26 | logger = logging.getLogger(__name__) | CODE |
| LOW | health/plugins/plugin_loader.py | 12 | logger = logging.getLogger(__name__) | CODE |
| LOW | health/plugins/registry.py | 5 | logger = logging.getLogger(__name__) | CODE |
| LOW | health/plugins/__init__.py | 27 | logger = logging.getLogger(__name__) | CODE |
| LOW | health/plugins/__init__.py | 92 | __all__ = [ | CODE |
| LOW | health/checks/function_size.py | 14 | logger = logging.getLogger(__name__) | CODE |
| LOW | health/checks/circular_deps.py | 7 | logger = logging.getLogger(__name__) | CODE |
| LOW | health/checks/__init__.py | 8 | __all__ = [ | CODE |
| LOW | health/checks/unused_code_diagnostics.py | 25 | logger = logging.getLogger(__name__) | CODE |
| LOW | tests/static_analyzer/scripts/diagnose_relations.py | 30 | logger = logging.getLogger(__name__) | CODE |
| LOW | agents/llm_errors.py | 23 | logger = logging.getLogger(__name__) | CODE |
| LOW | agents/model_capabilities.py | 14 | logger = logging.getLogger(__name__) | CODE |
| LOW | agents/planner_agent.py | 7 | logger = logging.getLogger(__name__) | CODE |
| LOW | agents/scope_ids.py | 3 | __all__ = ["ROOT_SCOPE_ID"] | CODE |
| LOW | agents/scope_analysis_agent.py | 39 | logger = logging.getLogger(__name__) | CODE |
| LOW | agents/retry.py | 12 | logger = logging.getLogger(__name__) | CODE |
| LOW | agents/tree_planner_agent.py | 28 | logger = logging.getLogger(__name__) | CODE |
| LOW | agents/llm_config.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | agents/agent_responses.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW | agents/tools/__init__.py | 4 | __all__ = ["MethodCallsTool", "ReadFileTool"] | CODE |
| LOW | agents/tools/get_method_calls.py | 9 | logger = logging.getLogger(__name__) | CODE |
| LOW | agents/tools/read_file.py | 9 | logger = logging.getLogger(__name__) | CODE |
| LOW | agents/prompts/__init__.py | 36 | __all__ = [ | CODE |
| LOW | agents/llm_renderers/__init__.py | 11 | __all__ = [ | CODE |
| LOW | agents/llm_renderers/call_graph.py | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW | agents/llm_renderers/scope.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | static_analyzer/scanner.py | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW | static_analyzer/typescript_config_scanner.py | 23 | logger = logging.getLogger(__name__) | CODE |
| LOW | static_analyzer/analysis_cache.py | 39 | logger = logging.getLogger(__name__) | CODE |
| LOW | static_analyzer/analysis_result.py | 15 | logger = logging.getLogger(__name__) | CODE |
| 45 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | diagram_analysis/reference_resolver.py | 206 | except (ValueError, FileExistsError): | CODE |
| HIGH | infra/install.py | 583 | except subprocess.CalledProcessError: | CODE |
| HIGH | infra/install.py | 586 | except Exception: | CODE |
| HIGH | infra/install.py | 405 | except PermissionError: | CODE |
| HIGH | infra/install.py | 428 | except PermissionError: | CODE |
| HIGH | infra/repo_utils/__init__.py | 259 | except (ValueError, TypeError): | CODE |
| HIGH | infra/repo_utils/ignore.py | 219 | except FileNotFoundError: | CODE |
| HIGH | infra/monitoring/telemetry/service.py | 137 | except Exception: | CODE |
| HIGH | tests/infra/monitoring/test_writers.py | 193 | except ValueError: | CODE |
| HIGH | static_analyzer/analysis_cache.py | 289 | except (OSError, FileNotFoundError): | CODE |
| HIGH | static_analyzer/internal_references.py | 71 | except TypeError: | CODE |
| HIGH | static_analyzer/cfg/call_graph.py | 152 | except ValueError: | CODE |
| HIGH | static_analyzer/cfg/call_graph.py | 157 | except ValueError: | CODE |
| HIGH | static_analyzer/engine/hierarchy_builder.py | 77 | except MethodNotFoundError: | CODE |
| HIGH | static_analyzer/engine/hierarchy_builder.py | 91 | except MethodNotFoundError: | CODE |
| HIGH | static_analyzer/engine/lsp_client.py | 287 | except Exception: | CODE |
| HIGH | static_analyzer/engine/lsp_client.py | 303 | except OSError: | CODE |
| HIGH | static_analyzer/engine/lsp_client.py | 296 | except Exception: | CODE |
| HIGH | static_analyzer/engine/adapters/go_adapter.py | 239 | except OSError: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | diagram_analysis/diagram_generator.py | 823 | except Exception as error: | CODE |
| LOW | diagram_analysis/diagram_generator.py | 1126 | except Exception: | CODE |
| LOW | diagram_analysis/diagram_generator.py | 1342 | except Exception: | CODE |
| LOW | diagram_analysis/io_utils.py | 80 | except Exception as e: | CODE |
| LOW | diagram_analysis/io_utils.py | 315 | except Exception: | CODE |
| LOW | diagram_analysis/reference_resolver.py | 176 | except Exception as error: | CODE |
| LOW | infra/install.py | 95 | except Exception as e: | CODE |
| MEDIUM | infra/install.py | 256 | print("Error: npm is required. Install Node.js from https://nodejs.org/en/download and retry.") | CODE |
| LOW | infra/install.py | 425 | except Exception as e: | CODE |
| LOW | infra/install.py | 586 | except Exception: | CODE |
| LOW | infra/repo_utils/ignore.py | 267 | except Exception as e: | CODE |
| LOW | infra/repo_utils/ignore.py | 333 | except Exception as e: | CODE |
| LOW | infra/repo_utils/ignore.py | 350 | except Exception as e: | CODE |
| LOW | infra/tool_registry/installers.py | 139 | except Exception: | CODE |
| LOW | infra/tool_registry/installers.py | 165 | except Exception: | CODE |
| LOW | infra/tool_registry/installers.py | 273 | except Exception: | CODE |
| LOW | infra/tool_registry/installers.py | 472 | except Exception: | CODE |
| LOW | infra/tool_registry/installers.py | 554 | except Exception: | CODE |
| LOW | infra/tool_registry/installers.py | 702 | except Exception: | CODE |
| LOW | infra/tool_registry/installers.py | 762 | except Exception: | CODE |
| LOW | infra/monitoring/writers.py | 136 | except Exception as e: | CODE |
| LOW | infra/monitoring/writers.py | 171 | except Exception as e: | CODE |
| LOW | infra/monitoring/context.py | 117 | except Exception as e: | CODE |
| LOW | infra/monitoring/context.py | 151 | except Exception as e: | CODE |
| LOW | infra/monitoring/telemetry/service.py | 95 | except Exception as e: # init failed -> no-op | CODE |
| LOW | infra/monitoring/telemetry/service.py | 117 | except Exception as e: | CODE |
| LOW | infra/monitoring/telemetry/service.py | 130 | except Exception as e: | CODE |
| LOW | infra/monitoring/telemetry/service.py | 137 | except Exception: | CODE |
| LOW | infra/monitoring/telemetry/events.py | 69 | except Exception: | CODE |
| MEDIUM | infra/monitoring/telemetry/events.py | 41 | def _app_version() -> str: | CODE |
| LOW | infra/monitoring/telemetry/device_id.py | 41 | except Exception: | CODE |
| LOW | infra/monitoring/telemetry/device_id.py | 59 | except Exception: | CODE |
| LOW | infra/monitoring/telemetry/device_id.py | 81 | except Exception: | CODE |
| LOW | infra/monitoring/telemetry/device_id.py | 90 | except Exception: | CODE |
| MEDIUM | infra/monitoring/telemetry/device_id.py | 27 | def _system_uuid() -> str: | CODE |
| MEDIUM | infra/monitoring/telemetry/device_id.py | 45 | def _disk_serial() -> str: | CODE |
| LOW | health/config.py | 51 | except Exception as e: | CODE |
| LOW | health/config.py | 89 | except Exception as e: | CODE |
| LOW | health/config.py | 139 | except Exception as e: | CODE |
| LOW | health/plugins/plugin_loader.py | 38 | except Exception: | CODE |
| LOW | health/plugins/__init__.py | 72 | except Exception: | CODE |
| LOW | health/plugins/__init__.py | 87 | except Exception: | CODE |
| MEDIUM | tests/static_analyzer/scripts/diagnose_relations.py | 211 | print(f"Error: {repo_path} does not exist") | CODE |
| LOW | agents/model_capabilities.py | 107 | except Exception as e: | CODE |
| LOW | agents/model_capabilities.py | 201 | except Exception as e: | CODE |
| LOW | agents/scope_analysis_agent.py | 240 | except Exception as error: | CODE |
| LOW | agents/retry.py | 64 | except Exception as exc: | CODE |
| LOW | agents/tree_planner_agent.py | 118 | except Exception as exc: | CODE |
| LOW | static_analyzer/analysis_cache.py | 238 | except Exception as e: | CODE |
| LOW | static_analyzer/analysis_cache.py | 269 | except Exception as e: | CODE |
| LOW | static_analyzer/analysis_cache.py | 284 | except Exception as e: | CODE |
| LOW | static_analyzer/analysis_cache.py | 358 | except Exception: | CODE |
| MEDIUM | static_analyzer/analysis_cache.py | 150 | def _read_tag_sha_unlocked(self) -> str | None: | CODE |
| LOW | static_analyzer/__init__.py | 368 | except Exception as exc: | CODE |
| LOW | static_analyzer/__init__.py | 395 | except Exception: | CODE |
| LOW | static_analyzer/__init__.py | 441 | except Exception as exc: | CODE |
| LOW | static_analyzer/__init__.py | 462 | except Exception: | CODE |
| LOW | static_analyzer/__init__.py | 509 | except Exception: | CODE |
| LOW | static_analyzer/__init__.py | 512 | except Exception: | CODE |
| LOW | static_analyzer/__init__.py | 524 | except Exception as e: | CODE |
| 20 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | diagram_analysis/incremental_update.py | 398 | CODE | |
| LOW | diagram_analysis/incremental_update.py | 49 | CODE | |
| LOW | diagram_analysis/incremental_update.py | 252 | CODE | |
| LOW | diagram_analysis/file_index.py | 112 | CODE | |
| LOW | diagram_analysis/diagram_generator.py | 315 | CODE | |
| LOW | diagram_analysis/diagram_generator.py | 437 | CODE | |
| LOW | diagram_analysis/diagram_generator.py | 530 | CODE | |
| LOW | diagram_analysis/diagram_generator.py | 1288 | CODE | |
| LOW | diagram_analysis/io_utils.py | 127 | CODE | |
| LOW | diagram_analysis/analysis_json.py | 272 | CODE | |
| LOW | diagram_analysis/analysis_json.py | 408 | CODE | |
| LOW | diagram_analysis/reference_resolver.py | 281 | CODE | |
| LOW | diagram_analysis/reference_resolver.py | 401 | CODE | |
| LOW | infra/vscode_constants.py | 15 | CODE | |
| LOW | infra/logging_config.py | 123 | CODE | |
| LOW | infra/install.py | 365 | CODE | |
| LOW | infra/install.py | 459 | CODE | |
| LOW | infra/install.py | 591 | CODE | |
| LOW | infra/repo_utils/change_detector.py | 97 | CODE | |
| LOW | infra/repo_utils/change_detector.py | 180 | CODE | |
| LOW | infra/tool_registry/java.py | 39 | CODE | |
| LOW | infra/tool_registry/manifest.py | 76 | CODE | |
| LOW | infra/tool_registry/manifest.py | 139 | CODE | |
| LOW | infra/tool_registry/manifest.py | 171 | CODE | |
| LOW | infra/tool_registry/manifest.py | 208 | CODE | |
| LOW | infra/tool_registry/manifest.py | 262 | CODE | |
| LOW | infra/tool_registry/manifest.py | 290 | CODE | |
| LOW | infra/tool_registry/installers.py | 95 | CODE | |
| LOW | infra/tool_registry/installers.py | 144 | CODE | |
| LOW | infra/tool_registry/installers.py | 173 | CODE | |
| LOW | infra/tool_registry/installers.py | 573 | CODE | |
| LOW | infra/monitoring/callbacks.py | 106 | CODE | |
| LOW | infra/monitoring/telemetry/device_id.py | 63 | CODE | |
| LOW | output_generators/sphinx.py | 47 | CODE | |
| LOW | output_generators/mdx.py | 51 | CODE | |
| LOW | output_generators/html.py | 64 | CODE | |
| LOW | output_generators/markdown.py | 44 | CODE | |
| LOW | health/runner.py | 122 | CODE | |
| LOW | health/runner.py | 151 | CODE | |
| LOW | health/config.py | 69 | CODE | |
| LOW | tests/test_windows_encoding.py | 7 | CODE | |
| LOW | tests/infra/test_tool_registry_java.py | 177 | CODE | |
| LOW | tests/infra/test_tool_registry_java.py | 298 | CODE | |
| LOW | tests/infra/test_tool_registry_java.py | 313 | CODE | |
| LOW | tests/infra/test_registry_coverage.py | 123 | CODE | |
| LOW | tests/infra/test_registry_coverage.py | 171 | CODE | |
| LOW | tests/infra/test_tool_registry.py | 972 | CODE | |
| LOW | tests/infra/test_tool_registry.py | 1083 | CODE | |
| LOW | tests/health/test_runner.py | 184 | CODE | |
| LOW | tests/static_analyzer/names/test_frontier.py | 249 | CODE | |
| LOW | tests/static_analyzer/scripts/diagnose_relations.py | 100 | CODE | |
| LOW | tests/codeboarding_cli/test_main.py | 232 | CODE | |
| LOW | agents/relation_edges.py | 35 | CODE | |
| LOW | agents/llm_renderers/call_graph.py | 73 | CODE | |
| LOW | static_analyzer/typescript_config_scanner.py | 135 | CODE | |
| LOW | static_analyzer/__init__.py | 157 | CODE | |
| LOW | static_analyzer/__init__.py | 771 | CODE | |
| LOW | static_analyzer/__init__.py | 788 | CODE | |
| LOW | static_analyzer/language_results.py | 78 | CODE | |
| LOW | static_analyzer/graph_definitions.py | 85 | CODE | |
| 30 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | diagram_analysis/analysis_json.py | 612 | # Create the component for this level (non-nested) | COMMENT |
| MEDIUM⚡ | infra/repo_utils/ignore.py | 22 | # This file is automatically loaded by CodeBoarding analysis tools to exclude | COMMENT |
| MEDIUM | output_generators/sphinx.py | 34 | # Create a link to the component's details file | COMMENT |
| MEDIUM | output_generators/markdown.py | 31 | # Create a link to the component's details file | COMMENT |
| MEDIUM | health/config.py | 26 | # This file is automatically loaded by health checks to exclude specified | COMMENT |
| MEDIUM | health/checks/unused_code_diagnostics.py | 294 | # Create a descriptive entity name from the message | COMMENT |
| MEDIUM | tests/diagram_analysis/test_diagram_analysis.py | 887 | # Create a simple test file | COMMENT |
| MEDIUM⚡ | tests/infra/test_vscode_constants.py | 65 | # Create a test directory structure | COMMENT |
| MEDIUM⚡ | tests/infra/test_vscode_constants.py | 69 | # Create the file we're looking for | COMMENT |
| MEDIUM⚡ | tests/infra/test_vscode_constants.py | 88 | # Create a file in wrong directory | COMMENT |
| MEDIUM | tests/infra/test_logging_config.py | 211 | # Create a stream that uses cp1251 encoding with strict error handling, | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | infra/repo_utils/ignore.py | 17 | # NOTE: The following are ALWAYS excluded (not configurable): | COMMENT |
| LOW | infra/monitoring/callbacks.py | 61 | # IMPORTANT: Do not change this log line format. Any change must be approved by IVAN. | COMMENT |
| LOW⚡ | tests/diagram_analysis/test_global_relations.py | 566 | # Step 1: Expand Core | COMMENT |
| LOW⚡ | tests/diagram_analysis/test_global_relations.py | 573 | # Step 2: Also expand Messaging | COMMENT |
| LOW⚡ | tests/diagram_analysis/test_global_relations.py | 589 | # Step 1: Core at depth 2 only | COMMENT |
| LOW⚡ | tests/diagram_analysis/test_global_relations.py | 596 | # Step 2: Expand Users (2.1) to depth 3 -> Auth (2.1.1), Profiles (2.1.2) | COMMENT |
| LOW | static_analyzer/analysis_result.py | 95 | # Step 1: collect type-param names from the trailing declaration | COMMENT |
| LOW | static_analyzer/analysis_result.py | 113 | # Step 2: replace type param names inside (…) with "object" | COMMENT |
| LOW⚡ | static_analyzer/analysis_result.py | 126 | # Step 3: strip <…> groups until stable | COMMENT |
| LOW⚡ | static_analyzer/analysis_result.py | 132 | # Step 4: remove residual whitespace | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | infra/repo_utils/__init__.py | 178 | origin.push() | CODE |
| HIGH | infra/monitoring/telemetry/device_id.py | 20 | """Mirror ``cat /var/lib/dbus/machine-id || cat /etc/machine-id``.""" | STRING |
| HIGH⚡ | tests/static_analyzer/test_engine_configs.py | 72 | "src/b.tsx": "export const B = () => null;\n", | CODE |
| HIGH | …tatic_analyzer/scripts/csharp_mixed_framework_repro.py | 13 | cd /tmp/repro && dotnet restore Synthetic.slnx | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | tests/diagram_analysis/test_global_relations.py | 566 | # Step 1: Expand Core | COMMENT |
| LOW⚡ | tests/diagram_analysis/test_global_relations.py | 573 | # Step 2: Also expand Messaging | COMMENT |
| LOW⚡ | tests/diagram_analysis/test_global_relations.py | 589 | # Step 1: Core at depth 2 only | COMMENT |
| LOW⚡ | tests/diagram_analysis/test_global_relations.py | 596 | # Step 2: Expand Users (2.1) to depth 3 -> Auth (2.1.1), Profiles (2.1.2) | COMMENT |
| LOW | static_analyzer/analysis_result.py | 95 | # Step 1: collect type-param names from the trailing declaration | COMMENT |
| LOW | static_analyzer/analysis_result.py | 113 | # Step 2: replace type param names inside (…) with "object" | COMMENT |
| LOW⚡ | static_analyzer/analysis_result.py | 126 | # Step 3: strip <…> groups until stable | COMMENT |
| LOW⚡ | static_analyzer/analysis_result.py | 132 | # Step 4: remove residual whitespace | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | output_generators/mdx.py | 0 | generate an html header for a component with its name and a link to its details. | STRING |
| HIGH | output_generators/markdown.py | 0 | generate an html header for a component with its name and a link to its details. | STRING |
| HIGH | output_generators/html.py | 0 | generate an html header for a component with its name and a link to its details. | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | README.md | 161 | COMMENT | |
| LOW | diagram_analysis/diagram_generator.py | 601 | # the save-time global relation rebuild identify components the commit actually changed. | COMMENT |
| LOW | infra/user_config.py | 61 | """How frontier candidates become components: ``affinity`` merges scopes sharing a word, then | COMMENT |
| LOW | infra/user_config.py | 81 | # aws_bearer_token_bedrock = "..." | COMMENT |
| LOW | infra/repo_utils/ignore.py | 21 | # | COMMENT |
| LOW | static_analyzer/analysis_cache.py | 41 | COMMENT | |
| LOW | static_analyzer/analysis_cache.py | 61 | # second bucket is gone; calls are credited to the enclosing declaration; and a call in a | COMMENT |
| LOW | static_analyzer/engine/lsp_client.py | 261 | # 2. workspace/didChangeConfiguration — push notification from client. | COMMENT |
| LOW | .github/workflows/integration-tests.yml | 81 | # only while push access to this repo stays a subset of CodeBoarding-tests | COMMENT |
| LOW | codeboarding_cli/bootstrap.py | 41 | # repairs a deleted ~/.codeboarding/servers/nodeenv/ independently of the | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | infra/install.py | 560 | # Check if pre-commit is installed (only available with dev dependencies) | COMMENT |
| LOW | output_generators/html.py | 118 | # Check if there's a linked file for this component | COMMENT |
| LOW | health/checks/unused_code_diagnostics.py | 221 | # Check if code contains any known patterns | COMMENT |
| LOW | static_analyzer/java_config_scanner.py | 63 | # Check if a Maven project already exists at the same root | COMMENT |
| LOW | static_analyzer/engine/symbol_table.py | 322 | # Check if any co-located symbol (alias at same position) has a parent | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | tests/diagram_analysis/test_global_relations.py | 402 | # Root LLM "1"->"2" label "orchestrates" -> inherited two levels down by | COMMENT |
| MEDIUM | agents/llm_errors.py | 65 | # What each provider says when the prompt is over the model's context window: Google, OpenAI, Anthropic. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | static_analyzer/java_utils.py | 57 | Create command to launch JDTLS. Args: jdtls_root: Root directory of JDTLS installation workspa | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/diagram_analysis/test_reference_resolver.py | 21 | (self.repo_dir / "module" / "file.py").write_text("def test_function():\n pass\n") | CODE |
| LOW⚡ | tests/static_analyzer/test_edge_builder.py | 319 | src.write_text("def main():\n helper()\n\ndef helper():\n pass\n") | CODE |
| LOW | tests/static_analyzer/test_edge_builder.py | 378 | src.write_text("def main():\n helper()\n\ndef helper():\n pass\n") | CODE |
| LOW | tests/static_analyzer/test_analysis_cache_inmem.py | 378 | lib.write_text("def helper():\n return 1\n") | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/infra/test_tool_registry_java.py | 147 | # Simple approach: just return True for the paths we want to exist | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | tests/static_analyzer/test_analysis_cache.py | 364 | (self.src_dir / STATIC_ANALYSIS_PKL).write_bytes(b"placeholder") | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | static_analyzer/engine/lsp_client.py | 103 | CODE |