Make task state store-owned and signal its changes to the lead
This commit is contained in:
@@ -114,7 +114,7 @@ func (s *Store) StartDiscardTurn(ctx context.Context, taskID, sessionID, actor s
|
||||
})
|
||||
}
|
||||
|
||||
func (s *Store) EndTurn(ctx context.Context, sessionID, actor string, payload map[string]any) (DiscardState, error) {
|
||||
func (s *Store) EndTurn(ctx context.Context, sessionID, actor string, payload map[string]any, turn *api.Event, reviewRequest bool) (DiscardState, error) {
|
||||
next := DiscardNone
|
||||
err := s.write(ctx, func(tx *sql.Tx, emit emitFunc) error {
|
||||
taskID := ""
|
||||
@@ -133,6 +133,18 @@ func (s *Store) EndTurn(ctx context.Context, sessionID, actor string, payload ma
|
||||
return err
|
||||
}
|
||||
|
||||
if turn != nil {
|
||||
err = emit(*turn)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
if reviewRequest {
|
||||
_, err = tx.ExecContext(ctx, `UPDATE tasks SET review_requests = review_requests + 1 WHERE id = ?`, taskID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
_, err = tx.ExecContext(ctx, `UPDATE agent_sessions SET state = ? WHERE id = ?`, string(api.AgentSessionStateIdle), sessionID)
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
Reference in New Issue
Block a user