Repository navigation
feat(discovery-core): add outgoing state sync orchestrator - #473
Merged
Merged
Conversation
This was referenced Feb 11, 2026
Merged
m-kus
marked this pull request as ready for review
February 11, 2026 16:19
This was referenced Feb 11, 2026
Author
m-kus
force-pushed
the
pr-split/12-outgoing-sync
branch
from
February 11, 2026 19:10
57f57d7 to
f3313de
Compare
m-kus
force-pushed
the
pr-split/11-incoming-sync
branch
from
February 11, 2026 19:10
af02396 to
89e874c
Compare
m-kus
force-pushed
the
pr-split/12-outgoing-sync
branch
from
February 13, 2026 01:49
f3313de to
a9e0712
Compare
m-kus
force-pushed
the
pr-split/11-incoming-sync
branch
from
February 13, 2026 01:49
89e874c to
02f3de4
Compare
m-kus
force-pushed
the
pr-split/12-outgoing-sync
branch
from
February 13, 2026 02:02
a9e0712 to
8a9360d
Compare
m-kus
force-pushed
the
pr-split/11-incoming-sync
branch
from
February 13, 2026 02:02
02f3de4 to
e645277
Compare
m-kus
force-pushed
the
pr-split/12-outgoing-sync
branch
from
February 13, 2026 02:07
8a9360d to
fe37bfb
Compare
m-kus
force-pushed
the
pr-split/11-incoming-sync
branch
from
February 13, 2026 02:07
e645277 to
a115d06
Compare
m-kus
force-pushed
the
pr-split/12-outgoing-sync
branch
from
February 13, 2026 02:23
fe37bfb to
81240cc
Compare
m-kus
force-pushed
the
pr-split/11-incoming-sync
branch
2 times, most recently
from
February 13, 2026 02:29
51c907b to
589218b
Compare
m-kus
changed the base branch from
pr-split/11-incoming-sync
to
graphite-base/473
February 17, 2026 17:09
m-kus
force-pushed
the
pr-split/12-outgoing-sync
branch
from
February 17, 2026 17:13
784d819 to
7ef3112
Compare
m-kus
force-pushed
the
graphite-base/473
branch
from
February 17, 2026 17:13
f24f78e to
3346354
Compare
m-kus
changed the base branch from
graphite-base/473
to
pr-split/11-incoming-sync
February 17, 2026 17:13
m-kus
force-pushed
the
pr-split/12-outgoing-sync
branch
from
February 18, 2026 15:12
7ef3112 to
57e7866
Compare
m-kus
force-pushed
the
pr-split/11-incoming-sync
branch
from
February 18, 2026 15:12
3346354 to
2c854d5
Compare
m-kus
changed the base branch from
pr-split/11-incoming-sync
to
graphite-base/473
February 18, 2026 15:59
m-kus
force-pushed
the
graphite-base/473
branch
from
February 18, 2026 16:03
2c854d5 to
3e19abe
Compare
m-kus
force-pushed
the
pr-split/12-outgoing-sync
branch
from
February 18, 2026 16:03
57e7866 to
03731f2
Compare
m-kus
changed the base branch from
graphite-base/473
to
pr-split/11-incoming-sync
February 18, 2026 16:03
m-kus
changed the base branch from
pr-split/11-incoming-sync
to
graphite-base/473
February 18, 2026 16:52
m-kus
force-pushed
the
graphite-base/473
branch
from
February 18, 2026 16:57
3e19abe to
e43d3c5
Compare
m-kus
force-pushed
the
pr-split/12-outgoing-sync
branch
from
February 18, 2026 16:57
03731f2 to
c74417e
Compare
m-kus
force-pushed
the
pr-split/12-outgoing-sync
branch
from
February 18, 2026 16:58
c74417e to
91af1d8
Compare
This was referenced Feb 18, 2026
Yoni-Starkware
approved these changes
Feb 19, 2026
Yoni-Starkware
left a comment
Collaborator
There was a problem hiding this comment.
@Yoni-Starkware reviewed 2 files and all commit messages, and made 3 comments.
Reviewable status: all files reviewed, 2 unresolved discussions (waiting on m-kus).
crates/discovery-core/src/sync/outgoing_state.rs line 96 at r1 (raw file):
// On a fresh cursor this is vacuously true; on subsequent calls it fires // once all previously discovered channels have been fully processed. let mut channels = if cursor.all_channels_processed() {
etc. (to emphasize they are brand new channels, and not existing ones that were partially traversed)
Suggestion:
let mut new_channelscrates/discovery-core/src/sync/outgoing_state.rs line 190 at r1 (raw file):
budget: &IoBudget, ) -> Result<ProcessChannelResult, DiscoveryError> { let channel_key = cursor.channel_key.ok_or_else(|| {
Why is the channel key optional?
Code quote:
let channel_key = cursor.channel_key.ok_or_else(||
m-kus
force-pushed
the
pr-split/12-outgoing-sync
branch
from
February 19, 2026 15:06
91af1d8 to
8121167
Compare
m-kus
force-pushed
the
pr-split/12-outgoing-sync
branch
from
February 19, 2026 15:41
8121167 to
ef68149
Compare
m-kus
commented
Feb 19, 2026
m-kus
left a comment
Author
There was a problem hiding this comment.
@m-kus resolved 2 discussions.
Reviewable status: 1 of 8 files reviewed, all discussions resolved (waiting on Yoni-Starkware).
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.

TL;DR
Added outgoing state sync orchestration to the discovery module, enabling hierarchical discovery of outgoing channels, subchannels, and note indices.
What changed?
outgoing_state.rsmodule that orchestrates the outgoing sync processsync_outgoing_statefunction that composes paginated discovery of channels, subchannels, and note indicesFuturesUnorderedpub mod outgoing_statein the sync moduleThis change is