-
由 Will Chen 提交于
- Add IPC handlers for getting uncommitted files with status and committing changes - Create useUncommittedFiles and useCommitChanges hooks - Add UncommittedFilesBanner component that shows when there are uncommitted changes - Display file status (added, modified, deleted, renamed) in the review dialog - Auto-generate sensible commit messages based on changes - Add E2E tests for the uncommitted files banner feature <!-- This is an auto-generated description by cubic. --> --- ## Summary by cubic Adds an uncommitted files banner with a review & commit dialog in ChatHeader to make it easy to see changes and commit from the app. Improves visibility on main and streamlines committing with sensible default messages. - **New Features** - Show banner on main when there are uncommitted changes; includes count and “Review & commit”. - Dialog lists changed files with status (Added/Modified/Deleted/Renamed) and generates an editable default commit message. - Hooks and IPC: useUncommittedFiles (polls every 5s) and useCommitChanges; git:get-uncommitted-files and git:commit-changes. - Commit stages all changes, blocks during merge/rebase, and invalidates queries so the banner disappears and versions refresh. - E2E tests cover banner visibility, review/commit flow, success toast, and multiple file statuses. <sup>Written for commit d28ab8364e2344cfd4d9c9b548eeedaff3187f6a. Summary will update on new commits.</sup> <!-- End of auto-generated description by cubic. --> <!-- CURSOR_SUMMARY --> --- > [!NOTE] > Introduces an inline workflow to spot and commit local changes from the chat header when on `main`. > > - **UI**: Adds `UncommittedFilesBanner` in `ChatHeader` with “Review & commit” dialog showing changed files (status: Added/Modified/Deleted/Renamed) and a generated default commit message > - **Hooks**: New `useUncommittedFiles` (polls every 5s) and `useCommitChanges` (toast + query invalidation for `uncommittedFiles` and `versions`) > - **IPC & Types**: Adds `git:get-uncommitted-files` and `git:commit-changes`; updates `ipc_client.ts`, `ipc_types.ts`, and `preload.ts` > - **Git utils**: Implements `getGitUncommittedFilesWithStatus`, `gitAddAll`, and `gitCommit` with merge/rebase state checks and native/isomorphic support > - **Tests**: E2E (`uncommitted_files_banner.spec.ts`) validates banner visibility, dialog content, committing (including native Git path), and resulting commit > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit d28ab8364e2344cfd4d9c9b548eeedaff3187f6a. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> --------- Co-authored-by:
Claude <noreply@anthropic.com> Co-authored-by:
cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>