Skip to content

fix: Queue messages sent to Continue binary #6457

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

exigow
Copy link
Collaborator

@exigow exigow commented Jul 4, 2025

This is motivated by my latest crash on Windows (from yesterday).

I extracted an interface to describe two strategies of sending messages: standard input/output and TCP (for debugging). Now there is a handler that accepts this interface and safely queues messages. With this separation CoreMessenger now has fewer responsibilities. I tried to keep these changes as much local as possible.

Using Channel has an additional advantage: we can queue messages directly from AWT.


Summary by cubic

Refactored message sending to the Continue binary by introducing a process interface and handler that queues messages safely, reducing CoreMessenger responsibilities and improving stability.

  • Refactors
    • Added interfaces for process communication (binary and TCP).
    • Introduced a handler using channels to queue messages before sending.
    • Simplified CoreMessenger to delegate process management and message queuing.

Copy link

netlify bot commented Jul 4, 2025

Deploy Preview for continuedev canceled.

Name Link
🔨 Latest commit 49048e7
🔍 Latest deploy log https://app.netlify.com/projects/continuedev/deploys/68681fb289104a0008072319

@exigow
Copy link
Collaborator Author

exigow commented Jul 4, 2025

This is draft. Everything works so far (process is successfully restarted after kill), but I still want to test it on different systems + via TCP + restore telemetry.

This is motivated by my latest crash on Windows (from yesterday).

I extracted an interface to describe two strategies of sending messages: standard input/output and TCP (for debugging).
Now there is a handler that accepts this interface and safely queues messages. With this separation CoreMessenger now
has fewer responsibilities. I tried to keep these changes as much local as possible.

Using Channel<String> has an additional advantage: we can queue messages directly from AWT.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Todo
Development

Successfully merging this pull request may close these issues.

1 participant