Files
multica/server/pkg/db/generated/conversation_root.sql.go
YYClaw 42727f697e MUL-7611: fix(comments): read only thread routing owners (#8712)
Comment owner routing loaded every task row on an issue, including context/result payloads, before selecting the current thread owners. Filter by issue and root comment in SQL and return one agent/squad pair per owner.

Closes #8711
2026-09-23 14:39:36 +08:00

52 lines
1.5 KiB
Go

// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.31.1
// source: conversation_root.sql
package db
import (
"context"
"github.com/jackc/pgx/v5/pgtype"
)
const listConversationRootOwners = `-- name: ListConversationRootOwners :many
SELECT DISTINCT ON (agent_id) agent_id, squad_id
FROM agent_task_queue
WHERE issue_id = $1 AND trigger_comment_id = $2 AND agent_id IS NOT NULL
ORDER BY agent_id, (squad_id IS NOT NULL) DESC, created_at DESC, id DESC
`
type ListConversationRootOwnersParams struct {
IssueID pgtype.UUID `json:"issue_id"`
TriggerCommentID pgtype.UUID `json:"trigger_comment_id"`
}
type ListConversationRootOwnersRow struct {
AgentID pgtype.UUID `json:"agent_id"`
SquadID pgtype.UUID `json:"squad_id"`
}
// Preserve the newest non-null squad per agent, including terminal tasks.
// Routing does not need execution context, results, or other issue threads.
func (q *Queries) ListConversationRootOwners(ctx context.Context, arg ListConversationRootOwnersParams) ([]ListConversationRootOwnersRow, error) {
rows, err := q.db.Query(ctx, listConversationRootOwners, arg.IssueID, arg.TriggerCommentID)
if err != nil {
return nil, err
}
defer rows.Close()
items := []ListConversationRootOwnersRow{}
for rows.Next() {
var i ListConversationRootOwnersRow
if err := rows.Scan(&i.AgentID, &i.SquadID); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}