From 766c1f881b8da0f93d2027a95c6ce87f99c5a55c Mon Sep 17 00:00:00 2001 From: "Victor \"David\" Medina" Date: Fri, 26 Jun 2026 01:09:39 -0400 Subject: [PATCH] fix(ux): overnight honesty + brand-token + calm-copy polish (secondary axes) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Overnight adversarial console sweep (wq9qwfuyt) — 4 verified-at-source, autonomous, low-risk, CI-gated fixes that lift secondary axes (the ~20 headline is First-Light-gated and unchanged): - HONESTY (RelayTeamsClient): empty-state 'Relay Teams run autonomously ... recovering ... optimizing' (present-tense autonomy on a proof_events=0 account) -> 'Once your data connects, ... prepare ... for your review. Nothing reaches a client until you approve it.' Same pattern as #555. - BRAND-LAW (SeedWellnessPilotButton): amber CTA text-white -> text-stone-950 (canonical amber-CTA text; raw white banned in component code). - BRAND-LAW (ConciergeAdminClient): h1 text-white -> text-stone-50; white/N neutral-opacity (border-white/5, bg-white/[0.02], bg-white/[0.03]) -> stone tokens. Clears the opacity guard (warning now -> error after Phase 1). The red-error-badge text-white is left (semantic contrast). - NEURO/CALM (ProposalApprovalCard): skipped copy -> 'It stays in your queue — come back anytime, no rush.' (de-anxiety; used the neutral version, not an unverified 'tomorrow's brief' claim). Deferred honestly: the 7AM/'running now' autonomy leaks need a server-side proof_events>0 gate (logic, med-risk) — not an unattended overnight merge. Copy/token-only; no logic; CI is the gate. Isolated worktree. Co-Authored-By: Claude Opus 4.6 (1M context) --- app/(shell)/relay-teams/RelayTeamsClient.tsx | 5 +++-- components/admin/ConciergeAdminClient.tsx | 6 +++--- components/admin/SeedWellnessPilotButton.tsx | 2 +- components/pulse/ProposalApprovalCard.tsx | 2 +- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/app/(shell)/relay-teams/RelayTeamsClient.tsx b/app/(shell)/relay-teams/RelayTeamsClient.tsx index 0f027e564..89448a75c 100644 --- a/app/(shell)/relay-teams/RelayTeamsClient.tsx +++ b/app/(shell)/relay-teams/RelayTeamsClient.tsx @@ -172,8 +172,9 @@ export default function RelayTeamsClient() { Your AI teams are being set up

- Relay Teams run autonomously in the background — recovering lapsed clients, - optimizing your schedule, and drafting outreach. They activate as your data connects. + Once your data connects, Relay Teams prepare work in the background — finding lapsed + clients, spotting schedule gaps, and drafting outreach for your review. Nothing reaches a + client until you approve it.

diff --git a/components/admin/ConciergeAdminClient.tsx b/components/admin/ConciergeAdminClient.tsx index c99456644..e59f8d4c6 100644 --- a/components/admin/ConciergeAdminClient.tsx +++ b/components/admin/ConciergeAdminClient.tsx @@ -34,7 +34,7 @@ export function ConciergeAdminClient() { Specialist Admin -

Concierge Audit Manager

+

Concierge Audit Manager

Review and deliver human evidence-grade audits for high-priority client escalations.

@@ -43,7 +43,7 @@ export function ConciergeAdminClient() {

Escalation Queue

{mockEscalations.length === 0 ? ( -
+

No escalations yet

Escalation requests from projects will appear here.

@@ -55,7 +55,7 @@ export function ConciergeAdminClient() { className={`w-full text-left p-5 rounded-2xl border transition-all ${ selectedId === req.id ? "bg-amber-500/10 border-amber-500/40 shadow-lg shadow-amber-500/10" - : "bg-white/[0.03] border-white/5 hover:border-white/15" + : "bg-stone-900/40 border-stone-700/30 hover:border-stone-600/50" }`} >
diff --git a/components/admin/SeedWellnessPilotButton.tsx b/components/admin/SeedWellnessPilotButton.tsx index 8950eee14..a46ff7197 100644 --- a/components/admin/SeedWellnessPilotButton.tsx +++ b/components/admin/SeedWellnessPilotButton.tsx @@ -36,7 +36,7 @@ export function SeedWellnessPilotButton() {
); }