- searchGithubRepositories action fetches up to 300 repos via paginated /user/repos, filters by name, upserts results into gitRepositories so createProjectFromRepository works unchanged; token never leaves backend - connectGithub now persists grantedScopesJson from getAccessToken().scopes - listProviderAccounts and list queries return grantedScopesJson - Gear/settings popover on connected GitHub chip shows scopes and triggers linkSocial with expanded scope set [repo, read:org, read:user, user:email] - RepositorySelector merges debounced live search results with synced snapshot - Restored CONVEX_SITE_URL env var (removed in prior commit but still used)
Convex Backend
Convex is the only application API used by web, desktop, and mobile clients. The active backend covers the durable control plane: tenancy, projects, conversation turns, Signals, Work planning (Definition/Design without approval gates), real Runs and Attempts through AgentOS, artifacts/delivery metadata, and Flue persistence.
Domain relations
organizationsandorganizationMembersown tenancy.projectsowns the single v0 Git source;projectContextDocumentsstores repository context.conversations,conversationTurns,conversationMessages, andconversationAttachmentsown chat admission and reactive history.signals,signalConstraints, andsignalSourcespreserve structured intent and exact evidence.works,signalWorkAttachments, andworkEventsown proposed Work and provenance.workDefinitionsandworkQuestionsown versioned outcome contracts and structured questions.designPacketsandworkSlicespreserve versioned implementation intent and executable slice order.workRuns,workAttempts,workAttemptEvents, andresolverDecisionsown bounded real execution and recovery.workArtifactsandworkDeliveriespreserve evidence and delivery metadata without performing Git or sandbox work.
The flue* tables are infrastructure tables required by Flue's persistence contract. They are deliberately separate from the product relations.