Skip to content

fix(api): backfill non-array test_account_filters rows#58375

Merged
sakce merged 1 commit into
masterfrom
claude/fix-mcp-filters-wC10Q
May 27, 2026
Merged

fix(api): backfill non-array test_account_filters rows#58375
sakce merged 1 commit into
masterfrom
claude/fix-mcp-filters-wC10Q

Conversation

@sakce
Copy link
Copy Markdown
Contributor

@sakce sakce commented May 13, 2026

Problem

Team.test_account_filters is a free-form jsonb, but every consumer expects an array of property filters. Before request-time validation shipped (#58129 + #58320), some rows ended up as JSON strings (most commonly from project-settings-update MCP). Those rows still need cleaning. Prod-us currently has 21 affected teams.

Changes

Data migration 1179_fix_non_list_test_account_filters: filters with jsonb_typeof != 'array', keeps the parsed list if the value is a stringified array, else []. Batched bulk_update, reverse_code=noop, ActivityLog retains the prior value.

How did you test this code?

Agent-PR. Verified locally by seeding 4 bad shapes (stringified-array / non-array / object / json-null) and running manage.py migrate posthog 1179 — all converged correctly, parsed array preserved. Unit test added at posthog/test/test_migration_1179.py (mark-skipped per repo convention for migration tests).

Reviewer / on-call: run on prod before merge —

SELECT jsonb_typeof(test_account_filters), COUNT(*)
FROM posthog_team
WHERE jsonb_typeof(test_account_filters) IS DISTINCT FROM 'array'
GROUP BY 1;

Publish to changelog?

No.

🤖 Agent context

Originally a 6-commit PR adding validator + frontend defenses + this migration. While the PR sat open, #58129/#58320 shipped the validator, making 5 of 6 commits redundant. Trimmed to just the migration. Session: https://claude.ai/code/session_0138DNFGspPWbFhEC6p9F5AV

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 13, 2026

🎭 Playwright didn't run on this PR — your changes touch code that could affect E2E behavior, but Playwright is opt-in via label now to keep CI cost down.

Add the run-playwright label if you want an E2E sweep before merging — CI will pick it up automatically.

Most PRs don't need this. Real regressions still get caught on master and fix-forward.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 13, 2026

Migration SQL Changes

Hey 👋, we've detected some migrations on this PR. Here's the SQL output for each migration, make sure they make sense:

posthog/migrations/1185_fix_non_list_test_account_filters.py

BEGIN;
--
-- Raw Python operation
--
-- THIS OPERATION CANNOT BE WRITTEN AS SQL
COMMIT;

Last updated: 2026-05-27 10:11 UTC (8fd943c)

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 13, 2026

🔍 Migration Risk Analysis

We've analyzed your migrations for potential risks.

Summary: 0 Safe | 1 Needs Review | 0 Blocked

⚠️ Needs Review

May have performance impact

posthog.1185_fix_non_list_test_account_filters
  └─ #1 ⚠️ RunPython: RunPython data migration needs review for performance

📚 How to Deploy These Changes Safely

RunPython:

Use batching for large data migrations:

  • Use .iterator() to avoid loading all rows into memory
  • Use .bulk_update() instead of saving individual objects
  • Batch size: 1,000-10,000 rows per batch
  • Add pauses between batches
  • Consider background jobs for very large updates (millions of rows)

See the migration safety guide

Last updated: 2026-05-27 10:11 UTC (8fd943c)

@github-actions
Copy link
Copy Markdown
Contributor

Size Change: +21.4 kB (+0.02%)

Total Size: 117 MB

📦 View Changed
Filename Size Change
frontend/dist/EndpointsScene 23.7 kB +2.14 kB (+9.92%) ⚠️
frontend/dist/SupportTicketScene 45.7 kB +19.3 kB (+72.82%) 🆘
ℹ️ View Unchanged
Filename Size Change
frontend/dist/368Hedgehogs 5.47 kB 0 B
frontend/dist/abap 14.2 kB 0 B
frontend/dist/AccountConnected 2.99 kB 0 B
frontend/dist/Action 24 kB -109 B (-0.45%)
frontend/dist/Actions 1.2 kB 0 B
frontend/dist/AdvancedActivityLogsScene 39.9 kB 0 B
frontend/dist/AgenticAuthorize 5.7 kB 0 B
frontend/dist/apex 3.99 kB 0 B
frontend/dist/ApprovalDetail 16.5 kB 0 B
frontend/dist/architecture-7EHR7CIX 372 B 0 B
frontend/dist/architectureDiagram-3BPJPVTR 151 kB 0 B
frontend/dist/array.full.es5.js 347 kB 0 B
frontend/dist/array.full.js 427 kB 0 B
frontend/dist/array.js 191 kB 0 B
frontend/dist/AsyncMigrations 13.4 kB 0 B
frontend/dist/AuthenticatedShell 173 kB 0 B
frontend/dist/AuthorizationStatus 969 B 0 B
frontend/dist/azcli 885 B 0 B
frontend/dist/bat 1.88 kB 0 B
frontend/dist/BatchExportScene 60.8 kB 0 B
frontend/dist/bicep 2.59 kB 0 B
frontend/dist/Billing 731 B 0 B
frontend/dist/BillingSection 21 kB 0 B
frontend/dist/blockDiagram-GPEHLZMM 72.5 kB 0 B
frontend/dist/BoxPlot 5.25 kB 0 B
frontend/dist/browserAll-0QZMN1W2 37.4 kB 0 B
frontend/dist/BusinessKnowledgeScene 18.9 kB 0 B
frontend/dist/ButtonPrimitives 796 B 0 B
frontend/dist/c4Diagram-AAUBKEIU 70.8 kB 0 B
frontend/dist/CalendarHeatMap 9 kB 0 B
frontend/dist/cameligo 2.23 kB 0 B
frontend/dist/changeRequestsLogic 748 B -34 B (-4.35%)
frontend/dist/classDiagram-4FO5ZUOK 1.28 kB 0 B
frontend/dist/classDiagram-v2-Q7XG4LA2 1.28 kB 0 B
frontend/dist/CLIAuthorize 11.6 kB 0 B
frontend/dist/CLILive 4.26 kB 0 B
frontend/dist/clojure 9.68 kB 0 B
frontend/dist/CodeEditorInline 730 B +34 B (+4.89%) 🔍
frontend/dist/coffee 3.63 kB 0 B
frontend/dist/Cohort 25 kB 0 B
frontend/dist/CohortCalculationHistory 6.47 kB 0 B
frontend/dist/Cohorts 9.64 kB 0 B
frontend/dist/ConfirmOrganization 4.76 kB 0 B
frontend/dist/conversations.js 67.3 kB 0 B
frontend/dist/cose-bilkent-S5V4N54A 82.8 kB 0 B
frontend/dist/Coupons 963 B 0 B
frontend/dist/cpp 5.33 kB 0 B
frontend/dist/Create 1.08 kB +179 B (+19.93%) 🚨
frontend/dist/crisp-chat-integration.js 1.97 kB 0 B
frontend/dist/csharp 4.56 kB 0 B
frontend/dist/csp 1.45 kB 0 B
frontend/dist/css 4.54 kB 0 B
frontend/dist/cssMode 4.2 kB 0 B
frontend/dist/CustomCssScene 3.8 kB 0 B
frontend/dist/CustomerAnalyticsConfigurationScene 2.31 kB +36 B (+1.58%)
frontend/dist/CustomerAnalyticsScene 28.1 kB 0 B
frontend/dist/CustomerJourneyBuilderScene 2.04 kB -35 B (-1.69%)
frontend/dist/CustomerJourneyTemplatesScene 7.72 kB 0 B
frontend/dist/customizations.full.js 18 kB 0 B
frontend/dist/CyclotronJobInputAssignee 1.57 kB +35 B (+2.28%)
frontend/dist/CyclotronJobInputBusinessHours 2.96 kB 0 B
frontend/dist/CyclotronJobInputTicketTags 920 B -34 B (-3.56%)
frontend/dist/cypher 3.42 kB 0 B
frontend/dist/dagre-BM42HDAG 11.9 kB 0 B
frontend/dist/dart 4.29 kB 0 B
frontend/dist/Dashboard 1.38 kB 0 B
frontend/dist/Dashboards 21.8 kB 0 B
frontend/dist/DashboardTemplateCopyScene 5.95 kB 0 B
frontend/dist/DataManagementScene 884 B 0 B
frontend/dist/DataPipelinesNewScene 2.55 kB 0 B
frontend/dist/DataWarehouseScene 46.5 kB 0 B
frontend/dist/Deactivated 1.37 kB 0 B
frontend/dist/dead-clicks-autocapture.js 13.2 kB 0 B
frontend/dist/DeadLetterQueue 5.63 kB 0 B
frontend/dist/DebugScene 20.2 kB 0 B
frontend/dist/decompressionWorker 2.85 kB 0 B
frontend/dist/decompressionWorker.js 2.85 kB 0 B
frontend/dist/DecompressionWorkerManager 329 B 0 B
frontend/dist/DefinitionEdit 8.82 kB 0 B
frontend/dist/DefinitionView 24.3 kB 0 B
frontend/dist/DestinationsScene 2.92 kB 0 B
frontend/dist/diagram-2AECGRRQ 6.66 kB 0 B
frontend/dist/diagram-5GNKFQAL 3.61 kB 0 B
frontend/dist/diagram-KO2AKTUF 11.5 kB 0 B
frontend/dist/diagram-LMA3HP47 5.02 kB 0 B
frontend/dist/diagram-OG6HWLK6 11.8 kB 0 B
frontend/dist/dist 643 B 0 B
frontend/dist/dockerfile 1.91 kB 0 B
frontend/dist/EarlyAccessFeature 991 B 0 B
frontend/dist/EarlyAccessFeatures 3.09 kB 0 B
frontend/dist/ecl 5.38 kB 0 B
frontend/dist/EditorScene 1.38 kB 0 B
frontend/dist/elixir 10.3 kB 0 B
frontend/dist/elk.bundled 1.44 MB 0 B
frontend/dist/EmailMFAVerify 3.26 kB 0 B
frontend/dist/EndpointScene 39.2 kB 0 B
frontend/dist/erDiagram-TEJ5UH35 27.7 kB 0 B
frontend/dist/ErrorTrackingIssueFingerprintsScene 7.26 kB +41 B (+0.57%)
frontend/dist/ErrorTrackingIssueScene 99.4 kB -979 B (-0.98%)
frontend/dist/ErrorTrackingScene 27 kB 0 B
frontend/dist/EvaluationTemplates 813 B 0 B
frontend/dist/eventmodeling-FCH6USID 375 B 0 B
frontend/dist/EventsScene 2.81 kB 0 B
frontend/dist/exception-autocapture.js 11.8 kB 0 B
frontend/dist/Experiment 210 kB 0 B
frontend/dist/Experiments 19.3 kB 0 B
frontend/dist/exporter 18.7 kB 0 B
frontend/dist/exporter.js 18.7 kB 0 B
frontend/dist/ExporterDashboardScene 1.78 kB 0 B
frontend/dist/ExporterHeatmapScene 19.5 kB 0 B
frontend/dist/ExporterInsightScene 2.88 kB 0 B
frontend/dist/ExporterNotebookScene 2.69 MB 0 B
frontend/dist/ExporterRecordingScene 995 B 0 B
frontend/dist/exporterSharedChunkAnchors 288 kB 0 B
frontend/dist/exporterSharedChunkAnchors.js 288 kB 0 B
frontend/dist/ExportsScene 4.23 kB 0 B
frontend/dist/FeatureFlag 131 kB 0 B
frontend/dist/FeatureFlags 844 B 0 B
frontend/dist/FeatureFlagTemplatesScene 7.28 kB +36 B (+0.5%)
frontend/dist/FlappyHog 5.99 kB 0 B
frontend/dist/flow9 1.85 kB 0 B
frontend/dist/flowDiagram-I6XJVG4X 61.6 kB 0 B
frontend/dist/freemarker2 16.7 kB 0 B
frontend/dist/fsharp 3.02 kB 0 B
frontend/dist/ganttDiagram-6RSMTGT7 50.9 kB 0 B
frontend/dist/gitGraph-WXDBUCRP 360 B 0 B
frontend/dist/gitGraphDiagram-PVQCEYII 30.2 kB 0 B
frontend/dist/go 2.69 kB 0 B
frontend/dist/graphql 2.3 kB 0 B
frontend/dist/Group 14.8 kB 0 B
frontend/dist/Groups 4.15 kB 0 B
frontend/dist/GroupsNew 7.58 kB 0 B
frontend/dist/handlebars 7.38 kB 0 B
frontend/dist/hcl 3.63 kB 0 B
frontend/dist/HealthCategoryDetailScene 7.48 kB 0 B
frontend/dist/HealthScene 10.8 kB 0 B
frontend/dist/HeatmapNewScene 4.86 kB 0 B
frontend/dist/HeatmapRecordingScene 4.25 kB 0 B
frontend/dist/HeatmapScene 6.87 kB 0 B
frontend/dist/HeatmapsScene 4.13 kB 0 B
frontend/dist/hls 394 kB 0 B
frontend/dist/HogFunctionScene 59.5 kB 0 B
frontend/dist/hogql_parser_wasm_browser 1.52 MB 0 B
frontend/dist/HogRepl 7.61 kB 0 B
frontend/dist/html 5.62 kB 0 B
frontend/dist/htmlMode 4.65 kB 0 B
frontend/dist/image-blob-reduce.esm 49.5 kB 0 B
frontend/dist/InboxScene 59.9 kB 0 B
frontend/dist/index 60.6 kB 0 B
frontend/dist/index.js 60.6 kB 0 B
frontend/dist/info-J43DQDTF 348 B 0 B
frontend/dist/infoDiagram-5YYISTIA 1.32 kB 0 B
frontend/dist/ini 1.14 kB 0 B
frontend/dist/InsightQuickStart 5.67 kB 0 B
frontend/dist/InsightScene 28.8 kB 0 B
frontend/dist/IntegrationsRedirect 976 B 0 B
frontend/dist/intercom-integration.js 2.03 kB 0 B
frontend/dist/InviteSignup 15.2 kB 0 B
frontend/dist/ishikawaDiagram-YF4QCWOH 18 kB 0 B
frontend/dist/java 3.26 kB 0 B
frontend/dist/javascript 1.02 kB 0 B
frontend/dist/journeyDiagram-JHISSGLW 24 kB 0 B
frontend/dist/jsonMode 13.9 kB 0 B
frontend/dist/julia 7.26 kB 0 B
frontend/dist/kanban-definition-UN3LZRKU 21.2 kB 0 B
frontend/dist/katex 266 kB 0 B
frontend/dist/kotlin 3.44 kB 0 B
frontend/dist/lazy 146 kB 0 B
frontend/dist/LegacyPluginScene 20.9 kB 0 B
frontend/dist/LegalDocumentNewScene 59.6 kB 0 B
frontend/dist/LegalDocumentsScene 5.17 kB 0 B
frontend/dist/LemonTextAreaMarkdown 706 B 0 B
frontend/dist/less 3.93 kB 0 B
frontend/dist/lexon 2.47 kB 0 B
frontend/dist/lib 2.25 kB 0 B
frontend/dist/Link 706 B +34 B (+5.06%) 🔍
frontend/dist/LinkScene 25 kB 0 B
frontend/dist/LinksScene 4.4 kB -36 B (-0.81%)
frontend/dist/liquid 4.57 kB 0 B
frontend/dist/LiveDebugger 19.3 kB -37 B (-0.19%)
frontend/dist/LiveEventsTable 5.47 kB 0 B
frontend/dist/LLMAnalyticsClusterScene 21.5 kB +40 B (+0.19%)
frontend/dist/LLMAnalyticsClustersScene 54.7 kB 0 B
frontend/dist/LLMAnalyticsDatasetScene 19.9 kB 0 B
frontend/dist/LLMAnalyticsDatasetsScene 3.52 kB +36 B (+1.03%)
frontend/dist/LLMAnalyticsEvaluation 59.6 kB -38 B (-0.06%)
frontend/dist/LLMAnalyticsEvaluationsScene 28 kB 0 B
frontend/dist/LLMAnalyticsPlaygroundScene 37.5 kB 0 B
frontend/dist/LLMAnalyticsScene 118 kB +345 B (+0.29%)
frontend/dist/LLMAnalyticsSessionScene 13.6 kB -41 B (-0.3%)
frontend/dist/LLMAnalyticsTag 27.3 kB +36 B (+0.13%)
frontend/dist/LLMAnalyticsTagsScene 7.19 kB +36 B (+0.5%)
frontend/dist/LLMAnalyticsTraceScene 130 kB 0 B
frontend/dist/LLMAnalyticsUsers 764 B +34 B (+4.66%) 🔍
frontend/dist/LLMASessionFeedbackDisplay 5.08 kB +35 B (+0.69%)
frontend/dist/LLMPromptScene 17.7 kB -38 B (-0.21%)
frontend/dist/LLMPromptsScene 4.68 kB 0 B
frontend/dist/LLMSkillScene 793 B 0 B
frontend/dist/LLMSkillsScene 844 B 0 B
frontend/dist/Login 8.86 kB 0 B
frontend/dist/Login2FA 4.49 kB 0 B
frontend/dist/logs.js 38.9 kB 0 B
frontend/dist/LogsAlertDetailScene 17.2 kB 0 B
frontend/dist/LogsSamplingDetailScene 4.44 kB 0 B
frontend/dist/LogsSamplingNewScene 2.01 kB +35 B (+1.78%)
frontend/dist/LogsScene 17.7 kB -401 B (-2.22%)
frontend/dist/lua 2.16 kB 0 B
frontend/dist/m3 2.85 kB 0 B
frontend/dist/main 819 kB 0 B
frontend/dist/ManagedMigration 14.4 kB 0 B
frontend/dist/markdown 3.83 kB 0 B
frontend/dist/MarketingAnalyticsScene 40.2 kB 0 B
frontend/dist/MaterializedColumns 10.4 kB 0 B
frontend/dist/Max 888 B 0 B
frontend/dist/mdx 5.43 kB 0 B
frontend/dist/memlens.lib.bundle 27.9 kB 0 B
frontend/dist/mermaid.core 28.5 kB 0 B
frontend/dist/MermaidDiagram 2.15 kB 0 B
frontend/dist/MessageTemplate 16.5 kB 0 B
frontend/dist/MetricsScene 1.08 kB 0 B
frontend/dist/mindmap-definition-RKZ34NQL 24.8 kB 0 B
frontend/dist/mips 2.62 kB 0 B
frontend/dist/ModelsScene 14.6 kB 0 B
frontend/dist/MonacoDiffEditor 471 B 0 B
frontend/dist/monacoEditorWorker 288 kB 0 B
frontend/dist/monacoEditorWorker.js 288 kB 0 B
frontend/dist/monacoJsonWorker 419 kB 0 B
frontend/dist/monacoJsonWorker.js 419 kB 0 B
frontend/dist/monacoTsWorker 7.02 MB 0 B
frontend/dist/monacoTsWorker.js 7.02 MB 0 B
frontend/dist/MoveToPostHogCloud 4.7 kB 0 B
frontend/dist/msdax 4.95 kB 0 B
frontend/dist/mysql 11.3 kB 0 B
frontend/dist/NavTabChat 7.41 kB 0 B
frontend/dist/NewSourceScene 1.05 kB +68 B (+6.94%) 🔍
frontend/dist/NewTabScene 1.72 kB 0 B
frontend/dist/NodeDetailScene 16.9 kB +33 B (+0.2%)
frontend/dist/NotebookCanvasScene 3.51 kB 0 B
frontend/dist/NotebookPanel 5.48 kB 0 B
frontend/dist/NotebookScene 8.72 kB 0 B
frontend/dist/NotebooksScene 7.84 kB 0 B
frontend/dist/OAuthAuthorize 844 B 0 B
frontend/dist/objective-c 2.44 kB 0 B
frontend/dist/Onboarding 771 kB 0 B
frontend/dist/OnboardingCouponRedemption 1.44 kB 0 B
frontend/dist/packet-YPE3B663 354 B 0 B
frontend/dist/pascal 3.03 kB 0 B
frontend/dist/pascaligo 2.04 kB 0 B
frontend/dist/passkeyLogic 688 B 0 B
frontend/dist/PasswordReset 4.6 kB 0 B
frontend/dist/PasswordResetComplete 3.23 kB 0 B
frontend/dist/PendingDeletion 2.38 kB 0 B
frontend/dist/perl 8.29 kB 0 B
frontend/dist/PersonScene 18.1 kB 0 B
frontend/dist/PersonsScene 4.94 kB 0 B
frontend/dist/pgsql 13.5 kB 0 B
frontend/dist/php 8.06 kB 0 B
frontend/dist/pie-LRSECV5Y 345 B 0 B
frontend/dist/pieDiagram-4H26LBE5 4.92 kB 0 B
frontend/dist/PipelineStatusScene 9.35 kB 0 B
frontend/dist/pla 1.72 kB 0 B
frontend/dist/posthog 146 kB 0 B
frontend/dist/postiats 7.9 kB 0 B
frontend/dist/powerquery 17 kB 0 B
frontend/dist/powershell 3.31 kB 0 B
frontend/dist/PreflightCheck 5.81 kB 0 B
frontend/dist/product-tours.js 115 kB 0 B
frontend/dist/ProductTour 274 kB 0 B
frontend/dist/ProductTours 4.92 kB 0 B
frontend/dist/ProjectHomepage 19.9 kB 0 B
frontend/dist/protobuf 9.09 kB 0 B
frontend/dist/pug 4.86 kB 0 B
frontend/dist/python 4.8 kB 0 B
frontend/dist/qsharp 3.23 kB 0 B
frontend/dist/quadrantDiagram-W4KKPZXB 34.4 kB 0 B
frontend/dist/QueryPerformance 8.86 kB 0 B
frontend/dist/r 3.16 kB 0 B
frontend/dist/radar-GUYGQ44K 351 B 0 B
frontend/dist/razor 9.38 kB 0 B
frontend/dist/react-json-view 121 kB 0 B
frontend/dist/recorder-v2.js 98.6 kB 0 B
frontend/dist/recorder.js 98.6 kB 0 B
frontend/dist/redis 3.59 kB 0 B
frontend/dist/redshift 11.8 kB 0 B
frontend/dist/RegionMap 29.6 kB 0 B
frontend/dist/render-query 26.6 MB 0 B
frontend/dist/render-query.js 26.6 MB 0 B
frontend/dist/requirementDiagram-4Y6WPE33 31.9 kB 0 B
frontend/dist/ResourceTransfer 9.42 kB 0 B
frontend/dist/restructuredtext 3.94 kB 0 B
frontend/dist/RevenueAnalyticsScene 25.8 kB 0 B
frontend/dist/ruby 8.54 kB 0 B
frontend/dist/rust 4.2 kB 0 B
frontend/dist/sankeyDiagram-5OEKKPKP 24 kB 0 B
frontend/dist/SavedInsights 902 B 0 B
frontend/dist/sb 1.86 kB 0 B
frontend/dist/scala 7.36 kB 0 B
frontend/dist/schema 715 kB 0 B
frontend/dist/SchemaScene 21.2 kB 0 B
frontend/dist/scheme 1.8 kB 0 B
frontend/dist/scss 6.45 kB 0 B
frontend/dist/SdkDoctorScene 9.66 kB 0 B
frontend/dist/sequenceDiagram-3UESZ5HK 117 kB 0 B
frontend/dist/SessionAttributionExplorerScene 6.87 kB 0 B
frontend/dist/SessionGroupSummariesTable 4.87 kB +35 B (+0.72%)
frontend/dist/SessionGroupSummaryScene 17.2 kB -36 B (-0.21%)
frontend/dist/SessionProfileScene 15.3 kB 0 B
frontend/dist/SessionRecordingDetail 2 kB 0 B
frontend/dist/SessionRecordingFilePlaybackScene 4.71 kB 0 B
frontend/dist/SessionRecordings 980 B 0 B
frontend/dist/SessionRecordingsKiosk 9.09 kB 0 B
frontend/dist/SessionRecordingsPlaylistScene 4.39 kB 0 B
frontend/dist/SessionRecordingsSettingsScene 2.14 kB 0 B
frontend/dist/SessionsScene 4.22 kB 0 B
frontend/dist/SettingsScene 3.23 kB 0 B
frontend/dist/sharedChunkAnchors 236 kB 0 B
frontend/dist/sharedChunkAnchors.js 236 kB 0 B
frontend/dist/SharedMetric 5.14 kB 0 B
frontend/dist/SharedMetrics 787 B 0 B
frontend/dist/shell 3.11 kB 0 B
frontend/dist/SignupContainer 28.4 kB 0 B
frontend/dist/Site 1.43 kB 0 B
frontend/dist/solidity 18.6 kB 0 B
frontend/dist/sophia 2.8 kB 0 B
frontend/dist/SourceScene 928 B -34 B (-3.53%)
frontend/dist/SourcesScene 6.17 kB 0 B
frontend/dist/sparql 2.59 kB 0 B
frontend/dist/sql 10.3 kB 0 B
frontend/dist/SqlVariableEditScene 7.49 kB 0 B
frontend/dist/st 7.44 kB 0 B
frontend/dist/StartupProgram 21.4 kB 0 B
frontend/dist/stateDiagram-AJRCARHV 11.3 kB +5 B (+0.04%)
frontend/dist/stateDiagram-v2-BHNVJYJU 1.18 kB 0 B
frontend/dist/StripeConfirmInstall 3.78 kB 0 B
frontend/dist/SubscriptionScene 14.4 kB 0 B
frontend/dist/SubscriptionsScene 5.42 kB 0 B
frontend/dist/SupportSettingsScene 1.68 kB +35 B (+2.13%)
frontend/dist/SupportTicketsScene 937 B 0 B
frontend/dist/Survey 1.09 kB 0 B
frontend/dist/SurveyFormBuilder 1.78 kB 0 B
frontend/dist/Surveys 18.5 kB 0 B
frontend/dist/surveys.js 94.7 kB 0 B
frontend/dist/SurveyWizard 74.7 kB 0 B
frontend/dist/swift 5.3 kB 0 B
frontend/dist/SystemStatus 17.1 kB 0 B
frontend/dist/systemverilog 7.65 kB 0 B
frontend/dist/TaskDetailScene 22.6 kB +38 B (+0.17%)
frontend/dist/TaskTracker 14.4 kB 0 B
frontend/dist/tcl 3.61 kB 0 B
frontend/dist/TextCardMarkdownEditor 11.2 kB +28 B (+0.25%)
frontend/dist/timeline-definition-PNZ67QCA 31.3 kB 0 B
frontend/dist/toolbar 14.9 MB 0 B
frontend/dist/toolbar.js 14.9 MB 0 B
frontend/dist/ToolbarLaunch 2.71 kB 0 B
frontend/dist/tracing-headers.js 1.74 kB 0 B
frontend/dist/TracingScene 53.7 kB 0 B
frontend/dist/TransformationsScene 6.4 kB 0 B
frontend/dist/treemap-LRROVOQU 357 B 0 B
frontend/dist/treeView-BLDUP644 360 B 0 B
frontend/dist/TrendsBarChart 6.74 kB 0 B
frontend/dist/TrendsLineChart 6.84 kB 0 B
frontend/dist/tsMode 24 kB 0 B
frontend/dist/twig 6.01 kB 0 B
frontend/dist/TwoFactorReset 4.27 kB 0 B
frontend/dist/typescript 274 B 0 B
frontend/dist/typespec 2.86 kB 0 B
frontend/dist/Unsubscribe 1.9 kB 0 B
frontend/dist/UserInterview 4.78 kB +39 B (+0.82%)
frontend/dist/UserInterviews 2.26 kB 0 B
frontend/dist/vb 5.83 kB 0 B
frontend/dist/vennDiagram-CIIHVFJN 41.6 kB 0 B
frontend/dist/VercelConnect 5.23 kB 0 B
frontend/dist/VercelLinkError 2.5 kB 0 B
frontend/dist/VerifyEmail 5.02 kB 0 B
frontend/dist/vimMode 211 kB 0 B
frontend/dist/VisualReviewIndexScene 2.45 kB +36 B (+1.49%)
frontend/dist/VisualReviewRunScene 44.3 kB 0 B
frontend/dist/VisualReviewRunsScene 7.21 kB 0 B
frontend/dist/VisualReviewSettingsScene 11 kB 0 B
frontend/dist/VisualReviewSnapshotHistoryScene 12.4 kB +37 B (+0.3%)
frontend/dist/VisualReviewSnapshotOverviewScene 17.5 kB 0 B
frontend/dist/wardley-L42UT6IY 352 B 0 B
frontend/dist/wardleyDiagram-YWT4CUSO 26.2 kB 0 B
frontend/dist/web-vitals-with-attribution.js 11.8 kB 0 B
frontend/dist/web-vitals.js 6.39 kB 0 B
frontend/dist/WebAnalyticsScene 6 kB 0 B
frontend/dist/WebGLRenderer-DYjOwNoG 60.4 kB 0 B
frontend/dist/WebGPURenderer-B_wkl_Ja 36.3 kB 0 B
frontend/dist/WebScriptsScene 2.78 kB 0 B
frontend/dist/webworkerAll-puPV1rBA 397 B 0 B
frontend/dist/wgsl 7.38 kB 0 B
frontend/dist/Wizard 4.7 kB 0 B
frontend/dist/WorkflowScene 116 kB 0 B
frontend/dist/WorkflowsScene 60 kB 0 B
frontend/dist/WorldMap 1.04 MB 0 B
frontend/dist/xml 3.02 kB 0 B
frontend/dist/xychartDiagram-2RQKCTM6 39.6 kB 0 B
frontend/dist/yaml 4.64 kB 0 B

compressed-size-action

@github-actions
Copy link
Copy Markdown
Contributor

This PR hasn't seen activity in a week! Should it be merged, closed, or further worked on? If you want to keep it open, please remove the stale label – otherwise this will be closed in another week. If you want to permanently keep it open, use the waiting label.

@github-actions github-actions Bot added the stale label May 21, 2026
@christiaan-ph
Copy link
Copy Markdown
Contributor

issue reported by a customer here: https://posthoghelp.zendesk.com/agent/tickets/58670

Comment thread posthog/api/project.py Outdated
@sakce sakce marked this pull request as ready for review May 26, 2026 15:27
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented May 26, 2026

Comments Outside Diff (1)

  1. posthog/api/test/test_team.py, line 561-574 (link)

    P2 Single-case project endpoint test should be parameterised

    test_validate_test_account_filters_rejects_non_list_via_project_endpoint hardcodes only the JSON-string case, while the companion test for /api/environments/ already uses @parameterized.expand to cover four distinct non-list inputs (JSON string, plain string, object, number). A JSON object or a bare number sent to the project endpoint would not be covered by the current test suite, so a regression there would go undetected.

    Context Used: Do not attempt to comment on incorrect alphabetica... (source)

    Prompt To Fix With AI
    This is a comment left during a code review.
    Path: posthog/api/test/test_team.py
    Line: 561-574
    
    Comment:
    **Single-case project endpoint test should be parameterised**
    
    `test_validate_test_account_filters_rejects_non_list_via_project_endpoint` hardcodes only the JSON-string case, while the companion test for `/api/environments/` already uses `@parameterized.expand` to cover four distinct non-list inputs (JSON string, plain string, object, number). A JSON object or a bare number sent to the project endpoint would not be covered by the current test suite, so a regression there would go undetected.
    
    **Context Used:** Do not attempt to comment on incorrect alphabetica... ([source](https://app.greptile.com/review/custom-context?memory=instruction-0))
    
    How can I resolve this? If you propose a fix, please make it concise.
Prompt To Fix All With AI
Fix the following 1 code review issue. Work through them one at a time, proposing concise fixes.

---

### Issue 1 of 1
posthog/api/test/test_team.py:561-574
**Single-case project endpoint test should be parameterised**

`test_validate_test_account_filters_rejects_non_list_via_project_endpoint` hardcodes only the JSON-string case, while the companion test for `/api/environments/` already uses `@parameterized.expand` to cover four distinct non-list inputs (JSON string, plain string, object, number). A JSON object or a bare number sent to the project endpoint would not be covered by the current test suite, so a regression there would go undetected.

Reviews (1): Last reviewed commit: "chore(settings): drop UI defenses for no..." | Re-trigger Greptile

@sakce sakce force-pushed the claude/fix-mcp-filters-wC10Q branch from 5c6f93b to aa61bae Compare May 26, 2026 16:15
@sakce sakce changed the title fix(api): enforce test_account_filters as array and add migration fix(api): backfill non-array test_account_filters rows May 26, 2026
@sakce sakce requested a review from thmsobrmlr May 26, 2026 17:01
@graphite-app
Copy link
Copy Markdown
Contributor

graphite-app Bot commented May 26, 2026

Merge activity

  • May 26, 5:59 PM UTC: This pull request can not be added to the Graphite merge queue. Please try rebasing and resubmitting to merge when ready.
  • May 26, 5:59 PM UTC: Graphite disabled "merge when ready" on this PR due to: a merge conflict with the target branch; resolve the conflict and try again..

Copy link
Copy Markdown
Collaborator

@thmsobrmlr thmsobrmlr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, I had migrated all faulty ones by hand.. wonder how these slipped in?

Copy link
Copy Markdown
Contributor Author

sakce commented May 26, 2026

@thmsobrmlr what did you run?

i checked these two queries

SELECT
      jsonb_typeof(test_account_filters) AS taf_type,
      COUNT(*)                           AS team_count
  FROM posthog_team
  WHERE jsonb_typeof(test_account_filters) IS DISTINCT FROM 'array'
  GROUP BY 1
  ORDER BY team_count DESC;
SELECT
      t.id                                              AS team_id,
      o.id                                              AS organization_id,
      o.name                                            AS organization_name,
      t.name                                            AS team_name,
      jsonb_typeof(t.test_account_filters)              AS taf_type,
      -- Preview what the migration will write:
      --   string parseable as JSON array  → keeps parsed contents
      --   anything else (object, number, bool, JSON null) → []
      CASE
          WHEN jsonb_typeof(t.test_account_filters) = 'string'
               AND jsonb_typeof((t.test_account_filters #>> '{}')::jsonb) = 'array'
              THEN (t.test_account_filters #>> '{}')::jsonb
          ELSE '[]'::jsonb
      END                                               AS will_become,
      t.test_account_filters                            AS current_value
  FROM posthog_team t
  JOIN posthog_organization o ON o.id = t.organization_id
  WHERE jsonb_typeof(t.test_account_filters) IS DISTINCT FROM 'array'
  ORDER BY t.id
  LIMIT 100;

@sakce sakce requested review from a team as code owners May 26, 2026 18:42
@tests-posthog
Copy link
Copy Markdown
Contributor

tests-posthog Bot commented May 26, 2026

Query snapshots: Backend query snapshots updated

Changes: 1 snapshots (1 modified, 0 added, 0 deleted)

What this means:

  • Query snapshots have been automatically updated to match current output
  • These changes reflect modifications to database queries or schema

Next steps:

  • Review the query changes to ensure they're intentional
  • If unexpected, investigate what caused the query to change

Review snapshot changes →

@sakce sakce force-pushed the claude/fix-mcp-filters-wC10Q branch from 1e20aef to 5b30e47 Compare May 27, 2026 09:15
Copy link
Copy Markdown
Contributor Author

sakce commented May 27, 2026

This stack of pull requests is managed by Graphite. Learn more about stacking.

@sakce sakce enabled auto-merge (squash) May 27, 2026 09:26
@sakce sakce force-pushed the claude/fix-mcp-filters-wC10Q branch from 5b30e47 to 8fd943c Compare May 27, 2026 10:01
@sakce sakce removed the stale label May 27, 2026
@sakce sakce merged commit d52dbe3 into master May 27, 2026
234 of 236 checks passed
@sakce sakce deleted the claude/fix-mcp-filters-wC10Q branch May 27, 2026 11:42
@deployment-status-posthog
Copy link
Copy Markdown

deployment-status-posthog Bot commented May 27, 2026

Deploy status

Environment Status Deployed At Workflow
dev ✅ Deployed 2026-05-27 12:34 UTC Run
prod-us ⏳ Pending
prod-eu ✅ Deployed 2026-05-27 12:59 UTC Run

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants