Repository navigation
fix(net): recover reliable streams from paths without ACK progress - #113
Merged
Merged
Conversation
rldyourmnd
marked this pull request as ready for review
October 6, 2026 14:51
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.
A validated preferred path can stop delivering packets while its cached RTT stays low. RTT-only selection then retains it until the desktop watchdog reconnects, stranding existing reliable streams. Explicit latency preference now tracks per-path ACK progress through a passive adapter that delegates the selected congestion controller unchanged. It probes idle standbys and retires an unresponsive path only after activating a recently confirmed established sibling in the same connection; Noq's last-open-path guard remains.
The proof budget respects the runtime clock and the path RTT. Defaults/pinned selectors, authorization, codec and input sequencing remain. No QUIC/TLS format or application-input replay is introduced. Iroh's narrow vendor patch gains three path-context methods in its existing patched file; Noq uses the same proof policy.
Validation: the final net revision passes all101tests on native Mac and Linux, including real Noq manual/automatic pending-byte recovery and the actual Iroh actor. Mac fmt and strict all-target net Clippy pass; the earlier strict workspace desktop/Noq Clippy and complete Mac workspace regression pass. Cross-platform CI exposed setup races; the fixtures now wait for the preferred link and positive standby ACK proof before injecting loss, while retaining bounded recovery deadlines. Three additional native Mac repetitions of both blackhole fixtures pass. Exact-head CI passes on Ubuntu and macOS, including all transport, desktop/X11, lint, supply-chain, CodeQL and release-package checks. Earlier ENOSPC/file-descriptor and fixture failures remain documented.
iroh-baseandn0-watcherare test-only direct dependencies on already resolved packages required by Iroh's custom-transport SPI.Details: docs/reports/rds-path-ack-progress-20261006.md. The guarded Mac manager pilot is installed with protected Herdr/session identities unchanged. Server installation and actual two-device latency/stability acceptance remain open.