Trackerless-network completion plan + phase 0.1: adopt TS 103.8 protos#52
Merged
Conversation
Test-driven roadmap for making the dht and trackerless-network ports feature-complete against TS v103.8.0-rc.3 (af966cf03), so the shared library can join the streamr network directly in addition to the proxy path. C++ wins on design deviations, TS wins on wire format; simulator gets built from scratch behind a TS-compatible API (milestone 0). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- DhtRpc.proto, NetworkRpc.proto, ProtoRpc.proto copied verbatim from streamr-dev/network@af966cf03; all stubs and message code regenerated. - Handshake/connectivity migrated to renamed fields (version -> protocolVersion, new applicationVersion, UNSUPPORTED_PROTOCOL_VERSION); proxy publish path migrated to SignatureType::ECDSA_SECP256K1_EVM. - ConnectionLockRpc.setPrivate implemented (remote private connections tracked in ConnectionLockStates, gated by new ConnectionManagerOptions allowIncomingPrivateConnections, default false like TS) with unit tests. - protoc plugin now emits the '#include <coroutine>' preamble that be87ea9 had patched into the generated files by hand, so regeneration is byte-stable again. - check-proto-sync.sh diffs repo protos against the pinned TS reference (local checkout or raw.githubusercontent), wired into validate.yml. Note: ConnectionLockStatesTest writes boolean asserts as EXPECT_EQ(expr, true/false) — clangd 22 falsely flags every EXPECT_TRUE/EXPECT_FALSE expansion in that TU (the compiler is fine with either form); see the comment in the test file. Verified: full build, 312/312 tests, lint clean (macOS host). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Bugbot is not enabled for this team, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
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.
Summary
First PR of the trackerless-network completion effort (see the new
trackerless-network-completion-plan.md, committed here as well): make the C++ port ofdht/trackerless-networkfeature-complete against TypeScript v103.8.0-rc.3 (af966cf03) so the shared library can join the streamr network directly in addition to the proxy path.The plan document
check-proto-sync.sh.PlumtreeManager), so it is deferred.Phase 0.1 — protos adopted wholesale
DhtRpc.proto,NetworkRpc.proto,ProtoRpc.protocopied verbatim from the pin; all protobuf message code and RPC stub modules regenerated.version→protocolVersion(+ newapplicationVersion) in handshake/connectivity,UNSUPPORTED_PROTOCOL_VERSION,GroupKey→EncryptedGroupKey,SignatureType::ECDSA_SECP256K1_EVMin the proxy publish path.ConnectionLockRpc.setPrivateimplemented like TS (private-connection tracking inConnectionLockStates, gated byallowIncomingPrivateConnections, default false) with unit tests.be87ea9fhad hand-patched#include <coroutine>into generated stubs without teaching the protoc plugin to emit it — regeneration would have broken the build. The plugin now emits the preamble; regeneration is byte-stable again.check-proto-sync.sh(root) diffs the repo protos against the pinned TS reference (local checkout or raw.githubusercontent) and runs invalidate.ymlbefore lint.Known quirk documented in-code
ConnectionLockStatesTestusesEXPECT_EQ(expr, true/false)instead ofEXPECT_TRUE/FALSE: clangd 22 falsely flags every boolean-macro expansion in that TU (member_function_call_bad_type); the compiler accepts either form.Not in this PR
Live TS interop verification of the renamed messages — the existing
ts-integrationharness is disabled (pre-existing; it builds a 2024 TS monorepo). The plan schedules its rebuild early in milestone B; the disabled test still compiles against the new protos.Test plan
./check-proto-sync.sh— all protos byte-identical to the pin./test.sh— 312/312 tests pass (includes new setPrivate/private-connection tests)./lint.sh— clean🤖 Generated with Claude Code