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.
Note
Medium Risk
Touches core data-source synchronization/persistence decisions (selector handling, when to persist, and FDv1 fallback shutdown), which could affect cache/persistent-store behavior if selector semantics are misinterpreted.
Overview
Improves FDv2 polling/streaming behavior around fallback and persistence.
PollingDataSourceV2now only marks data aspersist=Truewhen the returnedChangeSethas a definedSelector, andChangeSetBuilder.no_changes()now returnsSelector.no_selector()(instead ofNone) to make “no selector” explicit; streaming also stops immediately when the server signals FDv1 fallback.Adds FDv1 polling payload support to the FDv2 polling stack via
fdv1_polling_payload_to_changeset, plus associated tests to ensure FDv1 payloads are parsed into a full-transfer changeset but are not persisted. Also includes small cleanups: rename polling endpoint constants for clarity, remove unusedRepeatingTaskwiring inPollingDataSourceV2, fix a redundant assignment inStore.apply_delta, and correct minor docstring typos.Written by Cursor Bugbot for commit 9774633. This will update automatically on new commits. Configure here.