Repository navigation
Conversation
ApprovabilityVerdict: Not approved Macroscope's review found this PR not approvable — This PR adds a cross-cutting, user-facing chat typography setting and changes prompt inheritance in simple mode for existing non-default interface-size configurations. Its nullable default preserves most current rendering, but the new default behavior and broader runtime surface warrant human review. You can add or adjust custom eligibility rules. Learn more. |
|
Important Review skippedWe couldn't safely recover the incremental review. No full review was started, and the last reviewed checkpoint was preserved. Retry later, or explicitly request a full review by commenting You can disable this status message by setting the Use the checkbox below for a quick retry:
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configuration
📒 Files selected for processing (6)
🚧 Files skipped from review as they are similar to previous changes (1)
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 8 remain after this review. 📝 WalkthroughWalkthroughThis change adds a nullable chat text size preference, applies it to conversation Markdown, and adds chat text controls and previews to typography settings. In simple mode, prompt sizing follows chat sizing; advanced mode keeps the prompt size independent. ChangesChat Text Typography
Priority: ⬇️ Low Estimated code review effort: 3 (Moderate) | ~20 minutes Change: Feature Suggested reviewers: Merge Risk: ⚪ Minimal · up to No identified issue blocks merging this chat text sizing change after normal checks. Security Architecture ReviewSecurity architecture risk: ⚪ Minimal · up to The change remains confined to client-owned typography settings and presentation. Automatic sizing preserves existing behavior, explicit sizes are bounded, and the inspected changes do not expand content-processing permissions or workspace-write authority. Retained concerns Security review detailsSecurity Blast Radius
Trust Boundaries and Controls
Resilience and Maintainability Implications
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 34.78% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 23 functions across 12 files. (1 skipped: 1 unsupported.) ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Conversation text was fixed at text-sm, so the only way to read replies at a larger size was to scale the whole interface. Add a Chat text size under Settings > Appearance > Typography. Auto (the default) keeps today's behavior and follows the interface size. In simple typography the prompt box follows the chat text size; Advanced keeps its own Prompt font size.
They were sized in rem, so with a small interface and large chat text, inline code shrank next to body text and headings could fall below it. They now derive from --chat-text-size and keep their proportion; outside the conversation the fallback yields the original rem sizes.
In simple typography the prompt followed the chat size even when it was unset, so a non-default interface size changed the prompt box for users who never touched Chat text. It now follows only a chosen chat size.
tailwind-merge dropped the markdown root's leading-relaxed once the chat size class was appended, so replies lost their line height even on Auto. Restate it in the class. Proposed plan cards now use the chat text size too, the simple-mode row says the prompt box follows a chosen size, and the chat clamp gets its own fallback constant.
4f0671b to
4e38825
Compare
|
Note Written by Thanks for proposing independent conversation text sizing. The diff adds a Chat text preference, scales conversation markdown, and makes the simple-mode prompt follow the selected chat size. Right now we are only taking focused bug fixes from outside contributors under Read this first, even though the guide allows focused configuration options to be considered. Please discuss the reading-size need and proposed scope in an Ideas discussion before requesting reconsideration. |
Problem
Conversation text (assistant replies and sent messages) is fixed at
text-sm, i.e. 87.5% of the Interface font size. The only way to read the conversation at a larger size is to raise the interface size or zoom the window, which also enlarges the sidebar, menus and every control.The mismatch also shows up between the conversation and the prompt box: with Interface font and Prompt font both set to 16 px, replies render at 14 px while the prompt box renders at 16 px, so "the same size" looks different.
Change
A Chat text size under Settings → Appearance → Typography (simple and Advanced views):
fontSizeChatis a new client setting (ChatFontSize, 12–20 px, nullable). Null ("Auto", the default) keeps today's behavior: the conversation follows the interface size.--font-size-chat. Assistant replies and user messages inMessagesTimelineand proposed plan cards size from it. Headings, inline code, tables and footnotes in.chat-markdownare now written ascalc(var(--chat-text-size, 0.875rem) * <rem> / 0.875), so they keep their proportion to the chosen size. Without the variable (PR markdown, file previews, everything outside the conversation) the expression yields the previous rem values.resolvePromptFontSizePreference, mirroringresolveTerminalFontSizePreference).FontSizeSelectwith an optional "Auto" entry. "Chat text" is added to settings search, to the changed-typography labels and to the appearance restore-defaults list.Desktop persists client settings through the shared
ClientSettingsSchema, so it picks up the field without changes. Mobile has no typography settings.Scope and approval
This is a focused configuration option for an established capability: the Typography section already offers per-surface sizes (Interface, Prompt, Code, Terminal). This adds the missing size for the conversation itself. Defaults are unchanged: with Chat text on Auto, every surface renders exactly as before at any interface size (replies 0.875 rem with the same line height, the prompt box at its own Prompt font size), and nothing outside the conversation changes. Only users who pick a Chat text size see a difference. No new workflow.
Verification
vp test run apps/web/src/appearanceFonts.test.ts apps/web/src/components/settings/SettingsPanels.logic.test.ts: 37 passed. New cases cover the prompt size resolution in simple and Advanced mode (including Auto keeping the prompt's own size), the chat variable being removed when unset and written when set, chat size clamping, and the changed-typography label.vp run --filter @t3tools/contracts typecheck,vp run --filter @t3tools/web typecheck,vp lintandvp fmt --checkon the changed files: clean (lint warning count unchanged frommain).vp run dev --share, Chrome on macOS), with a real reply containing headings, inline code, a table and a list:main.main); inline code and tables 14.6 px; headings 19.4 / 21.9 px; the root font size (and with it the rest of the UI) stays at 13 px.Before (
main, Interface 13 px): the conversation shrinks with the interface (replies 11.4 px, inline code 9.75 px).After (Interface 13 px, Chat text 17 px): the conversation and prompt box read at 17 px; the surrounding UI stays at 13 px.
Not checked: the Electron desktop build and Windows/Linux rendering. The change is web-layer CSS and client settings shared by desktop.
Written by Claude Opus 5.5 in Claude Code, run from T3 Code.