docs(audits): re-verify tokio dependency boundary#3706
Merged
Conversation
Re-checks the tokio scope established by audit #1779 against the current Cargo.toml set after #1732 (async became default) and #1818. Documents drift to seven allowed consumers (daemon, core, engine, transfer, bandwidth, protocol, rsync_io), proves the public async surface stays in those crates, and proposes a CI guardrail script to pin the boundary.
This was referenced May 5, 2026
oferchen
added a commit
that referenced
this pull request
May 5, 2026
Refresh the async migration roadmap to reflect the seven-crate tokio surface ratified by the boundary re-verification audit (#3706). Replaces the earlier 5-phase sketch with a 6-phase plan ordered around concrete code-grounded entry points. Phase 0 wires a CI guardrail; Phase 1 ratifies the seven crates; Phases 2-4 promote feature-gated async paths to default for the daemon listener, SSH transport, and receiver pipeline; Phase 5 finalises the rayon-tokio composition. Each phase carries a build-time feature flag and a runtime kill switch, with four exit gates per rollout: wire compatibility, performance, line coverage, and interop. Cites the new tokio dependency boundary audit, the daemon thread-per-connection scalability audit, and the related design notes for channel abstraction, the daemon accept loop, and io_uring-rayon composition.
oferchen
added a commit
that referenced
this pull request
May 18, 2026
Re-checks the tokio scope established by audit #1779 against the current Cargo.toml set after #1732 (async became default) and #1818. Documents drift to seven allowed consumers (daemon, core, engine, transfer, bandwidth, protocol, rsync_io), proves the public async surface stays in those crates, and proposes a CI guardrail script to pin the boundary.
oferchen
added a commit
that referenced
this pull request
May 18, 2026
Refresh the async migration roadmap to reflect the seven-crate tokio surface ratified by the boundary re-verification audit (#3706). Replaces the earlier 5-phase sketch with a 6-phase plan ordered around concrete code-grounded entry points. Phase 0 wires a CI guardrail; Phase 1 ratifies the seven crates; Phases 2-4 promote feature-gated async paths to default for the daemon listener, SSH transport, and receiver pipeline; Phase 5 finalises the rayon-tokio composition. Each phase carries a build-time feature flag and a runtime kill switch, with four exit gates per rollout: wire compatibility, performance, line coverage, and interop. Cites the new tokio dependency boundary audit, the daemon thread-per-connection scalability audit, and the related design notes for channel abstraction, the daemon accept loop, and io_uring-rayon composition.
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
Cargo.tomlset after Add zlib accessor coverage to boost test totals #1732 (async default) and Fix Windows PATHEXT parsing for fallback binary search #1818 (post-default refactors).daemon,core,engine,transfer,bandwidth,protocol,rsync_io. Each is gated behindasyncorembedded-ssh, with file:line citations.pub async fn/pub fn ... -> impl Futuresurface (14 items) and confirms it lives only in the seven allowed crates - the public API boundary still holds.tools/ci/check_tokio_boundary.sh) that fails on accidental expansion and a corresponding policy text update.Pure docs change. No code or
Cargo.tomledits.Test plan
tools/ci/check_tokio_boundary.shin a separate PR.