chore: Simplify native CLI installer command construction

Merged
HA
3mo ago
+214-186

Summary

  • Preserve native CLI installer behavior while separating command construction from process and path responsibilities.
  • Keep the existing public installer command API unchanged.

User Impact

  • No user-visible behavior change.
  • Setup and uninstall continue to produce the same executable names, arguments, manual commands, release tags, and installer script URLs.

Changes

  • Move install command construction and quoting helpers into NativeCliCommandBuilder.
  • Keep NativeCliInstaller.GetInstallCommand as the public facade.
  • Keep uninstall path resolution in NativeCliInstaller until the path responsibility is split separately.
  • Retarget command-focused tests and the overload guard to the extracted builder; the guard still reports missing targets.

Verification

  • Unity compile: 0 errors, 0 warnings
  • NativeCliInstallerTests: 32 passed
  • StaticFacadeStateGuardTests: 20 passed
  • CliSetupApplicationServiceTests: 4 passed
  • git diff --check
  • No IPC or protocol changes