Public: anyone can read this; the crew can change it.
The home figures share one formatting module, wrap on a phone, and say the live version once #2910
Check · Review · Land · Live done — Landed and live in production.
The note under each of Home's figures now wraps onto a second line instead of being cut off with an ellipsis. Before, `.kpi-note` was forced onto one line, so "No check finished in 24 h" got cut short on a 360px phone. Now it uses `line-height: 20px`, is capped at two lines, and breaks long words if it has to. The tile's grid rows go from `20px 32px 20px 24px` to `20px 32px 40px 24px`, so the seco…
shipped production is serving it deploy aa26afa
The note under each of Home's figures now wraps onto a second line instead of being cut off with an ellipsis. Before, .kpi-note was forced onto one line, so "No check finished in 24 h" got cut short on a 360px phone. Now it uses line-height: 20px, is capped at two lines, and breaks long words if it has to. The tile's grid rows go from 20px 32px 20px 24px to 20px 32px 40px 24px, so the second line has room from the first paint and nothing shifts when a note wraps (src/web/studio/feed_style.ts). The new test in test/home-kpi-row.test.ts checks the note rule and the tile's row heights, and it fails against the old CSS. I haven't seen it at 360px in a browser; the test checks the CSS rules, not a rendered page.
The rest of the issue was already on main before this pull:
- Formatting module:
checkTime,sparkTextandkpiLineslive insrc/flow/kpi_words.ts, and the terminal's dashboard gets them from there (cdede41f). - Live version once: Home shows either the figures row or the
liveLine, never both (src/web/studio/home.ts:249). - Comment placement: the row's comment in
feed_style.tsalready sits above.kpis, with "Your apps" above its own rule. - README: the paragraph on what Home shows first, and where the terminal shows it, is there (b4e86bad).
I didn't touch the other src/web/ imports in src/tui/screens/dashboard.ts (agentsLine, askLinesFor, putAsideWaves). They were there before #2871 and the issue is about the figures, but they still go against the "no longer imports from src/web/" line taken literally, and moving them is a follow-up of its own.
To try it: sign in as a site admin, open / at 360px wide on a forge with no finished checks, and the third tile reads "No check finished in 24 h" in full. bun test test/home-kpi-row.test.ts test/home-kpis.test.ts test/studio-words.test.ts test/design-lint.test.ts passes (33 tests), and so does the type check, run as node_modules/.bin/tsc --noEmit because bun x couldn't write to its temp directory in this sandbox.
🤖 Generated with Claude Code
The note under each Home figure now wraps into two reserved lines, so a 360px phone shows "No check finished in 24 h" in full, and the tile height is fixed (20/32/40/24), so first paint doesn't shift. The change is CSS only, with no new dependency. The tile's title and aria-label still carry the whole text, and it all works with JavaScript off. The new test pins the rule and the row heights. The other items in the issue were already on main, as the pull says.
Limits of this review: the sandbox blocked the preview host and the screenshot directory, so I did not see it rendered at 360px. Mason also hasn't seen it in a browser, and the test only checks CSS text.
Two things I would do next:
- Update docs/DESIGN.md ("Truncation is honest: one line, ellipsis") to say a figure note may clamp at two lines, so the code and the doc agree.
- Look at the third tile at 360px, in both Chrome and Firefox, and add a rendered check to the looks. Also consider
text-wrap: prettyon.kpi-note, so a short last word doesn't sit alone on the second line.
The note under each of Home's figures now wraps onto a second line instead of being cut off with an ellipsis. Before,
.kpi-notewas forced onto one line, so "No check finished in 24 h" got cut short on a 360px phone. Now it usesline-height: 20px, is capped at two lines, and breaks long words if it has to. The tile's grid rows go from20px 32px 20px 24pxto20px 32px 40px 24px, so the second line has room from the first paint and nothing shifts when a note wraps (src/web/studio/feed_style.ts). The new test intest/home-kpi-row.test.tschecks the note rule and the tile's row heights, and it fails against the old CSS. I haven't seen it at 360px in a browser; the test checks the CSS rules, not a rendered page.The rest of the issue was already on
mainbefore this pull:checkTime,sparkTextandkpiLineslive insrc/flow/kpi_words.ts, and the terminal's dashboard gets them from there (cdede41f).liveLine, never both (src/web/studio/home.ts:249).feed_style.tsalready sits above.kpis, with "Your apps" above its own rule.I didn't touch the other
src/web/imports insrc/tui/screens/dashboard.ts(agentsLine,askLinesFor,putAsideWaves). They were there before #2871 and the issue is about the figures, but they still go against the "no longer imports fromsrc/web/" line taken literally, and moving them is a follow-up of its own.To try it: sign in as a site admin, open
/at 360px wide on a forge with no finished checks, and the third tile reads "No check finished in 24 h" in full.bun test test/home-kpi-row.test.ts test/home-kpis.test.ts test/studio-words.test.ts test/design-lint.test.tspasses (33 tests), and so does the type check, run asnode_modules/.bin/tsc --noEmitbecausebun xcouldn't write to its temp directory in this sandbox.🤖 Generated with Claude Code
Closes #2881