don't restart after interrupt
This commit is contained in:
@@ -47,7 +47,8 @@ func (m *Manager) Message(ctx context.Context, sessionID, actor, text, model str
|
||||
if err != nil {
|
||||
return api.AgentSession{}, false, err
|
||||
}
|
||||
if sess.State != api.AgentSessionStateRunning || sess.Role != api.Implementer {
|
||||
held := sess.State == api.AgentSessionStateIdle && sess.Role == api.Implementer && automatedActor(actor) && m.interrupted(sess.Id)
|
||||
if !held && (sess.State != api.AgentSessionStateRunning || sess.Role != api.Implementer) {
|
||||
sess, err = m.Send(ctx, sessionID, actor, text, model, images...)
|
||||
return sess, false, err
|
||||
}
|
||||
@@ -72,10 +73,21 @@ func (m *Manager) Message(ctx context.Context, sessionID, actor, text, model str
|
||||
if err != nil {
|
||||
return api.AgentSession{}, false, err
|
||||
}
|
||||
slog.Info("message queued", "session", sess.Id, "task", sess.TaskId, "actor", actor)
|
||||
slog.Info("message queued", "session", sess.Id, "task", sess.TaskId, "actor", actor, "interrupted", held)
|
||||
return sess, true, nil
|
||||
}
|
||||
|
||||
func automatedActor(actor string) bool {
|
||||
return actor == "byre" || actor == agentActor || actor == boardActor
|
||||
}
|
||||
|
||||
func (m *Manager) interrupted(sessionID string) bool {
|
||||
m.mu.Lock()
|
||||
defer m.mu.Unlock()
|
||||
l := m.live[sessionID]
|
||||
return l != nil && l.interrupted
|
||||
}
|
||||
|
||||
func (m *Manager) Withdraw(ctx context.Context, taskID string, inputID int64, actor string) error {
|
||||
task, err := m.store.GetTask(ctx, taskID)
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user