I’m guessing this affects all the unixy operating systems (including macos)
When the agent runs a terminal with an interactive shell, it can get “stuck” waiting for a response. Here’s an example that does timeout after 30sec, but if the terminal had started an editor it’d sit there forever – until the user tries to pop out the terminal to see what it’s doing; at that point cursor pops out the terminal, and the user can complete whatever was waiting but cursor doesn’t wait for the terminal to close – it just skips over the terminal’s commands altogether.
This has made cursor think commands exited successfully when they had not.
Here’s my example. It starts a shell and displays Hello, and then sleeps for 30 seconds. During that time I pop the terminal out. Cursor immediately skips over the terminal and never sees the “Goodbye”.
The popped-out terminal:
And the results in the chat which were returned before the terminal exited and displayed “goodbye”:
If the command had been, for instance, a ‘git rebase’ that started up an editor like vim and waited for me to save the file, cursor wouldn’t progress and the file wouldn’t get saved.
Since the agent never sees the shell’s output, it doesn’t always do the right thing. “Oh look, no errors – all the tests must have passed!” when the tests were just stuck.