• 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
名称
最后提交
最后更新
..
approve.spec.ts_write-to-index-approve-check-preview-1.aria.yml 正在载入提交数据...
approve.spec.ts_write-to-index-approve-check-preview-2.aria.yml 正在载入提交数据...
approve.spec.ts_write-to-index-approve-check-preview-3.aria.yml 正在载入提交数据...
astro.spec.ts_astro-1.txt 正在载入提交数据...
attach_image.spec.ts_attach-image 正在载入提交数据...
attach_image.spec.ts_attach-image---chat---upload-to-codebase-1.aria.yml 正在载入提交数据...
attach_image.spec.ts_attach-image---chat-1.aria.yml 正在载入提交数据...
attach_image.spec.ts_attach-image---home-chat-1.aria.yml 正在载入提交数据...
attach_image.spec.ts_attach-image-via-drag---chat-1.aria.yml 正在载入提交数据...
attach_image.spec.ts_upload-to-codebase 正在载入提交数据...
auto_approve.spec.ts_auto-approve-1.aria.yml 正在载入提交数据...
auto_approve.spec.ts_auto-approve-2.aria.yml 正在载入提交数据...
auto_update.spec.ts_auto-update---disable-and-enable-1.txt 正在载入提交数据...
auto_update.spec.ts_auto-update---disable-and-enable-2.txt 正在载入提交数据...
azure_send_message.spec.ts_send-message-through-Azure-OpenAI-1.aria.yml 正在载入提交数据...
capacitor.spec.ts_upgraded-capacitor.txt 正在载入提交数据...
chat_mode.spec.ts_chat-mode-selector---ask-mode-1.aria.yml 正在载入提交数据...
chat_mode.spec.ts_chat-mode-selector---ask-mode-1.txt 正在载入提交数据...
chat_mode.spec.ts_chat-mode-selector---default-build-mode-1.aria.yml 正在载入提交数据...
chat_mode.spec.ts_chat-mode-selector---default-build-mode-1.txt 正在载入提交数据...
chat_mode.spec.ts_dyadwrite-edit-and-cancel-1.aria.yml 正在载入提交数据...
chat_mode.spec.ts_dyadwrite-edit-and-save---basic-flow-1.aria.yml 正在载入提交数据...
concurrent_chat.spec.ts_concurrent-chat-1.aria.yml 正在载入提交数据...
concurrent_chat.spec.ts_concurrent-chat-2.aria.yml 正在载入提交数据...
context_manage.spec.ts_exclude-paths-basic 正在载入提交数据...
context_manage.spec.ts_exclude-paths-precedence 正在载入提交数据...
context_manage.spec.ts_exclude-paths-with-smart-context 正在载入提交数据...
context_manage.spec.ts_manage-context---default-1.aria.yml 正在载入提交数据...
context_manage.spec.ts_manage-context---default-1.txt 正在载入提交数据...
context_manage.spec.ts_manage-context---default-2.aria.yml 正在载入提交数据...
context_manage.spec.ts_manage-context---exclude-paths-1.aria.yml 正在载入提交数据...
context_manage.spec.ts_manage-context---exclude-paths-2.aria.yml 正在载入提交数据...
context_manage.spec.ts_manage-context---exclude-paths-3.aria.yml 正在载入提交数据...
context_manage.spec.ts_manage-context---exclude-paths-with-smart-context-1.aria.yml 正在载入提交数据...
context_manage.spec.ts_manage-context---exclude-paths-with-smart-context-2.aria.yml 正在载入提交数据...
context_manage.spec.ts_manage-context---smart-context---auto-includes-only-1.aria.yml 正在载入提交数据...
context_manage.spec.ts_manage-context---smart-context---auto-includes-only-1.txt 正在载入提交数据...
context_manage.spec.ts_manage-context---smart-context---auto-includes-only-2.aria.yml 正在载入提交数据...
context_manage.spec.ts_manage-context---smart-context-1.aria.yml 正在载入提交数据...
context_manage.spec.ts_manage-context---smart-context-1.txt 正在载入提交数据...
context_manage.spec.ts_manage-context---smart-context-2.aria.yml 正在载入提交数据...
context_manage.spec.ts_manage-context---smart-context-2.txt 正在载入提交数据...
context_manage.spec.ts_manage-context---smart-context-3.txt 正在载入提交数据...
context_manage.spec.ts_manage-context---smart-context-4.txt 正在载入提交数据...
context_window.spec.ts_context-window-1.aria.yml 正在载入提交数据...
context_window.spec.ts_context-window-1.txt 正在载入提交数据...
context_window.spec.ts_context-window-2.txt 正在载入提交数据...
context_window.spec.ts_context-window-3.txt 正在载入提交数据...
context_window.spec.ts_context-window-4.txt 正在载入提交数据...
context_window.spec.ts_context-window-5.txt 正在载入提交数据...
copy_app.spec.ts_app.txt 正在载入提交数据...
dump_messages.spec.ts_dump-messages-1.txt 正在载入提交数据...
dyad_tags_parsing.spec.ts_angle-tags-handled.txt 正在载入提交数据...
edit_code.spec.ts_edited-mde-with-dyad.txt 正在载入提交数据...
engine.spec.ts_regular-auto-should-send-message-to-engine-1.aria.yml 正在载入提交数据...
engine.spec.ts_regular-auto-should-send-message-to-engine-1.txt 正在载入提交数据...
engine.spec.ts_send-message-to-engine---anthropic-claude-sonnet-4-1.txt 正在载入提交数据...
engine.spec.ts_send-message-to-engine---openai-gpt-5-1.txt 正在载入提交数据...
engine.spec.ts_send-message-to-engine---smart-context-conservative-1.aria.yml 正在载入提交数据...
engine.spec.ts_send-message-to-engine---smart-context-conservative-1.txt 正在载入提交数据...
engine.spec.ts_send-message-to-engine-1.aria.yml 正在载入提交数据...
engine.spec.ts_send-message-to-engine-1.txt 正在载入提交数据...
engine.spec.ts_smart-auto-should-send-message-to-engine-1.aria.yml 正在载入提交数据...
engine.spec.ts_smart-auto-should-send-message-to-engine-1.txt 正在载入提交数据...
env_var.spec.ts_create-aKey 正在载入提交数据...
env_var.spec.ts_create-bKey 正在载入提交数据...
env_var.spec.ts_delete-aKey 正在载入提交数据...
env_var.spec.ts_edit-bKey 正在载入提交数据...
fix_error.spec.ts_fix-error-with-AI-1.aria.yml 正在载入提交数据...
fix_error.spec.ts_fix-error-with-AI-2.aria.yml 正在载入提交数据...
fix_error.spec.ts_fix-error-with-AI-3.aria.yml 正在载入提交数据...
fix_error.spec.ts_fix-error-with-AI-4.aria.yml 正在载入提交数据...
gateway.spec.ts_claude-4-sonnet-1.aria.yml 正在载入提交数据...
gateway.spec.ts_claude-4-sonnet-1.txt 正在载入提交数据...
gateway.spec.ts_send-message-to-gateway---claude-4-sonnet-1.txt 正在载入提交数据...
github-import.spec.ts_should-import-from-URL-1.aria.yml 正在载入提交数据...
github-import.spec.ts_should-import-from-repository-list-1.aria.yml 正在载入提交数据...
github.spec.ts_create-and-sync-to-existing-repo---custom-branch-1.aria.yml 正在载入提交数据...
github.spec.ts_create-and-sync-to-existing-repo-1.aria.yml 正在载入提交数据...
github.spec.ts_create-and-sync-to-new-repo---custom-branch-1.aria.yml 正在载入提交数据...
github.spec.ts_create-and-sync-to-new-repo-1.aria.yml 正在载入提交数据...
github.spec.ts_create-and-sync-to-new-repo-2.aria.yml 正在载入提交数据...
github.spec.ts_disconnect-from-repo-1.aria.yml 正在载入提交数据...
github.spec.ts_should-create-a-new-GitHub-repository-1.aria.yml 正在载入提交数据...
github.spec.ts_should-create-a-new-GitHub-repository-2.aria.yml 正在载入提交数据...
import.spec.ts_advanced-options-both-cleared-are-valid-and-use-defaults-1.aria.yml 正在载入提交数据...
import.spec.ts_import-app-1.aria.yml 正在载入提交数据...
import.spec.ts_import-app-2.aria.yml 正在载入提交数据...
import.spec.ts_import-app-with-AI-rules-1.aria.yml 正在载入提交数据...
import.spec.ts_import-app-with-AI-rules-1.txt 正在载入提交数据...
import.spec.ts_import-app-with-AI-rules-2.aria.yml 正在载入提交数据...
lm_studio.spec.ts_send-message-to-LM-studio-1.aria.yml 正在载入提交数据...
main.spec.ts_basic-message-to-custom-test-model-1.aria.yml 正在载入提交数据...
main.spec.ts_simple-message-to-custom-test-model-1.aria.yml 正在载入提交数据...
mcp.spec.ts_mcp---call-calculator-1.aria.yml 正在载入提交数据...
mcp.spec.ts_mcp---call-calculator-1.txt 正在载入提交数据...
mention_app.spec.ts_mention-app-with-pro-1.txt 正在载入提交数据...
mention_app.spec.ts_mention-app-without-pro-1.txt 正在载入提交数据...
new_chat.spec.ts_new-chat-first-button-1.aria.yml 正在载入提交数据...
new_chat.spec.ts_new-chat-first-button-2.aria.yml 正在载入提交数据...
new_chat.spec.ts_new-chat-first-button-3.aria.yml 正在载入提交数据...
new_chat.spec.ts_new-chat-second-button-1.aria.yml 正在载入提交数据...
new_chat.spec.ts_new-chat-second-button-2.aria.yml 正在载入提交数据...
new_chat.spec.ts_new-chat-second-button-3.aria.yml 正在载入提交数据...
ollama.spec.ts_send-message-to-ollama-1.aria.yml 正在载入提交数据...
partial_response.spec.ts_message-resumed.txt 正在载入提交数据...
partial_response.spec.ts_partial-message-is-resumed-1.aria.yml 正在载入提交数据...
partial_response.spec.ts_partial-message-is-resumed-1.txt 正在载入提交数据...
preview_iframe.spec.ts_preview-iframe-has-sandbox-attributes-1.txt 正在载入提交数据...
problems.spec.ts_problems---fix-all-1.aria.yml 正在载入提交数据...
problems.spec.ts_problems---fix-all-1.txt 正在载入提交数据...
problems.spec.ts_problems---manual-edit-1.aria.yml 正在载入提交数据...
problems.spec.ts_problems---manual-edit-2.aria.yml 正在载入提交数据...
problems.spec.ts_problems---manual-edit-next-js-1.aria.yml 正在载入提交数据...
problems.spec.ts_problems---manual-edit-next-js-2.aria.yml 正在载入提交数据...
problems.spec.ts_problems---manual-edit-react-vite-1.aria.yml 正在载入提交数据...
problems.spec.ts_problems---manual-edit-react-vite-2.aria.yml 正在载入提交数据...
problems.spec.ts_problems-auto-fix---complex-delete-rename-write-1.aria.yml 正在载入提交数据...
problems.spec.ts_problems-auto-fix---complex-delete-rename-write-1.txt 正在载入提交数据...
problems.spec.ts_problems-auto-fix---complex-delete-rename-write-2.txt 正在载入提交数据...
problems.spec.ts_problems-auto-fix---disabled-1.aria.yml 正在载入提交数据...
problems.spec.ts_problems-auto-fix---enabled-1.aria.yml 正在载入提交数据...
problems.spec.ts_problems-auto-fix---enabled-1.txt 正在载入提交数据...
problems.spec.ts_problems-auto-fix---enabled-2.txt 正在载入提交数据...
problems.spec.ts_problems-auto-fix---gives-up-after-2-attempts-1.aria.yml 正在载入提交数据...
problems.spec.ts_problems-auto-fix---gives-up-after-2-attempts-1.txt 正在载入提交数据...
problems.spec.ts_problems-auto-fix---gives-up-after-2-attempts-2.aria.yml 正在载入提交数据...
problems.spec.ts_problems-auto-fix---gives-up-after-2-attempts-2.txt 正在载入提交数据...
prompt_library.spec.ts_create-and-edit-prompt-1.aria.yml 正在载入提交数据...
prompt_library.spec.ts_create-and-edit-prompt-2.aria.yml 正在载入提交数据...
prompt_library.spec.ts_use-prompt-1.txt 正在载入提交数据...
rebuild.spec.ts_rebuild-app-1.aria.yml 正在载入提交数据...
rebuild.spec.ts_rebuild-app-2.aria.yml 正在载入提交数据...
refresh.spec.ts_refresh-app-1.aria.yml 正在载入提交数据...
reject.spec.ts_reject-1.aria.yml 正在载入提交数据...
reject.spec.ts_reject-2.aria.yml 正在载入提交数据...
release_channel.spec.ts_release-channel---change-from-stable-to-beta-and-back-1.txt 正在载入提交数据...
release_channel.spec.ts_release-channel---change-from-stable-to-beta-and-back-2.txt 正在载入提交数据...
rename_edit.spec.ts_rename-edit.txt 正在载入提交数据...
restart.spec.ts_restart-app-1.aria.yml 正在载入提交数据...
retry.spec.ts_retry---should-work-1.aria.yml 正在载入提交数据...
retry.spec.ts_retry---should-work-2.aria.yml 正在载入提交数据...
select_component.spec.ts_app-upgraded.txt 正在载入提交数据...
select_component.spec.ts_deselect-component-1.aria.yml 正在载入提交数据...
select_component.spec.ts_deselect-component-1.txt 正在载入提交数据...
select_component.spec.ts_deselect-component-2.aria.yml 正在载入提交数据...
select_component.spec.ts_deselect-component-3.aria.yml 正在载入提交数据...
select_component.spec.ts_select-component-1.aria.yml 正在载入提交数据...
select_component.spec.ts_select-component-1.txt 正在载入提交数据...
select_component.spec.ts_select-component-2.aria.yml 正在载入提交数据...
select_component.spec.ts_select-component-2.txt 正在载入提交数据...
select_component.spec.ts_select-component-3.aria.yml 正在载入提交数据...
select_component.spec.ts_select-component-next-js-1.aria.yml 正在载入提交数据...
select_component.spec.ts_select-component-next-js-1.txt 正在载入提交数据...
select_component.spec.ts_select-component-next-js-2.aria.yml 正在载入提交数据...
select_component.spec.ts_select-component-next-js-3.aria.yml 正在载入提交数据...
select_component.spec.ts_upgrade-app-to-select-component-1.txt 正在载入提交数据...
smart_context_options.spec.ts_switching-smart-context-mode-saves-the-right-setting-1.txt 正在载入提交数据...
smart_context_options.spec.ts_switching-smart-context-mode-saves-the-right-setting-2.txt 正在载入提交数据...
smart_context_options.spec.ts_switching-smart-context-mode-saves-the-right-setting-3.txt 正在载入提交数据...
smart_context_options.spec.ts_switching-smart-context-mode-saves-the-right-setting-4.txt 正在载入提交数据...
supabase_branch.spec.ts_supabase-branch-selection-works-1.aria.yml 正在载入提交数据...
supabase_client.spec.ts_supabase-client-generated.txt 正在载入提交数据...
supabase_stale_ui.spec.ts_supabase---stale-ui-1.aria.yml 正在载入提交数据...
supabase_stale_ui.spec.ts_supabase---stale-ui-2.aria.yml 正在载入提交数据...
supabase_stale_ui.spec.ts_supabase---stale-ui-3.aria.yml 正在载入提交数据...
switch_versions.spec.ts_switch-versions-1.aria.yml 正在载入提交数据...
switch_versions.spec.ts_switch-versions-2.aria.yml 正在载入提交数据...
switch_versions.spec.ts_switch-versions-3.aria.yml 正在载入提交数据...
switch_versions.spec.ts_v1 正在载入提交数据...
switch_versions.spec.ts_v2 正在载入提交数据...
telemetry.spec.ts_telemetry---accept-1.txt 正在载入提交数据...
telemetry.spec.ts_telemetry---accept-2.txt 正在载入提交数据...
telemetry.spec.ts_telemetry---later-1.txt 正在载入提交数据...
telemetry.spec.ts_telemetry---later-2.txt 正在载入提交数据...
telemetry.spec.ts_telemetry---reject-1.txt 正在载入提交数据...
telemetry.spec.ts_telemetry---reject-2.txt 正在载入提交数据...
template-community.spec.ts_template---community-1.txt 正在载入提交数据...
template-community.spec.ts_template---community-2.txt 正在载入提交数据...
template-create-nextjs.spec.ts_create-next-js-app-1.aria.yml 正在载入提交数据...
template-create-nextjs.spec.ts_create-next-js-app-1.txt 正在载入提交数据...
thinking_budget.spec.ts_thinking-budget-1.txt 正在载入提交数据...
thinking_budget.spec.ts_thinking-budget-2.txt 正在载入提交数据...
thinking_budget.spec.ts_thinking-budget-3.txt 正在载入提交数据...
thinking_budget.spec.ts_thinking-budget-4.txt 正在载入提交数据...
thinking_budget.spec.ts_thinking-budget-5.txt 正在载入提交数据...
thinking_budget.spec.ts_thinking-budget-6.txt 正在载入提交数据...
version_integrity.spec.ts_v1.txt 正在载入提交数据...
version_integrity.spec.ts_v2.txt 正在载入提交数据...
version_integrity.spec.ts_v3.txt 正在载入提交数据...