Commit Graph
16 Commits
Author SHA1 Message Date
Stitch505 0cd968a16d fix: target-first SSH flow — ask user for THEIR target key/password, don't scan source keys 2026-05-22 23:59:37 +04:00
Stitch505 3ee5104302 refactor: clear SSH auth flow — passphrase is local only, target password is separate; interactive ssh-copy-id with visible prompt; 90 lines removed, logic simplified 2026-05-22 23:53:15 +04:00
Stitch505 bd16e339c0 fix: ssh-copy-id interactive (capture=False) so password prompt visible; encrypted keys just warned, not source-server passphrase confusion; clear auth choice menu for target 2026-05-22 23:48:58 +04:00
Stitch505 6d6418c059 feat: secure password/passphrase input via getpass; interactive SSH auth menu (key/passphrase/password/temp-key); fix missing do_transfer call 2026-05-22 23:42:52 +04:00
Stitch505 4d6c7ef506 feat: interactive SSH auth choice (key with passphrase, password via sshpass, or temp ed25519); fix missing do_transfer call for password path 2026-05-22 23:41:09 +04:00
Stitch505 7d45d1f8c0 fix: full sshpass support for password-based transfer; pre-flight SSH check; clear error diagnostics 2026-05-22 23:28:27 +04:00
Stitch505 4a1e7923de fix: clear stale ssh_key from state when user declines keygen; add guard for missing key in do_transfer 2026-05-22 23:23:02 +04:00
Stitch505 cdf283a598 fix: add timeout to ssh-copy-id and check_ssh_connectivity to prevent hangs 2026-05-22 23:14:03 +04:00
Stitch505 b231892614 fix: scp hangs due to missing SSH options and 300s default timeout; add -o ConnectTimeout/StrictHostKeyChecking/BatchMode + 60s timeout 2026-05-22 23:13:17 +04:00
Stitch505 9b005095b9 fix: scp uses -P (capital) for port; unify ssh_opts variable for remote commands 2026-05-22 23:07:21 +04:00
Stitch505 addbb3795f fix: complete logic audit — mark_completed on transfer, reset_state for interactive source, proper error propagation, user-visible commands 2026-05-22 21:05:16 +04:00
Stitch505 97b3623915 bugfix: comprehensive stability audit and fixes
- discover/docker.py: handle comma-separated compose_file in labels
- discover/network.py: replace os.getlogin() with robust user detection
- target.py: add lsb_release fallback via hostnamectl, guard None compose_file,
  use container name (not cached CID) for docker logs
- main.py: call reset_state(mode='target') before target mode,
  improve EOF handling info message
- source.py: remove redundant set_stage('DONE') inside transfer_offer
- transfer.py: fix stage naming for resume after transfer
- add dry_run.py for local logic validation
2026-05-22 20:58:37 +04:00
Stitch505 15bb88527d feat: SSH key discovery and connectivity check via pick_or_setup_ssh_key 2026-05-22 20:27:33 +04:00
Stitch505 003a251fbb fix: remove cascaded step calls causing duplication, guard empty transfer 2026-05-22 20:24:36 +04:00
Stitch505 13a1583df1 fix: install.sh pipe-mode, add .gitignore, robust error handling, resume state check 2026-05-22 20:08:41 +04:00
Stitch505 ddb2ae9501 init: docker-migrate universal migration tool 2026-05-22 19:58:09 +04:00