Stitch505
79b91f157e
fix: recursive search for manifest.json after tar extraction (files may be nested)
2026-05-23 00:20:36 +04:00
Stitch505
c8bef6b41a
fix: target-mode now runs with capture=False (interactive), so user sees prompts and can respond
2026-05-23 00:16:54 +04:00
Stitch505
80bb196d24
fix: transfer.py — helper functions for ssh/scp/rsync, local tar then remote unpack for tool script, consistent error handling
2026-05-23 00:11:04 +04:00
Stitch505
bfd6302448
fix: restore missing ensure_sshpass() function in ssh.py
2026-05-23 00:06:34 +04:00
Stitch505
21bd747329
refactor: consistent terminology - 'новый сервер' and 'приватный SSH-ключ' instead of 'target' and generic 'ключ'
2026-05-23 00:02:53 +04:00
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
bfa3136131
fix: target mode supports manual tar.gz path input + auto-extract when archive not transferred yet
2026-05-22 23:35:32 +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
329dade4c9
fix: add missing confirm import in main.py
2026-05-22 23:15:51 +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
a4be7c59d9
fix: FSM calls do_transfer_offer() correctly; resume remembers target_host/user/port
2026-05-22 23:01:52 +04:00
Stitch505
76b06b157a
fix: deduplicate sidecars/systemd, block system-critical stops, filter runtime paths
2026-05-22 22:56:00 +04:00
Stitch505
186ab2325f
CRITICAL: hardcode state.json to ~/.migrate/state.json, guarantee reset_state clears completed_steps
2026-05-22 21:20:44 +04:00
Stitch505
0dfb4ec597
CRITICAL FIX: run_source_mode/run_target_mode now use reset_state to clear completed_steps
2026-05-22 21:17:03 +04:00
Stitch505
d63fb0c9ee
debug: add state.json path logging to diagnose save failure
2026-05-22 21:12:00 +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
6f3637795b
fix: reset state when starting new source run
2026-05-22 20:51:48 +04:00
Stitch505
45f56bc146
fix: disable resume when stage is DONE, add mark_completed for skipped transfer
2026-05-22 20:48:53 +04:00
Stitch505
8ccac570ce
fix: add errors='replace' to subprocess.run for non-utf8 locales
2026-05-22 20:44:25 +04:00
Stitch505
684976907d
fix: move state.json outside install dir to user home /var/tmp
2026-05-22 20:39:24 +04:00
Stitch505
e39bbbcad7
fix: remove nested manifest_review call from discovery
2026-05-22 20:36:04 +04:00
Stitch505
3222620d0b
fix: auto-save state on Ctrl+C/SIGTERM, detect interrupted runs
2026-05-22 20:33:25 +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
26398e2e4b
fix: safe service name for path, nginx hint scope error
2026-05-22 20:19:29 +04:00
Stitch505
99f4b109d5
fix: install.sh запускает меню сразу через /dev/tty
2026-05-22 20:13:12 +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