Skip to content

bug: starred chats in the Workspace tab overflow menu render with the title pushed to the right #3737

Closed

Description

@vybe

Summary

In the Workspace chat-tab strip, when a starred chat lands in the "N more ▾" overflow menu, its row is laid out wrong: the star glyph sits at the left edge and the chat title is pushed far to the right, so starred rows no longer line up with the unstarred rows above and below them. The shorter the title, the further right it drifts. Rows without a star are fine.

Context

Reported from the live Workspace on the 1.0 rc line (dev @ e4e739f7): a "31 more" menu with two starred chats, both rendered with the title offset to the right while every other row was left-aligned. The glyph itself was introduced with the starred-tab support in OverflowTabs.vue (#3358); the inline tab row renders it correctly, only the dropdown row is affected.

The menu row's button is a flex … justify-between container so that a trailing badge or activity dot sits at the right edge. With a leading glyph present, the label is no longer the first flex child, and justify-between distributes the free space between the glyph and the label instead of keeping them together on the left. The same would happen to a pinned tab's bookmark glyph if a pinned tab ever overflowed, so the fix should hold for every leading glyph, not just the star.

Acceptance Criteria

  • A starred chat in the overflow menu renders its star immediately before its title, with the title left-aligned exactly like an unstarred row.
  • A pinned tab in the overflow menu (where the strip allows it) renders its bookmark glyph the same way.
  • Trailing elements (count badge, activity dot, Draft mark, the ent#841 close ×) stay at the right edge of the row; the v-if / v-else-if badge-signal chain keeps its bug(workspace): attachments are dropped when a 1:1 chat is escalated into a room via @mention #2794 ordering.
  • Long starred titles under fixedWidth still clamp with an ellipsis (max-w-[20rem] truncate) and carry the full text in title=.
  • A mount test in src/frontend/tests/unit/ pins the starred-row layout (glyph and label adjacent, label not spread), alongside the existing overflowTabs*.mount.spec.js suite.
  • No change to the inline tab row or the hidden mirror row (the measured width must stay the drawn width).

Technical Notes

  • src/frontend/src/components/OverflowTabs.vue — the dropdown panel (data-overflow-menu) menu-row button and its leading tab.pinned / tab.starred glyphs.
  • Existing tests: src/frontend/tests/unit/overflowTabsClosable.mount.spec.js, overflowTabsBadgeSlot.mount.spec.js, overflowTabsTablist.mount.spec.js.
  • Call site: src/frontend/src/components/portal/PortalConversation.vue passes :starred into the Workspace strip.

Activity

  1. added
    complexity-lowComplexity: low (board points 1-3)
    status-readyGreenlit and ready for development (vetted; counterpart to status-incubating)
    on Oct 14, 2026
  2. vybe commented on Oct 14, 2026

    @vybe
    ContributorAuthor

    Draft PR: #3742 (base dev, tip 3c84390). Review: MERGEABLE, no findings; cso clean. Stays a draft until #3738's stacked PR is reviewed; the two merge together in order.

  3. vybe commented on Oct 14, 2026

    @vybe
    ContributorAuthor

    /validate-pr on #3742: APPROVE (review by trinity-ability 2026-10-14 21:27Z on tip 3c84390; 57/57 targeted tests, fix-reverted spec 7/8 red, CI all green). PR marked ready for review. Merge order: #3742 first, then #3743 (stacked) retargeted to dev.

  4. removed
    status-readyGreenlit and ready for development (vetted; counterpart to status-incubating)
    on Oct 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions