• 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
名称
最后提交
最后更新
.cursor/rules 正在载入提交数据...
.devcontainer 正在载入提交数据...
.github 正在载入提交数据...
.husky 正在载入提交数据...
assets 正在载入提交数据...
docs 正在载入提交数据...
drizzle 正在载入提交数据...
e2e-tests 正在载入提交数据...
packages/@dyad-sh 正在载入提交数据...
scaffold 正在载入提交数据...
scripts 正在载入提交数据...
shared 正在载入提交数据...
src 正在载入提交数据...
testing 正在载入提交数据...
tools 正在载入提交数据...
worker 正在载入提交数据...
workers/tsc 正在载入提交数据...
.cursorignore 正在载入提交数据...
.env.example 正在载入提交数据...
.eslintrc.json 正在载入提交数据...
.gitattributes 正在载入提交数据...
.gitignore 正在载入提交数据...
.oxlintrc.json 正在载入提交数据...
.prettierignore 正在载入提交数据...
.prettierrc 正在载入提交数据...
CONTRIBUTING.md 正在载入提交数据...
LICENSE 正在载入提交数据...
README.md 正在载入提交数据...
SECURITY.md 正在载入提交数据...
biome.json 正在载入提交数据...
components.json 正在载入提交数据...
drizzle.config.ts 正在载入提交数据...
forge.config.ts 正在载入提交数据...
forge.env.d.ts 正在载入提交数据...
index.html 正在载入提交数据...
merge.config.ts 正在载入提交数据...
package-lock.json 正在载入提交数据...
package.json 正在载入提交数据...
playwright.config.ts 正在载入提交数据...
tsconfig.app.json 正在载入提交数据...
tsconfig.json 正在载入提交数据...
tsconfig.node.json 正在载入提交数据...
vite.main.config.mts 正在载入提交数据...
vite.preload.config.mts 正在载入提交数据...
vite.renderer.config.mts 正在载入提交数据...
vite.worker.config.mts 正在载入提交数据...
vitest.config.ts 正在载入提交数据...