Files
pulse/docs/release-control
rcourtman 043b22de2a Give Alert History messages room to wrap instead of truncating
Alerts > History is where an operator looks back at what happened, and its
table hid the answer. At a 1024px window the card is 600px wide and the Message
column got about 110px, so rows read "Docker servi…" and "Last reading…". Three
action buttons stacked on three lines made every row 75-105px tall, while
Duration, Status and Actions held wide, mostly empty tracks. The row has no
disclosure of its own, so the only way to read the message was to hover.

- Resource and Message now wrap inside a line-clamp-2 wrapper below an 80rem
  card (the wrapper sets whitespace-normal itself, because .table-fixed td
  forces nowrap) and return to a one-line clamp from 80rem, where the message
  track is wide enough and the old 39px row is kept.
- The four density blocks are re-derived from measured natural widths
  ("08:27 AM" in a 14px monospace, the Resource/Severity/Duration headers, a
  119px "acknowledged" badge, three one-line actions at 177px, Type and Node)
  at the narrowest card each density serves. The time column is headed "Time",
  as on the phone card, because "Timestamp" needed 93px.
- Message keeps a two-line minimum height. The windowing hook sizes its
  spacers from one measured row; scrolling a 600-row history in 60px wheel
  steps moved a tracked row exactly the scroll distance with uniform 49px rows
  and showed 46 jumps up to 20px once rows were 39px and 49px.

Measured in a real browser against an unpatched build of the same tree, at nine
windows from 1024px to 2000px with a 12-hour locale: messages ending in an
ellipsis fell from 82 of 88 rows to 24 of 90 at 1024px, 54 to 17 at 1280px, 24
to 8 at 1440px and 32 to 4 at 1700px; the median row fell from 75px to 49px
from 1280px to 1700px; no time cell or header ended in an ellipsis at any
width. The phone card list is untouched, and Timeline and Resource open and
close as before. Cards under 600px stay cramped; a container-driven switch to
the card list is the remaining fix.

Proofs: the row test pins the wrapper classes, Alerts.helpers pins the header
and class constants, App.architecture asserts the pixel minimums per density,
the 18% Message floor and that each block sits inside its 50rem, 64rem or
80rem container query. Putting the base row markup, header, widths or 50rem
switch point back fails the matching proof.
2026-10-11 09:38:13 +01:00
..