Skip to content

fix: Buffer feature-flag subscribers registered before init#2267

Merged
charlesvien merged 2 commits into
mainfrom
05-20-buffer_feature-flag_subscribers_registered_before_init
May 21, 2026
Merged

fix: Buffer feature-flag subscribers registered before init#2267
charlesvien merged 2 commits into
mainfrom
05-20-buffer_feature-flag_subscribers_registered_before_init

Conversation

@charlesvien
Copy link
Copy Markdown
Member

@charlesvien charlesvien commented May 20, 2026

Problem

useFeatureFlag callers that mount before App's init useEffect runs subscribe via onFeatureFlagsLoaded while PostHog is uninitialized, so the no-op return silently drops the subscription. When flags later resolve, nothing fires and the hook stays stuck on its initial value for the rest of the session.

Closes #2123

Changes

  1. Buffer onFeatureFlagsLoaded callbacks added before PostHog initializes
  2. Drain the buffer into posthog.onFeatureFlags at the end of initializePostHog
  3. Return a cleanup that unsubscribes from both the buffer and PostHog

How did you test this?

Manually

Publish to changelog?

@charlesvien charlesvien changed the title Buffer feature-flag subscribers registered before init feat: Buffer feature-flag subscribers registered before init May 20, 2026
Copy link
Copy Markdown
Member Author

charlesvien commented May 20, 2026

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

@charlesvien charlesvien marked this pull request as ready for review May 20, 2026 21:50
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented May 20, 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
apps/code/src/renderer/utils/analytics.ts:56-59
After the drain loop, every pre-init listener remains in `pendingFlagListeners` for the entire lifetime of the component — so the Set holds a reference in parallel with posthog's own internal listener list. Clearing the Set after draining frees that duplicate reference early; the cleanup closure still works correctly because `listener.unsubscribe?.()` handles the posthog unsubscription, and `pendingFlagListeners.delete(listener)` gracefully no-ops on a missing key.

```suggestion
  for (const listener of pendingFlagListeners) {
    listener.unsubscribe = posthog.onFeatureFlags(listener.callback);
  }
  pendingFlagListeners.clear();
}
```

Reviews (1): Last reviewed commit: "Buffer feature-flag subscribers register..." | Re-trigger Greptile

Comment thread apps/code/src/renderer/utils/analytics.ts
@charlesvien charlesvien force-pushed the 05-19-add_nightly_cleanup_of_stale_draft_releases branch from a29daf7 to 070c9bf Compare May 20, 2026 22:54
@charlesvien charlesvien force-pushed the 05-20-buffer_feature-flag_subscribers_registered_before_init branch from cdcae3d to 333b7f9 Compare May 20, 2026 22:54
Base automatically changed from 05-19-add_nightly_cleanup_of_stale_draft_releases to main May 20, 2026 23:34
@charlesvien charlesvien force-pushed the 05-20-buffer_feature-flag_subscribers_registered_before_init branch from 333b7f9 to 4e41951 Compare May 21, 2026 00:07
@charlesvien charlesvien changed the title feat: Buffer feature-flag subscribers registered before init fix: Buffer feature-flag subscribers registered before init May 21, 2026
@charlesvien charlesvien force-pushed the 05-20-buffer_feature-flag_subscribers_registered_before_init branch from 4e41951 to 6261888 Compare May 21, 2026 02:10
@charlesvien charlesvien force-pushed the 05-20-buffer_feature-flag_subscribers_registered_before_init branch from 6261888 to becc21c Compare May 21, 2026 03:44
Copy link
Copy Markdown
Contributor

@tatoalo tatoalo left a comment

Choose a reason for hiding this comment

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

let's goooo

@charlesvien charlesvien merged commit 7cbdfb1 into main May 21, 2026
16 checks passed
Copy link
Copy Markdown
Member Author

Merge activity

@charlesvien charlesvien deleted the 05-20-buffer_feature-flag_subscribers_registered_before_init branch May 21, 2026 07:54
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.

Feature flag is not re-rendering components when they eventually resolve

2 participants