Skip to content

chore: added support for immortal streams to cli and agent #19328

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 4 commits into
base: mike/immortal-streams-agent-api
Choose a base branch
from

Conversation

ibetitsmike
Copy link
Contributor

@ibetitsmike ibetitsmike commented Aug 12, 2025

Added support for immortal streams to maintain persistent TCP connections to workspace services that automatically reconnect when interrupted.

What changed?

  • Implemented a new immortal streams feature that provides persistent TCP connections to workspace services
  • Created CLI commands for managing immortal streams (coder exp immortal-stream list/delete)
  • Added support for using immortal streams with SSH and port forwarding connections
  • Implemented server-side API endpoints for creating, listing, and deleting immortal streams
  • Added fallback mechanism to regular connections when immortal streams are unavailable

How to test?

  1. Use the experimental CLI commands to manage immortal streams:

    coder exp immortal-stream list <workspace-name>
    coder exp immortal-stream delete <workspace-name> <stream-name>
    
  2. Test SSH with immortal streams:

    coder ssh --immortal <workspace-name>
    
  3. Test port forwarding with immortal streams:

    coder port-forward --immortal <workspace-name> <local-port>:<remote-port>
    
  4. Verify automatic reconnection by temporarily disrupting the network connection

Why make this change?

Immortal streams provide a more resilient connection mechanism for workspace services, automatically reconnecting when network interruptions occur. This improves the user experience by maintaining persistent connections to SSH and port-forwarded services, reducing the need for manual reconnection and preventing session loss during temporary network issues.

Copy link
Contributor Author

ibetitsmike commented Aug 12, 2025

Warning

This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

This stack of pull requests is managed by Graphite. Learn more about stacking.

@ibetitsmike ibetitsmike force-pushed the mike/immortal-streams-cli branch 3 times, most recently from 9099850 to 992740a Compare August 13, 2025 14:52
@ibetitsmike ibetitsmike force-pushed the mike/immortal-streams-agent-api branch 2 times, most recently from 2fbfcb1 to b4276f8 Compare August 15, 2025 00:51
@ibetitsmike ibetitsmike force-pushed the mike/immortal-streams-cli branch 2 times, most recently from 59b4c90 to 32b88ff Compare August 15, 2025 08:48
@ibetitsmike ibetitsmike force-pushed the mike/immortal-streams-agent-api branch from b4276f8 to 42450ba Compare August 15, 2025 08:48
@ibetitsmike ibetitsmike force-pushed the mike/immortal-streams-cli branch from 32b88ff to 405d3d1 Compare August 16, 2025 11:06
@ibetitsmike ibetitsmike force-pushed the mike/immortal-streams-agent-api branch 2 times, most recently from 0b6e27e to 9bcaa2f Compare August 19, 2025 06:52
@ibetitsmike ibetitsmike force-pushed the mike/immortal-streams-cli branch from 405d3d1 to 5f740d4 Compare August 19, 2025 06:52
@ibetitsmike ibetitsmike force-pushed the mike/immortal-streams-agent-api branch from 9bcaa2f to e256a4a Compare August 19, 2025 12:01
@ibetitsmike ibetitsmike force-pushed the mike/immortal-streams-cli branch from 5f740d4 to 9a3fc9f Compare August 19, 2025 12:01
@ibetitsmike ibetitsmike force-pushed the mike/immortal-streams-agent-api branch from e256a4a to 5c50940 Compare August 20, 2025 11:42
@ibetitsmike ibetitsmike force-pushed the mike/immortal-streams-cli branch from 9a3fc9f to e73338d Compare August 20, 2025 11:42
@ibetitsmike ibetitsmike force-pushed the mike/immortal-streams-agent-api branch from 5c50940 to c0cba16 Compare August 20, 2025 12:38
@ibetitsmike ibetitsmike force-pushed the mike/immortal-streams-cli branch from e73338d to 4996ebe Compare August 20, 2025 12:38
@ibetitsmike ibetitsmike force-pushed the mike/immortal-streams-cli branch from 4996ebe to 5ed4b5d Compare August 20, 2025 13:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy