Repository navigation
docs(flags): name the per-call feature flag event option - #109
Merged
Merged
Conversation
posthog-flutter 6.0 renamed getFeatureFlagResult's sendEvent option to sendFeatureFlagEvent and enable()/disable() to optIn()/optOut(), the names every other client SDK already used. Three spec lines described the old Flutter names and are now wrong, and the specs never stated what the per-call option is called in the first place. Adds a requirement naming the option (singular on clients, plural on servers), corrects the Flutter variant in get-feature-flag-result and the Flutter note in feature-flag-called-tracker, and adds the missing Flutter variant to opt-in. Applies and archives the change on this branch. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Generated-By: PostHog Desktop Task-Id: 88004f09-5e06-46d4-b82d-ce0799263066
posthog-js names the per-call option sendEvent (core, react-native) and send_event (browser); its sendFeatureFlagEvent is the instance-level client option. Record these, and released Flutter 5.x's sendEvent, as known divergences so the requirement does not silently make them non-compliant. The Flutter getFeatureFlagResult rename and the enable()/disable() removal are merged only for Flutter 6.0 (unreleased; latest release 5.56.0), so the live specs and archive now say so. Adds the archive's missing .openspec.yaml. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
marandaneto
reviewed
Oct 21, 2026
marandaneto
left a comment
Member
There was a problem hiding this comment.
Automated advisory code review.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
marandaneto
approved these changes
Oct 21, 2026
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.
Why
posthog-flutter 6.0 renamed three public names onto the ones the other SDKs already use. Three lines in the specs describe the old Flutter names and are now wrong, and the specs never stated what the per-call feature-flag-event option is called — which is why the Flutter divergence went unrecorded for four years.
Source SDK changes
optIn()/optOut()andsendFeatureFlagEvent, deprecatedenable()/disable()andsendFeatureFlagEventsgetFeatureFlagResult'ssendEventtosendFeatureFlagEventWhat changed
get-feature-flag-result: the per-call option that suppresses$feature_flag_calledis namedsendFeatureFlagEventon client SDKs andsendFeatureFlagEventson server SDKs, in platform casing, and defaults to sending the event.get-feature-flag-result: Flutter variant corrected from{ sendEvent = true }to{ sendFeatureFlagEvent = true }(6.0+).feature-flag-called-tracker: the Flutter note now citesgetFeatureFlagResult(sendFeatureFlagEvent: ...).opt-in: adds the missing Flutter surface variant, notingenable()/disable()were deprecated in 5.x and removed in 6.0.Proposed, applied, and archived on this branch under
openspec/changes/archive/2026-10-08-name-per-call-flag-event-option/.Uncertainty
The singular/plural split is recorded as the observed state across the audited SDKs (iOS, Android, Flutter 6.0, and posthog-js use the singular; Node, Python, Ruby, and PHP use the plural), with the rationale that the client option governs one call while the server option governs a whole evaluation. If that split is considered accidental rather than intended, this requirement is the wrong place to freeze it — worth a look.
Validation
openspec validate --specs --strictis unchanged frommain(33 passed / 31 pre-existing long-requirement warnings), and the change validated clean before archiving. These are specification checks, not executed SDK conformance tests.Created with PostHog Desktop
🤖 Generated with Claude Code