From 62cbc3401273b947d1ecad2e5e5c65e313eb5c8e Mon Sep 17 00:00:00 2001 From: flamboh Date: Fri, 6 Nov 2026 05:12:50 +0000 Subject: [PATCH] fix(web): settings descriptions fill the row and stay two lines Settings descriptions used text-balance and a 10rem minimum control column, so long copy wrapped into narrow half-width lines. Descriptions now use text-pretty, the control column sizes to its content (dropdowns keep their 160px minimum), and a new t3code/max-settings-description-length lint rule caps SettingsRow descriptions at 200 characters of static text. The five descriptions over the cap are shortened, with mobile copies kept in sync. Co-Authored-By: Claude Opus 5.5 --- .../settings/ThreadSettingsSections.tsx | 7 +-- .../components/DatabaseStorageNotice.tsx | 2 +- .../settings/DatabaseStorageNotice.tsx | 2 +- .../components/settings/LabsSettingsPanel.tsx | 10 +-- .../settings/VoiceSettingsPanel.tsx | 2 +- .../components/settings/settingsLayout.tsx | 6 +- oxlint-plugin-t3code/index.ts | 2 + .../max-settings-description-length.test.ts | 43 +++++++++++++ .../rules/max-settings-description-length.ts | 63 +++++++++++++++++++ vite.config.ts | 4 ++ 10 files changed, 126 insertions(+), 15 deletions(-) create mode 100644 oxlint-plugin-t3code/rules/max-settings-description-length.test.ts create mode 100644 oxlint-plugin-t3code/rules/max-settings-description-length.ts diff --git a/apps/mobile/src/features/settings/ThreadSettingsSections.tsx b/apps/mobile/src/features/settings/ThreadSettingsSections.tsx index 8aaae71673a0e..df463bd1f664c 100644 --- a/apps/mobile/src/features/settings/ThreadSettingsSections.tsx +++ b/apps/mobile/src/features/settings/ThreadSettingsSections.tsx @@ -268,7 +268,7 @@ function BetaSettingsSection() { Let agents on a machine work on your other machines, and theirs on it. Turn it on for each - machine. While it is off, nothing new starts over a link; tasks already running finish. + machine. While off, nothing new starts over a link; running tasks finish. ); @@ -306,9 +306,8 @@ function ToolCallVisibilitySection() { ))} - Hide the commands, edits, and searches agents run, so a thread reads like a conversation. - Hide successful keeps calls that fail. Zen also hides the agent's in-between messages - and shows only final answers. Approvals, questions, and errors always show. + Hide the commands, edits, and searches agents run. Hide successful keeps failures. Zen shows + only final answers. Approvals, questions, and errors always show. ); diff --git a/apps/mobile/src/features/settings/components/DatabaseStorageNotice.tsx b/apps/mobile/src/features/settings/components/DatabaseStorageNotice.tsx index f492574db4339..963a94f607ae0 100644 --- a/apps/mobile/src/features/settings/components/DatabaseStorageNotice.tsx +++ b/apps/mobile/src/features/settings/components/DatabaseStorageNotice.tsx @@ -31,7 +31,7 @@ export function DatabaseStorageNotice({ return ( {visible.map(({ environmentId, status }) => ( {visible.map(({ environmentId, status }) => (