• 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
名称
最后提交
最后更新
..
AttachmentsList.tsx 正在载入提交数据...
ChatActivity.tsx 正在载入提交数据...
ChatError.tsx 正在载入提交数据...
ChatErrorBox.tsx 正在载入提交数据...
ChatHeader.tsx 正在载入提交数据...
ChatInput.tsx 正在载入提交数据...
ChatMessage.tsx 正在载入提交数据...
CodeHighlight.tsx 正在载入提交数据...
DeleteChatDialog.tsx 正在载入提交数据...
DragDropOverlay.tsx 正在载入提交数据...
DyadAddDependency.tsx 正在载入提交数据...
DyadAddIntegration.tsx 正在载入提交数据...
DyadCodebaseContext.tsx 正在载入提交数据...
DyadDelete.tsx 正在载入提交数据...
DyadEdit.tsx 正在载入提交数据...
DyadExecuteSql.tsx 正在载入提交数据...
DyadMarkdownParser.tsx 正在载入提交数据...
DyadMcpToolCall.tsx 正在载入提交数据...
DyadMcpToolResult.tsx 正在载入提交数据...
DyadOutput.tsx 正在载入提交数据...
DyadProblemSummary.tsx 正在载入提交数据...
DyadRead.tsx 正在载入提交数据...
DyadRename.tsx 正在载入提交数据...
DyadThink.tsx 正在载入提交数据...
DyadTokenSavings.tsx 正在载入提交数据...
DyadWebSearch.tsx 正在载入提交数据...
DyadWebSearchResult.tsx 正在载入提交数据...
DyadWrite.tsx 正在载入提交数据...
FileAttachmentDropdown.tsx 正在载入提交数据...
HomeChatInput.tsx 正在载入提交数据...
LexicalChatInput.tsx 正在载入提交数据...
MessagesList.tsx 正在载入提交数据...
PromoMessage.tsx 正在载入提交数据...
RenameChatDialog.tsx 正在载入提交数据...
SelectedComponentDisplay.tsx 正在载入提交数据...
TokenBar.tsx 正在载入提交数据...
VersionPane.tsx 正在载入提交数据...
monaco.ts 正在载入提交数据...
stateTypes.ts 正在载入提交数据...
types.d.ts 正在载入提交数据...