Skip to content

fix(chat): polish queued messages as an integrated composer tray - #3776

Merged
bobleer merged 3 commits into
GCWing:mainfrom
bobleer:bob/polish-message-queue
Nov 6, 2026
Merged

bobleer merged 3 commits into
GCWing:mainfrom
bobleer:bob/polish-message-queue

Conversation

@bobleer

@bobleer bobleer commented Nov 6, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Queued messages previously appeared as a separate gray card with a prominent heading and repeated icon actions. Present both host and legacy queues as a softly outlined tray joined to the composer: brighter message text, a leading queue marker, and always-visible Send now, remove and more actions. Expanded queues omit the heading; editing, collapse and host help live in the row menu. Narrow trays shorten Send now to its icon while retaining the accessible label and tooltip.

Type and Areas

Type: UI/UX and bug fix

Areas: Web UI and shared design-system composer components

Motivation / Impact

  • Share queue anatomy, semantic colors and controls across host and legacy paths, with four standard rows before scrolling and larger touch targets.
  • Preserve full draft editing and send/cancel guards. Row menus support keyboard dismissal and focus return; collapsing moves focus to the disclosure, and expanding returns it to the first preview.
  • Keep blocked, failed and unconfirmed messages actionable in a recovery list when ordinary messages are collapsed. The controlled list's visibility agrees with aria-expanded.
  • Make truncated previews readable by keyboard without starting an edit. Retried messages display their current sending state instead of a stale failure label.
  • Update English, Simplified Chinese and Traditional Chinese queue copy without adding color literals or raising governance baselines.

Verification

Passed locally:

  • pnpm run check:web — type-check, typography, appearance, theme color and visual contracts
  • pnpm run i18n:audit; pnpm run motion:audit — motion inventory reviewed
  • Focused Web UI suite: host/legacy queues, pending draft and attachment presentation, queue timeline ownership, menu composition, icon integration and startup preload — 58 tests
  • node --test design-system/packages/ui/tests/*.test.mjs after package build — 351 tests
  • node --test src/mobile-web/tests/host-dialog-queue.test.mjs — 17 host/outbox contract tests
  • pnpm --dir src/web-ui run icons:check; focused ESLint on changed queue components and hook; git diff --check

Focused queue verification commands are documented in the owning guides. Queue tests use real shared UI components, including portalled menus, rather than mocking their interactions.

Reviewer Notes

Pre-edit local-history review found df4e7907b6 already compacted the host panel; the shared queue still painted a separate background inside the context tray. This builds on that implementation.

Queue transport, persistence and capability negotiation are unchanged. Tests exercise local DOM behavior, a simulated Peer surface switch and simulated host/outbox recovery. Live SSH, Remote Control, Peer Device and Detached Dispatch were not exercised. Native visual fidelity, light/dark appearance and physical touch behavior have not been manually verified.

The broader design-system:test suite has two existing GenOfficeFile catalog expectation failures in flow-chat-presentation, reproduced in the unchanged primary checkout. They are outside this change; the shared UI package tests pass.

Checklist

  • This PR is focused and does not include secrets, temporary prompts, generated scratch files, or unrelated artifacts.
  • Relevant verification is recorded above, or skipped checks are explained.
  • User-facing strings, docs, and locales are updated where applicable.

@bobleer bobleer changed the title fix(chat): refine queued message UI and recovery controls fix(chat): polish queued messages as an integrated composer tray Nov 6, 2026
@bobleer
bobleer merged commit 3eecba9 into GCWing:main Nov 6, 2026
9 checks passed
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