Hive Hive
Sign in

fix(server, noora): truncate long table text-and-description cells by default

GitHub issue · Closed

Metadata
Source
tuist/tuist #11492
Updated
Jul 5, 2026
Domains
Kura
Details

Reported in Slack: the tables on Module Cache → Generations and Module Cache → Cache Runs look “all messed up” for projects with very long target lists.

What changed

Truncation is now the default for Noora’s text_and_description_cell:

  • New truncate attr (default true, opt out with truncate={false}) renders data-truncate on the cell.
  • The cell’s column is capped at 30rem and the label + description are clipped with an ellipsis.

Why

The first column of both tables renders the full tuist generate … command via text_and_description_cell. Unlike text_cell, that cell had no truncation, and the table is min-width: max-content — so a command with dozens of target arguments sized the column to the entire string and pushed every other column (Hit rate, Status, Branch, Ran at…) off-screen.

Rather than patch only those two columns, the fix makes truncation the default so the same blow-up can’t recur on any other table that uses this cell (~20 usages: previews, bundles, members, build runs, flaky/quarantined tests, etc.). The cap lives on the column rather than the label, so a long description can’t widen the column either.

Short labels never reach the cap, so typical cells are visually unchanged — only unbounded values get clipped.

Why this over the alternatives

  • Server-side string truncation would lose information, pick an arbitrary character cutoff, and wouldn’t fix the underlying CSS issue (a different long column would still overflow). CSS clipping keeps the full text in the DOM and the full command on the run detail page.
  • Opt-in per column (the first iteration) fixed only the reported pages; making it the default prevents recurrence elsewhere, which was the explicit ask.

Developer impact

Any table cell that genuinely needs to grow can opt out with truncate={false}.

How to test locally

  1. Open a project with generate/cache runs that have many target arguments, e.g. /<account>/<project>/module-cache/generate-runs.
  2. The Command column now clips with an ellipsis and the remaining columns stay visible; horizontal scroll still works for the rest of the row.

Validation

  • TDD regression tests on the generate-runs and cache-runs LiveViews render a run with 40 target arguments and assert the command cell truncates — confirmed red before the change, green after.
  • mix test across generate-runs, cache-runs, previews, bundles, and members LiveViews: 43 tests, 0 failures (the new default attribute breaks nothing).
  • Verified the layout in a standalone repro of the real table markup + CSS: long label clips with an ellipsis, a long description is capped too, and a short/typical cell is unchanged.

🤖 Generated with Claude Code

Flights

Investigate, reproduce, or fix this item in an isolated repository. Each Flight preserves its outcome and agent session.

New Flights are paused Configure model inference, GitHub, and a sandbox provider to start another Flight. Existing results remain available below.
No Flights yet

Start a Flight and preserve its objective, outcome, and session here.

Comments

No GitHub comments yet.