docs(design): async migration plan for transfer pipeline#3725
Merged
Conversation
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
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
seven-crate tokio surface ratified by the boundary
re-verification audit (PR docs(audits): re-verify tokio dependency boundary #3706,
docs/audits/tokio-dependency-boundary-2026.md).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.
switch with four exit gates per rollout (wire compatibility,
performance, coverage, interop).
(docs(audits): daemon thread-per-connection scalability audit (#1673) #3705), the channel-overhead audit (Fix doc links in transport negotiation docs #1592), the SSH async
evaluation audit (CI: remove unsupported windows aarch64 target #1593), and the io_uring-async interaction
audit (Switch flate2 to the Rust backend for cross builds #1595).
This supersedes #3664 (the earlier 5-phase sketch) by aligning
the migration narrative with the post-audit reality. Branch
opened as
-v2because the originaldocs/async-migration-plan-1594branch was consumed by the merged PR.
Test plan
grep -ni -E 'claude|internal|internal docs\.md' docs/design/async-migration-plan.mdempty.grep -nE '—|–' docs/design/async-migration-plan.mdempty.