Skip to content

Add font size and conversation density preferences - #5644

Merged
wesbillman merged 19 commits into
mainfrom
kennylopez-inter-typography-staging
Aug 18, 2026
Merged

Add font size and conversation density preferences#5644
wesbillman merged 19 commits into
mainfrom
kennylopez-inter-typography-staging

Conversation

@klopez4212

@klopez4212 klopez4212 commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Add separate Font size and Conversation density controls in Appearance.
  • Use a 13 / 14 / 15px conversation text ramp for Smaller / Default / Larger while scaling interface typography through a shared virtual-rem system.
  • Keep layout geometry fixed while typography changes, and compose Cmd +/- text zoom on top of the selected preference.
  • Let Compact, Comfy, and Spacious control conversation row spacing plus paragraph and list rhythm in Markdown content across Buzz.
  • Preview font size and density together with click-and-drag comparison; interrupted scrubbing restores the saved preference.
  • Synchronize preferences across open Buzz windows, including full local-storage clears during sign-out or dev reset.
  • Promote the segmented control to shared UI and make Settings rows adapt to their card width.

Validation

  • just ci
  • 4,965+ desktop unit tests across the final merged branch
  • 1,465 mobile tests through the full repository gate
  • Focused Playwright coverage for font-size/density independence, drag preview cancellation, Inbox geometry, thread rendering, keyboard zoom, and cross-surface typography
  • Fresh E2E build against the final merged branch

klopez4212 added a commit that referenced this pull request Aug 12, 2026
@klopez4212 klopez4212 changed the title Add conversation density preference Add conversation display preferences Aug 12, 2026
klopez4212 added a commit that referenced this pull request Aug 12, 2026
@klopez4212 klopez4212 changed the title Add conversation display preferences Add font size and conversation density preferences Aug 12, 2026
klopez4212 added a commit that referenced this pull request Aug 12, 2026
@klopez4212
klopez4212 marked this pull request as ready for review August 12, 2026 12:07
@klopez4212
klopez4212 requested a review from a team as a code owner August 12, 2026 12:07
@klopez4212

Copy link
Copy Markdown
Contributor Author

🤖 Updated font size and conversation density snapshots.

Default font + Comfy density

15px standard text with balanced conversation spacing.

14-conversation-preferences

Larger font + Compact density

16px standard text while conversation spacing stays compact.

15-conversation-compact-larger

Smaller font + Spacious density

Current production typography while conversations keep more breathing room.

16-conversation-spacious-smaller

klopez4212 added a commit that referenced this pull request Aug 12, 2026

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread desktop/src/shared/styles/globals/theme.css Outdated
@klopez4212

Copy link
Copy Markdown
Contributor Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread desktop/src/main.tsx
Comment thread desktop/src/shared/lib/fontSizePreference.ts
@klopez4212

Copy link
Copy Markdown
Contributor Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread desktop/src/app/useWebviewZoomShortcuts.ts
Comment thread desktop/src/shared/lib/fontSizePreference.ts
@klopez4212

Copy link
Copy Markdown
Contributor Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. More of your lovely PRs please.

Reviewed commit: 17db6c99ce

ℹ️ 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".

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread desktop/src/features/messages/ui/MessageRow.tsx
Comment thread desktop/src/shared/ui/markdown.tsx
@klopez4212
klopez4212 marked this pull request as draft August 13, 2026 06:36
@morgmart
morgmart marked this pull request as ready for review August 17, 2026 21:56

@jedwards27 jedwards27 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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; expected 16px.
  • Full just desktop-test was 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.

@morgmart

Copy link
Copy Markdown
Contributor

🤖 Addressed the cross-window keyboard zoom lifecycle finding in 17a440888.

useWebviewZoomShortcuts now owns synchronization for buzz:text-scale: it listens for that storage key and full-clear (key === null) events, re-reads the normalized zoom factor, updates the shortcut ref, and reapplies the composed typography without writing back during event handling.

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 16px, then verifies the next Cmd/Ctrl-minus starts from reset 1.0 and produces 0.9 / 14.4px. The ordinary keyboard zoom and cross-window clear workflows passed 6/6 focused runs. Pre-push desktop checks, typecheck, and 5,000+ desktop tests also passed.

@jedwards27 jedwards27 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verdict: APPROVE

Reviewed: f8692fa9b52ddcfeb4b95fb4862109983509f131..17a440888ec308cac81d58e99b52f1c961047e30 (exact head 17a440888ec308cac81d58e99b52f1c961047e30)

Risk: medium — app-wide persisted typography/density state, keyboard-zoom composition, and cross-window reset synchronization.

The prior blocker is resolved. desktop/src/app/useWebviewZoomShortcuts.ts:122-137 now handles both buzz:text-scale storage changes and full clears, reloads the persisted/default factor, updates zoomFactorRef, reapplies composed typography, and removes the listener on unmount. This resets both rendered pixels and the baseline for the next keyboard shortcut.

The two-page regression at desktop/tests/e2e/profile.spec.ts:2561-2643 exercises Larger + 1.5× in one window, localStorage.clear() in another, then verifies Default/16px/cleared scale and a subsequent Cmd-minus from 1.0 (0.9, 14.4px). Mutation testing established causality: removing storage synchronization reproduced the former 24px-instead-of-16px failure; restoring exact-head code passed.

No unresolved material findings remain. The complete affected behavior was rechecked for product/UI/accessibility and systems/integration concerns. Controls, selection indicators, previews, row boundaries, and neighboring settings remained legible and unclipped across Default/Comfy, Larger/Compact, and Smaller/Spacious. The change does not expand relay, tenancy, auth, native persistence, migration, or security contracts.

Validation at matching HEAD

  • Full Desktop package suite: 5,000/5,000 pass, 0 fail/skip.
  • just desktop-typecheck: pass.
  • just desktop-check: pass (2 existing warnings + 2 infos; exit 0).
  • just desktop-build: pass.
  • Fresh pnpm -C desktop build:e2e: pass.
  • Corrected cross-window clear row: 1/1 pass.
  • Full appearance interaction/workflow row: 1/1 pass.
  • Causal mutation: 1/1 fails as required with stale 24px; restored exact-head build/test: 1/1 pass.
  • git diff --check: pass; review worktrees clean.
  • Exact-head required CI is green, including Desktop Core/build, four smoke shards, two integration shards, release candidate, Rust lint, Windows, and DCO. The PR is mergeable.

Manual/native evidence: fresh browser screenshots for the three representative appearance combinations were inspected and showed distinct, legible, unclipped states. No native Tauri/VoiceOver journey was run.

Residual risk: OS-delivered shortcut and native screen-reader behavior were not independently exercised. The corrective delta changes browser storage/event synchronization, is covered causally in two windows, and introduces no native code, so this is not a material blocker.

wesbillman
wesbillman previously approved these changes Aug 18, 2026

@wesbillman wesbillman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Carl, an automated reviewer, commenting via Wes’s GitHub account.

Royal Court verdict: APPROVE

Reviewed exact head 17a440888ec308cac81d58e99b52f1c961047e30 against merge base f8692fa9b52ddcfeb4b95fb4862109983509f131. All four review lanes found no material code, product, accessibility, persistence, or integration defects.

The persisted font-size and conversation-density stores initialize before React, normalize invalid values, keep previews non-persistent, and synchronize matching-key and full-clear events across windows. Keyboard zoom now updates both its live shortcut ref and composed typography when another window changes or clears buzz:text-scale, resolving the earlier stale-multiplier defect. The two-window regression causally exercises Larger + 1.5x, peer localStorage.clear(), reset to Default/16px, and the next decrement from 1.0.

The virtual typography rem keeps layout geometry fixed while scaling type; density owns spacing independently. The shared segmented control retains native keyboard buttons, named-group semantics, committed aria-pressed state during preview, reduced-motion behavior, and cancellation on pointer loss, blur, and unmount. Representative E2E coverage checks computed geometry, persistence, scrubbing, cancellation, real conversation surfaces, and cross-window reset.

Validation evidence at this head: git diff --check is clean; all applicable GitHub checks are successful or skipped; existing exact-head validation reports 5,000/5,000 Desktop tests plus typecheck, check, build, focused E2E, and a causal mutation test. I did not duplicate CI-equivalent suites locally.

Tests changed substantially because behavior changed: preference unit coverage, appearance interaction/screenshots, real conversation geometry, and the two-window zoom/full-clear regression were added or updated.

Non-code merge note: GitHub currently reports the branch dirty due to an AGENTS.md conflict with current main; resolve/rebase and re-review the resulting head. This approval expires if HEAD moves. Residual risk is native Tauri/VoiceOver and OS-delivered shortcut behavior, which was not independently exercised beyond renderer coverage and supplied media.

klopez4212 and others added 6 commits August 18, 2026 13:46
Signed-off-by: kenny lopez <klopez4212@gmail.com>
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
Signed-off-by: kenny lopez <klopez4212@gmail.com>
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
Signed-off-by: kenny lopez <klopez4212@gmail.com>
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
Signed-off-by: kenny lopez <klopez4212@gmail.com>
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
Co-authored-by: Princess Donut <b238ea756dee4d98afa5883fc7f1de61eeabe65bf700e3a5a5a80db5e42e2c2b@buzz.block.builderlab.xyz>
Signed-off-by: Princess Donut <b238ea756dee4d98afa5883fc7f1de61eeabe65bf700e3a5a5a80db5e42e2c2b@buzz.block.builderlab.xyz>
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
Co-authored-by: Princess Donut <b238ea756dee4d98afa5883fc7f1de61eeabe65bf700e3a5a5a80db5e42e2c2b@buzz.block.builderlab.xyz>
Signed-off-by: Princess Donut <b238ea756dee4d98afa5883fc7f1de61eeabe65bf700e3a5a5a80db5e42e2c2b@buzz.block.builderlab.xyz>
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
Princess Donut and others added 13 commits August 18, 2026 13:46
Co-authored-by: Princess Donut <b238ea756dee4d98afa5883fc7f1de61eeabe65bf700e3a5a5a80db5e42e2c2b@buzz.block.builderlab.xyz>
Signed-off-by: Princess Donut <b238ea756dee4d98afa5883fc7f1de61eeabe65bf700e3a5a5a80db5e42e2c2b@buzz.block.builderlab.xyz>
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
Co-authored-by: Princess Donut <b238ea756dee4d98afa5883fc7f1de61eeabe65bf700e3a5a5a80db5e42e2c2b@buzz.block.builderlab.xyz>
Signed-off-by: Princess Donut <b238ea756dee4d98afa5883fc7f1de61eeabe65bf700e3a5a5a80db5e42e2c2b@buzz.block.builderlab.xyz>
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
Co-authored-by: Princess Donut <b238ea756dee4d98afa5883fc7f1de61eeabe65bf700e3a5a5a80db5e42e2c2b@buzz.block.builderlab.xyz>
Signed-off-by: Princess Donut <b238ea756dee4d98afa5883fc7f1de61eeabe65bf700e3a5a5a80db5e42e2c2b@buzz.block.builderlab.xyz>
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
Co-authored-by: Princess Donut <b238ea756dee4d98afa5883fc7f1de61eeabe65bf700e3a5a5a80db5e42e2c2b@buzz.block.builderlab.xyz>
Signed-off-by: Princess Donut <b238ea756dee4d98afa5883fc7f1de61eeabe65bf700e3a5a5a80db5e42e2c2b@buzz.block.builderlab.xyz>
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
…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>
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>
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>
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
@morgmart
morgmart force-pushed the kennylopez-inter-typography-staging branch from 17a4408 to 9117017 Compare August 18, 2026 20:53

@jedwards27 jedwards27 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verdict: APPROVE
Reviewed: 4f9727a4b3d76389f862faa15241e16e2dd36108..91170172eddbdf3a0612e31e2091b6106ab3d408 (exact head 91170172eddbdf3a0612e31e2091b6106ab3d408)
Risk: high — user-visible typography preferences interact with persisted state, cross-window synchronization, keyboard zoom composition, and virtualized conversation layout.

Behavior/contracts traced: preference defaults, preview/cancel/blur behavior, persistence and storage clear, cross-window propagation, keyboard zoom composition, root-versus-virtual typography scaling, density/virtualization behavior, settings accessibility, responsive rendering, and CI/release scope. The series remains focused on the stated preference feature and aligns with VISION.md / TESTING.md. Apparent unrelated files in a raw two-dot comparison are base drift; GitHub's merge topology preserves the base-only script.

Findings: no material blocking or non-blocking findings.

Validation at matching clean head:

  • pnpm typecheck — pass
  • pnpm check — pass (pre-existing/non-material warnings only)
  • cd desktop && pnpm test -- src/shared/lib/conversationDensityPreference.test.mjs src/shared/lib/fontSizePreference.test.mjs — 13/13 pass
  • pnpm build — pass (known chunk/dynamic-import warnings only)
  • pnpm -C desktop build:e2e — pass
  • Playwright app font size and conversation density apply independently — pass
  • base/head whitespace check — pass
  • Applicable Desktop Core, build, smoke, integration, release-candidate, DCO, and guard jobs — pass at this head

Manual evidence: generated default/comfy, compact/larger, and spacious/smaller states were inspected. Controls and selection states were clear; previews matched choices; no clipping, overlap, or obvious accessibility regression was observed. The implementation keeps the actual root at 16px and scales virtual typography rem, avoiding accidental resizing of rem-based geometry.

Residual risk: exhaustive OS/browser assistive-technology coverage was not performed. Any new head invalidates this approval.

— :bot: Jude’s code review agent

@wesbillman wesbillman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Carl, an automated reviewer, commenting via Wes’s GitHub account.

Royal Court verdict: APPROVE

Reviewed exact head 91170172eddbdf3a0612e31e2091b6106ab3d408 against merge base 50a71137e6f1c56f66e2f7348a917b2d2a1798f0. The Court found no material code, product, accessibility, persistence, or integration defects. This verdict expires if HEAD moves.

The prior cross-window reset blocker remains closed. useWebviewZoomShortcuts handles matching buzz:text-scale storage changes and full clears, reloads the persisted/default factor, updates zoomFactorRef, and reapplies composed typography. The two-window regression exercises Larger + 1.5x, peer localStorage.clear(), reset to Default/16px, and the next decrement from 1.0 to 0.9/14.4px.

Font size changes the virtual typography rem without resizing rem-based layout geometry; conversation density independently owns spacing. Persisted preferences normalize invalid values, initialize before React, and synchronize matching-key and full-clear events. The shared segmented control retains native buttons, named fieldset semantics, committed aria-pressed state during preview, focus-visible and reduced-motion behavior, and scrub cancellation on pointer loss, blur, and unmount. The rebased diff preserves the timeline-virtualization compatibility fix and the updated AGENTS.md typography contract.

Validation at this exact clean head: git diff --check passed. All applicable GitHub checks are successful, including Desktop Core/build, four smoke shards, two integration shards, Desktop E2E relay, release candidate, DCO, and guards. Existing exact-head evidence also reports typecheck/check/build, 13/13 focused preference tests, E2E build, and the focused appearance workflow. I did not duplicate CI-equivalent suites locally.

Tests changed substantially because behavior changed: preference unit coverage, appearance interaction and geometry coverage, real conversation surfaces, virtualization compatibility, and the two-window zoom/full-clear regression were added or updated.

Residual risk is native Tauri/VoiceOver and OS-delivered shortcut behavior, which was not independently exercised beyond renderer/E2E coverage. The affected state transitions are renderer-side and causally covered, so this is not a merge blocker.

@wesbillman wesbillman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Re-review of exact head 91170172eddbdf3a0612e31e2091b6106ab3d408: clear; no material findings.

I independently compared the rebased 19-commit series against the previously approved head 17a440888ec308cac81d58e99b52f1c961047e30. The corrective cross-window keyboard-zoom commit has an identical stable patch ID, the PR aggregate has the same changed-file set, and the AGENTS.md conflict resolution preserves the intended 13/14/15px text-message contract while retaining the newer base guidance. I found no semantic regression introduced by the rebase.

I also rechecked the storage-event path behind the prior finding: matching buzz:text-scale changes and full storage clears update both rendered typography and the shortcut multiplier ref, and the causal two-window regression remains present. Exact-head required CI is green. Per strict review-channel policy, this verdict is source/diff + CI evidence only; I did not rerun runtime validation.

@wesbillman
wesbillman merged commit 7e26517 into main Aug 18, 2026
24 checks passed
@wesbillman
wesbillman deleted the kennylopez-inter-typography-staging branch August 18, 2026 22:24
jedwards27 pushed a commit to jedwards27/buzz that referenced this pull request Aug 18, 2026
* origin/main: (43 commits)
  perf(desktop): parallelize relay agent directory rebuild (block#6258)
  Refine the mobile emoji picker (block#5853)
  fix(desktop): exclude archived agents from nest, order regeneration (block#5905)
  Add font size and conversation density preferences (block#5644)
  fix(desktop): emit camelCase config-write payload fields (block#6062)
  fix(desktop): downscale large avatars for agent-share PNG body (block#6260)
  fix(desktop): preserve early relay auth challenges (block#3320)
  Polish mobile message actions (block#5873)
  Refine mobile pairing confirmation (block#6018)
  chore(scripts): add buzz-adopt-prod-agents.sh (block#6250)
  feat(managed-agents): close five Claude Code agent-config gaps (block#4557)
  chore(hooks): keep mobile analysis out of pre-commit (block#6236)
  fix(shared-ui): delay hover disclosures by default (block#5821)
  fix(desktop-chrome): preserve balanced layout when sidebar collapses (block#6000)
  Polish mobile timeline navigation (block#5874)
  chore(release): release Buzz Desktop version 0.5.17 (block#6234)
  fix(prompt): simplify pickup follow-through (block#6186)
  fix(mcp): scope todo usage (block#6216)
  fix(desktop): bound remote agent mention authorization (block#6224)
  fix: bump h2 for RUSTSEC-2026-0258 (block#6222)
  ...

Signed-off-by: Princess Donut <3cb959c7eb65d61f634e61df318e450f18f82fa0e01849e7010b82666ead0587@buzz.block.builderlab.xyz>

# Conflicts:
#	desktop/src/main.tsx
#	mobile/ios/Podfile.lock
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants