diff --git a/extensions/signal/src/signal-cli-link.test.ts b/extensions/signal/src/signal-cli-link.test.ts index a938e30365e1..7065d99ddbe0 100644 --- a/extensions/signal/src/signal-cli-link.test.ts +++ b/extensions/signal/src/signal-cli-link.test.ts @@ -239,7 +239,7 @@ describe("linkSignalCliAccount", () => { }); }); - it("preserves a successful link when QR presentation cancels the settling process", async () => { + it("trusts the terminal account marker when presentation cancels process exit", async () => { const command = createDeferredCommand(); let rejectPresentation!: (error: Error) => void; const presentation = new Promise((_resolve, reject) => { diff --git a/extensions/signal/src/signal-cli-link.ts b/extensions/signal/src/signal-cli-link.ts index 7ae6c08ab8c1..079e34fc8750 100644 --- a/extensions/signal/src/signal-cli-link.ts +++ b/extensions/signal/src/signal-cli-link.ts @@ -160,8 +160,8 @@ export async function linkSignalCliAccount(params: { await displayPromise; if (associatedAccount) { - // signal-cli prints the account only after finishDeviceLink succeeds. A late client - // cancellation must not turn that durable success into a second linking attempt. + // signal-cli emits this marker only after finishDeviceLink returns. The linked account is + // therefore durable even when a late presentation failure terminates the settling process. return { ok: true, associatedAccount }; } if (result.code === 0 && result.termination === "exit") {