From 1d609cf55255603c11a5f7c496f5b581b19a387f Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 5 May 2026 06:20:05 +0000 Subject: [PATCH] fix(web): responsive header/runs/turn layout for narrow viewports (BEN-52) * App header now wraps and uses smaller padding below the sm breakpoint; the long run-id span truncates instead of forcing the row wider. * Runs grid is wrapped in an overflow-x-auto container with a 56rem min-width inner section, so on phones the table scrolls horizontally inside the wrapper rather than pushing the page wider than the viewport. * Turn-content and rendered-prompt
 blocks add break-words so long
  unbreakable strings (URLs, tokens) wrap inside the card instead of
  triggering a horizontal scrollbar.

https://claude.ai/code/session_01P3fhTuAWNTQX1nUrLyDDHo
---
 src/web/App.tsx       |  14 +++---
 src/web/Dashboard.tsx | 105 ++++++++++++++++++++++--------------------
 src/web/RunDetail.tsx |   4 +-
 3 files changed, 66 insertions(+), 57 deletions(-)

diff --git a/src/web/App.tsx b/src/web/App.tsx
index daac30d..0656706 100644
--- a/src/web/App.tsx
+++ b/src/web/App.tsx
@@ -32,17 +32,17 @@ export function App() {
 
   return (
     
-
+
Symphony -
-
+
{route.view === "dashboard" && } {route.view === "run" && } {route.view === "search" && } diff --git a/src/web/Dashboard.tsx b/src/web/Dashboard.tsx index f22b71c..8c4f37d 100644 --- a/src/web/Dashboard.tsx +++ b/src/web/Dashboard.tsx @@ -153,57 +153,64 @@ function EmptyState() { function RunsTable({ runs }: { runs: ApiRun[] }) { return ( -
-

- Runs -

-
+
- Issue - Title - Status - Scenario - Turns - Tokens - Cost - Started - Finished -
-
+ {r.issueIdentifier} + + {r.issueTitle ?? "—"} + + + + + {r.scenario ?? "—"} + {r.turnCount} + + {formatTokenTotal(r)} + + + {formatCost(r.totalCostUsd)} + + {formatTs(r.startedAt)} + + {r.finishedAt ? formatTs(r.finishedAt) : "—"} + + + + ))} + + +
); } diff --git a/src/web/RunDetail.tsx b/src/web/RunDetail.tsx index 8ea575a..f1e9eea 100644 --- a/src/web/RunDetail.tsx +++ b/src/web/RunDetail.tsx @@ -200,7 +200,7 @@ function TurnCard({ turn }: { turn: ApiTurn }) { )} -
+      
         {showCollapsed && summary ? summary.head : turn.content}
       
{collapsible && ( @@ -227,7 +227,7 @@ function TurnCard({ turn }: { turn: ApiTurn }) { Rendered prompt the model saw -
+          
             {turn.renderedPrompt}