Skip to content

fix(sessionize): split app_ledger sessions on app switch - #45

Open
praneshnikhar wants to merge 2 commits into
nossa-y:mainfrom
praneshnikhar:fix/issue-36-app-ledger-sessions
Open

fix(sessionize): split app_ledger sessions on app switch#45
praneshnikhar wants to merge 2 commits into
nossa-y:mainfrom
praneshnikhar:fix/issue-36-app-ledger-sessions

Conversation

@praneshnikhar

Copy link
Copy Markdown

Fixes #36.

Bug: app_ledger() used a per-app session-duration dict that never reset when the active app changed. Cursor 10m → Chrome 10m → Cursor 10m within 300s was reported as 1 Cursor session of 20m instead of 2 sessions of 10m.

Fix: Track cur_app / cur_dur per device stream. When f.app changes (or a session gap >300s occurs), finalize the current session and start a new one for the incoming app.

Test: test_app_ledger_splits_on_app_switch — Cursor → Chrome → Cursor within 300s, asserts Cursor has 2 sessions and Chrome has 1.

Verified the test fails on the old code (cursor.sessions == 1) and passes with the fix.

nossa-y and others added 2 commits August 3, 2026 13:57
app_ledger() tracked per-app session durations in a dict but never
reset them when the active app changed. Cursor 10m -> Chrome 10m
-> Cursor 10m within 300s was reported as 1 Cursor session of 20m
instead of 2 sessions of 10m.

Track cur_app/cur_dur per device stream instead. When f.app changes
(or a session gap occurs), finalize the old session and start a new
one for the incoming app.

Adds test_app_ledger_splits_on_app_switch covering the exact scenario.

Closes nossa-y#36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

bug: app_ledger miscounts sessions across app switches

2 participants