Refuse lead tools that would restart an interrupted or errored agent

This commit is contained in:
Ian Gulliver
2026-10-20 09:33:36 -07:00
parent 09d6c6e023
commit 76c1c673d7
6 changed files with 108 additions and 9 deletions
+6
View File
@@ -47,6 +47,12 @@ func (m *Manager) Message(ctx context.Context, sessionID, actor, text, model str
if err != nil {
return api.AgentSession{}, false, err
}
if sess.State == api.AgentSessionStateIdle && isLeadActor(actor) {
err = m.checkNotStopped(ctx, sess)
if err != nil {
return api.AgentSession{}, false, err
}
}
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...)