From b2328ce2f7a3dd73446cc78eda0f36b10e56ea00 Mon Sep 17 00:00:00 2001 From: ZacharyZcR Date: Thu, 16 Jul 2026 11:52:04 +0800 Subject: [PATCH] fix: restore sudo password autofill settings (#1056) --- src/ui/sidebar/HostEditor.tsx | 22 ++++++++++++++++++++++ src/ui/sidebar/HostEditorData.test.ts | 14 ++++++++++++++ src/ui/sidebar/HostEditorData.ts | 2 +- 3 files changed, 37 insertions(+), 1 deletion(-) diff --git a/src/ui/sidebar/HostEditor.tsx b/src/ui/sidebar/HostEditor.tsx index 30d30e24..f26d15a1 100644 --- a/src/ui/sidebar/HostEditor.tsx +++ b/src/ui/sidebar/HostEditor.tsx @@ -755,6 +755,28 @@ export function HostEditor({ onChange={(v) => setField("allowLegacyAlgorithms", v)} /> + + setField("sudoPasswordAutoFill", v)} + /> + + {form.sudoPasswordAutoFill && ( +
+ + setField("sudoPassword", e.target.value)} + /> +
+ )} diff --git a/src/ui/sidebar/HostEditorData.test.ts b/src/ui/sidebar/HostEditorData.test.ts index 3ca95dfa..240168df 100644 --- a/src/ui/sidebar/HostEditorData.test.ts +++ b/src/ui/sidebar/HostEditorData.test.ts @@ -120,4 +120,18 @@ describe("buildHostEditorPayload auth field isolation", () => { expect(tc?.agentSocketPath).toBeNull(); }); + + it("preserves sudo password autofill settings", () => { + const form = { + ...createHostEditorForm(null), + sudoPasswordAutoFill: true, + sudoPassword: "sudo-secret", + }; + + const payload = buildHostEditorPayload(form, sshOnly); + const tc = payload.terminalConfig as Record | null; + + expect(tc?.sudoPasswordAutoFill).toBe(true); + expect(tc?.sudoPassword).toBe("sudo-secret"); + }); }); diff --git a/src/ui/sidebar/HostEditorData.ts b/src/ui/sidebar/HostEditorData.ts index 29049f4d..8e3510c4 100644 --- a/src/ui/sidebar/HostEditorData.ts +++ b/src/ui/sidebar/HostEditorData.ts @@ -407,7 +407,7 @@ export function buildHostEditorPayload( agentForwarding: form.agentForwarding, autoMosh: form.autoMosh, autoTmux: form.autoTmux, - sudoPasswordAutoFill: false, + sudoPasswordAutoFill: form.sudoPasswordAutoFill, sudoPassword: form.sudoPassword || null, keepaliveInterval: Number(form.keepaliveInterval), keepaliveCountMax: Number(form.keepaliveCountMax),