All checks were successful
deploy / Build api + worker (static musl) (push) Successful in 5m31s
deploy / Deploy moments-worker to frootmig (push) Successful in 20s
deploy / Deploy moments-api to nikola (push) Successful in 25s
deploy / Build prerendered web (push) Successful in 8m48s
deploy / Deploy web to oolon (push) Successful in 27s
The bare /activity route (no timespan modifier) now shows one timeline card per period — each listing the repos touched and the number of changes in each — with a daily/weekly/monthly/yearly bucket selector, so the view answers "where did my time go" at a glance. Each card drills down to the existing per-event view via /activity/from..to, which is unchanged. Backed by a new GET /v1/activity/summary?from&to&bucket&source endpoint: public events only (private repo names never leak), bucketed with date_trunc on the UTC-shifted timestamp, reusing the same per-source repo extraction as /v1/projects. Blog events carry no repo and are excluded. The /activity prerender now bakes the daily summary instead of the event list. On the first deploy the live API won't have the endpoint yet when build-web prerenders; that route degrades to the client-side fallback and self-heals on the daily refresh re-bake. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LY4nbfHC9qt726gVrdAh3X