Repository navigation
feat(messages): add a compact message density - #2547
Conversation
|
@codex review |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 0d5b2f62bf
ℹ️ 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".
Adds Settings → Appearance → Message density with Default and Compact. Default keeps today's bubbles. Compact shows conversations as a flat, left-aligned list across the full width: no bubble surface, the avatar beside the byline that starts each group, reactions and reply summaries aligned with the prose, an even 12px rhythm between groups, and a full-width composer. The choice is device-local appearance like Interface size: the appearance service persists and syncs it, and the pre-paint script applies it as a root attribute so a timeline never renders at the wrong density. MessageRow reads the applied density to move the group avatar and to leave own rows unaligned and unpainted; CSS owns the rest. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: David Leslie <davidleslie@squareup.com>
A compact list puts a group's avatar on its first row, but an agent response preview that continues its author's group still drew its own, so a working agent showed a second avatar beside a byline-less row. Keep that avatar's label for assistive technology and hide it visually; Default keeps the preview's end-of-group avatar. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: David Leslie <davidleslie@squareup.com>
0d5b2f6 to
c8ff33a
Compare
|
Screen shots are available in the buzz thread. Go take a look |
joahg
left a comment
There was a problem hiding this comment.
🤖 Read the density service, pre-paint init, MessageRow and agent-preview changes. Default path is unchanged and the earlier Codex P2 on stacked preview avatars is fixed. The branch has merge conflicts to resolve before landing.
…-service * origin/main: fix(sidebar): highlight collapsed sections with unread channels (#2539) perf(threads): isolate thread rows inside the scroller (#2462) perf(messages): skip the glass on closed message action bars (#2461) perf(threads): measure long-thread scrolling in browsers and the macOS app (#2460) docs(threads): set scrolling requirements and targets for long threads (#2459) fix(composer): seed required recipients in saved briefs (#2667) fix: preserve agent activity ownership and remove Solo composer gap (#2613) feat(agents): open agent card links in Create agent (#2662) Align Bestie messaging with the shared conversation workspace (#2614) feat(messages): add a compact message density (#2547) fix(dialog): limit footer click-through to the gradient gutter (#2545) fix(channels): put the huddle launcher after the other header tools (#2660) feat(drafts-sent): bundle Drafts & sent for everyone (#2644) feat(identity): one Builderlab sign-in, the native NIP-FI session (#2576) fix(agents): let people dismiss connection setup cards (#2631) AIDA-2425: Preserve links beside pasted images (#2520) feat(activity): show reactions to your messages in Activity (#2638) # Conflicts: # docs/identity.md # src-tauri/src/federated_identity/agent/mod.rs # src-tauri/src/federated_identity/mod.rs # src-tauri/src/federated_identity/tests.rs # src/bundled/codex/runtime.ts
Conversations have a lot of whitespace for people who want to scan many messages at once. This adds a Message density choice under Settings → Appearance → Conversations, with Default and Compact.
Default is unchanged.
Compact shows conversations as a flat list:
Text size stays with Interface size. Density only changes layout.
How it works
createAppearancerestores, saves and syncs it across windows, and offers the same "wasn't saved" retry.data-message-densityon the root element.public/appearance-init.jssets the same attribute before paint, so a timeline is never measured at the wrong density.Messages.module.cssare scoped with:where(html[data-message-density="compact"]). Each override keeps the specificity of the default rule it follows.useMessageDensity()reads the applied attribute through one shared observer.MessageRowuses it for the two choices CSS can't make: which row of a group renders the avatar, and turning off viewer alignment and own-bubble state.conversations.message_density(defaultorcompact), so agents can read and change it the same way as the other Appearance settings.docs/buzz-help.mddescribes the setting.🤖 Generated with Claude Code