dartssh2's SftpFileWriter leaks chunk write failures as unhandled
exceptions and never completes when the server rejects data (e.g. a
full /tmp), so deploys hung and spammed the console. Upload in
windowed writeBytes batches instead so errors propagate, remove the
partial file, and report free space on the target directory.
Every deploy flow now removes its staging files in a finally block
(success, failure or cancel) and sweeps peachdeploy-*/peachweb-*
leftovers older than an hour from earlier crashed runs.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>