Activity-aware duration tracking. The governor now distinguishes "terminal open" from "human working" by detecting idle gaps between tool calls.
Added
IdleGapdataclass for recording detected idle periodsactive_session_minutes()andactive_mode_minutes()onVibeSession— elapsed minus idle timetotal_idle_minutes()for total detected idle timeactivity.idle_threshold_minutesconfig setting (default: 30)away Xh detectedline invibe_check()output when idle time existsactive_duration_minutesandidle_gapsfields in session export_version.pyas single source of truth for package versionEXPORT_SCHEMA_VERSIONconstant insession.pyCHANGELOG.md, retro-filled from commit history- Git tags for all releases (
v0.1.0,v0.2.0,v0.3.0) - 26 new tests (116 total)
Changed
- Governor evaluates rules against active durations, not raw elapsed time
vibe_check()and status line display active durationstime_in_mode_summary()subtracts idle gaps per mode span- Export schema version:
0.2.0→0.3.0
Fixed
- Overnight/idle terminal no longer triggers false "step away" nudge