-
Notifications
You must be signed in to change notification settings - Fork 8
Permalink
Choose a base ref
{{ refName }}
default
Choose a head ref
{{ refName }}
default
Checking mergeability…
Don’t worry, you can still create the pull request.
Comparing changes
Choose two branches to see what’s changed or to start a new pull request.
If you need to, you can also or
learn more about diff comparisons.
Open a pull request
Create a new pull request by comparing changes across two branches. If you need to, you can also .
Learn more about diff comparisons here.
base repository: codetime-dev/codetime-web
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: main
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
...
head repository: codetime-dev/codetime-web
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: fix/agent-active-time-turn-based
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
- 16 commits
- 86 files changed
- 3 contributors
Commits on May 18, 2026
-
feat(auth): native iOS sign-in for GitHub and Google
GitHub: add /v3/auth/github/native-callback. GitHub OAuth Apps reject custom URL schemes as the Authorization callback URL, so the iOS App sends our https endpoint as redirect_uri; this route runs the existing exchangeGithubCode/upsertGithubUser pipeline and 302s back to codetime://oauth/github?token=…&state=… for ASWebAuthenticationSession to pick up. Google: add POST /v3/auth/google/native (JSON). The iOS App handles Google's /authorize leg locally (iOS-type Google clients allow custom scheme callbacks), then posts the code + PKCE verifier here; we exchange with Google's /token endpoint as a public client — no client_secret — and verify the returned ID token. Requires the new GOOGLE_IOS_CLIENT_ID env var so we don't reuse the web client's audience. Util: exchangeGoogleCode() does the PKCE token exchange; verifyGoogleIdToken now takes an optional expectedAudience override so the iOS client's ID tokens validate against their own audience rather than the web one. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Configuration menu - View commit details
-
Copy full SHA for f085842 - Browse repository at this point
Copy the full SHA f085842View commit details -
Configuration menu - View commit details
-
Copy full SHA for 47d994b - Browse repository at this point
Copy the full SHA 47d994bView commit details -
refactor(auth): native flows return upload_token, not token_v1
token_v1 is the deprecated cookie-only auth field — we shouldn't be handing it to the device. Both native sign-in routes now return the user's upload_token instead; the existing `user_guard` already accepts `Authorization: Bearer <upload_token>` (same path the CLI ingest uses), so no guard change is required. `upsert{Github,Google}User` now return both tokens (callers destructure what they need — web stays on token_v1 for the cookie pair, app picks upload_token). The empty-token mitigation is extended to upload_token so legacy rows that landed with an empty string also self-heal on first sign-in. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>Configuration menu - View commit details
-
Copy full SHA for a1cb9be - Browse repository at this point
Copy the full SHA a1cb9beView commit details -
Configuration menu - View commit details
-
Copy full SHA for 5ebb29c - Browse repository at this point
Copy the full SHA 5ebb29cView commit details
Commits on May 19, 2026
-
Configuration menu - View commit details
-
Copy full SHA for d617ce9 - Browse repository at this point
Copy the full SHA d617ce9View commit details -
Configuration menu - View commit details
-
Copy full SHA for 358f895 - Browse repository at this point
Copy the full SHA 358f895View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4643780 - Browse repository at this point
Copy the full SHA 4643780View commit details -
Configuration menu - View commit details
-
Copy full SHA for d937bf9 - Browse repository at this point
Copy the full SHA d937bf9View commit details
Commits on May 21, 2026
-
Configuration menu - View commit details
-
Copy full SHA for 91d9363 - Browse repository at this point
Copy the full SHA 91d9363View commit details
Commits on May 22, 2026
-
Configuration menu - View commit details
-
Copy full SHA for bd7425b - Browse repository at this point
Copy the full SHA bd7425bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 3d13a22 - Browse repository at this point
Copy the full SHA 3d13a22View commit details -
Configuration menu - View commit details
-
Copy full SHA for 521692d - Browse repository at this point
Copy the full SHA 521692dView commit details
Commits on May 27, 2026
-
docs(agent-dashboard): document since/until/days/tz query params
resolveRange() already honours since/until (custom window), days (rolling) and tz (bucket alignment), but they were missing from the OpenAPI spec so generated clients couldn't reach them. All optional — existing range-based calls are unaffected. Lets a client request an exact calendar-day window (since=start-of-today, until=now, tz).
Configuration menu - View commit details
-
Copy full SHA for e4efa1b - Browse repository at this point
Copy the full SHA e4efa1bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 8a51596 - Browse repository at this point
Copy the full SHA 8a51596View commit details -
Configuration menu - View commit details
-
Copy full SHA for 317208a - Browse repository at this point
Copy the full SHA 317208aView commit details -
fix(agent-dashboard): base active time on per-turn durations
The active-time metrics (total, by-project, by-source) summed agent_sessions.duration_ms, which is the session wall-clock span (first→last event). That counts the idle gaps between turns — reading, AFK — as active time, inflating the totals. Switch the three duration aggregates to sum agent_turns.duration_ms, which excludes between-turn idle. Turns are filtered by last_event_at to mirror the session range filter. Per-source session counts stay on agent_sessions so they aren't multiplied by turn rows. Read-side only: takes effect on next dashboard load, no migration, no CLI change, no re-ingest. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Configuration menu - View commit details
-
Copy full SHA for b9c0378 - Browse repository at this point
Copy the full SHA b9c0378View commit details
Loading
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff main...fix/agent-active-time-turn-based