fix(watch): await persistent run task instead of abort #9152
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR fixes an issue where the TUI was getting events from a previous run after an
update_tasks
call causing it to exit.One can tell this is happening by inspecting the logs:
The TUI is receiving that
web#dev
finish event from the previous run which confuses the TUI as web#dev hasn't been started yet in this run. This appears to only happen for tasks that don't exit within a 500ms of receivingSIGINT
and need to be forcibly killed.Testing Instructions
Use
create-turbo
to create a basic repro. Change one of the dev scripts to have a long runningSIGINT
handler:Observe that editing root

package.json
(just adding/changing"description"
will do) whileturbo watch dev
is running results in a crash:Checkout the changes in this PR and try the same thing. You should observe that

turbo_dev --skip-infer watch dev
no longer crashes on a rootpackage.json
change.You can see that the
SIGINT
handler has not run as there is nofin
displayed in the output on the restart.