• Will Chen's avatar
    Support Supabase branches (#1394) · 133ca576
    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 -->
    133ca576
TokenBar.tsx 5.9 KB