Context Graph for AI Native SDLC
This report summarizes scanner evidence for potpie-ai/potpie, a Python project with 5,740 GitHub stars. SynthScan examined 217,439 lines of code across 990 source files, recording 5624 pattern matches distributed across 18 syntactic categories. The legacy adjusted pattern signal is 29.9 (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? 3419 finding(s).
Are imports declared and package/API names verified? 1104 finding(s).
Are wrappers, guards, and repeated structures necessary? 4349 finding(s).
Which changes need focused human review? 5624 finding(s).
Run additional scans to build a history of the legacy pattern signal. Score changes are not a measure of AI adoption or code quality.
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 5624 distinct pattern matches across 18 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 | potpie/auth/adapters/oauth_client_id_messages.py | 8 | def missing_linear_client_id_message() -> str: | CODE |
| LOW | potpie/auth/adapters/oauth_client_id_messages.py | 15 | def missing_github_client_id_message() -> str: | CODE |
| LOW | potpie/auth/adapters/callback_server.py | 50 | def _oauth_callback_failure_html(error: str | None) -> str: | CODE |
| LOW | potpie/auth/adapters/callback_server.py | 59 | def start_oauth_callback_server( | CODE |
| LOW | potpie/auth/adapters/callback_server.py | 97 | def _start_oauth_callback_server( | CODE |
| LOW | potpie/auth/adapters/token_exchange.py | 24 | def exchange_authorization_code( | CODE |
| LOW | potpie/auth/adapters/token_exchange.py | 125 | def _tokens_from_oauth_response(data: dict[str, Any]) -> dict[str, Any]: | CODE |
| LOW⚡ | potpie/auth/adapters/atlassian_client.py | 67 | def token_style_from_succeeded_scheme(scheme: AtlassianAuthScheme | None) -> str: | CODE |
| LOW⚡ | potpie/auth/adapters/atlassian_client.py | 74 | def atlassian_basic_auth_header(email: str, api_token: str) -> str: | CODE |
| LOW⚡ | potpie/auth/adapters/atlassian_client.py | 79 | def atlassian_bearer_auth_header(api_token: str) -> str: | CODE |
| LOW | potpie/auth/adapters/atlassian_client.py | 155 | def _parse_gateway_probe_success( | CODE |
| LOW | potpie/auth/adapters/atlassian_client.py | 271 | def _parse_accessible_resources(data: Any) -> list[dict[str, Any]]: | CODE |
| LOW | potpie/auth/adapters/atlassian_client.py | 291 | def _fetch_accessible_resources( | CODE |
| LOW | potpie/auth/adapters/atlassian_client.py | 366 | def verify_site_with_api_token( | CODE |
| LOW | potpie/auth/adapters/atlassian_client.py | 394 | def _candidate_subdomains_from_email(email: str) -> list[str]: | CODE |
| LOW | potpie/auth/adapters/atlassian_client.py | 411 | def collect_login_site_candidates( | CODE |
| LOW | potpie/auth/adapters/atlassian_client.py | 446 | def _finalize_atlassian_site_unscoped( | CODE |
| LOW | potpie/auth/adapters/atlassian_client.py | 462 | def discover_sites_with_api_token( | CODE |
| LOW | potpie/auth/adapters/atlassian_client.py | 489 | def _resolve_site_from_subdomain( | CODE |
| LOW | potpie/auth/adapters/atlassian_client.py | 537 | def fetch_accessible_resources(email: str, api_token: str) -> list[dict[str, Any]]: | CODE |
| LOW⚡ | potpie/auth/adapters/credentials.py | 55 | def store_potpie_firebase_id_token(self, id_token: str) -> None: | CODE |
| LOW⚡ | potpie/auth/adapters/credentials.py | 58 | def update_potpie_firebase_refresh_token(self, refresh_token: str) -> None: | CODE |
| LOW⚡ | potpie/auth/adapters/credentials.py | 64 | def get_potpie_firebase_refresh_token(self) -> str: | CODE |
| LOW⚡ | potpie/auth/adapters/credentials.py | 67 | def get_potpie_firebase_id_token(self) -> str: | CODE |
| LOW⚡ | potpie/auth/adapters/credentials.py | 70 | def get_potpie_firebase_api_key(self) -> str: | CODE |
| LOW⚡ | potpie/auth/adapters/credentials.py | 80 | def write_provider_credentials( | CODE |
| LOW⚡ | potpie/auth/adapters/credentials.py | 85 | def clear_provider_credentials(self, provider: str) -> None: | CODE |
| LOW⚡ | potpie/auth/adapters/credentials.py | 114 | def get_confluence_credentials(self) -> dict[str, Any]: | CODE |
| LOW⚡ | potpie/auth/adapters/credentials.py | 117 | def save_confluence_credentials(self, credentials: dict[str, Any]) -> None: | CODE |
| LOW⚡ | potpie/auth/adapters/credentials.py | 120 | def clear_confluence_credentials(self) -> None: | CODE |
| LOW⚡ | potpie/auth/adapters/credentials.py | 123 | def get_atlassian_credentials(self) -> dict[str, Any]: | CODE |
| LOW⚡ | potpie/auth/adapters/credentials.py | 126 | def save_atlassian_credentials(self, credentials: dict[str, Any]) -> None: | CODE |
| LOW⚡ | potpie/auth/adapters/credentials.py | 129 | def clear_atlassian_credentials(self) -> None: | CODE |
| LOW⚡ | potpie/auth/adapters/credentials.py | 132 | def save_jira_workspace_prefs(self, *, project_key: str) -> None: | CODE |
| LOW⚡ | potpie/auth/adapters/credentials.py | 135 | def save_confluence_workspace_prefs(self, *, space_key: str) -> None: | CODE |
| LOW⚡ | potpie/auth/adapters/credentials.py | 139 | def get_gitbucket_credentials(self) -> dict[str, Any]: | CODE |
| LOW⚡ | potpie/auth/adapters/credentials.py | 142 | def save_gitbucket_credentials(self, credentials: dict[str, Any]) -> None: | CODE |
| LOW⚡ | potpie/auth/adapters/credentials.py | 145 | def clear_gitbucket_credentials(self) -> None: | CODE |
| LOW | potpie/auth/adapters/credentials.py | 44 | def store_potpie_firebase_refresh_token( | CODE |
| LOW | potpie/auth/adapters/credentials.py | 101 | def list_integration_providers(self) -> list[str]: | CODE |
| LOW | potpie/auth/adapters/credentials.py | 172 | def save_gitlab_workspace_prefs( | CODE |
| LOW | potpie/auth/adapters/gitlab_read_client.py | 38 | def load_gitlab_read_credentials( | CODE |
| LOW | potpie/auth/adapters/gitlab_read_client.py | 148 | def fetch_gitlab_merge_requests( | CODE |
| LOW | potpie/auth/adapters/linear_read_client.py | 92 | def load_linear_read_credentials( | CODE |
| LOW | potpie/auth/adapters/linear_read_client.py | 233 | def fetch_linear_issues_in_team( | CODE |
| LOW | potpie/auth/adapters/linear_read_client.py | 268 | def resolve_linear_organization( | CODE |
| LOW | potpie/auth/adapters/linear_read_client.py | 355 | def activate_linear_organization(org_id: str) -> None: | CODE |
| LOW⚡ | potpie/auth/adapters/credentials_store.py | 69 | def integration_token_storage() -> str: | CODE |
| LOW⚡ | potpie/auth/adapters/credentials_store.py | 78 | def _integration_secret_store_label() -> str: | CODE |
| LOW⚡ | potpie/auth/adapters/credentials_store.py | 86 | def readable_credentials_path() -> Path: | CODE |
| LOW⚡ | potpie/auth/adapters/credentials_store.py | 429 | def get_potpie_firebase_refresh_token() -> str: | CODE |
| LOW⚡ | potpie/auth/adapters/credentials_store.py | 436 | def get_potpie_firebase_id_token() -> str: | CODE |
| LOW⚡ | potpie/auth/adapters/credentials_store.py | 443 | def get_potpie_firebase_api_key() -> str: | CODE |
| LOW⚡ | potpie/auth/adapters/credentials_store.py | 636 | def _linear_access_token_secret(org_id: str) -> str: | CODE |
| LOW⚡ | potpie/auth/adapters/credentials_store.py | 640 | def _linear_refresh_token_secret(org_id: str) -> str: | CODE |
| LOW⚡ | potpie/auth/adapters/credentials_store.py | 644 | def _normalize_linear_metadata(metadata: dict[str, Any]) -> dict[str, Any]: | CODE |
| LOW⚡ | potpie/auth/adapters/credentials_store.py | 929 | def save_confluence_credentials(credentials: dict[str, Any]) -> None: | CODE |
| LOW⚡ | potpie/auth/adapters/credentials_store.py | 933 | def get_confluence_credentials() -> dict[str, Any]: | CODE |
| LOW⚡ | potpie/auth/adapters/credentials_store.py | 937 | def clear_confluence_credentials() -> None: | CODE |
| LOW⚡ | potpie/auth/adapters/credentials_store.py | 941 | def _save_atlassian_product_credentials( | CODE |
| 3161 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | potpie/sandbox/tests/unit/test_parser_runner.py | 79 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | potpie/sandbox/tests/unit/test_parser_runner.py | 81 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | potpie/sandbox/tests/unit/test_parser_runner.py | 169 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | potpie/sandbox/tests/unit/test_parser_runner.py | 171 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | potpie/sandbox/tests/unit/test_sandbox_client.py | 846 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | potpie/sandbox/tests/unit/test_sandbox_client.py | 848 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | potpie/sandbox/tests/unit/test_sandbox_client.py | 581 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | potpie/sandbox/tests/unit/test_sandbox_client.py | 586 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | potpie/sandbox/tests/unit/test_daytona_provider.py | 914 | # ---------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | potpie/sandbox/tests/unit/test_daytona_provider.py | 916 | # ---------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | potpie/sandbox/tests/unit/test_daytona_provider.py | 1234 | # ---------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | potpie/sandbox/tests/unit/test_daytona_provider.py | 1237 | # ---------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | potpie/sandbox/tests/unit/test_daytona_provider.py | 1340 | # ---------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | potpie/sandbox/tests/unit/test_daytona_provider.py | 1342 | # ---------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | potpie/sandbox/tests/unit/test_daytona_provider.py | 1575 | # ---------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | potpie/sandbox/tests/unit/test_daytona_provider.py | 1579 | # ---------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | potpie/sandbox/tests/unit/test_daytona_provider.py | 1602 | # ---------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | potpie/sandbox/tests/unit/test_daytona_provider.py | 1604 | # ---------------------------------------------------------------------------- | COMMENT |
| MEDIUM | potpie/sandbox/tests/unit/test_daytona_provider.py | 1014 | # ---------------------------------------------------------------------- | COMMENT |
| MEDIUM | potpie/sandbox/tests/unit/test_daytona_provider.py | 1023 | # ---------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | potpie/sandbox/tests/integration/test_real_repo_flow.py | 102 | # ---------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | potpie/sandbox/tests/integration/test_real_repo_flow.py | 104 | # ---------------------------------------------------------------------- | COMMENT |
| MEDIUM | …tpie/sandbox/sandbox/adapters/outbound/memory/store.py | 73 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | …tpie/sandbox/sandbox/adapters/outbound/memory/store.py | 75 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | …/sandbox/sandbox/adapters/outbound/local/repo_cache.py | 78 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | …/sandbox/sandbox/adapters/outbound/local/repo_cache.py | 80 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | …ndbox/sandbox/adapters/outbound/local/git_workspace.py | 143 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | …ndbox/sandbox/adapters/outbound/local/git_workspace.py | 145 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | …/sandbox/sandbox/adapters/outbound/daytona/provider.py | 277 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | …/sandbox/sandbox/adapters/outbound/daytona/provider.py | 279 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | …/sandbox/sandbox/adapters/outbound/daytona/provider.py | 1208 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | …/sandbox/sandbox/adapters/outbound/daytona/provider.py | 1218 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | potpie/sandbox/sandbox/api/client.py | 123 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | potpie/sandbox/sandbox/api/client.py | 125 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | potpie/sandbox/sandbox/api/client.py | 281 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | potpie/sandbox/sandbox/api/client.py | 283 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | potpie/sandbox/sandbox/api/client.py | 316 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | potpie/sandbox/sandbox/api/client.py | 318 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | potpie/sandbox/sandbox/api/client.py | 516 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | potpie/sandbox/sandbox/api/client.py | 518 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | potpie/sandbox/sandbox/api/client.py | 594 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | potpie/sandbox/sandbox/api/client.py | 596 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | potpie/sandbox/sandbox/api/client.py | 749 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | potpie/sandbox/sandbox/api/client.py | 751 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | potpie/sandbox/sandbox/api/client.py | 817 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | potpie/sandbox/sandbox/api/client.py | 819 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | potpie/sandbox/sandbox/api/client.py | 904 | # ---------------------------------------------------------------------- | COMMENT |
| MEDIUM | potpie/sandbox/sandbox/api/client.py | 906 | # ---------------------------------------------------------------------- | COMMENT |
| MEDIUM | …andbox/sandbox/application/services/sandbox_service.py | 296 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | …andbox/sandbox/application/services/sandbox_service.py | 307 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | …ngine/tests/unit/test_repo_one_shot_ingestion_skill.py | 100 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …ngine/tests/unit/test_repo_one_shot_ingestion_skill.py | 102 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …ngine/tests/unit/test_repo_one_shot_ingestion_skill.py | 144 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …ngine/tests/unit/test_repo_one_shot_ingestion_skill.py | 146 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …ngine/tests/unit/test_repo_one_shot_ingestion_skill.py | 296 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …ngine/tests/unit/test_repo_one_shot_ingestion_skill.py | 298 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …ngine/tests/unit/test_repo_one_shot_ingestion_skill.py | 361 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …ngine/tests/unit/test_repo_one_shot_ingestion_skill.py | 363 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …ngine/tests/unit/test_repo_one_shot_ingestion_skill.py | 481 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …ngine/tests/unit/test_repo_one_shot_ingestion_skill.py | 483 | # --------------------------------------------------------------------------- | COMMENT |
| 208 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | potpie/agent_context.py | 12 | CODE | |
| LOW | potpie/config/local.py | 11 | CODE | |
| LOW | potpie/config/local_paths.py | 3 | CODE | |
| LOW | potpie/config/local_state.py | 3 | CODE | |
| LOW | potpie/config/contracts.py | 10 | CODE | |
| LOW | potpie/auth/__init__.py | 3 | CODE | |
| LOW | potpie/auth/__init__.py | 4 | CODE | |
| LOW | potpie/auth/wiring.py | 13 | CODE | |
| LOW | potpie/auth/adapters/oauth_client_id_messages.py | 3 | CODE | |
| LOW | potpie/auth/adapters/pkce.py | 3 | CODE | |
| LOW | potpie/auth/adapters/callback_server.py | 3 | CODE | |
| LOW | potpie/auth/adapters/token_exchange.py | 3 | CODE | |
| LOW | potpie/auth/adapters/atlassian_client.py | 7 | CODE | |
| LOW | potpie/auth/adapters/models.py | 3 | CODE | |
| LOW | potpie/auth/adapters/gitlab_client.py | 7 | CODE | |
| LOW | potpie/auth/adapters/credentials.py | 12 | CODE | |
| LOW | potpie/auth/adapters/gitlab_read_client.py | 7 | CODE | |
| LOW | potpie/auth/adapters/firebase_session.py | 3 | CODE | |
| LOW | potpie/auth/adapters/linear_read_client.py | 3 | CODE | |
| LOW | potpie/auth/adapters/credentials_store.py | 3 | CODE | |
| LOW | potpie/auth/adapters/gitbucket_read_client.py | 8 | CODE | |
| LOW | potpie/auth/adapters/atlassian_read_client.py | 9 | CODE | |
| LOW | potpie/auth/adapters/provider_config.py | 3 | CODE | |
| LOW | potpie/auth/adapters/integration_profile.py | 3 | CODE | |
| LOW | potpie/auth/adapters/http.py | 14 | CODE | |
| LOW | potpie/auth/adapters/integration_session.py | 3 | CODE | |
| LOW | potpie/auth/adapters/errors.py | 3 | CODE | |
| LOW | potpie/auth/adapters/github.py | 3 | CODE | |
| LOW | potpie/auth/adapters/local_identity.py | 10 | CODE | |
| LOW | potpie/auth/adapters/e2e_keyring.py | 3 | CODE | |
| LOW | potpie/auth/adapters/gitbucket_client.py | 7 | CODE | |
| LOW | potpie/auth/adapters/integration_verify.py | 3 | CODE | |
| LOW | potpie/auth/adapters/potpie_api_config.py | 3 | CODE | |
| LOW | potpie/auth/adapters/potpie.py | 3 | CODE | |
| LOW | potpie/auth/ports/credentials.py | 14 | CODE | |
| LOW | potpie/auth/ports/identity.py | 9 | CODE | |
| LOW | potpie/pots/local_service.py | 8 | CODE | |
| LOW | potpie/pots/local_store.py | 14 | CODE | |
| LOW | potpie/pots/contracts.py | 11 | CODE | |
| LOW | potpie/runtime/local_engine.py | 3 | CODE | |
| LOW | potpie/runtime/ownership.py | 3 | CODE | |
| LOW | potpie/runtime/coordinator.py | 3 | CODE | |
| LOW | potpie/runtime/server.py | 3 | CODE | |
| LOW | potpie/runtime/sentry_settings.py | 1 | CODE | |
| LOW | potpie/runtime/controller.py | 3 | CODE | |
| LOW | potpie/runtime/transport.py | 3 | CODE | |
| LOW | potpie/runtime/protocol.py | 3 | CODE | |
| LOW | potpie/runtime/resource_manager.py | 3 | CODE | |
| LOW | potpie/runtime/__init__.py | 3 | CODE | |
| LOW | potpie/runtime/__init__.py | 3 | CODE | |
| LOW | potpie/runtime/__init__.py | 3 | CODE | |
| LOW | potpie/runtime/__init__.py | 3 | CODE | |
| LOW | potpie/runtime/__init__.py | 3 | CODE | |
| LOW | potpie/runtime/__init__.py | 3 | CODE | |
| LOW | potpie/runtime/__init__.py | 3 | CODE | |
| LOW | potpie/runtime/__init__.py | 3 | CODE | |
| LOW | potpie/runtime/__init__.py | 13 | CODE | |
| LOW | potpie/runtime/__init__.py | 13 | CODE | |
| LOW | potpie/runtime/__init__.py | 13 | CODE | |
| LOW | potpie/runtime/__init__.py | 13 | CODE | |
| 984 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | potpie/auth/adapters/firebase_session.py | 52 | except Exception: | CODE |
| LOW | potpie/auth/adapters/firebase_session.py | 73 | except Exception: | CODE |
| MEDIUM | potpie/auth/adapters/credentials_store.py | 298 | def get_stored_api_key() -> str: | CODE |
| LOW | potpie/auth/adapters/credentials_store.py | 1639 | except Exception: | CODE |
| LOW | potpie/auth/adapters/credentials_store.py | 1649 | except Exception: | CODE |
| LOW | potpie/auth/adapters/http.py | 57 | except Exception as exc: # httpx/json raise a few distinct types | CODE |
| LOW | potpie/auth/adapters/github.py | 71 | except Exception as exc: | CODE |
| LOW | potpie/auth/adapters/github.py | 81 | except Exception as exc: | CODE |
| LOW | potpie/auth/adapters/potpie.py | 379 | except Exception: | CODE |
| LOW | potpie/auth/adapters/potpie.py | 414 | except Exception: | CODE |
| LOW | potpie/runtime/local_engine.py | 124 | except Exception: | CODE |
| LOW | potpie/runtime/local_engine.py | 154 | except Exception: | CODE |
| LOW | potpie/runtime/local_engine.py | 164 | except Exception: # noqa: S112 - one unreadable pot must not mask others. | CODE |
| LOW | potpie/runtime/local_engine.py | 671 | except Exception as exc: | CODE |
| LOW | potpie/runtime/local_engine.py | 867 | except Exception as exc: | CODE |
| LOW | potpie/runtime/server.py | 136 | except Exception: | CODE |
| LOW | potpie/runtime/server.py | 170 | except Exception: | CODE |
| LOW | potpie/runtime/server.py | 212 | except Exception: | CODE |
| LOW | potpie/runtime/server.py | 222 | except Exception: | CODE |
| LOW | potpie/runtime/server.py | 233 | except Exception: | CODE |
| LOW | potpie/runtime/server.py | 283 | except Exception: | CODE |
| LOW | potpie/runtime/server.py | 296 | except Exception: | CODE |
| LOW | potpie/runtime/controller.py | 235 | except Exception as exc: | CODE |
| LOW | potpie/runtime/controller.py | 286 | except Exception as exc: | CODE |
| LOW | potpie/runtime/controller.py | 380 | except Exception as exc: | CODE |
| LOW | potpie/runtime/resource_manager.py | 408 | except Exception as exc: # host cleanup must still be attempted | CODE |
| LOW | potpie/runtime/resource_manager.py | 431 | except Exception as exc: # every resource still gets an attempt | CODE |
| LOW | potpie/runtime/resource_manager.py | 518 | except Exception as exc: | CODE |
| LOW | potpie/runtime/resource_manager.py | 670 | except Exception as exc: | CODE |
| LOW | potpie/runtime/clients.py | 459 | except Exception: | CODE |
| LOW | potpie/runtime/clients.py | 479 | except Exception: | CODE |
| LOW | potpie/runtime/clients.py | 501 | except Exception: | CODE |
| LOW | potpie/runtime/clients.py | 887 | except Exception: | CODE |
| LOW⚡ | potpie/setup/orchestrator.py | 264 | except Exception as exc: # never let one component crash the whole run | CODE |
| LOW⚡ | potpie/setup/orchestrator.py | 273 | except Exception: # noqa: BLE001 - setup analytics must not affect setup. | CODE |
| LOW⚡ | potpie/setup/orchestrator.py | 279 | except Exception: # noqa: BLE001 - setup analytics must not affect setup. | CODE |
| LOW | potpie/setup/orchestrator.py | 341 | except Exception as exc: # noqa: BLE001 - setup should keep moving offline. | CODE |
| LOW | potpie/setup/orchestrator.py | 423 | except Exception: | CODE |
| LOW | potpie/cli/repo_location.py | 61 | except Exception: | CODE |
| LOW | potpie/cli/cli_install_status.py | 270 | except Exception: | CODE |
| MEDIUM | potpie/cli/cli_install_status.py | 123 | def _installed_package_version() -> str | None: | CODE |
| LOW | potpie/cli/main.py | 187 | except Exception as exc: | CODE |
| MEDIUM | potpie/cli/main.py | 46 | def _package_version() -> str: | CODE |
| LOW | potpie/cli/ui/setup_ux.py | 116 | except Exception: # noqa: BLE001 - one observer must not block another. | CODE |
| LOW | potpie/cli/ui/setup_ux.py | 123 | except Exception: # noqa: BLE001 - one observer must not block another. | CODE |
| LOW | potpie/cli/ui/setup_ux.py | 445 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | potpie/cli/ui/setup_ux.py | 636 | except Exception: # noqa: BLE001 | CODE |
| LOW | potpie/cli/ui/setup_ux.py | 825 | except Exception as exc: # noqa: BLE001 | CODE |
| MEDIUM | potpie/cli/ui/setup_ux.py | 633 | def _github_already_authenticated() -> bool: | CODE |
| LOW | potpie/cli/ui/potpie_logo_anim.py | 126 | except Exception: | CODE |
| LOW | potpie/cli/ui/potpie_logo_anim.py | 253 | except Exception: | CODE |
| LOW | potpie/cli/ui/potpie_logo_anim.py | 266 | except Exception: | CODE |
| MEDIUM | potpie/cli/ui/potpie_logo_anim.py | 263 | def render_static() -> Group: | CODE |
| LOW | potpie/cli/auth/_login_impl.py | 66 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | potpie/cli/auth/_login_impl.py | 95 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | potpie/cli/auth/_login_impl.py | 117 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | potpie/cli/auth/_login_impl.py | 142 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | potpie/cli/auth/gitlab_auth.py | 96 | except Exception: | CODE |
| MEDIUM | potpie/cli/auth/gitlab_auth.py | 53 | def _guard_typer_prompt(callback): | CODE |
| LOW | potpie/cli/auth/auth_commands.py | 384 | except Exception as exc: | CODE |
| 390 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | potpie/agent_context.py | 96 | __all__ = ["AgentContextService"] | CODE |
| LOW | potpie/config/local.py | 154 | __all__ = [ | CODE |
| LOW | potpie/config/local_paths.py | 15 | __all__ = ["default_home"] | CODE |
| LOW | potpie/config/local_state.py | 111 | __all__ = ["local_json_transaction"] | CODE |
| LOW | potpie/config/contracts.py | 43 | __all__ = ["ConfigService"] | CODE |
| LOW | potpie/auth/__init__.py | 6 | __all__ = ["CredentialStore", "build_credential_store"] | CODE |
| LOW | potpie/auth/wiring.py | 27 | __all__ = ["build_credential_store"] | CODE |
| LOW⚡ | potpie/auth/adapters/credentials.py | 58 | def update_potpie_firebase_refresh_token(self, refresh_token: str) -> None: | CODE |
| LOW | potpie/auth/adapters/credentials.py | 184 | __all__ = ["CredentialStore", "FileCredentialStore"] | CODE |
| LOW | potpie/auth/adapters/credentials_store.py | 412 | def update_potpie_firebase_refresh_token(refresh_token: str) -> None: | CODE |
| LOW | potpie/auth/adapters/credentials_store.py | 533 | def set_active_pot_id(pot_id: str) -> None: | CODE |
| LOW | potpie/auth/adapters/credentials_store.py | 712 | def set_active_linear_organization(org_id: str) -> None: | CODE |
| LOW | potpie/auth/adapters/gitbucket_read_client.py | 130 | __all__ = [ | CODE |
| LOW | potpie/auth/adapters/http.py | 125 | __all__ = ["AuthHttpClient", "AuthHttpError", "HttpClient", "read_json"] | CODE |
| LOW | potpie/auth/adapters/local_identity.py | 41 | __all__ = ["LocalAuthService"] | CODE |
| LOW | potpie/auth/adapters/e2e_keyring.py | 43 | def set_password(self, service: str, username: str, password: str) -> None: | CODE |
| LOW | potpie/auth/adapters/gitbucket_client.py | 247 | __all__ = [ | CODE |
| LOW⚡ | potpie/auth/ports/credentials.py | 45 | def update_potpie_firebase_refresh_token(self, refresh_token: str) -> None: ... | CODE |
| LOW | potpie/auth/ports/credentials.py | 137 | __all__ = ["CredentialStore"] | CODE |
| LOW | potpie/auth/ports/identity.py | 38 | __all__ = ["AuthIdentity", "AuthService"] | CODE |
| LOW | potpie/pots/local_service.py | 94 | def set_repo_default(self, *, repo: str, pot_id: str) -> None: | CODE |
| LOW | potpie/pots/local_service.py | 139 | __all__ = ["LocalPotManagementService"] | CODE |
| LOW | potpie/pots/local_store.py | 150 | def set_repo_default(self, *, repo: str, pot_id: str) -> None: | CODE |
| LOW | potpie/pots/local_store.py | 194 | __all__ = ["LocalPotStore"] | CODE |
| LOW | potpie/pots/contracts.py | 102 | def set_repo_default(self, *, repo: str, pot_id: str) -> None: | CODE |
| LOW | potpie/pots/contracts.py | 121 | __all__ = [ | CODE |
| LOW | potpie/runtime/local_engine.py | 956 | __all__ = [ | CODE |
| LOW | potpie/runtime/ownership.py | 83 | __all__ = ["RuntimeOwnershipLock"] | CODE |
| LOW | potpie/runtime/coordinator.py | 152 | __all__ = ["ConflictKey", "OperationCoordinator"] | CODE |
| LOW | potpie/runtime/server.py | 545 | __all__ = [ | CODE |
| LOW | potpie/runtime/controller.py | 541 | __all__ = [ | CODE |
| LOW | potpie/runtime/transport.py | 142 | __all__ = ["HttpDaemonTransport", "RuntimeEndpoint"] | CODE |
| LOW | potpie/runtime/protocol.py | 256 | __all__ = [ | CODE |
| LOW | potpie/runtime/resource_manager.py | 706 | __all__ = [ | CODE |
| LOW | potpie/runtime/__init__.py | 92 | __all__ = [ | CODE |
| LOW | potpie/runtime/operations.py | 404 | __all__ = [ | CODE |
| LOW | potpie/runtime/clients.py | 971 | __all__ = [ | CODE |
| LOW | potpie/runtime/settings.py | 239 | def _set_if_present(target: dict[str, str], name: str, value: str | None) -> None: | CODE |
| LOW | potpie/runtime/settings.py | 246 | __all__ = [ | CODE |
| LOW | potpie/runtime/composition.py | 202 | __all__ = [ | CODE |
| LOW | potpie/runtime/codec.py | 642 | __all__ = [ | CODE |
| LOW | potpie/runtime/root_services.py | 76 | def set_repo_default(self, *, repo: str, pot_id: str) -> None: | CODE |
| LOW | potpie/runtime/root_services.py | 205 | __all__ = [ | CODE |
| LOW | potpie/setup/flat_file_state.py | 42 | __all__ = ["FlatFileMigrator", "FlatFileStateStore"] | CODE |
| LOW | potpie/setup/local_installer.py | 49 | __all__ = ["LocalInstaller"] | CODE |
| LOW | potpie/setup/installation.py | 37 | __all__ = ["Installer"] | CODE |
| LOW | potpie/setup/orchestrator.py | 175 | def set_observer(self, observer: SetupObserver) -> None: | CODE |
| LOW | potpie/setup/orchestrator.py | 393 | __all__ = ["DefaultSetupOrchestrator"] | CODE |
| LOW | potpie/setup/contracts.py | 42 | def set_observer(self, observer: SetupObserver) -> None: ... | CODE |
| LOW | potpie/setup/contracts.py | 61 | __all__ = ["NoOpSetupObserver", "SetupObserver", "SetupOrchestrator"] | CODE |
| LOW | potpie/setup/state.py | 38 | __all__ = ["MigrationPort", "StateStorePort"] | CODE |
| LOW⚡ | potpie/cli/telemetry_context.py | 27 | __all__ = [ | CODE |
| LOW | potpie/cli/repo_location.py | 93 | __all__ = [ | CODE |
| LOW | potpie/cli/ui/setup_ux.py | 905 | __all__ = [ | CODE |
| LOW | potpie/cli/ui/interactive_prompts.py | 385 | __all__ = [ | CODE |
| LOW | potpie/cli/ui/format.py | 336 | __all__ = [ | CODE |
| LOW | potpie/cli/ui/logo_rotation.py | 238 | __all__ = [ | CODE |
| LOW | potpie/cli/ui/brand.py | 12 | __all__ = [ | CODE |
| LOW | potpie/cli/auth/_login_impl.py | 183 | __all__ = ["potpie_login_impl", "potpie_logout_impl", "potpie_login_api_key_impl"] | CODE |
| LOW | potpie/cli/commands/bootstrap.py | 789 | __all__ = ["register"] | CODE |
| 260 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | potpie/auth/adapters/credentials_store.py | 306 | except CredentialStoreError: | CODE |
| HIGH | potpie/auth/adapters/credentials_store.py | 1600 | except ValueError: | CODE |
| HIGH | potpie/auth/adapters/credentials_store.py | 1649 | except Exception: | CODE |
| HIGH | potpie/auth/adapters/provider_config.py | 77 | except ValueError: | CODE |
| HIGH | potpie/auth/adapters/integration_verify.py | 38 | except (TypeError, ValueError): | CODE |
| HIGH | potpie/cli/ui/setup_ux.py | 614 | except typer.Exit: | CODE |
| HIGH | potpie/cli/auth/gitlab_auth.py | 96 | except Exception: | CODE |
| HIGH | potpie/cli/commands/ui.py | 43 | except Exception: # noqa: BLE001 — fall through to the discovery check | CODE |
| HIGH | potpie/cli/commands/ui.py | 61 | except Exception: # noqa: BLE001 | CODE |
| HIGH | potpie/cli/commands/graph.py | 284 | except Exception: # noqa: BLE001 - observability must never fail a command | CODE |
| HIGH | potpie/cli/commands/graph.py | 300 | except Exception: # noqa: BLE001 - Sentry metrics must never fail a command | CODE |
| HIGH | potpie/cli/commands/graph.py | 3542 | except ValueError: | CODE |
| HIGH | potpie/cli/commands/_common.py | 746 | except Exception: # noqa: BLE001 | CODE |
| HIGH | potpie/cli/commands/_common.py | 751 | except Exception: # noqa: BLE001 | CODE |
| HIGH | potpie/cli/telemetry/identity_store.py | 100 | except OSError: | CODE |
| HIGH | potpie/cli/telemetry/preferences.py | 76 | except OSError: | CODE |
| HIGH | …egrations/adapters/inbound/http/integrations_router.py | 1510 | except Exception: | CODE |
| HIGH | …egrations/adapters/inbound/http/integrations_router.py | 1846 | except Exception: | CODE |
| HIGH | …egrations/adapters/inbound/http/integrations_router.py | 584 | except Exception: | CODE |
| HIGH | …ons/integrations/adapters/outbound/oauth/jira_oauth.py | 90 | except Exception: | CODE |
| HIGH | …ntegrations/adapters/outbound/linear/graphql_client.py | 57 | except Exception: | CODE |
| HIGH | potpie/daemon/discovery.py | 106 | except (OSError, RuntimeError, ValueError): | CODE |
| HIGH | potpie/daemon/discovery.py | 225 | except FileNotFoundError: | CODE |
| HIGH | potpie/daemon/discovery.py | 230 | except FileNotFoundError: | CODE |
| HIGH | potpie/daemon/discovery.py | 323 | except OSError: | CODE |
| HIGH | potpie/daemon/discovery.py | 327 | except FileNotFoundError: | CODE |
| HIGH | potpie/daemon/lifecycle.py | 60 | except OSError: | CODE |
| HIGH | potpie/daemon/__main__.py | 43 | except KeyboardInterrupt: | CODE |
| HIGH | potpie/daemon/http/ui/router.py | 336 | except Exception: # noqa: BLE001, S110 — analytics must never fail the SPA | CODE |
| HIGH | potpie/sandbox/tests/unit/test_daytona_provider.py | 83 | except (ValueError, IndexError): | CODE |
| HIGH | …/sandbox/tests/integration/test_daytona_persistence.py | 161 | except Exception: | CODE |
| HIGH | potpie/sandbox/tests/e2e/conftest.py | 35 | except socket.gaierror: | CODE |
| HIGH | …ndbox/sandbox/adapters/outbound/local/git_workspace.py | 256 | except Exception: | CODE |
| HIGH | …/sandbox/sandbox/adapters/outbound/daytona/provider.py | 1437 | except ImportError: | CODE |
| HIGH | …/sandbox/sandbox/adapters/outbound/daytona/provider.py | 1450 | except ImportError: | CODE |
| HIGH | …ontext-engine/tests/unit/test_graph_workbench_plans.py | 141 | except threading.BrokenBarrierError: | CODE |
| HIGH | potpie/context-engine/tests/integration/conftest.py | 117 | except Exception: | CODE |
| HIGH | potpie/context-engine/tests/integration/conftest.py | 308 | except Exception: | CODE |
| HIGH | potpie/context-engine/tests/integration/conftest.py | 338 | except Exception: | CODE |
| HIGH | potpie/context-engine/tests/integration/conftest.py | 167 | except ModuleNotFoundError: | CODE |
| HIGH | …dapters/outbound/reconciliation/pydantic_deep_agent.py | 1483 | except Exception: | CODE |
| HIGH | …dapters/outbound/reconciliation/pydantic_deep_agent.py | 1004 | except Exception: | CODE |
| HIGH | …dapters/outbound/reconciliation/pydantic_deep_agent.py | 944 | except Exception: # noqa: BLE001 — never break failure handling | CODE |
| HIGH | …/adapters/outbound/graph/backends/in_memory_backend.py | 228 | except Exception: # noqa: BLE001 - graph writes should survive embedder failure. | CODE |
| HIGH | …context_engine/adapters/outbound/observability/otel.py | 362 | except Exception: # noqa: BLE001 | CODE |
| HIGH | …context_engine/adapters/outbound/observability/otel.py | 372 | except Exception: # noqa: BLE001 | CODE |
| HIGH | …context_engine/adapters/outbound/observability/otel.py | 378 | except Exception: # noqa: BLE001 | CODE |
| HIGH | …context_engine/adapters/outbound/observability/otel.py | 386 | except Exception: # noqa: BLE001 | CODE |
| HIGH | …context_engine/adapters/outbound/observability/otel.py | 265 | except Exception: # noqa: BLE001 | CODE |
| HIGH | …context_engine/adapters/outbound/observability/otel.py | 279 | except Exception: # noqa: BLE001 | CODE |
| HIGH | …context_engine/adapters/outbound/observability/otel.py | 293 | except Exception: # noqa: BLE001 | CODE |
| HIGH | …context_engine/adapters/outbound/observability/otel.py | 255 | except Exception: # noqa: BLE001 | CODE |
| HIGH | …ne/adapters/outbound/observability/telemetry_bridge.py | 60 | except Exception: # noqa: BLE001 — telemetry never fails a request | CODE |
| HIGH | …ne/adapters/outbound/observability/telemetry_bridge.py | 90 | except Exception: # noqa: BLE001 | CODE |
| HIGH | …context_engine/adapters/outbound/postgres/telemetry.py | 97 | except Exception: | CODE |
| HIGH | …context_engine/adapters/outbound/postgres/telemetry.py | 137 | except Exception: | CODE |
| HIGH | …context_engine/adapters/outbound/postgres/telemetry.py | 92 | except Exception: | CODE |
| HIGH | …context_engine/adapters/outbound/postgres/telemetry.py | 132 | except Exception: | CODE |
| HIGH | …ne/adapters/outbound/http/potpie_context_api_client.py | 403 | except Exception: | CODE |
| HIGH | …ext_engine/application/use_cases/reap_stale_batches.py | 98 | except Exception: # noqa: BLE001 — never break the reaper | CODE |
| 3 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | potpie/auth/adapters/atlassian_client.py | 182 | CODE | |
| LOW | potpie/auth/adapters/credentials_store.py | 454 | CODE | |
| LOW | potpie/auth/adapters/atlassian_read_client.py | 137 | CODE | |
| LOW | potpie/auth/adapters/atlassian_read_client.py | 198 | CODE | |
| LOW | potpie/auth/adapters/github.py | 188 | CODE | |
| LOW | potpie/auth/adapters/github.py | 250 | CODE | |
| LOW | potpie/auth/adapters/gitbucket_client.py | 52 | CODE | |
| LOW | potpie/auth/adapters/integration_verify.py | 22 | CODE | |
| LOW | potpie/pots/local_store.py | 65 | CODE | |
| LOW | potpie/runtime/ownership.py | 35 | CODE | |
| LOW | potpie/runtime/resource_manager.py | 387 | CODE | |
| LOW | potpie/runtime/operations.py | 321 | CODE | |
| LOW | potpie/cli/read_presenter.py | 92 | CODE | |
| LOW | potpie/cli/cli_install_status.py | 295 | CODE | |
| LOW | potpie/cli/ui/setup_ux.py | 261 | CODE | |
| LOW | potpie/cli/ui/setup_ux.py | 427 | CODE | |
| LOW | potpie/cli/ui/interactive_prompts.py | 148 | CODE | |
| LOW | potpie/cli/ui/interactive_prompts.py | 256 | CODE | |
| LOW | potpie/cli/ui/logo_rotation.py | 92 | CODE | |
| LOW | potpie/cli/auth/atlassian_auth.py | 161 | CODE | |
| LOW | potpie/cli/auth/auth_commands.py | 501 | CODE | |
| LOW | potpie/cli/commands/bootstrap.py | 93 | CODE | |
| LOW | potpie/cli/commands/bootstrap.py | 95 | CODE | |
| LOW | potpie/cli/commands/graph.py | 168 | CODE | |
| LOW | potpie/cli/commands/graph.py | 1356 | CODE | |
| LOW | potpie/cli/commands/graph.py | 1572 | CODE | |
| LOW | potpie/cli/commands/graph.py | 2628 | CODE | |
| LOW | potpie/cli/commands/graph.py | 2660 | CODE | |
| LOW | potpie/cli/commands/graph.py | 3268 | CODE | |
| LOW | potpie/cli/commands/_common.py | 606 | CODE | |
| LOW | potpie/cli/commands/_common.py | 869 | CODE | |
| LOW | potpie/cli/commands/pots.py | 645 | CODE | |
| LOW | potpie/cli/telemetry/product_analytics.py | 96 | CODE | |
| LOW | …egrations/adapters/inbound/http/integrations_router.py | 500 | CODE | |
| LOW | …egrations/adapters/inbound/http/integrations_router.py | 744 | CODE | |
| LOW | …egrations/adapters/inbound/http/integrations_router.py | 1081 | CODE | |
| LOW | …egrations/adapters/inbound/http/integrations_router.py | 1322 | CODE | |
| LOW | …egrations/adapters/inbound/http/integrations_router.py | 1452 | CODE | |
| LOW | …egrations/adapters/inbound/http/integrations_router.py | 1763 | CODE | |
| LOW | …tions/integrations/adapters/outbound/linear/adapter.py | 74 | CODE | |
| LOW | …ntegrations/adapters/outbound/linear/graphql_client.py | 19 | CODE | |
| LOW | …tions/integrations/application/integrations_service.py | 165 | CODE | |
| LOW | …tions/integrations/application/integrations_service.py | 310 | CODE | |
| LOW | …tions/integrations/application/integrations_service.py | 361 | CODE | |
| LOW | …tions/integrations/application/integrations_service.py | 539 | CODE | |
| LOW | …tions/integrations/application/integrations_service.py | 941 | CODE | |
| LOW | …tions/integrations/application/integrations_service.py | 1384 | CODE | |
| LOW | …tions/integrations/application/integrations_service.py | 1922 | CODE | |
| LOW | …tions/integrations/application/integrations_service.py | 2154 | CODE | |
| LOW | …tions/integrations/application/integrations_service.py | 2350 | CODE | |
| LOW | …tions/integrations/application/integrations_service.py | 2716 | CODE | |
| LOW | …/sandbox/tests/integration/test_daytona_persistence.py | 85 | CODE | |
| LOW | …/sandbox/sandbox/adapters/outbound/daytona/provider.py | 436 | CODE | |
| LOW | …/sandbox/sandbox/adapters/outbound/daytona/provider.py | 990 | CODE | |
| LOW | potpie/sandbox/sandbox/api/client.py | 1013 | CODE | |
| LOW | potpie/sandbox/sandbox/api/parser_wire.py | 55 | CODE | |
| LOW | potpie/sandbox/scripts/daytona_local.py | 61 | CODE | |
| LOW | potpie/sandbox/scripts/daytona_local.py | 147 | CODE | |
| LOW | potpie/skills/installer.py | 58 | CODE | |
| LOW | potpie/skills/installer.py | 478 | CODE | |
| 46 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | potpie/sandbox/tests/e2e/test_local_subprocess_e2e.py | 225 | f"printf {token} >> log.txt && sleep 0.2 && printf {token} >> log.txt", | CODE |
| HIGH | potpie/sandbox/tests/e2e/test_docker_e2e.py | 195 | cmd=("sh", "-c", "nslookup example.com 2>/dev/null; echo exit=$?"), | CODE |
| HIGH | …/sandbox/sandbox/adapters/outbound/daytona/provider.py | 226 | f"{shlex.quote(worktree_path)} 2>/dev/null || true" | CODE |
| HIGH | …/sandbox/sandbox/adapters/outbound/daytona/provider.py | 843 | f"{shlex.quote(base_ref)} 2>/dev/null || true" | CODE |
| HIGH | …/sandbox/sandbox/adapters/outbound/daytona/provider.py | 912 | f"git -C {shlex.quote(bare_path)} worktree prune 2>/dev/null || true" | CODE |
| HIGH⚡ | …tpie/context-engine/tests/integration/test_e2e_http.py | 151 | # Query surface end-to-end (serialization + shape, not just non-null) | COMMENT |
| HIGH | …_engine/adapters/outbound/hatchet/hatchet_job_queue.py | 42 | self._hatchet.event.push(EVENT_PROCESS_BATCH, {"batch_id": batch_id}) | CODE |
| HIGH | …_engine/adapters/outbound/hatchet/hatchet_job_queue.py | 57 | self._hatchet.event.push( | CODE |
| HIGH | …otpie_context_engine/adapters/outbound/graph/cypher.py | 480 | r.expired_at = null, | STRING |
| HIGH | …otpie_context_engine/adapters/outbound/graph/cypher.py | 763 | r.expired_at = null, | STRING |
| HIGH | scripts/validate_conformance_history.py | 214 | f"{relative_path}: previous_record must be null; use the three historical fields" | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …/src/potpie_context_engine/benchmarks/core/universe.py | 4 | The bench's canonical universe is "Acme Corp" (bench-plan §5.1): | STRING |
| LOW⚡ | tests/unit/test_gitlab_client.py | 184 | "name": "Jane Doe", | CODE |
| LOW⚡ | tests/unit/test_gitlab_client.py | 191 | assert account["name"] == "Jane Doe" | CODE |
| LOW⚡ | tests/unit/test_gitlab_client.py | 305 | account: dict[str, Any] = {"id": "42", "username": "jane", "name": "Jane Doe"} | CODE |
| LOW⚡ | tests/unit/test_ui_router.py | 52 | assert _caption("person:jane-doe", {"name": "Jane Doe"}) == "Jane Doe" | CODE |
| LOW⚡ | tests/unit/test_cli_atlassian.py | 62 | result = verify_gateway_product("user@example.com", "tok", "", "jira") | CODE |
| LOW⚡ | tests/unit/test_cli_atlassian.py | 109 | "user@example.com", | CODE |
| LOW⚡ | tests/unit/test_cli_atlassian.py | 272 | "user@example.com", | CODE |
| LOW⚡ | tests/unit/test_cli_atlassian.py | 859 | sites = _fetch_accessible_resources("user@example.com", "token") | CODE |
| LOW⚡ | tests/unit/test_cli_atlassian.py | 874 | sites = _fetch_accessible_resources("user@example.com", "token") | CODE |
| LOW⚡ | tests/unit/test_cli_atlassian.py | 888 | sites = _fetch_accessible_resources("user@example.com", "token") | CODE |
| LOW⚡ | tests/unit/test_cli_atlassian.py | 977 | "user@example.com", | CODE |
| LOW⚡ | tests/unit/test_cli_atlassian.py | 987 | "user@example.com", | CODE |
| LOW | tests/unit/test_cli_atlassian.py | 147 | "user@example.com", | CODE |
| LOW | tests/unit/test_cli_atlassian.py | 170 | "user@example.com", | CODE |
| LOW | tests/unit/test_cli_atlassian.py | 196 | "user@example.com", | CODE |
| LOW | tests/unit/test_cli_atlassian.py | 251 | "user@example.com", | CODE |
| LOW | tests/unit/test_cli_atlassian.py | 324 | "user@example.com", | CODE |
| LOW | tests/unit/test_cli_atlassian.py | 407 | email="user@example.com", | CODE |
| LOW | tests/unit/test_cli_atlassian.py | 455 | "user@example.com", | CODE |
| LOW | tests/unit/test_cli_atlassian.py | 479 | "user@example.com", | CODE |
| LOW | tests/unit/test_cli_atlassian.py | 499 | "user@example.com", | CODE |
| LOW | tests/unit/test_cli_atlassian.py | 542 | "user@example.com", | CODE |
| LOW | tests/unit/test_cli_atlassian.py | 588 | email="user@example.com", | CODE |
| LOW | tests/unit/test_cli_atlassian.py | 610 | prompts = iter(["api-token-secret", "user@example.com", "myteam"]) | CODE |
| LOW | tests/unit/test_cli_atlassian.py | 691 | prompt_values = iter(["api-token-secret", "user@example.com"]) | CODE |
| LOW | tests/unit/test_cli_atlassian.py | 757 | prompt_values = iter(["api-token-secret", "user@example.com"]) | CODE |
| LOW | tests/unit/test_cli_atlassian.py | 816 | prompt_values = iter(["api-token-secret", "user@example.com"]) | CODE |
| LOW | tests/unit/test_cli_atlassian.py | 906 | sites = _fetch_accessible_resources("user@example.com", "token") | CODE |
| LOW | tests/unit/test_cli_atlassian.py | 1025 | email="user@example.com", | CODE |
| LOW | tests/unit/test_cli_atlassian.py | 1052 | email="user@example.com", | CODE |
| LOW | tests/unit/test_cli_atlassian.py | 1076 | email="user@example.com", | CODE |
| LOW | tests/unit/test_cli_atlassian.py | 1094 | "email": "user@example.com", | CODE |
| LOW | tests/unit/test_cli_atlassian.py | 1144 | "email": "user@example.com", | CODE |
| LOW | tests/unit/test_cli_atlassian.py | 1233 | email="user@example.com", | CODE |
| LOW | tests/unit/test_cli_atlassian.py | 1259 | email="user@example.com", | CODE |
| LOW | tests/unit/test_cli_atlassian.py | 1286 | email="user@example.com", | CODE |
| LOW | tests/unit/test_cli_atlassian.py | 1309 | email="user@example.com", | CODE |
| LOW | tests/unit/test_cli_atlassian.py | 1392 | "email": "user@example.com", | CODE |
| LOW | tests/unit/test_cli_atlassian.py | 1451 | "email": "user@example.com", | CODE |
| LOW | tests/unit/test_cli_atlassian.py | 1472 | "email": "user@example.com", | CODE |
| LOW | tests/unit/test_cli_atlassian.py | 1632 | "email": "user@example.com", | CODE |
| LOW⚡ | tests/unit/test_cli_atlassian_shared.py | 737 | "email": "user@example.com", | CODE |
| LOW⚡ | tests/unit/test_cli_atlassian_shared.py | 745 | assert creds["email"] == "user@example.com" | CODE |
| LOW⚡ | tests/unit/test_cli_atlassian_shared.py | 991 | "email": "user@example.com", | CODE |
| LOW⚡ | tests/unit/test_cli_atlassian_shared.py | 997 | assert record["account"]["email"] == "user@example.com" | CODE |
| LOW⚡ | tests/unit/test_cli_atlassian_shared.py | 999 | assert record["email"] == "user@example.com" | CODE |
| LOW⚡ | tests/unit/test_cli_atlassian_shared.py | 1007 | "email": "user@example.com", | CODE |
| LOW⚡ | tests/unit/test_cli_atlassian_shared.py | 1014 | assert record["account"]["email"] == "user@example.com" | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …tpie/cli/templates/claude_plugin/hooks/potpie_nudge.py | 48 | # Map a nudge event back to the harness hook-event name used in the output envelope. | COMMENT |
| MEDIUM | …tpie/cli/templates/claude_plugin/hooks/potpie_nudge.py | 153 | # --- payload accessors (harness-tolerant) ----------------------------------- | COMMENT |
| MEDIUM | …tpie/cli/templates/claude_plugin/hooks/potpie_nudge.py | 461 | # argparse already wrote usage; never propagate a nonzero exit to the harness. | COMMENT |
| MEDIUM | potpie/sandbox/tests/integration/test_real_repo_flow.py | 141 | # expose). Mirror the convention used elsewhere in the harness. | COMMENT |
| MEDIUM | potpie/sandbox/tests/integration/test_real_repo_flow.py | 162 | # in the harness reads it to orient itself. | COMMENT |
| MEDIUM | potpie/skills/manager.py | 221 | # Unknown harness → empty nudge rather than an error in status(). | COMMENT |
| MEDIUM | potpie/context-engine/pyproject.toml | 75 | # uses. Excludes benchmarks (development harness) and dev tooling. | COMMENT |
| MEDIUM | …/context-engine/tests/integration/test_e2e_pipeline.py | 158 | # labels and the DEPLOYED_TO edge below are robust against LLM phrasing. | COMMENT |
| MEDIUM | …pie_context_engine/core/semantic_mutation_validator.py | 157 | # surface a non-blocking warning so the harness knows how to proceed. | COMMENT |
| MEDIUM | …/src/potpie_context_engine/core/ports/agent_context.py | 108 | harness: str | None = None # agent harness, for the skill nudge | CODE |
| MEDIUM | tests/unit/test_agent_templates_v15.py | 265 | # The Stage 6 core skills: every one must carry the harness-led boundary in | COMMENT |
| MEDIUM | tests/unit/test_agent_templates_v15.py | 266 | # its body — the harness reads/decides/writes, Potpie validates/stores, no | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | README.md | 22 | ### Step 1: install the CLI through [PyPI](https://pypi.org/project/potpie/) with `uv` or `pip`: | COMMENT |
| LOW | README.md | 38 | ### Step 2: Run the Potpie setup wizard | COMMENT |
| LOW | README.md | 50 | ### Step 3: Open your configured harness | COMMENT |
| LOW | …ine/src/potpie_context_engine/benchmarks/core/smoke.py | 70 | # Step 1: resolve every fixture (seeds + signals + distractors) without | COMMENT |
| LOW⚡ | …ine/src/potpie_context_engine/benchmarks/core/smoke.py | 101 | # Step 2: fake an empty graph snapshot + outcomes and exercise the | COMMENT |
| LOW⚡ | …ine/src/potpie_context_engine/benchmarks/core/smoke.py | 126 | # Step 3: fake an empty engine response and exercise the retrieval evaluator. | COMMENT |
| LOW | docs/async-migration-plan.md | 19 | ## Step 0: Revert thread-based changes | COMMENT |
| LOW | docs/async-migration-plan.md | 49 | ## Step 1: AsyncRedisStreamManager for FastAPI | COMMENT |
| LOW | docs/async-migration-plan.md | 90 | ## Step 2: AsyncSession for hot-path DB services | COMMENT |
| LOW | docs/async-migration-plan.md | 174 | ## Step 3: Async Redis for non-streaming services ✅ | COMMENT |
| LOW | docs/async-migration-plan.md | 199 | ## Step 4: Async HTTP clients ✅ | COMMENT |
| LOW | docs/async-migration-plan.md | 218 | ## Step 5: SearchService async DB | COMMENT |
| LOW | docs/getting-started/first-steps.md | 10 | ## Step 2: Run the Potpie setup wizard | COMMENT |
| LOW | docs/getting-started/first-steps.md | 22 | ## Step 3: Open your configured harness | COMMENT |
| LOW | docs/getting-started/installation.md | 6 | ## Step 1: install the CLI through [PyPI](https://pypi.org/project/potpie/) with `uv` or `pip` | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | potpie/cli/commands/bootstrap.py | 95 | CODE | |
| LOW | potpie/cli/commands/graph.py | 544 | CODE | |
| LOW | potpie/cli/commands/graph.py | 681 | CODE | |
| LOW | potpie/cli/commands/graph.py | 761 | CODE | |
| LOW | potpie/cli/commands/graph.py | 1572 | CODE | |
| LOW | potpie/cli/commands/graph.py | 1770 | CODE | |
| LOW | potpie/cli/commands/graph.py | 1837 | CODE | |
| LOW | potpie/daemon/http/ui/router.py | 216 | CODE | |
| LOW | potpie/daemon/http/ui/router.py | 282 | CODE | |
| LOW | potpie/sandbox/sandbox/bootstrap/container.py | 43 | CODE | |
| LOW | …/sandbox/sandbox/adapters/outbound/daytona/provider.py | 87 | CODE | |
| LOW | potpie/context-engine/tests/unit/test_p9_readers.py | 41 | CODE | |
| LOW | …ne/src/potpie_context_engine/core/workbench_service.py | 2859 | CODE | |
| LOW | …ne/src/potpie_context_engine/core/workbench_service.py | 129 | CODE | |
| LOW | …ne/src/potpie_context_engine/core/workbench_service.py | 835 | CODE | |
| LOW | …gine/src/potpie_context_engine/core/context_records.py | 203 | CODE | |
| LOW | …text-engine/src/potpie_context_engine/core/ontology.py | 671 | CODE | |
| LOW | …gine/src/potpie_context_engine/core/graph_workbench.py | 59 | CODE | |
| LOW | …t-engine/src/potpie_context_engine/core/graph_query.py | 112 | CODE | |
| LOW | …t-engine/src/potpie_context_engine/core/graph_query.py | 149 | CODE | |
| LOW | …rc/potpie_context_engine/bootstrap/ingestion_server.py | 249 | CODE | |
| LOW | …_engine/adapters/inbound/http/api/v1/context/router.py | 878 | CODE | |
| LOW | …_engine/adapters/inbound/http/api/v1/context/router.py | 970 | CODE | |
| LOW | …ext-engine/src/potpie_context_engine/benchmarks/cli.py | 103 | CODE | |
| LOW | …ntext_engine/application/services/read_orchestrator.py | 90 | CODE | |
| LOW | …ine/src/potpie_context_engine/domain/retrieval_card.py | 28 | CODE | |
| LOW | tests/unit/test_context_resource_manager.py | 96 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …egrations/adapters/inbound/http/integrations_router.py | 461 | # Check if this is actually a callback request (has code parameter) | COMMENT |
| LOW | …egrations/adapters/inbound/http/integrations_router.py | 2171 | # Check if integration exists before attempting deletion | COMMENT |
| LOW | …egrations/adapters/inbound/http/integrations_router.py | 2229 | # Check if integration exists and verify ownership | COMMENT |
| LOW | …s/integrations/adapters/outbound/oauth/linear_oauth.py | 42 | # Check if token has expired | COMMENT |
| LOW | …ntegrations/adapters/outbound/oauth/sentry_oauth_v2.py | 41 | # Check if token has expired | COMMENT |
| LOW | …tions/integrations/application/integrations_service.py | 334 | # Check if token is expired | COMMENT |
| LOW | …tions/integrations/application/integrations_service.py | 629 | # Check if the code might be expired (OAuth codes typically expire in 10 minutes) | COMMENT |
| LOW | …tions/integrations/application/integrations_service.py | 701 | # Check if this Potpie user already integrated this Sentry org | COMMENT |
| LOW | …tions/integrations/application/integrations_service.py | 1658 | # Check if the code might be expired (OAuth codes typically expire in 10 minutes) | COMMENT |
| LOW | …tions/integrations/application/integrations_service.py | 1701 | # Check if this user already has an integration for this Linear org | COMMENT |
| LOW | …tions/integrations/application/integrations_service.py | 2184 | # Check if token is expired and refresh if needed | COMMENT |
| LOW | potpie/parsing/parsing/py_graph.py | 41 | # Check if this .git is a directory | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …egrations/adapters/inbound/http/integrations_router.py | 528 | # Create a LinearSaveRequest with the authorization code | COMMENT |
| MEDIUM | …ntegrations/adapters/outbound/oauth/sentry_oauth_v2.py | 259 | # This method is deprecated in favor of the new flow | COMMENT |
| MEDIUM⚡ | …tions/integrations/application/integrations_service.py | 1583 | # Create the unique identifier that would be used for this Sentry user | COMMENT |
| MEDIUM | …tions/integrations/application/integrations_service.py | 1054 | # Create the database model | COMMENT |
| MEDIUM | …tions/integrations/application/integrations_service.py | 1876 | # Create the database model | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | potpie/sandbox/sandbox/bootstrap/settings.py | 41 | # incident response painful. The actual name appended at sandbox creation | COMMENT |
| LOW | potpie/sandbox/sandbox/bootstrap/settings.py | 61 | daytona_snapshot_cpu: int = 2 | COMMENT |
| LOW | …/sandbox/sandbox/adapters/outbound/daytona/provider.py | 1201 | ) -> AsyncIterator[ExecChunk]: | COMMENT |
| LOW | …andbox/sandbox/application/services/sandbox_service.py | 441 | labels["workspace_backend_id"] = workspace.location.backend_workspace_id | COMMENT |
| LOW | potpie/sandbox/scripts/setup-daytona-local.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | potpie/sandbox/scripts/teardown-daytona-local.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | …scripts/daytona-overrides/docker-compose.override.yaml | 1 | # Layered on top of /Users/nandan/Desktop/Dev/daytona/docker/docker-compose.yaml | COMMENT |
| LOW | …scripts/daytona-overrides/docker-compose.override.yaml | 21 | - "${DAYTONA_DASHBOARD_PORT:-3010}:3000" | COMMENT |
| LOW | …scripts/daytona-overrides/docker-compose.override.yaml | 41 | # Daytona's upstream compose hard-codes `proxy.localhost:4000` as the | COMMENT |
| LOW | …text-engine/src/potpie_context_engine/core/ontology.py | 961 | # vocabulary (agents must never emit them) and so are deliberately | COMMENT |
| LOW | …text-engine/src/potpie_context_engine/core/ontology.py | 1481 | COMMENT | |
| LOW | …dapters/outbound/reconciliation/pydantic_deep_agent.py | 381 | COMMENT | |
| LOW | …dapters/outbound/reconciliation/pydantic_deep_agent.py | 841 | # list that survives checkpoint resumes (the todo state rides in the | COMMENT |
| LOW | …ext-engine/src/potpie_context_engine/domain/ranking.py | 21 | from typing import Any, Iterable, Mapping, Sequence | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …/context-engine/tests/unit/test_context_graph_query.py | 67 | # ranked-evidence envelope. There is no agentic/answer path to special-case | COMMENT |
| MEDIUM | …ngine/src/potpie_context_engine/core/reconciliation.py | 34 | # Step 11 parked the agentic-only types into ``potpie_context_engine.core.llm_reconciliation`` so | COMMENT |
| MEDIUM | …t-engine/src/potpie_context_engine/core/graph_query.py | 14 | # former ANSWER/INVESTIGATE members (server-side synthesis / agentic loop) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ine/src/potpie_context_engine/benchmarks/core/smoke.py | 70 | # Step 1: resolve every fixture (seeds + signals + distractors) without | COMMENT |
| LOW⚡ | …ine/src/potpie_context_engine/benchmarks/core/smoke.py | 101 | # Step 2: fake an empty graph snapshot + outcomes and exercise the | COMMENT |
| LOW⚡ | …ine/src/potpie_context_engine/benchmarks/core/smoke.py | 126 | # Step 3: fake an empty engine response and exercise the retrieval evaluator. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | potpie/parsing/tests/test_git_rs.py | 32 | (lib / "utils.py").write_text("def helper(): pass\n") | CODE |