Skip to content

feat(cohorts): add activity log and edit history tracking#57702

Merged
dmarticus merged 12 commits into
masterfrom
posthog-code/cohort-edit-history
May 19, 2026
Merged

feat(cohorts): add activity log and edit history tracking#57702
dmarticus merged 12 commits into
masterfrom
posthog-code/cohort-edit-history

Conversation

@dmarticus
Copy link
Copy Markdown
Contributor

@dmarticus dmarticus commented May 5, 2026

TL;DR

Adds edit history tracking to cohorts by integrating the existing ActivityLog component and implementing a cohort activity describer to humanize change events. Users can now see what changed on a cohort, who changed it, and when.

Closes #29959

Changes

  • Integrated ActivityLog component into the CohortEdit scene as a History section at the bottom of the page (only visible on saved cohorts).
  • Implemented cohortActivityDescriber to convert raw activity log entries into human-readable descriptions for:
    • Created, deleted, and restored cohorts
    • Manual person additions and removals on static cohorts
    • Field updates (name, description, filters/criteria, query, type)
    • Smart description add/clear/edit distinction
    • Dedupes is_static + cohort_type co-emit so flipping a static cohort doesn't double-print
    • Surfaces unknown fields generically rather than dumping JSON
  • Routed cohorts through the generic /activity_log API in api.activity.listLegacy — without this opt-in, the cohort scope fell through to a hardcoded empty result and no history was ever displayed.
  • Added comprehensive test suite (activityDescriptions.test.tsx) with 19 parameterized tests covering all activity types, every field handler, the dedupe logic, the unknown-field fallback, and the excluded-fields path.

How did you test this code?

  • Unit tests via hogli test frontend/src/scenes/cohorts/activityDescriptions.test.tsx (19/19 passing).
  • Manually verified end-to-end by creating and editing a cohort locally and confirming both the database write (posthog_activitylog rows) and the History UI rendering.

Created with PostHog Code

Generated-By: PostHog Code
Task-Id: 3f6fa9a8-e6da-4c84-bbe2-8ded493b5051
@assign-reviewers-posthog assign-reviewers-posthog Bot requested a review from a team May 5, 2026 17:38
@posthog-project-board-bot posthog-project-board-bot Bot moved this to In Review in Feature Flags May 5, 2026
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented May 5, 2026

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
frontend/src/scenes/cohorts/activityDescriptions.test.tsx:72-113
**Prefer parameterised tests for repeated activity-type assertions**

The five simple-activity tests (`created`, `deleted`, `restored`, `persons_added_manually`, `person_removed_manually`) are structurally identical: they differ only in the `activity` string and the expected output text. An `it.each` table would express all five in a single test and is the preferred pattern in this codebase. The same applies to the three `description` field sub-cases below (adding / clearing / editing), which also vary only in their `before`/`after` values.

Reviews (1): Last reviewed commit: "feat(cohorts): add activity log and edit..." | Re-trigger Greptile

Comment thread frontend/src/scenes/cohorts/activityDescriptions.test.tsx Outdated
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 5, 2026

Size Change: +13.4 kB (+0.01%)

Total Size: 118 MB

📦 View Changed
Filename Size Change
frontend/dist/EndpointsScene 23.9 kB +2.13 kB (+9.76%) ⚠️
frontend/dist/render-query 26.7 MB +2.9 kB (+0.01%)
frontend/dist/render-query.js 26.7 MB +2.9 kB (+0.01%)
frontend/dist/toolbar.js 15 MB +2.89 kB (+0.02%)
frontend/dist/TransformationsScene 2.16 kB -4.24 kB (-66.24%) 🏆
frontend/dist/WorkflowScene 110 kB +6.81 kB (+6.57%) 🔍
ℹ️ 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.8 kB 0 B
frontend/dist/Actions 1.2 kB -63 B (-4.99%)
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 176 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.29 kB +35 B (+0.67%)
frontend/dist/browserAll-0QZMN1W2 37.4 kB 0 B
frontend/dist/BusinessKnowledgeScene 18.9 kB +35 B (+0.19%)
frontend/dist/ButtonPrimitives 762 B -34 B (-4.27%)
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 696 B 0 B
frontend/dist/coffee 3.63 kB 0 B
frontend/dist/Cohort 28.2 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.27 kB 0 B
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.54 kB 0 B
frontend/dist/CyclotronJobInputBusinessHours 2.92 kB -35 B (-1.18%)
frontend/dist/CyclotronJobInputTicketTags 920 B 0 B
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 14.3 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/Deployment 3.9 kB 0 B
frontend/dist/DeploymentProject 5.47 kB +35 B (+0.64%)
frontend/dist/Deployments 9.17 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 855 B -136 B (-13.72%) 👏
frontend/dist/EarlyAccessFeatures 3.05 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.9 kB -35 B (-0.09%)
frontend/dist/erDiagram-TEJ5UH35 27.7 kB 0 B
frontend/dist/ErrorTrackingIssueFingerprintsScene 7.22 kB -41 B (-0.56%)
frontend/dist/ErrorTrackingIssueScene 101 kB 0 B
frontend/dist/ErrorTrackingScene 27 kB -75 B (-0.28%)
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 211 kB 0 B
frontend/dist/Experiments 19.8 kB 0 B
frontend/dist/exporter 19 kB 0 B
frontend/dist/exporter.js 19 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/ExporterInterviewScene 309 kB 0 B
frontend/dist/ExporterNotebookScene 2.71 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 134 kB 0 B
frontend/dist/FeatureFlags 844 B 0 B
frontend/dist/FeatureFlagTemplatesScene 7.24 kB 0 B
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 15.1 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 12.4 kB 0 B
frontend/dist/HeatmapNewScene 5.27 kB 0 B
frontend/dist/HeatmapRecordingScene 4.25 kB 0 B
frontend/dist/HeatmapScene 6.8 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.53 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.7 kB 0 B
frontend/dist/index.js 60.7 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 34.6 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 -37 B (-0.06%)
frontend/dist/LegalDocumentsScene 5.21 kB 0 B
frontend/dist/LemonTextAreaMarkdown 740 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 699 B 0 B
frontend/dist/LinkScene 25 kB 0 B
frontend/dist/LinksScene 4.4 kB 0 B
frontend/dist/liquid 4.57 kB 0 B
frontend/dist/LiveDebugger 19.3 kB 0 B
frontend/dist/LiveEventsTable 5.47 kB 0 B
frontend/dist/LLMAnalyticsClusterScene 21.4 kB 0 B
frontend/dist/LLMAnalyticsClustersScene 54.7 kB 0 B
frontend/dist/LLMAnalyticsDatasetScene 20.7 kB 0 B
frontend/dist/LLMAnalyticsDatasetsScene 3.49 kB 0 B
frontend/dist/LLMAnalyticsEvaluation 59.6 kB 0 B
frontend/dist/LLMAnalyticsEvaluationsScene 28 kB -34 B (-0.12%)
frontend/dist/LLMAnalyticsPlaygroundScene 37.5 kB -36 B (-0.1%)
frontend/dist/LLMAnalyticsScene 117 kB -345 B (-0.29%)
frontend/dist/LLMAnalyticsSessionScene 13.6 kB -41 B (-0.3%)
frontend/dist/LLMAnalyticsTag 27.3 kB 0 B
frontend/dist/LLMAnalyticsTagsScene 7.19 kB +36 B (+0.5%)
frontend/dist/LLMAnalyticsTraceScene 130 kB 0 B
frontend/dist/LLMAnalyticsUsers 730 B 0 B
frontend/dist/LLMASessionFeedbackDisplay 5.04 kB -35 B (-0.69%)
frontend/dist/LLMPromptScene 17.7 kB 0 B
frontend/dist/LLMPromptsScene 4.68 kB 0 B
frontend/dist/LLMSkillScene 793 B -34 B (-4.11%)
frontend/dist/LLMSkillsScene 810 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 -38 B (-0.22%)
frontend/dist/LogsSamplingDetailScene 4.59 kB 0 B
frontend/dist/LogsSamplingNewScene 2.11 kB -40 B (-1.86%)
frontend/dist/LogsScene 18.1 kB 0 B
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.3 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 +40 B (+1.89%)
frontend/dist/MessageTemplate 16.5 kB -70 B (-0.42%)
frontend/dist/MetricsScene 1.04 kB -34 B (-3.16%)
frontend/dist/mindmap-definition-RKZ34NQL 24.8 kB 0 B
frontend/dist/mips 2.62 kB 0 B
frontend/dist/ModelsScene 18.9 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 980 B 0 B
frontend/dist/NewTabScene 1.72 kB 0 B
frontend/dist/NodeDetailScene 16.9 kB -33 B (-0.19%)
frontend/dist/NotebookCanvasScene 3.55 kB 0 B
frontend/dist/NotebookPanel 5.51 kB 0 B
frontend/dist/NotebookScene 8.75 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.5 kB 0 B
frontend/dist/PersonsScene 5.91 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 275 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/ReplayLens 21.7 kB 0 B
frontend/dist/ReplayLensesScene 12.1 kB -36 B (-0.3%)
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 -65 B (-0.25%)
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 720 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.65 kB 0 B
frontend/dist/sequenceDiagram-3UESZ5HK 117 kB 0 B
frontend/dist/SessionAttributionExplorerScene 6.87 kB 0 B
frontend/dist/SessionGroupSummariesTable 4.84 kB 0 B
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 10.2 kB 0 B
frontend/dist/SessionRecordingsPlaylistScene 5.28 kB 0 B
frontend/dist/SessionRecordingsSettingsScene 2.14 kB 0 B
frontend/dist/SessionsScene 4.22 kB 0 B
frontend/dist/SettingsScene 3.33 kB 0 B
frontend/dist/sharedChunkAnchors 236 kB 0 B
frontend/dist/sharedChunkAnchors.js 236 kB 0 B
frontend/dist/SharedMetric 6.03 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 962 B 0 B
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.64 kB 0 B
frontend/dist/SupportTicketScene 26.4 kB 0 B
frontend/dist/SupportTicketsScene 971 B +34 B (+3.63%)
frontend/dist/Survey 1.12 kB 0 B
frontend/dist/SurveyFormBuilder 1.78 kB 0 B
frontend/dist/Surveys 26.6 kB 0 B
frontend/dist/surveys.js 94.7 kB 0 B
frontend/dist/SurveyWizard 71.5 kB 0 B
frontend/dist/swift 5.3 kB 0 B
frontend/dist/SystemStatus 17.3 kB 0 B
frontend/dist/systemverilog 7.65 kB 0 B
frontend/dist/TaskDetailScene 23.2 kB -36 B (-0.15%)
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 15 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.9 kB 0 B
frontend/dist/treemap-LRROVOQU 357 B 0 B
frontend/dist/treeView-BLDUP644 360 B 0 B
frontend/dist/TrendsBarChart 6.84 kB 0 B
frontend/dist/TrendsLineChart 6.8 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 6.25 kB -35 B (-0.56%)
frontend/dist/UserInterviewResponse 5.54 kB 0 B
frontend/dist/UserInterviews 3.77 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.41 kB 0 B
frontend/dist/VisualReviewRunScene 44.3 kB 0 B
frontend/dist/VisualReviewRunsScene 7.17 kB -38 B (-0.53%)
frontend/dist/VisualReviewSettingsScene 11 kB 0 B
frontend/dist/VisualReviewSnapshotHistoryScene 12.4 kB 0 B
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 9.59 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/WebVitals 7.41 kB +35 B (+0.47%)
frontend/dist/WebVitalsPathBreakdown 3.86 kB -35 B (-0.9%)
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/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

Generated-By: PostHog Code
Task-Id: 3f6fa9a8-e6da-4c84-bbe2-8ded493b5051
@dmarticus dmarticus added the update-snapshots Enable auto commit snapshots for Storybook and Playwright label May 5, 2026
@posthog
Copy link
Copy Markdown
Contributor

posthog Bot commented May 5, 2026

👋 Visual changes detected for this PR.

Review and approve in PostHog Visual Review

If these changes are unexpected, they may be caused by a flaky test or a broken snapshot on master. Don't approve — rerun the job or wait for a fix.

dmarticus and others added 6 commits May 5, 2026 12:37
…point

api.activity.listLegacy had no requestForScope entry for Cohort, so it
silently returned an empty result set. Opt cohorts into the generic
/activity_log endpoint alongside experiments, hog functions, etc.

Generated-By: PostHog Code
Task-Id: 3f6fa9a8-e6da-4c84-bbe2-8ded493b5051
Wraps existing edit form in an Overview tab and exposes activity log via
a sibling History tab. Tabs hidden for new cohorts. Overview content
stays mounted (display:none when inactive) so form state survives tab
switches. Save button stays in the title section above the tabs.

Generated-By: PostHog Code
Task-Id: 3f6fa9a8-e6da-4c84-bbe2-8ded493b5051
Move tab state from React useState into cohortEditLogic with hash-based
URL routing (#tab=history). Overview is the default and clears the
hash key. Reload, share-by-link, and browser back/forward all preserve
the active tab.

Generated-By: PostHog Code
Task-Id: 3f6fa9a8-e6da-4c84-bbe2-8ded493b5051
PostHog routes are project-prefixed (/project/<id>/cohorts/<id>), so the
startsWith('/cohorts/') check was always false and the URL never got
updated when clicking a tab.

Generated-By: PostHog Code
Task-Id: 3f6fa9a8-e6da-4c84-bbe2-8ded493b5051
Adds 6 logic tests around the new tab state: default, write, strip,
read-from-url, garbage-fallback, and stale-hash cleanup on mount for
new cohorts. Also clears any inherited #tab=… hash when creating a new
cohort, so the URL reflects the fact that tabs aren't shown until save.

Generated-By: PostHog Code
Task-Id: 3f6fa9a8-e6da-4c84-bbe2-8ded493b5051
4 updated
Run: a2023686-2e48-4685-ba84-91dfea95fb54
Comment thread frontend/src/scenes/cohorts/cohortEditLogic.ts Outdated
When landing on /cohorts/new#tab=history, urlToAction set activeTab to
'history' before afterMount cleared the hash. The hash got cleaned but
the in-memory tab state stuck at 'history', leaving the user on a blank
page (overview hidden via display:none, history gated on a saved
cohort id). Now resets activeTab to 'overview' alongside the hash
cleanup. Strengthens the existing test to assert the reducer state.

Generated-By: PostHog Code
Task-Id: 3f6fa9a8-e6da-4c84-bbe2-8ded493b5051
@dmarticus dmarticus enabled auto-merge (squash) May 5, 2026 23:01
@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 13, 2026
@dmarticus dmarticus removed the stale label May 18, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 19, 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.

Copy link
Copy Markdown
Contributor

@gustavohstrassburger gustavohstrassburger left a comment

Choose a reason for hiding this comment

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

Really cool new feature, nice work.

I haven't found anything that is worth mentioning, but
claude was able to find some nits, but I leave it up to you.

Nit: Missing Loading State

CohortEdit.tsx (L307-315):

The ActivityLog component renders immediately but may take time to load data. Consider adding a loading indicator for better UX.


Nit: Type Safety Enhancement

activityDescriptions.tsx (L32-36):
The cohortFieldMapping could benefit from stronger typing:

type FieldHandler = (change?: ActivityChange) => ChangeMapping | null
const cohortFieldMapping: Record<keyof Partial<CohortType>, FieldHandler> = { ... }

Nit: Extract Tab Configuration

CohortEdit.tsx (L297-304):
Consider extracting tab configuration for better maintainability:

const COHORT_TABS = [
    { key: 'overview' as const, label: 'Overview' },
    { key: 'history' as const, label: 'History' }
] satisfies { key: CohortEditTab; label: string }[]

@github-project-automation github-project-automation Bot moved this from In Review to Approved in Feature Flags May 19, 2026
@dmarticus dmarticus disabled auto-merge May 19, 2026 16:44
@dmarticus dmarticus merged commit 4e78125 into master May 19, 2026
164 of 165 checks passed
@dmarticus dmarticus deleted the posthog-code/cohort-edit-history branch May 19, 2026 18:08
@github-project-automation github-project-automation Bot moved this from Approved to Done in Feature Flags May 19, 2026
@deployment-status-posthog
Copy link
Copy Markdown

deployment-status-posthog Bot commented May 19, 2026

Deploy status

Environment Status Deployed At Workflow
dev ✅ Deployed 2026-05-19 18:29 UTC Run
prod-us ✅ Deployed 2026-05-19 18:41 UTC Run
prod-eu ✅ Deployed 2026-05-19 18:44 UTC Run

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

Labels

update-snapshots Enable auto commit snapshots for Storybook and Playwright

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

Feature request(Cohorts): Edit history for cohorts

2 participants