This report summarizes scanner evidence for langchain-ai/chat-langchain, a TypeScript project with 6,462 GitHub stars. SynthScan examined 22,917 lines of code across 116 source files, recording 190 pattern matches distributed across 13 syntactic categories. The legacy adjusted pattern signal is 17.4 (Elevated pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 70 finding(s).
Are imports declared and package/API names verified? 24 finding(s).
Are wrappers, guards, and repeated structures necessary? 145 finding(s).
Which changes need focused human review? 190 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 190 distinct pattern matches across 13 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 |
|---|---|---|---|---|
| MEDIUM⚡ | tests/unit/test_pylon_pagination.py | 58 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/unit/test_pylon_pagination.py | 60 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/unit/test_pylon_pagination.py | 74 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/unit/test_pylon_pagination.py | 76 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/unit/test_pylon_pagination.py | 97 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/unit/test_pylon_pagination.py | 99 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/unit/test_pylon_pagination.py | 117 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/unit/test_pylon_pagination.py | 119 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/unit/test_pylon_pagination.py | 136 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/unit/test_pylon_pagination.py | 138 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/unit/test_pylon_pagination.py | 157 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/unit/test_pylon_pagination.py | 159 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/unit/test_pylon_pagination.py | 174 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/unit/test_pylon_pagination.py | 176 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | tests/unit/test_pylon_pagination.py | 13 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/test_pylon_pagination.py | 15 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/test_pylon_pagination.py | 44 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/test_pylon_pagination.py | 46 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_check_links_async.py | 59 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_check_links_async.py | 61 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_check_links_async.py | 71 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/unit/test_check_links_async.py | 75 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/unit/test_check_links_async.py | 128 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/unit/test_check_links_async.py | 132 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/unit/test_check_links_async.py | 178 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | tests/unit/test_check_links_async.py | 180 | # =========================================================================== | COMMENT |
| MEDIUM | tests/unit/test_check_links_async.py | 16 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/test_check_links_async.py | 19 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/evals/test_guardrails_scope.py | 38 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/evals/test_guardrails_scope.py | 40 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/evals/test_guardrails_scope.py | 64 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/evals/test_guardrails_scope.py | 66 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/evals/test_guardrails_scope.py | 96 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/evals/test_guardrails_scope.py | 98 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/evals/test_guardrails_scope.py | 128 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/evals/test_guardrails_scope.py | 130 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/evals/test_guardrails_scope.py | 144 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/evals/test_guardrails_scope.py | 146 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/evals/test_guardrails_scope.py | 166 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/evals/test_guardrails_scope.py | 168 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/evals/test_guardrails_scope.py | 186 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/evals/test_guardrails_scope.py | 188 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/evals/test_guardrails_scope.py | 212 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/evals/test_guardrails_scope.py | 214 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/evals/test_guardrails_scope.py | 18 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/evals/test_guardrails_scope.py | 20 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | src/tools/pylon_tools.py | 38 | # ============================================================================= | COMMENT |
| MEDIUM | src/tools/pylon_tools.py | 40 | # ============================================================================= | COMMENT |
| MEDIUM | src/tools/pylon_tools.py | 125 | # ============================================================================= | COMMENT |
| MEDIUM | src/tools/pylon_tools.py | 127 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | src/agent/config.py | 23 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | src/agent/config.py | 25 | # ============================================================================= | COMMENT |
| MEDIUM | src/agent/config.py | 77 | # ============================================================================= | COMMENT |
| MEDIUM | src/agent/config.py | 79 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | src/agent/config.py | 93 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | src/agent/config.py | 95 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | src/agent/config.py | 131 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | src/agent/config.py | 133 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | src/agent/config.py | 141 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | src/agent/config.py | 143 | # ============================================================================= | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | frontend/app/auth/callback/route.ts | 47 | function getSupabaseAuthStorageKey(region: AuthRegion): string { | CODE |
| LOW | frontend/lib/auth/supabase.ts | 142 | export async function signOutAllSupabaseClients(): Promise<void> { | CODE |
| LOW | frontend/lib/hooks/auth/use-user-id.ts | 38 | export function getOrCreateGuestUserId(): string | null { | CODE |
| LOW | frontend/lib/hooks/threads/guest-thread-storage.ts | 118 | export function removeStoredGuestThreadId( | CODE |
| LOW | frontend/lib/hooks/threads/guest-thread-storage.ts | 130 | export function pruneStoredGuestThreadIds( | CODE |
| LOW⚡ | tests/unit/test_pylon_pagination.py | 104 | def test_three_pages_collected(self, mock_get, mock_kb_id, mock_api_key): | CODE |
| LOW⚡ | tests/unit/test_pylon_pagination.py | 124 | def test_meta_next_pagination(self, mock_get, mock_kb_id, mock_api_key): | CODE |
| LOW⚡ | tests/unit/test_pylon_pagination.py | 143 | def test_safety_limit_stops_at_max_pages(self, mock_get, mock_kb_id, mock_api_key): | CODE |
| LOW⚡ | tests/unit/test_pylon_pagination.py | 164 | def test_cache_prevents_duplicate_requests(self, mock_get, mock_kb_id, mock_api_key): | CODE |
| LOW⚡ | tests/unit/test_pylon_pagination.py | 181 | def test_empty_data_returns_empty_list(self, mock_get, mock_kb_id, mock_api_key): | CODE |
| LOW | tests/unit/test_ingress_guards_middleware.py | 19 | def test_before_agent_truncates_oversized_human_message(): | CODE |
| LOW | tests/unit/test_ingress_guards_middleware.py | 32 | def test_before_agent_noop_when_under_cap(): | CODE |
| LOW | tests/unit/test_ingress_guards_middleware.py | 39 | def test_build_docs_agent_trace_metadata_includes_provenance_and_version(monkeypatch): | CODE |
| LOW | tests/unit/test_ingress_guards_middleware.py | 58 | def test_build_docs_agent_trace_metadata_falls_back_to_host_revision(monkeypatch): | CODE |
| LOW | tests/unit/test_summarization_middleware_wiring.py | 8 | def test_summarization_middleware_uses_retrying_fallback_model(): | CODE |
| LOW | tests/unit/test_guardrails_fallback.py | 44 | def test_guardrails_falls_back_after_primary_retries(monkeypatch): | CODE |
| LOW | tests/unit/test_guardrails_fallback.py | 63 | def test_guardrails_raises_after_all_models_exhaust_retries(monkeypatch): | CODE |
| LOW | tests/unit/test_guardrails_fallback.py | 82 | def test_guardrails_all_failed_classification_allows_main_agent(monkeypatch): | CODE |
| LOW | tests/unit/test_guardrails_fallback.py | 86 | async def _raise_classification_error(messages): # noqa: ARG001 | CODE |
| LOW⚡ | tests/unit/test_check_links_async.py | 78 | async def test_check_links_works_in_async_context(): | CODE |
| LOW⚡ | tests/unit/test_check_links_async.py | 134 | def test_check_links_works_in_sync_context(): | CODE |
| LOW⚡ | tests/unit/test_check_links_async.py | 182 | def test_check_links_empty_list(): | CODE |
| LOW⚡ | tests/unit/test_check_links_async.py | 190 | async def test_check_links_async_empty_list(): | CODE |
| LOW⚡ | tests/unit/test_check_links_async.py | 196 | def test_check_links_invalid_url_format(): | CODE |
| LOW | tests/unit/test_check_links_async.py | 105 | async def test_check_links_async_context_does_not_raise_runtime_error(): | CODE |
| LOW | tests/unit/test_check_links_async.py | 156 | def test_check_links_sync_deduplicates_urls(): | CODE |
| LOW | tests/unit/test_check_links_async.py | 217 | async def test_check_links_async_invalid_url_format(): | CODE |
| LOW | tests/unit/test_check_links_async.py | 248 | async def test_support_article_normal_content_is_valid(): | CODE |
| LOW | tests/unit/test_prompt_provenance.py | 13 | def test_get_prompt_provenance_local_mode(monkeypatch): | CODE |
| LOW | tests/unit/test_prompt_provenance.py | 24 | def test_resolve_hub_provenance_uses_prompt_workspace_and_api_key(monkeypatch): | CODE |
| LOW | tests/unit/test_prompt_provenance.py | 61 | def test_resolve_hub_provenance_without_overrides_uses_default_client(monkeypatch): | CODE |
| LOW | tests/evals/test_repeated_searches.py | 7 | def test_prompt_instructs_agent_to_avoid_repeat_searches(): | CODE |
| LOW | tests/evals/test_repeated_searches.py | 36 | def test_prompt_has_check_history_before_search_guidance(): | CODE |
| LOW | tests/evals/test_retry_middleware_wiring.py | 11 | def test_retry_middleware_is_in_agent_middleware_list(): | CODE |
| LOW | tests/evals/test_retry_middleware_wiring.py | 27 | def test_retry_middleware_config_is_exported(): | CODE |
| LOW⚡ | tests/evals/test_guardrails_scope.py | 43 | def test_guardrails_prompt_mentions_data_science_restriction(): | CODE |
| LOW⚡ | tests/evals/test_guardrails_scope.py | 69 | def test_guardrails_prompt_has_data_science_block_criterion(): | CODE |
| LOW⚡ | tests/evals/test_guardrails_scope.py | 101 | def test_guardrails_prompt_clarifies_ds_libs_need_langchain_context(): | CODE |
| LOW⚡ | tests/evals/test_guardrails_scope.py | 133 | def test_guardrails_prompt_still_allows_langchain_core_topics(): | CODE |
| LOW⚡ | tests/evals/test_guardrails_scope.py | 149 | def test_guardrails_prompt_default_is_still_allow(): | CODE |
| LOW⚡ | tests/evals/test_guardrails_scope.py | 171 | def test_guardrails_prompt_has_nsfw_block_rule(): | CODE |
| LOW⚡ | tests/evals/test_guardrails_scope.py | 191 | def test_guardrails_nsfw_rule_is_zero_tolerance(): | CODE |
| LOW⚡ | tests/evals/test_guardrails_scope.py | 219 | def test_agent_prompt_has_nsfw_refusal(): | CODE |
| LOW | src/middleware/guardrails_middleware.py | 168 | async def _generate_rejection_message(self, content) -> AIMessage: | CODE |
| LOW | src/middleware/guardrails_middleware.py | 326 | def _build_guardrails_content(self, content, context_section: str) -> str | list: | CODE |
| LOW | src/tools/pylon_tools.py | 290 | def get_support_article_content(article_id: str) -> str: | CODE |
| LOW | src/utils/trace_root_metadata.py | 17 | def build_docs_agent_trace_metadata( | CODE |
| LOW⚡ | src/agent/config.py | 105 | def _raise_for_retryable_finish_reason(response: object) -> object: | CODE |
| LOW | src/agent/config.py | 120 | def init_retry_fallback_model(model: str) -> Runnable: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/middleware/guardrails_middleware.py | 91 | except Exception: | CODE |
| LOW | src/middleware/guardrails_middleware.py | 149 | except Exception: | CODE |
| LOW | src/middleware/guardrails_middleware.py | 165 | except Exception as e: | CODE |
| LOW | src/middleware/guardrails_middleware.py | 183 | except Exception as e: | CODE |
| LOW | src/middleware/guardrails_middleware.py | 438 | except Exception as e: | CODE |
| LOW | src/middleware/guardrails_middleware.py | 478 | except Exception: | CODE |
| LOW | src/middleware/retry_middleware.py | 71 | except Exception as e: | CODE |
| LOW | src/middleware/summarization_middleware.py | 36 | except Exception as e: | CODE |
| LOW | src/middleware/summarization_middleware.py | 56 | except Exception as e: | CODE |
| LOW | src/middleware/tool_retry_middleware.py | 132 | except Exception as error: | CODE |
| LOW | src/tools/link_check_tools.py | 46 | except Exception: | CODE |
| LOW | src/tools/link_check_tools.py | 55 | except Exception: | CODE |
| LOW | src/tools/link_check_tools.py | 140 | except Exception as e: | CODE |
| LOW | src/tools/pricing_tools.py | 100 | except Exception as e: | CODE |
| LOW | src/tools/pylon_tools.py | 207 | except Exception as e: | CODE |
| LOW | src/tools/pylon_tools.py | 284 | except Exception as e: | CODE |
| LOW | src/tools/pylon_tools.py | 315 | except Exception: | CODE |
| LOW | src/tools/pylon_tools.py | 355 | except Exception as e: | CODE |
| LOW | src/utils/prompt_provenance.py | 90 | except Exception as exc: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/middleware/guardrails_middleware.py | 27 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/middleware/guardrails_middleware.py | 482 | __all__ = ["GuardrailsMiddleware", "GuardrailsClassificationError"] | CODE |
| LOW | src/middleware/__init__.py | 8 | __all__ = [ | CODE |
| LOW | src/middleware/retry_middleware.py | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/middleware/retry_middleware.py | 97 | __all__ = ["ModelRetryMiddleware", "MalformedResponseError"] | CODE |
| LOW | src/middleware/summarization_middleware.py | 60 | __all__ = ["CustomSummarizationMiddleware"] | CODE |
| LOW | src/middleware/tool_retry_middleware.py | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/middleware/tool_retry_middleware.py | 175 | __all__ = ["ToolRetryMiddleware"] | CODE |
| LOW | src/middleware/ingress_guards_middleware.py | 75 | __all__ = ["IngressGuardsMiddleware", "MAX_MESSAGE_CHARS"] | CODE |
| LOW | src/tools/link_check_tools.py | 12 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/tools/pricing_tools.py | 11 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/tools/pylon_tools.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/utils/prompt_provenance.py | 7 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/utils/trace_root_metadata.py | 34 | __all__ = ["build_docs_agent_trace_metadata"] | CODE |
| LOW⚡ | src/agent/config.py | 21 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | src/agent/config.py | 145 | __all__ = [ | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | identity.py | 17 | CODE | |
| LOW | tests/unit/test_pylon_pagination.py | 7 | CODE | |
| LOW | tests/unit/test_pylon_pagination.py | 8 | CODE | |
| LOW | tests/unit/test_pylon_pagination.py | 10 | CODE | |
| LOW | tests/unit/test_ingress_guards_middleware.py | 3 | CODE | |
| LOW | tests/unit/test_check_links_async.py | 12 | CODE | |
| LOW | tests/unit/test_check_links_async.py | 12 | CODE | |
| LOW | tests/unit/test_check_links_async.py | 21 | CODE | |
| LOW | tests/unit/test_check_links_async.py | 21 | CODE | |
| LOW | tests/unit/test_prompt_provenance.py | 3 | CODE | |
| LOW | src/middleware/__init__.py | 3 | CODE | |
| LOW | src/middleware/__init__.py | 4 | CODE | |
| LOW | src/middleware/__init__.py | 5 | CODE | |
| LOW | src/middleware/__init__.py | 6 | CODE | |
| LOW | src/middleware/ingress_guards_middleware.py | 15 | CODE | |
| LOW | src/utils/trace_root_metadata.py | 8 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | instructions.md | 251 | ### Step 0: Route Pricing Questions | COMMENT |
| LOW | instructions.md | 255 | ### Step 1: Research Documentation and Support KB | COMMENT |
| LOW | instructions.md | 293 | ### Step 2: Synthesize and Respond | COMMENT |
| LOW⚡ | src/prompts/docs_agent_prompt.py | 252 | ### Step 0: Route Pricing Questions | COMMENT |
| LOW⚡ | src/prompts/docs_agent_prompt.py | 256 | ### Step 1: Research Documentation and Support KB | COMMENT |
| LOW | src/prompts/docs_agent_prompt.py | 294 | ### Step 2: Synthesize and Respond | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | frontend/lib/hooks/auth/use-client-profile.ts | 62 | * updateClientProfile({ name: "John Doe" }) | COMMENT |
| LOW⚡ | tests/unit/test_pylon_pagination.py | 62 | @patch("src.tools.pylon_tools._get_api_key", return_value="fake-key") | CODE |
| LOW⚡ | tests/unit/test_pylon_pagination.py | 78 | @patch("src.tools.pylon_tools._get_api_key", return_value="fake-key") | CODE |
| LOW⚡ | tests/unit/test_pylon_pagination.py | 101 | @patch("src.tools.pylon_tools._get_api_key", return_value="fake-key") | CODE |
| LOW⚡ | tests/unit/test_pylon_pagination.py | 121 | @patch("src.tools.pylon_tools._get_api_key", return_value="fake-key") | CODE |
| LOW⚡ | tests/unit/test_pylon_pagination.py | 140 | @patch("src.tools.pylon_tools._get_api_key", return_value="fake-key") | CODE |
| LOW⚡ | tests/unit/test_pylon_pagination.py | 161 | @patch("src.tools.pylon_tools._get_api_key", return_value="fake-key") | CODE |
| LOW⚡ | tests/unit/test_pylon_pagination.py | 178 | @patch("src.tools.pylon_tools._get_api_key", return_value="fake-key") | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | src/middleware/guardrails_middleware.py | 29 | # Dataset configuration for guardrails evaluation | COMMENT |
| MEDIUM | src/prompts/guardrails_prompts.py | 1 | # Prompt templates for guardrails classification and rejection responses. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/middleware/guardrails_middleware.py | 260 | CODE | |
| LOW | src/middleware/guardrails_middleware.py | 370 | CODE | |
| LOW | src/middleware/retry_middleware.py | 44 | CODE | |
| LOW | src/tools/link_check_tools.py | 72 | CODE | |
| LOW | src/tools/pylon_tools.py | 131 | CODE | |
| LOW | src/tools/pylon_tools.py | 290 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | src/prompts/docs_agent_prompt.py | 252 | ### Step 0: Route Pricing Questions | COMMENT |
| LOW⚡ | src/prompts/docs_agent_prompt.py | 256 | ### Step 1: Research Documentation and Support KB | COMMENT |
| LOW | src/prompts/docs_agent_prompt.py | 294 | ### Step 2: Synthesize and Respond | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | src/middleware/guardrails_middleware.py | 478 | except Exception: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | src/prompts/docs_agent_prompt.py | 2 | You are an expert LangChain customer service agent. ## Your Mission Answer customer questions about LangChain, LangGra | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | frontend/components/providers/segment-provider.tsx | 61 | // Reset identity on logout so the next sign-in starts clean. | COMMENT |
| LOW | .github/workflows/deploy-production.yml | 1 | # Manually deploy the Managed Deep Agent to a LangSmith production deployment. | COMMENT |
| LOW | src/agent/__init__.py | 1 | # Agent module exports (empty to avoid circular imports) | COMMENT |