Sync the engine with TaJirax/cottenDNS - #4
Merged
Conversation
Organization main had reverted the hostile-network speed and reliability work, while the client lineage kept it and built ten further commits on top, including sustained TCP throughput, UDP path restoration during sustained traffic, dynamic codecs, startup resolver validation, FEC burst interleaving, and MTU scan progress reporting. The two engines had drifted far enough that a config vendored from one could not be reproduced from the other. This takes the engine from that lineage wholesale. Server install and branding stay as organization main had them: READMEs, compose.yaml, cmd/server/main.go, the install scripts, client_resolvers.simple, and the client_utils.go install string are untouched, so organization deployments keep pointing at organization infrastructure. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This was referenced Aug 3, 2026
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.
What changed
TaJirax/cottenDNSlineage6db04e53reverted here, plus the ten commits built on top of it: sustained TCP throughput, UDP path restoration during sustained traffic, dynamic codecs and unified path control, startup resolver validation, FEC burst interleaving, native path telemetry, and MTU scan progress reportingREADME.MD,README_FA.MD,compose.yaml,cmd/server/main.go,server_docker_install.sh,server_linux_install.sh,client_resolvers.simple, and the install string ininternal/client/client_utils.goare untouched, so organization deployments keep pointing at organization infrastructureWhy
The two repositories had drifted into different engines. This one reverted the speed work; the other kept it and built on it. A config vendored from one could not be reproduced from the other, and the WhiteDNS desktop app's
vendor/cottendns.jsonnames this repository while pinning a SHA that only exists in the other one, so the pin cannot be resolved here at all.Note on scope
Server-side install and branding are intentionally allowed to differ between the two repositories. The engine, including the shared
internal/vpnprotoandinternal/fecwire format, is now identical.Worth confirming before merge: any already-deployed server built from current organization main predates these
vpnproto/fecchanges, so server and client should be rolled forward together.Validation
go build ./...,go vet ./..., andgo test ./...all pass on the merged treeinternal/client,internal/udpserver,internal/vpnproto, andinternal/fecverified green individually🤖 Generated with Claude Code