add verified explicit FTPS control upgrades with AUTH TLS
protect passive data connections with the TLS, PBSZ 0, PROT P sequence
support optional or required TLS-before-login server policy
preserve SNI in insecure mode and handle control/data TLS failures cleanly
close abandoned passive accepts when PASV/EPSV channels are replaced
Checks
npm run test --workspace=packages/ftp (141 passed)
npm run typecheck --workspace=packages/ftp
npm run build --workspace=packages/ftp
npm exec -- eslint packages/ftp/src
npm exec -- prettier --check packages/ftp/src
git diff --check
Review
An autonomous review found plaintext PBSZ/PROT ordering and abandoned passive-accept cleanup issues. Both were fixed with regression coverage.
AI disclosure
Implementation and tests were authored with Codex (GPT-5.6-Sol); AI_CHANGES.md is updated.
## Summary
- add verified explicit FTPS control upgrades with AUTH TLS
- protect passive data connections with the TLS, PBSZ 0, PROT P sequence
- support optional or required TLS-before-login server policy
- preserve SNI in insecure mode and handle control/data TLS failures cleanly
- close abandoned passive accepts when PASV/EPSV channels are replaced
## Checks
- npm run test --workspace=packages/ftp (141 passed)
- npm run typecheck --workspace=packages/ftp
- npm run build --workspace=packages/ftp
- npm exec -- eslint packages/ftp/src
- npm exec -- prettier --check packages/ftp/src
- git diff --check
## Review
An autonomous review found plaintext PBSZ/PROT ordering and abandoned passive-accept cleanup issues. Both were fixed with regression coverage.
## AI disclosure
Implementation and tests were authored with Codex (GPT-5.6-Sol); AI_CHANGES.md is updated.
Autonomous code review completed. It identified two medium-severity findings: (1) eagerly accepted passive transports could be abandoned when PASV/EPSV was replaced, and (2) plaintext sessions could issue PBSZ/PROT out of RFC order and trigger an unexpected data TLS handshake. Commit 602f7a5 closes abandoned accepts, enforces protected-control -> PBSZ 0 -> PROT ordering, and adds regression coverage. Re-review of the updated paths found no remaining issues; all 141 FTP tests and the full CI matrix pass.
Autonomous code review completed. It identified two medium-severity findings: (1) eagerly accepted passive transports could be abandoned when PASV/EPSV was replaced, and (2) plaintext sessions could issue PBSZ/PROT out of RFC order and trigger an unexpected data TLS handshake. Commit 602f7a5 closes abandoned accepts, enforces protected-control -> PBSZ 0 -> PROT ordering, and adds regression coverage. Re-review of the updated paths found no remaining issues; all 141 FTP tests and the full CI matrix pass.
Autonomous review completed: no actionable findings. I reviewed the explicit FTPS control/data upgrade paths, TLS failure handling, and passive-channel cleanup; locally verified the FTP suite (141 passing), typecheck, and build.
Autonomous review completed: no actionable findings. I reviewed the explicit FTPS control/data upgrade paths, TLS failure handling, and passive-channel cleanup; locally verified the FTP suite (141 passing), typecheck, and build.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
Checks
Review
An autonomous review found plaintext PBSZ/PROT ordering and abandoned passive-accept cleanup issues. Both were fixed with regression coverage.
AI disclosure
Implementation and tests were authored with Codex (GPT-5.6-Sol); AI_CHANGES.md is updated.
Autonomous code review completed. It identified two medium-severity findings: (1) eagerly accepted passive transports could be abandoned when PASV/EPSV was replaced, and (2) plaintext sessions could issue PBSZ/PROT out of RFC order and trigger an unexpected data TLS handshake. Commit
602f7a5closes abandoned accepts, enforces protected-control -> PBSZ 0 -> PROT ordering, and adds regression coverage. Re-review of the updated paths found no remaining issues; all 141 FTP tests and the full CI matrix pass.602f7a5748to50db8b7707Autonomous review completed: no actionable findings. I reviewed the explicit FTPS control/data upgrade paths, TLS failure handling, and passive-channel cleanup; locally verified the FTP suite (141 passing), typecheck, and build.