Skip to content
Permalink

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: aec142d
Choose a base ref
...
head repository: codetime-dev/codetime-web
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: b9c0378
Choose a head ref
  • 16 commits
  • 86 files changed
  • 3 contributors

Commits on May 18, 2026

  1. 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>
    Jannchie and claude committed May 18, 2026
    Configuration menu
    Copy the full SHA
    f085842 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    47d994b View commit details
    Browse the repository at this point in the history
  3. 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>
    Jannchie and claude committed May 18, 2026
    Configuration menu
    Copy the full SHA
    a1cb9be View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    5ebb29c View commit details
    Browse the repository at this point in the history

Commits on May 19, 2026

  1. Configuration menu
    Copy the full SHA
    d617ce9 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    358f895 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    4643780 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    d937bf9 View commit details
    Browse the repository at this point in the history

Commits on May 21, 2026

  1. Configuration menu
    Copy the full SHA
    91d9363 View commit details
    Browse the repository at this point in the history

Commits on May 22, 2026

  1. Configuration menu
    Copy the full SHA
    bd7425b View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    3d13a22 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    521692d View commit details
    Browse the repository at this point in the history

Commits on May 27, 2026

  1. 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).
    Jannchie committed May 27, 2026
    Configuration menu
    Copy the full SHA
    e4efa1b View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    8a51596 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    317208a View commit details
    Browse the repository at this point in the history
  4. 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>
    Jannchie and claude committed May 27, 2026
    Configuration menu
    Copy the full SHA
    b9c0378 View commit details
    Browse the repository at this point in the history
Loading