Repository navigation
bug: starred chats in the Workspace tab overflow menu render with the title pushed to the right #3737
Description
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-ifbadge-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
fixedWidthstill clamp with an ellipsis (max-w-[20rem] truncate) and carry the full text intitle=. - A mount test in
src/frontend/tests/unit/pins the starred-row layout (glyph and label adjacent, label not spread), alongside the existingoverflowTabs*.mount.spec.jssuite. - 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 leadingtab.pinned/tab.starredglyphs.- 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.vuepasses:starredinto the Workspace strip.
Activity
fix(workspace): keep a starred or pinned chat's title beside its glyp…
vybe commentedon Oct 14, 2026
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.vybe commentedon Oct 14, 2026
/validate-pron #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 todev.fix(workspace): keep a starred or pinned chat's title beside its glyp…
feat(workspace): remove a pending attachment from the composer with a…