Skip to content

Commit 75e347d

Browse files
authored
Merge pull request #239 from rumpl/fix-remote-session
fix: resolve race condition in resume channel handling
2 parents 4d627cc + dea8ddb commit 75e347d

1 file changed

Lines changed: 3 additions & 25 deletions

File tree

pkg/runtime/remote_runtime.go

Lines changed: 3 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -38,13 +38,6 @@ func WithRemoteAgentFilename(filename string) RemoteRuntimeOption {
3838
}
3939
}
4040

41-
// WithRemoteSessionID sets the session ID for the remote runtime
42-
func WithRemoteSessionID(sessionID string) RemoteRuntimeOption {
43-
return func(r *RemoteRuntime) {
44-
r.sessionID = sessionID
45-
}
46-
}
47-
4841
// NewRemoteRuntime creates a new remote runtime that implements the Interface
4942
func NewRemoteRuntime(client *Client, opts ...RemoteRuntimeOption) (*RemoteRuntime, error) {
5043
if client == nil {
@@ -83,31 +76,16 @@ func (r *RemoteRuntime) RunStream(ctx context.Context, sess *session.Session) <-
8376
// Convert session messages to remote.Message format
8477
messages := r.convertSessionMessages(sess)
8578

86-
// Use the session ID if available, otherwise try to create one
87-
sessionID := r.sessionID
88-
if sessionID == "" && sess.ID != "" {
89-
sessionID = sess.ID
90-
}
91-
if sessionID == "" {
92-
// Create a new session if none exists
93-
newSess, err := r.client.CreateSession(ctx, nil)
94-
if err != nil {
95-
events <- Error(fmt.Sprintf("failed to create remote session: %v", err))
96-
return
97-
}
98-
sessionID = newSess.ID
99-
r.sessionID = sessionID
100-
slog.Debug("Created new remote session", "session_id", sessionID)
101-
}
79+
r.sessionID = sess.ID
10280

10381
// Start streaming from remote client
10482
var streamChan <-chan Event
10583
var err error
10684

10785
if r.currentAgent != "" && r.currentAgent != "root" {
108-
streamChan, err = r.client.RunAgentWithAgentName(ctx, sessionID, r.agentFilename, r.currentAgent, messages)
86+
streamChan, err = r.client.RunAgentWithAgentName(ctx, r.sessionID, r.agentFilename, r.currentAgent, messages)
10987
} else {
110-
streamChan, err = r.client.RunAgent(ctx, sessionID, r.agentFilename, messages)
88+
streamChan, err = r.client.RunAgent(ctx, r.sessionID, r.agentFilename, messages)
11189
}
11290

11391
if err != nil {

0 commit comments

Comments
 (0)