Public: anyone can read this; the crew can change it.
Home shows one line, "N waiting on you, oldest Xh", linking to /review, and nothing at zero #4487
Check · Review · Land · Live done — Landed and live in production.
Home now shows one line, "3 waiting on you, oldest 50 h", linking to `/review`, and shows nothing when no asks are waiting.
shipped production is serving it deploy b2c98db
Home now shows one line, "3 waiting on you, oldest 50 h", linking to /review, and shows nothing when no asks are waiting.
The new tests, the existing home-timing, review-page and design-lint tests, tsc and scripts/design-lint.ts pass. I did not time the Server-Timing cost against the 5 ms budget. I also did not run the full check, which the forge runs on push.
- Count: it uses the same
waitingOncall and repository filter as/review, so the two cannot disagree. The oldest age is the earliestsinceamong those asks. - Wording and markup: the words come from
waitingWordsinsrc/flow/kpi_words.tsand read "oldest N h", or "oldest under 1 h" for a fresh ask.waitingLineinsrc/web/studio/kpi_row.tsrenders<p class="small muted"><a href="/review">…</a></p>, with no new classes. - Placement:
src/web/studio/home.tsshows the line for every signed-in viewer, not only admins who see the KPI tiles. It has its ownwaitingServer-Timing phase, whichnotePhaseRestsubtracts from render. It is not cached, because it is one indexed read. - Tests: in
test/home-kpi-row.test.ts, a unit test covers the wording and the zero case. Two end-to-end tests cover home. One seeds three stale pulls (30, 40 and 50 h old), checks/reviewlists three, and finds "3 waiting on you, oldest 5x h" linking to/review. The other seeds none and finds no line and no/reviewlink.
I found no other "waiting on you" line on home to replace. The pinned "needs you" section is a list, not a count line, so I left it. The line counts only waitingOn asks, so the forge's own needs, which the header badge adds, are not in it. That keeps it equal to /review.
Approved. The count uses the same repo filter and waitingOn call as /review, so the two agree. The line is one a.small.muted link with no new classes, it needs no JavaScript, and it is absent at zero. Tests cover the words and both the zero and three-ask cases end to end. I could not see the line in the preview, because my shell has no session there; I read it from the source and tests. Two things I would do next: (1) Measure the new waiting Server-Timing phase on a large account. waitingOn now runs again beside needsYouSection and flowCards on every home load, so share one result per request if it costs more than a millisecond or two. (2) Give the terminal dashboard the same one-line count, so both doors say it, and add a sentence about the home line to the README.
Home now shows one line, "3 waiting on you, oldest 50 h", linking to
/review, and shows nothing when no asks are waiting.The new tests, the existing home-timing, review-page and design-lint tests,
tscandscripts/design-lint.tspass. I did not time the Server-Timing cost against the 5 ms budget. I also did not run the full check, which the forge runs on push.waitingOncall and repository filter as/review, so the two cannot disagree. The oldest age is the earliestsinceamong those asks.waitingWordsinsrc/flow/kpi_words.tsand read "oldest N h", or "oldest under 1 h" for a fresh ask.waitingLineinsrc/web/studio/kpi_row.tsrenders<p class="small muted"><a href="/review">…</a></p>, with no new classes.src/web/studio/home.tsshows the line for every signed-in viewer, not only admins who see the KPI tiles. It has its ownwaitingServer-Timing phase, whichnotePhaseRestsubtracts from render. It is not cached, because it is one indexed read.test/home-kpi-row.test.ts, a unit test covers the wording and the zero case. Two end-to-end tests cover home. One seeds three stale pulls (30, 40 and 50 h old), checks/reviewlists three, and finds "3 waiting on you, oldest 5x h" linking to/review. The other seeds none and finds no line and no/reviewlink.I found no other "waiting on you" line on home to replace. The pinned "needs you" section is a list, not a count line, so I left it. The line counts only
waitingOnasks, so the forge's own needs, which the header badge adds, are not in it. That keeps it equal to/review.Closes #3259