Skip to content

fix(cli): preserve cluster command arguments - #352

Merged
inureyes merged 1 commit into
mainfrom
fix/issue-351-parse-cluster-commands
Nov 5, 2026
Merged

inureyes merged 1 commit into
mainfrom
fix/issue-351-parse-cluster-commands

Conversation

@inureyes

@inureyes inureyes commented Nov 5, 2026

Copy link
Copy Markdown
Member

Summary

Cluster and --hosts commands containing spaces or shell syntax were parsed as SSH destinations and failed hostname validation. Restrict destination parsing to SSH mode while retaining explicit user/port options and strict validation of actual destinations. Add unit and offline subprocess regression coverage.

Validation

  • cargo fmt --check and cargo clippy -- -D warnings pass.
  • cargo test --lib: 1,968 passed; 0 failed.
  • cargo test --tests -- --skip integration_test: 2,643 passed; 0 failed; 8 ignored across 54 suites.
  • Implementation and security/performance reviews found no issues; no live cluster connection tested.

Closes #351

Multi-server invocations use the positional destination field as the initial remote command, so applying SSH hostname parsing rejected shell syntax before configuration and node resolution. Treat destination parsing as SSH-mode-only while keeping explicit user and port overrides available to multi-server connections.

Add unit and isolated process regression coverage for implicit and explicit command invocation while retaining invalid SSH hostname checks.

Refs #351
@inureyes inureyes added type:bug Something isn't working status:done Completed priority:high High priority issue labels Nov 5, 2026
@inureyes
inureyes merged commit a81fab8 into main Nov 5, 2026
5 checks passed
@inureyes
inureyes deleted the fix/issue-351-parse-cluster-commands branch November 5, 2026 06:48
inureyes added a commit that referenced this pull request Nov 5, 2026
Bump the crate, lockfile, and manpages to 3.1.1 and add release entries to README, CHANGELOG, and debian/changelog covering #349, #350, #352, and #353: the cluster command argument fix, the russh 0.65.1 upgrade with staged host-key verification, session-bind on agent connections, and the dependency refresh.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

priority:high High priority issue status:done Completed type:bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(cli): avoid parsing cluster commands as SSH destinations

1 participant