// Package docs generates commit / PR markdown summaries on commit. A background // job (SummaryRunner) gathers the diffstat + log for a commit, prompts an LLM to // produce markdown, and upserts a commit_summaries row. Enqueued post-commit via // EnqueueCommitSummary (injected as a callback into gitops to avoid import cycles). package docs import ( "time" "github.com/google/uuid" "github.com/yan1h/agent-coding-workflow/internal/jobs" ) // JobTypeCommitSummary is the jobs.JobType for an event-driven commit summary. const JobTypeCommitSummary jobs.JobType = "docs.commit_summary" // Summary kind values mirror the commit_summaries.kind CHECK constraint. const ( KindCommit = "commit" KindPR = "pr" ) // Status values mirror the commit_summaries.status CHECK constraint. const ( StatusPending = "pending" StatusCompleted = "completed" StatusFailed = "failed" ) // Summary mirrors a commit_summaries row. type Summary struct { ID uuid.UUID WorkspaceID uuid.UUID WorktreeID *uuid.UUID Branch string CommitSHA string Kind string Title *string BodyMD string Model *string Status string Error *string CreatedAt time.Time } // summaryPayload is the jobs payload for JobTypeCommitSummary. type summaryPayload struct { WorkspaceID uuid.UUID `json:"workspace_id"` WorktreeID *uuid.UUID `json:"worktree_id,omitempty"` Branch string `json:"branch"` CommitSHA string `json:"commit_sha"` }