AKS card — Jobs roster collapses to a single-line row¶
Motivation¶
The AKS card's Jobs roster rendered each job over two visual lines: a title row on top and a chip row (program · db · query) below, with a stacked time block (age over duration) on the right. The density was hard to scan at a glance — every entry felt like a card instead of a row.
User asked for a single-line format that reads left-to-right like a log line:
blastn | 16S_ribosomal_RNA | 20260527-0839 E. coli 16S rRNA - NR_024570.1 | FAILED | 1h 1m(age) | 1h 0m(duration)
User-facing change¶
web/src/components/cards/ClusterPulse/JobLine.tsxrow geometry is now a single horizontal line:- Identity cell:
{program} | {db} | {title}inline (mono font, accent-coloured program, primary-coloured db, bold title). Onlytitleellipses; program and db keep their width. - Time cell: horizontal
{age}(age) | {duration}(duration)with theagosuffix stripped from the age label so it reads as a span, not a tense. - The standalone query chip is dropped — the title already encodes the
query in every observed payload (
fallbackJobTitlealways glues query into the title whenjob_titleis absent), so the chip was duplicative. - Grid template
timecolumn widened from104px→160px(with / without user variant), with no other layout shifts. Identity cell height reduced from ~32 px (two stacked lines) to ~22 px (one line), letting more jobs fit into the roster's max-height before the "More jobs +N" affordance appears. - Mobile layout (≤ 480 px breakpoint in
dashboard-layout.css) is unaffected — the existing.pulse-job-rowmobile override still stacks identity / status / time onto separate lines.
API / IaC diff summary¶
None. Pure presentation change inside one component file.
Validation evidence¶
cd web && npx tsc --noEmit— clean.cd web && npx eslint src/components/cards/ClusterPulse/JobLine.tsx— clean.cd web && npm test -- --run— 363 tests pass, 50 files. No test mutations needed; no test asserts the JobLine row's stacked geometry (the onlypulse-job-*references live intheme/dashboard-layout.cssand stay intact).- Diff scope: 1 file (
JobLine.tsx), +81 / −78 lines. The unusedChipMono/ChipTonehelpers +prettifyQueryLabelimport were removed;PipeSep+stripAgoSuffixadded.prettifyQueryLabelitself stays exported fromhelpers.tsbecause it has no other consumer to clean up safely in this change.