Event stepper
Drive one session by hand. Every state value below is computed in ClickHouse by the same predicate the pipeline uses — not in this page — so what you see is the real derivation rather than a second implementation of it.
1 · pick content
load the catalogue first
picking a title mints a new session
2 · advance the clock
The lease is 120.0s, so +130s expires it. A virtual event-time clock rather than wall time means you never wait two minutes to watch an interval close.
3 · send events
lifecycle
playbackmoves `playing` only
visibilitymoves `foreground` only
signalsrenews the lease
classified as livenessneither is a pause
derived state
foreground
—
playing
—
active
—
clock
—
lease until
—
events sent
0
intervals
0
active total
0.0s
intervals
none yet
timeline · state after each event
| event time | event | signal | fg | playing | lease until | active |
|---|---|---|---|---|---|---|
| no events yet | ||||||
Try Start → Play → Background → Pause → Foreground. The session stays inactive after the foreground: it restores visibility but not playback. Then Resume and it flips on. Collapsing those two booleans into one was measured at 38,958 wrong event positions across 98.8% of sessions.
