fix(sftp): settle direct folder downloads after pause and resume - #3291
Open
binaricat wants to merge 1 commit into
Open
fix(sftp): settle direct folder downloads after pause and resume#3291binaricat wants to merge 1 commit into
binaricat wants to merge 1 commit into
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Owner
Author
|
@codex review |
binaricat
marked this pull request as draft
September 6, 2026 08:36
|
Codex Review: Didn't find any major issues. Delightful! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
netcatty-bot
marked this pull request as ready for review
September 6, 2026 08:41
Collaborator
|
Codex reported no major issues. This PR is marked ready for human review/merge. |
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
Direct SFTP folder downloads could show Queued while files were transferring. Once paused, resuming could attempt a second directory walk, conflict with the original children, or remain Transferring at 100% after all files reached disk. Use the shared transfer runtime for this entry point and release paused children even after their completed history rows have been compacted.
Type of Change
Related Issue (optional)
Found during smoke testing of changes since v1.1.82, including #3226 and #3287. No separate issue.
Changes Made
Screenshots / Demo
Actual
npm run devElectron UI on macOS, downloading a 400-file folder from a Linux SSH test host:The original build reproduced Queued during active transfer. Intermediate repair validation also exposed the lost child pause latch and duplicate count; the final implementation passes the full sequence above.
Testing
npm run dev, including two pause/resume cycles and panel closurenpm run lintpassesnpm testpasses: 11,478 passed, 18 skipped, 0 failed180 focused transfer tests passed. The first full-suite run encountered 7 unrelated plugin archive failures because this worktree lacked package-local dependencies and resolved yauzl 2.10 instead of 3.4. After restoring the package dependency layout, the full suite passed with 11,478 passed, 18 skipped, and 0 failed. The new direct-download test uses
.test.tsso the normal test command includes it.A prior full TypeScript comparison reported the same 732 diagnostics on the baseline and fix, with no new normalized diagnostics at that comparison point; this is not a clean typecheck.
Checklist