Add task summaries, closed-task search and a summary turn before discard

This commit is contained in:
Ian Gulliver
2026-10-16 10:08:08 -07:00
parent 2107a43ef2
commit fd63a0dfbc
25 changed files with 1013 additions and 268 deletions
+24 -5
View File
@@ -2,10 +2,12 @@ package agents
import (
"context"
"errors"
"log/slog"
"strings"
"g.fc.run/misc/byre/internal/api"
"g.fc.run/misc/byre/internal/store"
)
const handoffPrompt = `Write a handoff for a fresh agent that will continue this task with none of your context. ` +
@@ -59,20 +61,37 @@ func (m *Manager) handoff(ctx context.Context, sessionID, handoff string) error
return err
}
err = m.retire(ctx, sess, "byre")
if err != nil {
return err
}
if sess.Owner != "" {
err = m.retire(ctx, sess, "byre")
if err != nil {
return err
}
_, err = m.createLead(ctx, creator, leadHandoffPreamble+handoff, sess.Model, "byre", nil)
return err
}
discard, err := m.store.GetDiscard(ctx, sess.TaskId)
if err != nil {
return err
}
if discard.State != store.DiscardNone {
m.startDiscard(sess.TaskId)
return nil
}
err = transition(ctx, m.store, sess.Id, api.AgentSessionStateIdle, api.AgentSessionStateCompleted, "byre")
if err != nil {
return err
}
m.stopLive(sess.Id)
task, err := m.store.GetTask(ctx, sess.TaskId)
if err != nil {
return err
}
_, err = m.create(ctx, task, creator, handoffPreamble+handoff, sess.Model, "byre", nil)
if errors.Is(err, ErrConflict) {
m.startDiscard(task.Id)
return nil
}
return err
}