From d1f211ccccbf9a657c4968bf29ef230b9f41e09e Mon Sep 17 00:00:00 2001 From: "Victor \"David\" Medina" Date: Thu, 25 Jun 2026 15:28:48 -0400 Subject: [PATCH] fix(ux): inline Approve consequence + honest walkthrough verb (mobile trust microcopy) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adversarial mobile cascade (wk0ok7ueo, 7 agents, fleet-vetted) found Elaine's scariest 7am question — 'does tapping Approve fire a message to my client right now?' — answered nowhere near her thumb (only in the TrustStrip 3 rows up), and the first-visit walkthrough priming the exact opposite of the locked positioning. Two fleet-converged trust-microcopy fixes: - SingleActionQueue: one plain-English consequence line directly under Approve, driven off the canonical provenance.sends boolean (true only when side_effect_mode==='live') — non-live: 'Approving drafts this for your review — nothing is sent yet.'; live: 'Approving sends this to {name}.' Cannot overclaim a send. - WalkthroughBanner: 'Tap Approve to send outreach on your behalf' (implied autonomy — the ClickFunnels fear) -> 'Tap Approve and Relay sends the outreach for you — never before you approve.' Matches 'AI prepares. You approve. We never auto-send.' Additive, zero-collision, copy-only. Net-new (post #549/#550/#552/#555). Co-Authored-By: Claude Opus 4.6 (1M context) --- app/(shell)/focus/WalkthroughBanner.tsx | 2 +- components/focus/SingleActionQueue.tsx | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/app/(shell)/focus/WalkthroughBanner.tsx b/app/(shell)/focus/WalkthroughBanner.tsx index 405949667..b2291f753 100644 --- a/app/(shell)/focus/WalkthroughBanner.tsx +++ b/app/(shell)/focus/WalkthroughBanner.tsx @@ -22,7 +22,7 @@ function getSteps(clientNoun: string): WalkthroughStep[] { { icon: , title: "Approve, skip, or dismiss", - description: "Tap Approve to send outreach on your behalf. Skip to revisit later. Dismiss to remove it. You stay in control. Nothing sends without your OK.", + description: "Tap Approve and Relay sends the outreach for you — never before you approve. Skip to revisit later, or Dismiss to remove it. You stay in control.", }, { icon: , diff --git a/components/focus/SingleActionQueue.tsx b/components/focus/SingleActionQueue.tsx index d228ae610..6afe89d16 100644 --- a/components/focus/SingleActionQueue.tsx +++ b/components/focus/SingleActionQueue.tsx @@ -330,6 +330,14 @@ export function SingleActionQueue({ Approve + {/* Answer the owner's scariest question AT her thumb, not three rows + up in the TrustStrip. Driven off the same canonical provenance.sends + boolean so it can never overclaim a send. */} +

+ {provenance.sends + ? `Approving sends this to ${current.target?.name ?? "your client"}.` + : "Approving drafts this for your review — nothing is sent yet."} +