Skip to content

fix(analytics): external-only metrics, person exclusions, ASC retries#1100

Merged
IgorGanapolsky merged 13 commits intodevelopfrom
fix/ios-pro-unlock-longpress
Apr 8, 2026
Merged

fix(analytics): external-only metrics, person exclusions, ASC retries#1100
IgorGanapolsky merged 13 commits intodevelopfrom
fix/ios-pro-unlock-longpress

Conversation

@IgorGanapolsky
Copy link
Copy Markdown
Owner

Summary

  • iOS/Android distribution_channel + internal tagging (TestFlight, non-Play installs)
  • Shared HogQL distribution_channel denylist in LIVE_EVENTS_PREDICATE / pragmatic dashboards
  • POSTHOG_EXECUTIVE_EXCLUDE_PERSON_IDS in executive snapshot + CI workflow secret (set on repo)
  • Redacted audience_sql in committed JSON (UUIDs not stored in git)
  • ASC retries; marketing/data/README.md; docs

Evidence

Commit: 7989c6540 on fix/ios-pro-unlock-longpress

Note: Branch name reflects prior iOS work; this commit is analytics-focused.

Made with Cursor

@trunk-io
Copy link
Copy Markdown

trunk-io bot commented Apr 8, 2026

Merging to develop in this repository is managed by Trunk.

  • To merge this pull request, check the box to the left or comment /trunk merge below.

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

@gemini-code-assist
Copy link
Copy Markdown

Important

Installation incomplete: to start using Gemini Code Assist, please ask the organization owner(s) to visit the Gemini Code Assist Admin Console and sign the Terms of Services.

@github-actions github-actions bot added the pr-state:ci_running Required CI checks are still running label Apr 8, 2026
@IgorGanapolsky IgorGanapolsky enabled auto-merge (squash) April 8, 2026 13:50
Comment on lines +53 to +55
.onLongPressGesture {
proManager.unlockProForDebug()
}
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Bug: A debug long-press gesture on the 'PRO' label that unlocks pro features is exposed in production builds, allowing users to bypass payment.
Severity: CRITICAL

Suggested Fix

Wrap the code that adds the long-press gesture recognizer and its handler in an #if DEBUG block. This ensures the debug functionality is only compiled into debug builds and is excluded from production builds.

Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent.
Verify if this is a real issue. If it is, propose a fix; if not, explain why it's not
valid.

Location: native-ios/RandomTimer/Sources/UI/Screens/TimerSetupScreen.swift#L53-L55

Potential issue: A long-press gesture on the 'PRO' label, intended for debugging,
unlocks pro features. This functionality was not wrapped in a conditional compilation
block like `#if DEBUG`. Consequently, this debug feature is included in production
builds, allowing any user to bypass payment and access pro features for free.

Did we get this right? 👍 / 👎 to inform future reviews.

@IgorGanapolsky IgorGanapolsky force-pushed the fix/ios-pro-unlock-longpress branch from 07f0174 to 95d76db Compare April 8, 2026 14:29
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 8, 2026

CI Some checks failed

Check Result
Android Tests success
iOS Build & Tests failure
Python Unit Tests success
Python Script Tests + Release Gate failure
Playwright Local Checks success
Security success

View details

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 8, 2026

CI Some checks failed

Check Result
Android Tests cancelled
iOS Build & Tests cancelled
Python Unit Tests success
Python Script Tests + Release Gate cancelled
Playwright Local Checks success
Security success

View details

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 8, 2026

CI Some checks failed

Check Result
Android Tests success
iOS Build & Tests cancelled
Python Unit Tests success
Python Script Tests + Release Gate failure
Playwright Local Checks success
Security success

View details

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 8, 2026

CI Some checks failed

Check Result
Android Tests success
iOS Build & Tests cancelled
Python Unit Tests success
Python Script Tests + Release Gate success
Playwright Local Checks success
Security success

View details

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 8, 2026

CI Some checks failed

Check Result
Android Tests success
iOS Build & Tests success
Python Unit Tests success
Python Script Tests + Release Gate success
Playwright Local Checks success
Security success

View details

IgorGanapolsky and others added 11 commits April 8, 2026 11:18
- Tag distribution_channel on iOS (TestFlight vs App Store) and Android (Play vs non-Play)
- Mark TestFlight and non-Play installs internal; HogQL excludes listed distribution channels
- Align LIVE_EVENTS_PREDICATE across store snapshot, north star, attribution, posthog dashboard
- POSTHOG_EXECUTIVE_EXCLUDE_PERSON_IDS in executive snapshot + CI workflow secret wiring
- Redact excluded person UUIDs from committed executive_metrics.json audience_sql
- ASC API retries with longer timeout; marketing/data README for operators
- Tests: Android install channel, iOS DistributionChannelResolver, executive redaction

Made-with: Cursor
PR #1073 hid lock icons and disabled paywall taps before first timer
completion. This broke the freemium UX — new users couldn't see what
Pro offers. All Pro features now always show lock icons and tap to
show paywall regardless of first timer state.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Every Pro feature MUST show a lock icon to free users on fresh install.
These tests will fail if anyone hides Pro locks behind any condition.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@IgorGanapolsky IgorGanapolsky force-pushed the fix/ios-pro-unlock-longpress branch from 1d6a4e2 to 3bf4520 Compare April 8, 2026 15:18
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 8, 2026

CI Some checks failed

Check Result
Android Tests cancelled
iOS Build & Tests cancelled
Python Unit Tests success
Python Script Tests + Release Gate cancelled
Playwright Local Checks success
Security success

View details

@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud bot commented Apr 8, 2026

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 8, 2026

CI Some checks failed

Check Result
Android Tests success
iOS Build & Tests cancelled
Python Unit Tests success
Python Script Tests + Release Gate success
Playwright Local Checks success
Security success

View details

@IgorGanapolsky IgorGanapolsky merged commit e96c317 into develop Apr 8, 2026
30 of 31 checks passed
@IgorGanapolsky IgorGanapolsky deleted the fix/ios-pro-unlock-longpress branch April 8, 2026 15:36
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 8, 2026

CI Some checks failed

Check Result
Android Tests success
iOS Build & Tests success
Python Unit Tests success
Python Script Tests + Release Gate success
Playwright Local Checks success
Security success

View details

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

Labels

pr-state:ci_running Required CI checks are still running

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant