refactor(remote-config): topic-handler registry (generic dispatch)#3621
Draft
tonidero wants to merge 1 commit into
Draft
Conversation
This was referenced Jun 16, 2026
Merged
Contributor
Author
|
Warning This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
This stack of pull requests is managed by Graphite. Learn more about stacking. |
2 tasks
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## 06-16-phase_3__v2_config_inline_blob_store_extraction #3621 +/- ##
========================================================================================
Coverage ? 80.25%
========================================================================================
Files ? 383
Lines ? 15769
Branches ? 2215
========================================================================================
Hits ? 12656
Misses ? 2227
Partials ? 886 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
1a8f963 to
fde145e
Compare
fa63b72 to
5129003
Compare
c9de7bb to
b63462c
Compare
650f8d8 to
2f49d86
Compare
b63462c to
16aaa3b
Compare
📸 Snapshot Test593 unchanged
🛸 Powered by Emerge Tools |
16aaa3b to
96fbd64
Compare
a6819b1 to
19f3cac
Compare
96fbd64 to
06b4195
Compare
19f3cac to
ba88ac7
Compare
24a63aa to
d0c8539
Compare
ba88ac7 to
6de1e60
Compare
d0c8539 to
edf4f40
Compare
6de1e60 to
0498f0d
Compare
edf4f40 to
82c6d41
Compare
0498f0d to
737f5be
Compare
82c6d41 to
3d9d4f4
Compare
248ddff to
f2c8284
Compare
9590bc5 to
c01ecaa
Compare
f2c8284 to
05c4f49
Compare
05c4f49 to
e746901
Compare
a964cd7 to
94acc4d
Compare
e746901 to
428e708
Compare
94acc4d to
642f937
Compare
428e708 to
2afab8c
Compare
Add a ConfigTopicHandler interface and an ordered registry that RemoteConfigManager dispatches changed/removed topics to. Pure plumbing, no feature behavior: the registry is empty in production until Phases 5/6 register real handlers. Handlers may do network work, so the seam is asynchronous: - handle is a suspend fun. The 200 path runs on a manager-owned CoroutineScope (SupervisorJob + Dispatchers.IO, injectable); close() cancels it (Phase 7 teardown). - Dispatch awaits handlers in registration order, so a blob-producing handler (sources) finishes before blob-consuming ones (PEM). Concurrency lives inside a handler. - persist() awaits dispatch before prefetched_blobs accounting + disk write, so a blob a handler fetches is reflected in the same sync. A failing handler is logged and skipped. - On 200, changed topics (present in response.topics) -> handle; topics removed from the manifest -> clear(); unchanged/unknown topics untouched (unknown still persisted). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2afab8c to
8c2a0fe
Compare
642f937 to
48aea81
Compare
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.

Checklist
purchases-iosand hybridsMotivation
Description