fix(sessionize): split app_ledger sessions on app switch - #45
Open
praneshnikhar wants to merge 2 commits into
Open
fix(sessionize): split app_ledger sessions on app switch#45praneshnikhar wants to merge 2 commits into
praneshnikhar wants to merge 2 commits into
Conversation
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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_durper device stream. Whenf.appchanges (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.