Draw the error series terracotta on Home

Failures were slot 1 of a ramp that carries identity by lightness alone, so at
a 2px stroke the line that matters read as one picture with avg and lag. It
takes --brand-secondary now — the same terracotta the brain graph above it
already spends on a flow that cannot run. A palette entry naming a token is
resolved off the chart's element, since a canvas cannot parse var().

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-27 16:15:14 +02:00
co-authored by Claude Opus 5
parent 5da5606f79
commit 530dd3587c
2 changed files with 16 additions and 4 deletions
@@ -102,12 +102,15 @@ function Chart({
plots,
pending,
moment,
palette,
}: {
title: string
labels: string[]
plots: HistoryPoint[][]
pending: boolean
moment: Moment
/** Only where a line means something the ramp has no step for. */
palette?: string[]
}) {
return (
<div
@@ -128,6 +131,7 @@ function Chart({
<UplotChart
labels={labels}
plots={plots}
palette={palette}
empty="Nothing has run yet."
pending={pending}
onCursor={moment.onCursor}
@@ -304,6 +308,11 @@ export function HealthActivity({ range }: { range: Range }) {
]}
pending={seriesPending}
moment={failuresAt}
// Failures are the one line here that is not a measurement of how
// much ran, and five steps of one blue ramp cannot say so — at a
// 2px stroke they read as one picture. Terracotta is what the brain
// graph above already spends on a flow that cannot run.
palette={["--brand-secondary", "3", "5"]}
/>
</section>