68db2ce649
The time_spent segment rendered Date.now() - sessionStartTime, so an idle session displayed hours of "time spent" while the agent did nothing — the only inputs were wall-clock and the unmoving session start. Replace sessionStartTime with activeMs in SegmentContext and accumulate inside StatusLineComponent across agent_start -> agent_end windows. markActivityStart/markActivityEnd are idempotent (reentrant agent_start events and superseded agent_end events never double-count); the segment ticks live during an open window and freezes when the agent yields. The session-boundary hook drops the now-meaningless wall-clock argument and is renamed setSessionStartTime -> resetActiveTime; it zeroes the accumulator and drops any in-flight window so /clear / fresh-session / joined-collab paths start the meter at zero. Fixes #3681