Skip to content

refactor: Implement FDv2 Wire Format + Payload Parser#514

Merged
beekld merged 3 commits intomainfrom
SDK-2094
Mar 26, 2026
Merged

refactor: Implement FDv2 Wire Format + Payload Parser#514
beekld merged 3 commits intomainfrom
SDK-2094

Conversation

@beekld
Copy link
Contributor

@beekld beekld commented Mar 26, 2026

This is a pretty straightforward port of FDv2ChangeSet and related classes from Java, as well as the protocol objects, such as PutObject, DeleteObject, etc.

  • Adds FDv2Change, FDv2ChangeSet objects for use in data system.
  • Adds ServerIntent, PutObject, etc methods for parsing messages from backend.
  • Adds tag_invoke methods based on the existing json deserialization code.
  • Adds tests for all of the JSON parsing.

Note

Medium Risk
Introduces new protocol-level JSON deserialization and data model types that will be used for streaming/data-sync, so schema/compatibility mistakes could affect data updates despite being mostly additive and covered by unit tests.

Overview
Adds initial FDv2 wire-format support by introducing Selector, FDv2Change, and FDv2ChangeSet types for representing full/partial/no-op data updates.

Implements JSON deserialization (Boost.JSON tag_invoke) for FDv2 protocol messages—IntentCode, ServerIntent, PutObject, DeleteObject, PayloadTransferred, Goodbye, and FDv2Error—and wires the new parser into the internal build (serialization/json_fdv2_events.cpp).

Adds comprehensive unit tests (fdv2_serialization_test.cpp) validating successful parsing, null handling, and schema-failure behavior for missing/invalid fields.

Written by Cursor Bugbot for commit 11be538. This will update automatically on new commits. Configure here.

@beekld beekld marked this pull request as ready for review March 26, 2026 20:31
@beekld beekld requested a review from a team as a code owner March 26, 2026 20:31
@beekld beekld merged commit 79e689c into main Mar 26, 2026
45 checks passed
@beekld beekld deleted the SDK-2094 branch March 26, 2026 23:15
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.

2 participants