Add uncommitted files banner with review & commit dialog (#2257)
- 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>
正在显示
src/hooks/useCommitChanges.ts
0 → 100644
src/hooks/useUncommittedFiles.ts
0 → 100644
请
注册
或者
登录
后发表评论