Versions in this module Expand all Collapse all v0 v0.1.1 Jan 22, 2026 v0.1.0 Jan 22, 2026 Changes in this version + const ClaimStaleTimeout + var ErrAlreadyClaimed = fmt.Errorf("merge request already claimed by another worker") + var ErrNotFound = fmt.Errorf("merge request not found") + func ScoreMR(input ScoreInput, config ScoreConfig) float64 + func ScoreMRWithDefaults(input ScoreInput) float64 + type BeadStatusChecker func(beadID string) (isOpen bool, err error) + type Event struct + Branch string + MRID string + MergeCommit string + Reason string + Rig string + SourceIssue string + Target string + Timestamp time.Time + Type EventType + Worker string + type EventLogger struct + func NewEventLogger(beadsDir string) *EventLogger + func NewEventLoggerFromRig(rigPath string) *EventLogger + func (l *EventLogger) LogEvent(event Event) error + func (l *EventLogger) LogMergeFailed(mr *MR, reason string) error + func (l *EventLogger) LogMergeSkipped(mr *MR, reason string) error + func (l *EventLogger) LogMergeStarted(mr *MR) error + func (l *EventLogger) LogMerged(mr *MR, mergeCommit string) error + func (l *EventLogger) LogPath() string + type EventType string + const EventMergeFailed + const EventMergeSkipped + const EventMergeStarted + const EventMerged + type MR struct + AgentBead string + BlockedBy string + Branch string + ClaimedAt *time.Time + ClaimedBy string + ConvoyCreatedAt *time.Time + ConvoyID string + CreatedAt time.Time + ID string + Priority int + RetryCount int + Rig string + SourceIssue string + Target string + Title string + Worker string + func (mr *MR) IsBlocked(checkStatus func(beadID string) (isOpen bool, err error)) (bool, string, error) + func (mr *MR) Score() float64 + func (mr *MR) ScoreAt(now time.Time) float64 + type Queue struct + func New(rigPath string) *Queue + func NewFromWorkdir(workdir string) (*Queue, error) + func (q *Queue) Claim(id, workerID string) error + func (q *Queue) ClearBlockedBy(mrID string) error + func (q *Queue) Count() int + func (q *Queue) Dir() string + func (q *Queue) EnsureDir() error + func (q *Queue) Get(id string) (*MR, error) + func (q *Queue) List() ([]*MR, error) + func (q *Queue) ListBlocked(checkStatus BeadStatusChecker) ([]*MR, error) + func (q *Queue) ListByScore() ([]*MR, error) + func (q *Queue) ListClaimedBy(workerID string) ([]*MR, error) + func (q *Queue) ListReady(checkStatus BeadStatusChecker) ([]*MR, error) + func (q *Queue) ListUnclaimed() ([]*MR, error) + func (q *Queue) Release(id string) error + func (q *Queue) Remove(id string) error + func (q *Queue) SetBlockedBy(mrID, taskID string) error + func (q *Queue) Submit(mr *MR) error + type ScoreConfig struct + BaseScore float64 + ConvoyAgeWeight float64 + MRAgeWeight float64 + MaxRetryPenalty float64 + PriorityWeight float64 + RetryPenalty float64 + func DefaultScoreConfig() ScoreConfig + type ScoreInput struct + ConvoyCreatedAt *time.Time + MRCreatedAt time.Time + Now time.Time + Priority int + RetryCount int