diff --git a/src/renderer/src/components/sidebar/AutoRenameFailedDialog.test.tsx b/src/renderer/src/components/sidebar/AutoRenameFailedDialog.test.tsx index 49e2cb52ef0..9e8e1350970 100644 --- a/src/renderer/src/components/sidebar/AutoRenameFailedDialog.test.tsx +++ b/src/renderer/src/components/sidebar/AutoRenameFailedDialog.test.tsx @@ -83,3 +83,28 @@ describe('AutoRenameFailedDialog full output', () => { expect(document.body.textContent).not.toContain('first run full output') }) }) + +// Why: happy-dom does no intrinsic sizing, so assert the two declarations that +// keep an unbroken token from widening DialogContent's grid column instead. +describe('AutoRenameFailedDialog unbroken output containment', () => { + it('keeps the output surface shrinkable and breakable mid-token', async () => { + getBranchRenameFailureOutput.mockResolvedValueOnce(`{"error":"${'A'.repeat(1000)}"}`) + await renderDialog() + + const dialog = document.querySelector('[role="dialog"]') + const output = dialog?.querySelector('pre') + expect(output).toBeTruthy() + expect(output?.textContent).toContain('A'.repeat(1000)) + + // `break-words` (overflow-wrap: break-word) wraps painted text but leaves + // min-content at the full token width; only `anywhere` shrinks it. + expect(output?.className).toContain('[overflow-wrap:anywhere]') + expect(output?.className).not.toContain('break-words') + + // DialogContent is a grid, so its child needs min-w-0 to shrink below min-content. + const gridChild = Array.from(dialog?.children ?? []).find((child) => + child.contains(output ?? null) + ) + expect(gridChild?.className).toContain('min-w-0') + }) +}) diff --git a/src/renderer/src/components/sidebar/AutoRenameFailedDialog.tsx b/src/renderer/src/components/sidebar/AutoRenameFailedDialog.tsx index 6ea256e5aa3..04e59d3ef6d 100644 --- a/src/renderer/src/components/sidebar/AutoRenameFailedDialog.tsx +++ b/src/renderer/src/components/sidebar/AutoRenameFailedDialog.tsx @@ -115,8 +115,9 @@ export function AutoRenameFailedDialog({ )}

{/* Why: agent-CLI output is literal and often multi-line, so render it - verbatim (mono, wrapped) inside a height-capped scroll region. */} -
+ verbatim (mono, wrapped) inside a height-capped scroll region. + min-w-0 keeps an unbroken token from widening this grid column. */} +

{translate( 'auto.components.sidebar.AutoRenameFailedDialog.74fc00776f', @@ -143,7 +144,7 @@ export function AutoRenameFailedDialog({ > {copied ? : } -

+            
               {detailText}