How time is measured
Wall-clock time
Attention time: each completed turn becomes an interval
[started − buffer, ended + buffer]; overlapping intervals across all
sessions are merged and the non-overlapping ranges summed.
Five parallel 1-minute sessions = 1 minute wall-clock.
Agent time
Machine effort: the sum of each completed turn's real duration (prompt submitted → response finished).
Five parallel 1-minute sessions = 5 minutes of agent time — summing across parallel sessions is intentional, because it measures what the agents did rather than what you attended to.
Effective duration
Each turn also stores an engaged-time estimate (effective_duration_secs),
combining gap-corrected human think time with agent time:
if gap_to_next_turn < buffer × 2:
effective = gap + agent_duration
else:
effective = buffer + agent_duration + buffer
The default buffer is 5 minutes each side — time budgeted for writing the prompt and reading the response. If you re-prompt within 10 minutes (2 × buffer), the actual gap is used instead.
Effective duration is not currently shown in the headline views (wall-clock and agent time are), but it is stored and included in JSON/CSV exports.
Configure the buffer in ~/.config/suivi/config.toml:
[tracking]
human_buffer_secs = 300 # default: 5 minutes each side
Interrupted turns
If an agent run never produces a Stop event (you interrupted it, or it crashed), the next prompt in the same session closes the turn at that moment, charging the elapsed time.
Implementation detail
suivi hook stop derives the agent duration from the turn's own timestamps
(no agent sends a duration field) and writes the best-guess effective
duration immediately. When suivi hook pre fires for the next prompt in the
same session, it corrects the previous turn's effective duration if the gap
was shorter than 2 × buffer. No background process required.