LocalFTP v1.0.3
Fixes rapid FTP abort/retry races seen during repeated media drags. Transfer lifecycle callbacks now return to the session queue before mutating control-session state, and passive data endpoint cleanup is identity-checked so stale callbacks cannot close a newly opened EPSV listener.\n\nVerification:\n- swift test\n- ./scripts/package_app.sh\n- codesign --verify --deep --strict for dist/LocalFTP.app and /Applications/LocalFTP.app