Activity
Workspace-wide and project-scoped activity feeds — AI runs, stage transitions, commits, sessions, deploys.
Studio has two activity feeds: a workspace-wide rollup at /activity, and a project-scoped one at /p/<id>/activity. Both share the same event model; the project feed just filters by project.
Workspace activity (/activity)
Cross-project rollup of every event in the workspace — deploys, AI runs, edits, sessions, comments, member changes. Empty state: "No activity yet — your first deploy will land here." Once events exist they're grouped by day and ordered newest-first.
Project activity (/p/<id>/activity)
Same event types, scoped to one project. Header text: "AI runs, stage transitions, and commits on the bound repo — scoped to project name. Last 50 events."
Filters at the top:
- Anyone — filter by who triggered the event.
- Type — filter by event category.
- Export CSV — download the visible rows.
Event types
Each row links to its source where applicable (a deploy row opens the commit on GitHub; a session row jumps back into Studio at that file).
- AI runs — every chat turn, migration plan run, project-brief plan run, and edit-existing AI call. Records the surface (Studio chat / New project planner / Migration plan / Edit Existing), the model used, and the spend.
- Stage transitions — instances moving between environments (Dev → Staging → UAT → Prod) via the Promote action.
- Commits — every push to the bound GitHub repo, whether from Studio Deploy or directly from GitHub.
- Deploys — CloudShell deploy jobs with success / failure status.
- Sessions — when a member opened the project in Studio, with files modified during the session.
- Comments — chat threads on patches or pages.
- Members — additions, role changes, removals.
- Rollbacks — when a previous deploy was redeployed.
Where this lives in code
app/activity/page.tsx— workspace rollup.app/p/[id]/activity/page.tsx— project-scoped feed.