-
由 Will Chen 提交于
<!-- This is an auto-generated description by cubic. --> ## Summary by cubic Adds Supabase database branch selection per app, with a new schema field and UI to choose a branch after connecting a project. Resets branch when changing or disconnecting the project to keep state consistent. - **New Features** - Added apps.supabase_branch_id column. - Branch dropdown in SupabaseConnector shown after a project is connected; selection persists and triggers app refresh. - New state and hooks: supabaseBranchesAtom, loadBranches(projectId), setAppBranch(branchId). - IPC endpoints: supabase:list-branches and supabase:set-app-branch; setting/unsetting project also clears the branch. - **Migration** - Apply drizzle migration 0013_supabase_branch.sql to add the supabase_branch_id column (defaults to null). <!-- End of auto-generated description by cubic. --> <!-- CURSOR_SUMMARY --> --- > [!NOTE] > Adds Supabase database branch selection per app, including parent project tracking, new IPC endpoints, UI dropdown, and an accompanying DB migration with e2e tests. > > - **Database**: > - Add `apps.supabase_parent_project_id` via migration `drizzle/0015_complete_old_lace.sql`; snapshot and journal updated. > - **IPC/Main**: > - New `supabase:list-branches` handler and management client `listSupabaseBranches` (real API + test stubs). > - Update `supabase:set-app-project` to accept `{ projectId, parentProjectId?, appId }`; unset clears both IDs. > - `get-app` resolves `supabaseProjectName` using `supabase_parent_project_id` when present. > - **Types & Client**: > - Add `SupabaseBranch`, `SetSupabaseAppProjectParams`, and `App.supabaseParentProjectId`; expose `listSupabaseBranches` and updated `setSupabaseAppProject` in `ipc_client` and preload whitelist. > - **UI/Hooks**: > - Supabase UI: branch dropdown in `SupabaseConnector` with `loadBranches`, selection persists via updated `setAppProject`. > - State: add `supabaseBranchesAtom`; `useSupabase` gets `branches`, `loadBranches`, new param shape for `setAppProject`. > - TokenBar/ChatInput: add `data-testid` for token bar and toggle. > - **Supabase Context (tests)**: > - Test build returns large context for `test-branch-project-id` to validate branch selection. > - **E2E Tests**: > - Add `supabase_branch.spec.ts` and snapshot verifying branch selection affects token usage. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 33054278db8396b4371ed6e8224105cb5684b7ac. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->