Skip to content

Finding: a record:highlights chip clips multi-element cell renderers with NO ellipsis (the residue of #5066) #6950

Closed as not planned

Description

@yinlianghui

What this is

Observation-class finding split out while fixing #5066 (objectui PR for the percent renderer). Filed unassigned, no pm:queue — nothing here is known to be hit by a user today, and the one instance that WAS hit is fixed by #5066.

The mechanism #5066 fixed only one instance of

HeaderHighlight (objectui packages/plugin-detail/src/HeaderHighlight.tsx) wraps every cell renderer's output in a single clipping span:

block min-w-0 truncate text-sm font-semibold

truncate is overflow:hidden + text-overflow:ellipsis + whitespace-nowrap. The ellipsis half only draws for text in the block's own inline formatting context. When the renderer returns a block-level flex row instead of text, an overflowing flex item is simply cut — no ellipsis, and nothing in the accessible name. #5066 measured exactly that (79px clip box, 32px text node, 25px overflow, 33% reading as 3), so the "clips silently" half of the mechanism is empirical, not inferred.

#5066 fixes the percent renderer from the renderer side: the number gets shrink priority and the decorative bar shrinks away. It deliberately did not take that issue's third suggested route (make the chip itself tolerant of renderers that are not single-line text, or measure before clipping), so the chip-side mechanism is untouched and still applies to every other multi-element renderer.

Candidates, and how far the analysis actually goes

Class-level reading of packages/fields/src/index.tsx only — no browser measurement, because the container this ran in has no Chromium binary. So treat the list as leads, not verdicts:

  • GeolocationCellRenderer — an inline-flex row: a 14px MapPin plus text like 31.2304, 121.4737 (~110px). In a chip squeezed toward min-w-[7rem] (~72px of content) the tail goes. Because the text sits inside the atomic inline-flex box rather than the chip's own inline context, no partial ellipsis is expected.
  • ColorSwatchCellRenderer — same shape, 14px swatch plus a 7-char hex. Marginal (~64px), probably fits; listed for completeness.
  • The percent renderer's own floor after Console: percent display renderer's fixed-width progress bar clips the value in a record-highlights chip (33% renders as 3) #5066: below roughly 40px of content the bar has collapsed to nothing and the number starts clipping like any other single-line cell. That floor is intrinsic to a self-contained renderer fix — the chip's width is a function of how many chips the record has, so the strip's @container cannot see it.

Renderers whose text carries its own truncate / min-w-0 (lookup, user, file, select-dot — the objectui#3466 family) are NOT affected: the ellipsis draws inside the label.

If someone picks this up

Two shapes, both objectui-only:

  1. Chip-side: stop putting a bare truncate around arbitrary renderer output — e.g. keep the clip but let the renderer opt into its own overflow handling, so a multi-element row is responsible for the ellipsis it can actually draw.
  2. Renderer-side, per renderer: give the value text min-w-0 truncate so it ellipsizes in place (the feat(storage): surface sys_file id on upload-complete — ADR-0104 D3 wave 2 (PR-1) #3466 convention), which is the cheap local version.

Worth deciding once at the chip, rather than re-litigating per renderer as each one turns up in a highlights strip.

Verification note for whoever takes it: a DOM-only probe reports this surface healthy — the DOM always carries the full value. It needs getBoundingClientRect() plus a screenshot, the way #5066 was measured.

Activity

  1. added
    repo:objectuiSeam card: cross-repo ordering with objectui is the substance (pure objectui fixes live in objectui)
    findingRecorded observation — held, not dispatchable until the findings triage round grades it
    on Aug 9, 2026
  2. yinlianghui commented on Aug 9, 2026

    @yinlianghui
    ContributorAuthor

    分诊轮:持有(finding 保留)。最严重实例(percent)已由 objectui#3927 从渲染器侧修掉;残余候选(Geolocation/ColorSwatch、约 40px 下界)是纯 class 级阅读、无浏览器量测,且 chip 侧统一决策 vs 逐渲染器修的取舍未定。待有实测的用户可见实例再晋级。(objectui 分片 PM,session session_01GTRjn8xBqp75dk7kFupVRt)


    Generated by Claude Code

  3. os-zhuang commented on Aug 10, 2026

    @os-zhuang
    Contributor

    Migrated to objectstack-ai/objectui#4054 under #7167 (file-at-destination ruling, maintainer 2026-08-10). Native GitHub issue transfer is not available to this session's credential, so the card was recreated at the destination; this thread stays as the authoritative history and is linked from the new card. Closing as not planned here — moved, not rejected.


    Generated by Claude Code

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

    findingRecorded observation — held, not dispatchable until the findings triage round grades itrepo:objectuiSeam card: cross-repo ordering with objectui is the substance (pure objectui fixes live in objectui)

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions