You've already forked agentic-coding-workflow
bugfix
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
package docs
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"time"
|
||||
|
||||
"github.com/google/uuid"
|
||||
|
||||
"github.com/yan1h/agent-coding-workflow/internal/infra/errs"
|
||||
"github.com/yan1h/agent-coding-workflow/internal/jobs"
|
||||
)
|
||||
|
||||
// Enqueuer is the subset of jobs.Repository the service needs.
|
||||
type Enqueuer interface {
|
||||
Enqueue(ctx context.Context, typ jobs.JobType, payload json.RawMessage, scheduledAt time.Time, maxAttempts int32) (*jobs.Job, error)
|
||||
}
|
||||
|
||||
// Service is the docs application service.
|
||||
type Service interface {
|
||||
// EnqueueCommitSummary enqueues a docs.commit_summary job for the given
|
||||
// commit. Idempotent at the data layer via UNIQUE(workspace, commit, kind).
|
||||
EnqueueCommitSummary(ctx context.Context, wsID uuid.UUID, worktreeID *uuid.UUID, branch, commitSHA string) error
|
||||
}
|
||||
|
||||
type service struct {
|
||||
jobs Enqueuer
|
||||
enabled bool
|
||||
}
|
||||
|
||||
// NewService constructs the docs Service. When enabled is false, EnqueueCommitSummary
|
||||
// is a no-op so the commit path stays free of doc-gen overhead.
|
||||
func NewService(jobsRepo Enqueuer, enabled bool) Service {
|
||||
return &service{jobs: jobsRepo, enabled: enabled}
|
||||
}
|
||||
|
||||
func (s *service) EnqueueCommitSummary(ctx context.Context, wsID uuid.UUID, worktreeID *uuid.UUID, branch, commitSHA string) error {
|
||||
if !s.enabled {
|
||||
return nil
|
||||
}
|
||||
if commitSHA == "" {
|
||||
return errs.New(errs.CodeInvalidInput, "commit_sha required")
|
||||
}
|
||||
payload, _ := json.Marshal(summaryPayload{
|
||||
WorkspaceID: wsID,
|
||||
WorktreeID: worktreeID,
|
||||
Branch: branch,
|
||||
CommitSHA: commitSHA,
|
||||
})
|
||||
if _, err := s.jobs.Enqueue(ctx, JobTypeCommitSummary, payload, time.Now(), 3); err != nil {
|
||||
return errs.Wrap(err, errs.CodeInternal, "enqueue docs.commit_summary")
|
||||
}
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user