Source control panel commit stuck

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

“Source control” panel is stuck at “commit” even though the file(s) were committed successfully. This is a very new bug after Cursor was updated.

It’s very difficult to work without this panel. I have been using this panel for many years and I’m accustomed to commit files this way.

After about 10-15 minutes the “stuck” commit has become “unstuck”, but this is unacceptable

Steps to Reproduce

Commit anything using the “source control” sidebar panel

Expected Behavior

commit should finish and not be stuck as “pending” state

Screenshots / Screen Recordings

Operating System

Windows 10/11

Version Information

Version: 3.22.7 (system setup)
VS Code Extension API: 1.128.0
Commit: 37076c6c3f9e253c0fa2305197e45befd13a2260
Date: 2026-09-24T05:01:24.589Z
Layout: IDE
Build Type: Stable
Release Track: Default
Electron: 42.10.0
Chromium: 148.0.7778.280
Node.js: 24.18.1
V8: 14.8.178.38-electron.0
xterm.js: 6.1.0-beta.291
OS: Windows_NT x64 10.0.26200

Does this stop you from using Cursor

No - Cursor works, but with this issue

Hey @yaireo, thanks for the report and the screenshot!

Cursor 3.22 started running your repository’s git hooks (Husky, pre-commit, post-commit and so on) again for commits made from the Source Control panel. They were being skipped in earlier versions. The panel only marks the commit as done once git and everything a hook started have finished. So if a hook is slow, or starts something in the background, the button keeps spinning even though the commit is already created.

Could you try this and tell me what you see?

  1. In the integrated terminal, in this repo, run git config core.hooksPath and ls .husky .git/hooks, and paste the output (ignore any *.sample files).
  2. Make a small change, stage it, and run git commit -m "test" in the terminal. Does it return right away, or does it also take a while?
  3. Make another small change and commit it from the Source Control panel.
  4. Once it finishes, open View > Output, pick “Git” in the dropdown, and paste the git commit line (it shows how long it took).

In the meantime, committing from the terminal works as before. If you’re OK skipping the pre-commit and commit-msg hooks for a commit, you can also enable the git.allowNoVerifyCommit setting and use “Commit (No Verify)” from the Commit button dropdown.

Thanks that explains it a lot. It was a post-commit hook which suddenly stated running and took a very long time