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),