diff --git a/canvas/src/components/ApprovalBanner.tsx b/canvas/src/components/ApprovalBanner.tsx
index 7c33d9b28..e06d5ba0b 100644
--- a/canvas/src/components/ApprovalBanner.tsx
+++ b/canvas/src/components/ApprovalBanner.tsx
@@ -71,9 +71,13 @@ export function ApprovalBanner() {
{approval.workspace_name} needs approval
-
{approval.action}
+ {/* Clamp action + reason: agents can author very long messages,
+ and unclamped these sprawled the banner into a full-canvas
+ text column. line-clamp works here (plain-text fields, not
+ markdown). break-words handles long unbroken tokens. */}
+