Product

Projects

Project registry behavior in the home carousel, projects index, and project detail surface

Use projects for legibility

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

Home surface

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

Projects index

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

Project detail

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

FunctionPurpose
agentSystem.projects.listRead canonical projects for dashboard rendering
agentSystem.projects.createCreate a project from the web UI
sync.projects.upsertUpsert 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.