SIGN IN SIGN UP

feat(app): the runner detail page speaks product — checks, icons, plain filters

"Run self-test" is now "Run checks", answering the ALL CHECKS PASSED verdict it
requests with the same word; the panel heading and pending label follow. Every
header action carries a leading glyph, and the two that do not operate yet —
Cordon and Drain — render disabled with their reason instead of opening a
confirm for a PATCH that will not serve them. The handlers stay wired (RULE
NDC): the disabled attribute is what keeps the dialog closed.

The lease filter drops its noun: the label reads "Filter", the button "Apply"
(with the glyph), and the tokenizer now reads the bare word "and" as the
connective the hint already prints — skipped, never a filter, while `and:x`
stays an unknown-key drop.

The tables adopt the vocabulary the shared events list already uses: Time and
Duration, not When and Took — the runner page was the app's only outlier. The
checks panel's relative stamp regains the primitive's hover tooltip, so the
absolute instant is one hover away instead of a full-page refresh away.

Two new affordances: a refresh action re-reads the page on the operator's
click — chosen over polling, the platform admin decides when the page is
stale — and a learn-more beside the states chip lands on the published runners
page section explaining exactly the vocabulary the chip renders.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
K
Kishore Kumar committed
d3552e3116ff63e178c58440218da30425a273f9
Parent: bc7bf18