Skip to content

v3.6.6 — SUDO_PASSWORD, DEFAULT_DIR and ssh_sync key auth work again

Choose a tag to compare

@bvisible bvisible released this 11 Jul 20:34
· 44 commits to main since this release

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_sudo ignored the configured SUDO_PASSWORDsudo: a terminal is required to authenticate on hosts without a TTY on the exec channel
  • ssh_execute / ssh_group_execute / ssh_execute_sudo ignored DEFAULT_DIR — commands silently ran in $HOME
  • ssh_list_servers always reported an empty defaultDir
  • ssh_sync never 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 of npm test): locks the ConfigLoader's output field names from both .env and TOML sources, and statically forbids stale snake_case field access in src/.

Full changelog: https://github.com/bvisible/mcp-ssh-manager/blob/main/CHANGELOG.md#366---2026-07-11