镜像站点 · 本页由第三方 GitHub 只读镜像提供,非 GitHub 官方站点,不接受任何登录或凭据输入。前往 github.com
Skip to content

Polish message bubbles, thread layout, and reactions - #1191

Closed
mahanti wants to merge 4 commits into
mainfrom
codex/am-1014-message-polish
Closed

mahanti wants to merge 4 commits into
mainfrom
codex/am-1014-message-polish

Conversation

@mahanti

@mahanti mahanti commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

Split into five smaller draft PRs: #1218 (layout), #1219 (reactions), #1220 (attachments), #1221 (delivery), and #1222 (agent activity). Review and merge the split PRs instead of this combined PR. This original PR and branch are retained as the reference. The split branches merge cleanly and reproduce this PR's production changes exactly.

Polish message bubbles, reactions, and agent activity

Channels, DMs, personal chats, and split threads now use a centered conversation column, with your messages on the right and other people/agents on the left. Message metadata, media, reactions, typing, and thread summaries follow their bubble.

  • Use one 60ch reading-width ceiling with content-hugging short messages and responsive opposite-speaker gutters. Remove the character-count cutoff and conflicting inner text cap; use capsule corners for single-line messages and tighter list/image spacing.
  • Tune received surfaces, thread connectors and image outlines. Leave large emoji-only, table-only and diff-only messages without an outer bubble. Use the selected bubble color for return highlights and subtle hover feedback.
  • Reveal the reaction toolbar with a restrained 75ms fade, 2px slide, 0.98 scale, 0.5px blur and small spacing expansion. Preserve keyboard/reduced-motion behavior and stabilize the add-reaction icon.
  • Combine thread participants and agent activity in the existing reply summary. Working and failed agents have separate badges; failures show a red warning/count and individual details. A failed root request no longer hides another agent working in a reply. Agent-audience rows retain disclosure, actions, ownership alignment and bounded previews; protocol semantics are unchanged.
  • Simplify workflow attribution, share file-type artwork across composer/file cards, and use compact retry actions with accessible error tooltips.

The temporary interactive playground, media and server were removed at the user's request. The pre-existing gallery remains, with production layout/tooltip regression coverage. No screenshots, recordings, credentials or raw session data are committed.

Review and validation

Integrated main 61bf4ed03 into head f3ad52e8b; preserved its attachment lifecycle, reaction-state attributes and toolbar layout optimizations. Main contains the equivalent native menu-label startup fix, so no separate native fix remains in the final PR diff.

  • Independent review: mixed failure/thread-work blocker fixed and covered; merged UI reviewed with no remaining concrete blockers.
  • Integrated TypeScript and six affected component files: 313 tests passed.
  • Earlier focused activity/composition/files suite: 228 passed; design suite: 164 passed. Batch lint/design/type checks passed before merge; final mandatory push hooks provide integrated checks.
  • Final merged browser checks: 24 passed across Chromium/WebKit (activity, toolbar layout, and gallery polish). Mandatory push hooks passed: types/related unit tests, design system, Rust Clippy and org check.
  • Screenshots were inspected in light/dark fixture states and saved locally, not uploaded as GitHub attachments. They depict the now-removed interactive fixture and are historical evidence only.

Test scope

The retained gallery case checks real CSS surfaces, avatar stacking, and pointer/keyboard retry tooltip behavior (Chromium/WebKit). Existing activity journeys cover host/plugin composition, profile navigation, independent state and responsive geometry. Exact assertions now reflect 16px mini avatars and 28px activity controls. No tolerances, retries or safety assertions were relaxed. The two interactive playground cases were removed with that temporary feature; its production rendering case was moved to message-gallery-polish.spec.mjs and passed in both engines. Earlier bubble/toolbar coverage adds browser-only geometry/disclosure/placement checks; component tests own activity lifecycle permutations.

Remaining acceptance

Keep draft: final native window lifecycle, configured identity/community rendering and explicit human acceptance remain incomplete. The dev build was restarted after missing optimized dependencies and reconnected to the community, but that is not proof the intermittent window disappearance is resolved. Do not add buzz-review-completed yet.

Signed-off-by: Arjun Mahanti <arjun@squareup.com>
Signed-off-by: Arjun Mahanti <arjun@squareup.com>
Signed-off-by: Arjun Mahanti <arjun@squareup.com>
Signed-off-by: Arjun Mahanti <arjun@squareup.com>
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.

1 participant