v3.6.6 — SUDO_PASSWORD, DEFAULT_DIR and ssh_sync key auth work again
Fixed
Handlers read stale snake_case config fields that ConfigLoader no longer produces (#49 — thanks @egoan82 for the excellent root-cause report; fixed in #50)
Since the v3.0.0 ConfigLoader refactor, resolved server configs expose camelCase fields (sudoPassword, defaultDir, keyPath), but several handlers still read the pre-3.0 snake_case/lowercase names — always undefined, so their fallback branches silently never ran:
ssh_execute_sudoignored the configuredSUDO_PASSWORD→sudo: a terminal is required to authenticateon hosts without a TTY on the exec channelssh_execute/ssh_group_execute/ssh_execute_sudoignoredDEFAULT_DIR— commands silently ran in$HOMEssh_list_serversalways reported an emptydefaultDirssh_syncnever passed the configured SSH key to rsync (-i/BatchMode=yes)
No configuration change required — .env/TOML source keys (SUDO_PASSWORD, default_dir, key_path, …) are unchanged; existing configs simply start working again.
Added
- Regression test
tests/test-config-field-names.js(npm run test:fieldnames, part ofnpm test): locks the ConfigLoader's output field names from both.envand TOML sources, and statically forbids stale snake_case field access insrc/.
Full changelog: https://github.com/bvisible/mcp-ssh-manager/blob/main/CHANGELOG.md#366---2026-07-11