Add federation worker and canonical handoffs

This commit is contained in:
kami
2026-07-28 16:17:18 +04:00
parent 58793a5aa3
commit 2cecbc4015
22 changed files with 1429 additions and 108 deletions
+5
View File
@@ -249,6 +249,7 @@ func (c *Coordinator) requestReasonedHandoff(ctx context.Context, taskID string,
return
}
session.HandoffRequested = true
session.HandoffReason = reason
c.mu.Lock()
c.sessions[taskID] = session
_ = c.saveSessionsLocked()
@@ -652,6 +653,7 @@ func (c *Coordinator) rotate(ctx context.Context, hard float64) {
if _, statErr := os.Stat(filepath.Join(session.Worktree, herdr.HandoffReportFile)); statErr != nil && !session.HandoffRequested {
if reqErr := requester.RequestHandoff(ctx, session); reqErr == nil {
session.HandoffRequested = true
session.HandoffReason = "threshold"
c.mu.Lock()
c.sessions[taskID] = session
_ = c.saveSessionsLocked()
@@ -688,6 +690,7 @@ func (c *Coordinator) rotate(ctx context.Context, hard float64) {
if !session.HandoffRequested {
if reqErr := requester.RequestHandoff(ctx, session); reqErr == nil {
session.HandoffRequested = true
session.HandoffReason = reason
c.mu.Lock()
c.sessions[taskID] = session
_ = c.saveSessionsLocked()
@@ -784,6 +787,7 @@ func (c *Coordinator) TurnDecision(ctx context.Context, taskID string) (string,
if !session.HandoffRequested {
if reqErr := requester.RequestHandoff(ctx, session); reqErr == nil {
session.HandoffRequested = true
session.HandoffReason = "threshold"
c.mu.Lock()
c.sessions[taskID] = session
_ = c.saveSessionsLocked()
@@ -811,6 +815,7 @@ func (c *Coordinator) TurnDecision(ctx context.Context, taskID string) (string,
if !session.HandoffRequested {
if reqErr := requester.RequestHandoff(ctx, session); reqErr == nil {
session.HandoffRequested = true
session.HandoffReason = "threshold"
c.mu.Lock()
c.sessions[taskID] = session
_ = c.saveSessionsLocked()