Add font size and conversation density preferences - #5644
Conversation
Signed-off-by: kenny lopez <klopez4212@gmail.com>
Signed-off-by: kenny lopez <klopez4212@gmail.com>
Signed-off-by: kenny lopez <klopez4212@gmail.com>
Signed-off-by: kenny lopez <klopez4212@gmail.com>
|
🤖 Updated font size and conversation density snapshots. Default font + Comfy density15px standard text with balanced conversation spacing. Larger font + Compact density16px standard text while conversation spacing stays compact. Smaller font + Spacious densityCurrent production typography while conversations keep more breathing room. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1f92c81c10
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Co-authored-by: Princess Donut <b238ea756dee4d98afa5883fc7f1de61eeabe65bf700e3a5a5a80db5e42e2c2b@buzz.block.builderlab.xyz> Signed-off-by: Princess Donut <b238ea756dee4d98afa5883fc7f1de61eeabe65bf700e3a5a5a80db5e42e2c2b@buzz.block.builderlab.xyz>
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1a9fa4f299
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Co-authored-by: Princess Donut <b238ea756dee4d98afa5883fc7f1de61eeabe65bf700e3a5a5a80db5e42e2c2b@buzz.block.builderlab.xyz> Signed-off-by: Princess Donut <b238ea756dee4d98afa5883fc7f1de61eeabe65bf700e3a5a5a80db5e42e2c2b@buzz.block.builderlab.xyz>
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6166fa1cd7
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Co-authored-by: Princess Donut <b238ea756dee4d98afa5883fc7f1de61eeabe65bf700e3a5a5a80db5e42e2c2b@buzz.block.builderlab.xyz> Signed-off-by: Princess Donut <b238ea756dee4d98afa5883fc7f1de61eeabe65bf700e3a5a5a80db5e42e2c2b@buzz.block.builderlab.xyz>
Co-authored-by: Princess Donut <b238ea756dee4d98afa5883fc7f1de61eeabe65bf700e3a5a5a80db5e42e2c2b@buzz.block.builderlab.xyz> Signed-off-by: Princess Donut <b238ea756dee4d98afa5883fc7f1de61eeabe65bf700e3a5a5a80db5e42e2c2b@buzz.block.builderlab.xyz>
|
@codex review |
|
Codex Review: Didn't find any major issues. More of your lovely PRs please. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Co-authored-by: Princess Donut <b238ea756dee4d98afa5883fc7f1de61eeabe65bf700e3a5a5a80db5e42e2c2b@buzz.block.builderlab.xyz> Signed-off-by: Princess Donut <b238ea756dee4d98afa5883fc7f1de61eeabe65bf700e3a5a5a80db5e42e2c2b@buzz.block.builderlab.xyz>
Co-authored-by: Princess Donut <b238ea756dee4d98afa5883fc7f1de61eeabe65bf700e3a5a5a80db5e42e2c2b@buzz.block.builderlab.xyz> Signed-off-by: Princess Donut <b238ea756dee4d98afa5883fc7f1de61eeabe65bf700e3a5a5a80db5e42e2c2b@buzz.block.builderlab.xyz>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d914d31f73
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
…yout previews - Font size ramp is now 13/14/15px (Smaller/Default/Larger) so Default matches production's 14px standard text instead of bumping everyone up - Links and Thread layout switch from dropdowns to the same segmented control as Font size and Conversation density, with scrub-to-preview - SettingsSegmentedControl derives its columns from the option count (was hardcoded 3); legend moved off the grid so it can't skew layout - New live previews: a sample link card (Buzz-gradient SVG thumbnail baked from theme tokens) and a thread layout diagram (inline SVG on theme tokens) that follow the displayed/scrubbed option - Each setting row + its preview grouped as one container so the shared divider no longer separates a preview from its controls - Preview tag restyled as a quiet uppercase annotation, not a control - previewLinkPreviewStyle/previewThreadViewMode override hooks added, matching the existing previewFontSize pattern Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
The virtual typography rem values changed when Smaller/Default/Larger moved from 14/15/16px to 13/14/15px standard text; the tests assert exact --buzz-type-rem pixel values and needed the new expectations. Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
…graphy-staging * origin/main: Harden shared agent instruction review (#4220) chore(release): release Buzz Desktop version 0.5.11 (#5714) feat(acp): report standard adapter usage (#4950) fix(mobile): settle hydrated threads on latest reply (#4702) perf(desktop): persist channel snapshot hash (#5684) fix(agent): raise output limit and allow 3 recoveries (#5475) fix(desktop): defer foreground resume work (#5696) perf(desktop): coalesce thread-activity localStorage writes (#5693) Batch observer-store publications per relay envelope (#5680) feat(buzz-acp): idle re-sleep for woken lazy pools (#5682) fix(desktop): preserve agent mention separator after send (#5623) fix(link-previews): proxy sent preview media (#5627) feat(deletion): add durable whole-community deletion (#4425) fix(desktop): preserve live channel timelines (#5662) Refine channel settings and profile panels (#5574) fix(deps): bump webbrowser to 1.2.4 for RUSTSEC-2026-0257 (#5659) feat(acp): deliver channel description in prompt [Context] (#4552) fix(desktop): launch Databricks OAuth from passive model discovery (#5607) Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
…graphy-staging * origin/main: Make workflow run history authoritative in Desktop (#5780) fix(desktop): more compact "compact" link previews (#5629) Fix mobile composer input regressions (#5594) Add mobile community invites (#5641) Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
…graphy-staging * origin/main: (41 commits) docs: refresh agent development guidance (#6049) feat(mobile): require device authentication for identity export (#5116) fix(desktop): hide the offcanvas-collapsed sidebar so it stops painting over the community rail (#5947) Polish mobile message threads and composer (#5645) chore(release): release Buzz Desktop version 0.5.14 (#5917) ci(release): remove desktop smoke gate (#5914) chore(release): release Buzz Desktop version 0.5.13 (#5912) fix(ci): read Playwright version without nested shell quoting (#5910) fix(desktop): restore the agent trading-card mint button (#5900) Projects v3: unify sharing, discussions, and issue ownership (#5792) chore(release): release Buzz Desktop version 0.5.12 (#5903) fix(mobile): unwrap batched observer telemetry (#5805) perf(desktop): update active turns incrementally (#5897) fix(link-previews): send while previews finish in background (#5697) fix(desktop): cut steady-state relay traffic from polls and read-state echo (#5879) fix(desktop): support channel message path links (#5889) feat(mobile-messages): render compact Buzz permalink chips (#5639) test(desktop): await channel E2E bridge readiness (#5886) fix(link-preview): refetch a link when it re-enters the composer (#5510) feat(desktop-messages): render compact Buzz permalink chips (#5638) ... Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com> # Conflicts: # desktop/src/features/home/ui/InboxListPane.tsx # desktop/src/features/home/ui/InboxMessageRow.tsx # desktop/src/features/messages/ui/MessageAgentOwner.tsx # desktop/src/features/settings/ui/SettingsOptionGroup.tsx # desktop/src/features/settings/ui/SettingsPanels.tsx
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
…graphy-staging * origin/main: Remove GitHub security advisory commitment (#6144) Rename Bumble agent to Pollen (#5864) fix(desktop): resolve agent profiles through one archive-aware selector (#5706) fix(acp): gate relay-signed workflow messages on their attributed author (#6129) fix(acp): replace Goose native system prompt (#5964) feat(workflows): add responsive library card actions (#6008) fix(desktop): enforce shared agent access across devices (#6086) feat(model-capabilities): drive model capabilities and labels from one manifest (#5597) Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
…graphy-staging * origin/main: test(desktop): cover exact workflow batch limit (#6168) chore(release): release Buzz Desktop version 0.5.15 (#6173) Preserve managed agent mentions during relay errors (#6167) fix(workflows): preserve multi-channel listing semantics (#6009) Remove Startup Recovery section in base prompt (#6161) fix(desktop): align preview sidebar row styling (#6163) fix(desktop): repair dropped team membership links at boot and on edit (#5904) fix(cli): keep project replacement timestamps at or after wall clock (#5666) Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
jedwards27
left a comment
There was a problem hiding this comment.
Verdict: REQUEST CHANGES
Reviewed: f8692fa9b52ddcfeb4b95fb4862109983509f131..f0a8ef938a39ff3b8f473b8a0ba4ae002d7771f6 (exact head f0a8ef938a39ff3b8f473b8a0ba4ae002d7771f6)
Risk: medium — app-wide, persisted typography and density state with cross-window synchronization and keyboard-zoom composition.
Blocking finding
A full storage clear leaves the old keyboard zoom multiplier live in other open windows.
desktop/src/shared/lib/fontSizePreference.ts:22-23,42-51,58-72 keeps textZoomFactor only in module memory. Its storage listener handles event.key === null, but it reloads only buzz.appearance.fontSize and reapplies Default through that stale multiplier. Separately, desktop/src/app/useWebviewZoomShortcuts.ts:64-85,91-96,122-125 reads buzz:text-scale only on mount and does not listen for storage changes, so neither its live factor nor zoomFactorRef resets when another window calls localStorage.clear().
I reproduced this from a clean checkout: after Larger + 1.5× keyboard zoom, dispatching the full-clear storage event changes data-font-size to default but leaves --buzz-type-rem at 24px; Default should be 16px. The next Cmd-minus also starts from the stale ref. That breaks the PR's explicit contract to synchronize preferences across open windows, including full local-storage clears during sign-out/dev reset.
Please synchronize/reset the keyboard text-scale state on the same storage boundary, including key === null, and regression-test the composed state. The existing clear assertion at desktop/src/shared/lib/fontSizePreference.test.mjs:90-97 cannot detect this because it does not first activate a non-1 zoom factor; applying 1.5 before the clear makes the current implementation fail.
Other reviewed behavior
The accessibility and direct interaction shape is otherwise sound: the segmented control uses a named fieldset/legend, exposes selection, preserves focus-visible treatment, respects reduced motion, and restores saved state on pointer cancellation/window blur (desktop/src/shared/ui/segmented-control.tsx:81-216; workflow assertions in desktop/tests/e2e/buzz-theme-screenshots.spec.ts:738-755,1019-1140). Fresh Playwright artifacts for Default/Comfy, Larger/Compact, and Smaller/Spacious were inspected and showed legible, unclipped controls and previews. The change remains within its Desktop appearance scope and does not expand relay, tenancy, identity, native persistence, or security contracts.
Validation at matching HEAD
git merge-base HEAD f8692fa...→ pinned base;git diff --check f8692fa...HEAD→ pass; clean worktree.- Independent focused preference suites → 13/13 pass.
- Fresh
build:e2e+ full font-size/density workflow → 1/1 pass, with three inspected screenshots. just desktop-typecheck→ pass.just desktop-check→ pass (existing Biome warnings, exit 0).- Adversarial full-clear probe → fail as expected for this finding:
{"selected":"default","attribute":"default","typeRem":"24px"},probe_rc=1; expected16px. - Full
just desktop-testwas attempted but exceeded the 600-second shared-harness limit before a summary; it is neither claimed pass nor product failure. - Exact-head CI is green for Desktop Core, four smoke shards, two integration shards, relay E2E, macOS build, and release candidate. Those jobs do not cover the zoomed cross-window clear above.
Manual/native evidence: fresh browser workflow screenshots inspected; no native Tauri/VoiceOver run. Native AX behavior remains residual risk, but it does not weaken the deterministic blocking state-transition failure.
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
|
🤖 Addressed the cross-window keyboard zoom lifecycle finding in
Added a real two-page, same-origin Playwright regression that starts at Larger + 1.5×, clears storage from the peer window, verifies the primary window returns to Default at |



Summary
Validation
just ci