- Connector: moved from per-entry pseudo-elements to a single
linear-gradient line on the body. Fades in/out 28px at each end
and no longer has gaps at entry boundaries. Dots and the date
rect's solid background sit naturally on top; everything else
stays transparent so the line threads through cleanly.
- Layout: entry is now a 2-row grid. The optional date rect lives
in row 1 (justify-self:start, left-aligned), while the dot-row
and the events column both pin to row 2 so the time label always
lines up with the first event of the cluster — even when a date
rect sits above. Time+dot `align-self: start` keeps them at the
top of the event section instead of vertically centred through
the whole cluster.
- Filters: state.timelineFilter is a Set now, so clicking multiple
workload pills (or the overflow entries) stacks them as an
any-of filter. "all" clears the set. The overflow dropdown stays
open on pick so several can be toggled without reopening it each
time. Scope label shows "filtered · N" with the active count.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>