Skip to content

refactor(remote-config): Migrate config to opaque-manifest wire format#3641

Merged
tonidero merged 1 commit into
mainfrom
v2_config_opaque_manifest_format
Jun 23, 2026
Merged

refactor(remote-config): Migrate config to opaque-manifest wire format#3641
tonidero merged 1 commit into
mainfrom
v2_config_opaque_manifest_format

Conversation

@tonidero

@tonidero tonidero commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

Description

After discussions, we changed the manifest from having a parseable body to an opaque string the SDK will just store and pass back to the backend to get the latest version of the config needed.


Note

Medium Risk
This is a breaking wire-format change for remote config sync; callers that still read manifest.topics or nested manifest fields must migrate to the new fields.

Overview
Remote config /v2/config parsing now treats manifest as an opaque string (store and replay on the next request) instead of a nested Manifest object with topic etags, prefetch_blobs, prefetched_blobs, and last_refresh_at.

Topic inventory and prefetch hints move to top-level fields: active_topics (full list of active topic names, including unchanged) and prefetch_blobs. Docs clarify that topics still carries only changed topic bodies.

The nested RemoteConfiguration.Manifest type is removed. RemoteConfigurationTest is updated for the new JSON shape and asserts manifest is wrong-type when sent as an object.

Reviewed by Cursor Bugbot for commit 448f2ba. Bugbot is set up for automated code reviews on this repo. Configure here.

tonidero commented Jun 23, 2026

Copy link
Copy Markdown
Contributor Author

@tonidero tonidero changed the title Migrate /v2/config to opaque-manifest wire format refactor(remote-config): Migrate config to opaque-manifest wire format Jun 23, 2026
@tonidero tonidero marked this pull request as ready for review June 23, 2026 12:46
@tonidero tonidero requested a review from a team as a code owner June 23, 2026 12:46
@tonidero tonidero requested a review from rickvdl June 23, 2026 12:46
The backend changed the /v2/config format: the manifest is now an opaque
string the SDK stores and replays verbatim, and active_topics + prefetch_blobs
moved to the response top level. RemoteConfiguration drops the nested Manifest
type accordingly. No production caller yet, so no migration needed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@tonidero tonidero force-pushed the v2_config_opaque_manifest_format branch from 7c34516 to 448f2ba Compare June 23, 2026 13:32
@tonidero tonidero enabled auto-merge June 23, 2026 13:33
@tonidero tonidero added this pull request to the merge queue Jun 23, 2026
Merged via the queue into main with commit a4772d2 Jun 23, 2026
36 checks passed
@tonidero tonidero deleted the v2_config_opaque_manifest_format branch June 23, 2026 14:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants