• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

agama-project / agama / 30260747251
83%

Build:
DEFAULT BRANCH: master
Ran 27 Jul 2026 11:11AM UTC
Jobs 3
Files 1046
Run time 2min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

27 Jul 2026 11:07AM UTC coverage: 83.119% (+0.005%) from 83.114%
30260747251

push

github

web-flow
fix(web): truncate long device names in storage tables (#3745)

## Summary
- Long device names (a multipath WWID, a named md array...) no longer
overflow the 15ch-wide "Device" column in `DrivesTable`,
`VolumeGroupsTable` and `MdRaidsTable`
- Adds `TruncatedDeviceName`, a small component that truncates the name,
keeps the full name reachable for screen reader and mouse users, and
adds zero extra keyboard tab stops

Related to https://trello.com/c/Egc8FPNf (protected link)

## The bug
The "Device" column has always been pinned to a 15ch-wide cell, but the
name itself was never actually truncated to fit it. Short names like
`sda` or `nvme0n1` are fine, but anything longer (a multipath device's
WWID, a named RAID array) just overflows the column with no ellipsis and
no way to see the rest.

## What we tried first: PatternFly's Truncate
PatternFly 6.3 improved its `Truncate` component with a "reactive" mode:
instead of guessing a fixed character count, it measures the actual
column width at runtime (via `ResizeObserver`) and truncates only as
much as needed. That looked like the obvious fit here, so it went in
first.

Two things ruled it out:

1. **A visible rendering gap.** In the middle-truncation mode, PF lays
the leading and trailing text out as two CSS grid columns, and reserves
a hardcoded 6ch minimum width for the leading one. When the actual
(already-clipped) text is shorter than that minimum, the grid track
doesn't shrink to match, leaving a visible empty gap between the
ellipsis and the trailing characters. Confirmed visually, not just in
theory.
2. **It solves a problem we don't have.** The whole point of the
reactive mode is to adapt to a column whose width isn't known ahead of
time. Our "Device" column width is fixed (`15ch`, set inline). We
already know the truncation point before rendering, so paying for a
`ResizeObserver` per cell just to re-derive a number we already have is
wasted work, on top of the rendering bug.

So instead: reuse the... (continued)

4898 of 6835 branches covered (71.66%)

Branch coverage included in aggregate %.

15 of 16 new or added lines in 4 files covered. (93.75%)

25565 of 29815 relevant lines covered (85.75%)

123.79 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
81.82
web/src/components/storage/TruncatedDeviceName.tsx
Subprojects
ID Flag name Job ID Ran Files Coverage
3 web 30260747251.3 27 Jul 2026 11:11AM UTC 727
80.0
GitHub Action Run
1 rust 19474749743.1 18 Nov 2025 05:18PM UTC 185
22.45
GitHub Action Run
3 service 30083641564.3 24 Jul 2026 09:45AM UTC 319
92.41
GitHub Action Run
Source Files on build 30260747251
  • Tree
  • List 1046
  • Changed 7
  • Source Changed 4
  • Coverage Changed 7
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #30260747251
  • 624a0446 on github
  • Prev Build on master (#30255810007)
  • Next Build on master (#30260798705)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc