From f90a077bbe0407a845a72e841e3dc737df60a0ed Mon Sep 17 00:00:00 2001 From: Sameer Pashikanti <63326129+spashii@users.noreply.github.com> Date: Thu, 2 Jul 2026 17:36:19 +0200 Subject: [PATCH] feat(chat): host-friendly agentic experience Hosts are not technical; the chat should feel like one simple surface. - No mode selection when agentic chat is enabled: visiting a new chat (or opening a mode-less chat) starts an agentic chat automatically. The selector remains only where the flag is off (production until launch). - Suggested-changes card rebuilt for review-and-approve: friendly portal labels instead of backend field names, clear old -> new per field (with honest empty/cleared states, no em dash), editable proposed text so hosts fine-tune before applying, booleans as switches, and stateless applied detection (the card compares live project values, so a reload still shows the truth: fixes 'did it apply?'). - Removed the raw 'Run status: completed' line; the in-flight indicator and Stop button carry that job. - Scroll-to-bottom button: brand outline variant on the app background, moved to the right edge so it never covers the last line of a message. - Template chips: real ellipsis instead of a mid-word clip. - Copy: 'Ask about your conversations...' placeholder and empty state, lowercase dembrane in transcript export, tool-activity headlines wrapped for translation, 12px type floor in tool rows. Co-Authored-By: Claude Fable 5 --- .../src/components/chat/AgenticChatPanel.tsx | 37 +-- .../src/components/chat/ChatTemplatesMenu.tsx | 4 +- .../chat/ProjectUpdateSuggestionCard.tsx | 309 +++++++++++++----- .../components/chat/agenticToolActivity.ts | 12 +- .../src/components/common/ScrollToBottom.tsx | 5 +- echo/frontend/src/locales/cs-CZ.po | 269 +++++++++++---- echo/frontend/src/locales/cs-CZ.ts | 2 +- echo/frontend/src/locales/de-DE.po | 269 +++++++++++---- echo/frontend/src/locales/de-DE.ts | 2 +- echo/frontend/src/locales/en-US.po | 269 +++++++++++---- echo/frontend/src/locales/en-US.ts | 2 +- echo/frontend/src/locales/es-ES.po | 269 +++++++++++---- echo/frontend/src/locales/es-ES.ts | 2 +- echo/frontend/src/locales/fr-FR.po | 269 +++++++++++---- echo/frontend/src/locales/fr-FR.ts | 2 +- echo/frontend/src/locales/it-IT.po | 269 +++++++++++---- echo/frontend/src/locales/it-IT.ts | 2 +- echo/frontend/src/locales/nl-NL.po | 269 +++++++++++---- echo/frontend/src/locales/nl-NL.ts | 2 +- echo/frontend/src/locales/uk-UA.po | 269 +++++++++++---- echo/frontend/src/locales/uk-UA.ts | 2 +- .../src/routes/project/chat/NewChatRoute.tsx | 41 ++- .../routes/project/chat/ProjectChatRoute.tsx | 49 ++- 23 files changed, 2062 insertions(+), 563 deletions(-) diff --git a/echo/frontend/src/components/chat/AgenticChatPanel.tsx b/echo/frontend/src/components/chat/AgenticChatPanel.tsx index f7542d85d..8086f4477 100644 --- a/echo/frontend/src/components/chat/AgenticChatPanel.tsx +++ b/echo/frontend/src/components/chat/AgenticChatPanel.tsx @@ -380,7 +380,7 @@ export const AgenticChatPanel = ({ const computedChatForCopy = useMemo(() => { const messagesList = historyMessages.map((message) => - formatMessage(message, "User", "Dembrane"), + formatMessage(message, "User", "dembrane"), ); return messagesList.join("\n\n\n\n"); }, [historyMessages]); @@ -802,14 +802,7 @@ export const AgenticChatPanel = ({ - - - {runStatus && ( - - Run status: {runStatus} - - )} - + {isRunInFlight && (