The dashboard becomes much easier to operate once sessions, threads, previews, and annotations resolve into stable project identities with names and emoji.
Projects are the dashboard’s way of grouping sessions, threads, previews, and annotations by repository or workspace identity.
Where projects show up
- home page carousel on
/ - full registry on
/projects - scoped session view on
/projects/[name] - search results and thread metadata across the app
Current product behavior
The home page renders projects as a horizontally scrollable three-row grid of project tiles. The first tile is a dotted CTA that opens the add-project overlay.
apps/app/src/app/page.tsx
The registry page supports activity-aware sorting, list and grid views, status tabs, and an add-project entrypoint in the toolbar.
apps/app/src/app/projects/page.tsx
The detail page focuses on sessions for a project and opens transcript or trace fallback when a session row is selected.
apps/app/src/app/projects/[name]/page.tsx
Data model
| Function | Purpose |
|---|---|
agentSystem.projects.list | Read canonical projects for dashboard rendering |
agentSystem.projects.create | Create a project from the web UI |
sync.projects.upsert | Upsert project records during sync flows |
Source files:
-
packages/backend/convex/agentSystem/projects.ts -
packages/backend/convex/sync/projects.ts -
apps/app/src/components/add-project-overlay.tsx
Operator guidance
Use projects when you want stable grouping by repo or workspace. Sessions without project metadata can still exist, but the dashboard becomes much more legible once local state is synced with project names and emoji.