Repository navigation
Conversation
|
Merging to
After your PR is submitted to the merge queue, this comment will be automatically updated with its status. If the PR fails, failure details will also be posted here |
Silthus
marked this pull request as ready for review
October 19, 2026 06:09
|
Risk: No findings The increment since the last review only extends the Sentinel reviewed |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Silthus
force-pushed
the
workflows/onboarding-intent-follow-up
branch
from
October 20, 2026 11:08
2896164 to
a728495
Compare
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
A Workflows follow-up email for people who pick Workflows during onboarding links to the Workflows empty state, where suggested workflows are built from the project's events.
Those suggestions only appear when the organization approves AI data processing.
The
user showed product intentevent does not say whether the org approved it, so the email cannot leave out orgs that opted out, and those orgs would land on an empty state with no suggestions.Impact
Pays into Grow Workflows through Started orgs (first
hog_flow_createdper org). Expected move: medium, up, through the onboarding follow-up workflow this property gates.Note
🔵 Merge risk: low · two-way door (merge-risk rubric)
Changes
user showed product intentnow carriesis_ai_data_processing_approved:trueonly when the organization's setting isTrue,falsefor opted-out or unset orgs.workflows-data-suggestionsflag, a configured suggestion model, and an org outside PostHog AI privacy mode. Recording consent alone keeps the property accurate for other uses.trueon that event.= true, so a missing key counts as not approved.How did you test this code?
add_product_intentAPI endpoint andProductIntent.register, observed through the captured event properties.test_can_add_product_intentwith approved, opted-out, and unset (NULL) orgs. Watched the first two fail before the change and pass after. The unset case fails when the raw field is passed through and passes with theis Truemapping.test_product_intent.pyandtest_can_update_product_intent_if_already_exists.PATCH /api/environments/:id/add_product_intent/with a personal API key for three test orgs. The captureduser showed product intentevents carriedis_ai_data_processing_approved: truefor the approved org (an intent that already existed before the call), andfalsefor the opted-out org and the org that never answered (both new intents).masteron 2026-10-20. Ran the 79 product intent tests inposthog/api/test/test_team.pyandposthog/models/test/test_product_intent.pyon the rebased branch: all pass.ruff check,ruff format --checkandmypyon the touched files are clean.Test rationale: if the property is dropped or computed from the wrong source, the follow-up workflow would email opted-out orgs. The closest existing test,
test_can_add_product_intent, already asserted the full property set, so it gained three parameterized cases (approved, opted-out, unset) rather than a new test.Gaps:
Backend CI on Depot / Django Tests Pass on Depotfails by design for this fork PR. Its first step refuses fork pull requests, and no backend tests run. Per the fork pull request handbook, a PostHog engineer re-creates the change on an in-repo branch after review to get the required run.FalseorNULLin production needs read-only Metabase access, which is not available yet.Release status
Docs update
None.
🤖 Agent context
Autonomy: Human-driven (agent-assisted)
Agent: Claude Code, Claude Opus 5.5
impact,tdd,/writing-tests,merge-risk,pr-description,writing-voice.Open: should the follow-up re-check consent when it sends, so orgs that opt out after picking Workflows are left out? Recommendation: not in this PR. It needs consent synced to the organization group properties first. Keep the intent-time snapshot and revisit it if the follow-up delay grows beyond a few days.
Involvement: no grilling rounds, no prototypes. One cross-model review round before the rebase (GPT-6.1 Sol, nothing blocking). Rebased onto
masteron 2026-10-20 with no code changes. QA swarm round 1: Correctness, Risk, Design, Systems and three Team perspectives on GPT-6.1 Sol, and Fresh eyes on Opus 5.5. It added the unset-consent test and these description fixes. Round 2 (Fresh eyes on Opus 5.5, on the fix) found one description nit, fixed. Parameter Sentinel found nothing. stamphog stayed silent, and CodeRabbit is not active on this repository. A live run was captured.🤖 Generated with Claude Code