board

package
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 28, 2026 License: AGPL-3.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrTicketNotFound = &BoardError{Message: "ticket not found"}
)

Functions

func Slugify

func Slugify(s string, maxLen int) string

Types

type AgentStatus

type AgentStatus string
const (
	AgentNone      AgentStatus = "none"
	AgentIdle      AgentStatus = "idle"
	AgentWorking   AgentStatus = "working"
	AgentWaiting   AgentStatus = "waiting"
	AgentCompleted AgentStatus = "completed"
	AgentError     AgentStatus = "error"
)

type BoardError

type BoardError struct {
	Message string
}

func (*BoardError) Error

func (e *BoardError) Error() string

type Column

type Column struct {
	ID     string       `json:"id"`
	Name   string       `json:"name"`
	Status TicketStatus `json:"status"`
	Color  string       `json:"color"`
	Limit  int          `json:"limit"`
}

func DefaultColumns

func DefaultColumns() []Column

type Ticket

type Ticket struct {
	ID          TicketID     `json:"id"`
	ProjectID   string       `json:"project_id"`
	Title       string       `json:"title"`
	Description string       `json:"description,omitempty"`
	Status      TicketStatus `json:"status"`

	UseWorktree  bool   `json:"use_worktree"`
	WorktreePath string `json:"worktree_path,omitempty"`
	BranchName   string `json:"branch_name,omitempty"`
	BaseBranch   string `json:"base_branch,omitempty"`

	AgentType      string      `json:"agent_type,omitempty"`
	AgentStatus    AgentStatus `json:"agent_status"`
	AgentSpawnedAt *time.Time  `json:"agent_spawned_at,omitempty"`
	AgentPort      int         `json:"agent_port,omitempty"`
	AgentSessionID string      `json:"agent_session_id,omitempty"`

	CreatedAt   time.Time  `json:"created_at"`
	UpdatedAt   time.Time  `json:"updated_at"`
	StartedAt   *time.Time `json:"started_at,omitempty"`
	CompletedAt *time.Time `json:"completed_at,omitempty"`

	Labels   []string          `json:"labels,omitempty"`
	Priority int               `json:"priority,omitempty"`
	Meta     map[string]string `json:"meta,omitempty"`

	// Dependencies - tickets that block this one (informational only, no enforcement)
	BlockedBy []TicketID `json:"blocked_by,omitempty"`
}

func NewTicket

func NewTicket(title, projectID string) *Ticket

func (*Ticket) SetStatus

func (t *Ticket) SetStatus(status TicketStatus)

func (*Ticket) Touch

func (t *Ticket) Touch()

type TicketID

type TicketID string

func NewTicketID

func NewTicketID() TicketID

type TicketStatus

type TicketStatus string
const (
	StatusBacklog    TicketStatus = "backlog"
	StatusInProgress TicketStatus = "in_progress"
	StatusDone       TicketStatus = "done"
	StatusArchived   TicketStatus = "archived"
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL