From 8202e9fc9f6287b04b050c5f33fcdd92488d6c00 Mon Sep 17 00:00:00 2001 From: Ian Gulliver Date: Wed, 21 Oct 2026 16:00:25 -0700 Subject: [PATCH] Use the shared implementer session constructor for forks --- internal/agents/fork.go | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/internal/agents/fork.go b/internal/agents/fork.go index 99ec7e4..8673dad 100644 --- a/internal/agents/fork.go +++ b/internal/agents/fork.go @@ -186,24 +186,14 @@ func (m *Manager) fork(ctx context.Context, src api.Task, project api.Project, n return api.Task{}, "", err } - id := ids.New(ids.Session) - err = m.store.CreateSession(ctx, api.AgentSession{ - Id: id, - TaskId: t.Id, - Vendor: srcSess.Vendor, - Model: srcSess.Model, - VendorSessionId: initialVendorSessionID(srcSess.Vendor), - State: api.AgentSessionStateIdle, - Role: api.Implementer, - CreatedBy: creator.Login, - CreatedAt: time.Now().UTC(), - ForkedFrom: &srcSess.VendorSessionId, - ForkedAt: &at, - }, t.ProjectId) + sess := sessionFor(t, creator, "", srcSess.Model) + sess.ForkedFrom = &srcSess.VendorSessionId + sess.ForkedAt = &at + err = m.store.CreateSession(ctx, sess, t.ProjectId) if err != nil { return api.Task{}, "", fmt.Errorf("task %s created, but its agent session was not: %w", t.Id, err) } - return t, id, nil + return t, sess.Id, nil } func forkPoint(events []api.Event, sessionID string, seq int64) string {