fix(cli): exit daemon when extension connection fails#40328
Merged
yury-s merged 1 commit intomicrosoft:mainfrom Apr 21, 2026
Merged
fix(cli): exit daemon when extension connection fails#40328yury-s merged 1 commit intomicrosoft:mainfrom
yury-s merged 1 commit intomicrosoft:mainfrom
Conversation
The cli daemon process leaked when the user rejected or closed the extension connect tab. The HTTP server, websocket relay, and stdio pipes all kept the event loop alive after createBrowserWithInfo threw. - Daemon process.exits after logging the startup error. - Extension factory closes the relay + http server on failure. - Connect UI tells the background to drop the pending relay socket on reject so the daemon sees the disconnect. - session.startDaemon includes the daemon pid in rejection errors so callers (and tests) can verify the daemon actually exited.
pavelfeldman
approved these changes
Apr 21, 2026
Contributor
Test results for "MCP"6434 passed, 976 skipped Merge workflow run. |
| const errLogContent = fs.readFileSync(errLog, 'utf-8'); | ||
| const message = `Daemon process exited with code ${code}` + (errLogContent ? '\n' + errLogContent : ''); | ||
| reject(new Error(message)); | ||
| rejectWithPid(reject, `Daemon process exited with code ${code}` + (errLogContent ? '\n' + errLogContent : '')); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
process.exit(1)after logging startup failure (the stdout pipe libuv handle would otherwise keep it alive forever).rejectConnectionto the background so the pending relay socket is closed and the daemon sees the disconnect.Session.startDaemonincludes the daemon pid in rejection errors so callers (and the new tests) can verify the daemon actually exited.