Documentation
¶
Overview ¶
Package sqlite implements the storage interface using SQLite.
Index ¶
- func IsHierarchicalID(id string) (isHierarchical bool, parentID string)
- func MigrationVersion(db *sql.DB) (int64, error)
- func RunMigrations(db *sql.DB) error
- type Store
- func (s *Store) AddComment(ctx context.Context, issueID, author, text string) (*types.Comment, error)
- func (s *Store) AddDependency(ctx context.Context, dep *types.Dependency, actor string) error
- func (s *Store) AddLabelToIssue(ctx context.Context, issueID, label, actor string) error
- func (s *Store) Close() error
- func (s *Store) CloseIssue(ctx context.Context, id string, reason string, actor string) error
- func (s *Store) CreateIssue(ctx context.Context, issue *types.Issue, actor string) error
- func (s *Store) CreateLabel(ctx context.Context, label *types.Label) error
- func (s *Store) CreatePlan(ctx context.Context, plan *types.Plan) error
- func (s *Store) CreateWorkspace(ctx context.Context, ws *types.Workspace) error
- func (s *Store) DeleteComment(ctx context.Context, commentID int64) error
- func (s *Store) DeleteIssue(ctx context.Context, id string) error
- func (s *Store) DeleteLabel(ctx context.Context, workspaceID, name string) error
- func (s *Store) DeletePlan(ctx context.Context, id string) error
- func (s *Store) DeleteWorkspace(ctx context.Context, idOrName string) error
- func (s *Store) GetBlockedIssues(ctx context.Context, filter types.WorkFilter) ([]*types.BlockedIssue, error)
- func (s *Store) GetComments(ctx context.Context, issueID string) ([]*types.Comment, error)
- func (s *Store) GetDependencies(ctx context.Context, issueID string) ([]*types.Dependency, error)
- func (s *Store) GetDependents(ctx context.Context, issueID string) ([]*types.Dependency, error)
- func (s *Store) GetEvents(ctx context.Context, issueID string, limit int) ([]*types.Event, error)
- func (s *Store) GetInlinePlan(ctx context.Context, issueID string) (*types.Comment, error)
- func (s *Store) GetIssue(ctx context.Context, id string) (*types.Issue, error)
- func (s *Store) GetIssueByExternalRef(ctx context.Context, externalRef string) (*types.Issue, error)
- func (s *Store) GetIssueDetails(ctx context.Context, id string) (*types.IssueDetails, error)
- func (s *Store) GetIssueLabels(ctx context.Context, issueID string) ([]string, error)
- func (s *Store) GetLabel(ctx context.Context, workspaceID, name string) (*types.Label, error)
- func (s *Store) GetLabelsForIssues(ctx context.Context, issueIDs []string) (map[string][]string, error)
- func (s *Store) GetLinkedIssues(ctx context.Context, planID string) ([]string, error)
- func (s *Store) GetLinkedPlans(ctx context.Context, issueID string) ([]*types.Plan, error)
- func (s *Store) GetNextChildID(ctx context.Context, parentID string) (string, error)
- func (s *Store) GetPlan(ctx context.Context, id string) (*types.Plan, error)
- func (s *Store) GetPlanContext(ctx context.Context, issueID string) (*types.PlanContext, error)
- func (s *Store) GetPlanHistory(ctx context.Context, issueID string) ([]*types.Comment, error)
- func (s *Store) GetReadyWork(ctx context.Context, filter types.WorkFilter) ([]*types.Issue, error)
- func (s *Store) GetStatistics(ctx context.Context, workspaceID string) (*types.Statistics, error)
- func (s *Store) GetWorkspace(ctx context.Context, id string) (*types.Workspace, error)
- func (s *Store) GetWorkspaceByName(ctx context.Context, name string) (*types.Workspace, error)
- func (s *Store) GetWorkspaceByPath(ctx context.Context, path string) (*types.Workspace, error)
- func (s *Store) IsBlocked(ctx context.Context, issueID string) (bool, []string, error)
- func (s *Store) LinkIssueToPlan(ctx context.Context, issueID, planID string) error
- func (s *Store) ListIssues(ctx context.Context, filter types.IssueFilter) ([]*types.Issue, error)
- func (s *Store) ListLabels(ctx context.Context, workspaceID string) ([]*types.Label, error)
- func (s *Store) ListPlans(ctx context.Context, workspaceID string) ([]*types.Plan, error)
- func (s *Store) ListWorkspaces(ctx context.Context) ([]*types.Workspace, error)
- func (s *Store) Path() string
- func (s *Store) RemoveDependency(ctx context.Context, issueID, dependsOnID string, actor string) error
- func (s *Store) RemoveLabelFromIssue(ctx context.Context, issueID, label, actor string) error
- func (s *Store) ReopenIssue(ctx context.Context, id string, actor string) error
- func (s *Store) SetInlinePlan(ctx context.Context, issueID, author, text string) (*types.Comment, error)
- func (s *Store) UnlinkIssueFromPlan(ctx context.Context, issueID, planID string) error
- func (s *Store) UpdateComment(ctx context.Context, commentID int64, text string) error
- func (s *Store) UpdateIssue(ctx context.Context, id string, updates map[string]interface{}, actor string) error
- func (s *Store) UpdateLabel(ctx context.Context, label *types.Label) error
- func (s *Store) UpdatePlan(ctx context.Context, id, title, content string) error
- func (s *Store) UpdateWorkspace(ctx context.Context, ws *types.Workspace) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func IsHierarchicalID ¶
IsHierarchicalID checks if an issue ID is hierarchical (has a parent). Hierarchical IDs have the format {parentID}.{N} where N is a numeric child suffix. Returns true and the parent ID if hierarchical, false and empty string otherwise.
func MigrationVersion ¶
MigrationVersion returns the current migration version.
func RunMigrations ¶
RunMigrations applies all pending database migrations.
Types ¶
type Store ¶
type Store struct {
// contains filtered or unexported fields
}
Store implements the storage.Storage interface using SQLite.
func New ¶
New creates a new SQLite store at the given path. If the path is empty, uses ~/.arc/data.db
func (*Store) AddComment ¶
func (s *Store) AddComment(ctx context.Context, issueID, author, text string) (*types.Comment, error)
AddComment adds a comment to an issue.
func (*Store) AddDependency ¶
AddDependency adds a dependency between two issues.
func (*Store) AddLabelToIssue ¶
AddLabelToIssue adds a label to an issue.
func (*Store) CloseIssue ¶
CloseIssue closes an issue.
func (*Store) CreateIssue ¶
CreateIssue creates a new issue. If ParentID is set, generates a hierarchical child ID (e.g., parent.1) and automatically creates a parent-child dependency.
func (*Store) CreateLabel ¶
CreateLabel creates a new label definition.
func (*Store) CreatePlan ¶ added in v0.7.0
CreatePlan creates a new shared plan.
func (*Store) CreateWorkspace ¶
CreateWorkspace creates a new workspace.
func (*Store) DeleteComment ¶
DeleteComment deletes a comment.
func (*Store) DeleteIssue ¶
DeleteIssue deletes an issue.
func (*Store) DeleteLabel ¶
DeleteLabel deletes a label.
func (*Store) DeletePlan ¶ added in v0.7.0
DeletePlan deletes a plan.
func (*Store) DeleteWorkspace ¶
DeleteWorkspace deletes a workspace and all its issues. Accepts either workspace ID (e.g., "ws-00blnw") or name (e.g., "my-project-a1b2c3").
func (*Store) GetBlockedIssues ¶
func (s *Store) GetBlockedIssues(ctx context.Context, filter types.WorkFilter) ([]*types.BlockedIssue, error)
GetBlockedIssues returns issues that are blocked by other issues.
func (*Store) GetComments ¶
GetComments returns all comments for an issue.
func (*Store) GetDependencies ¶
GetDependencies returns the dependencies of an issue.
func (*Store) GetDependents ¶
GetDependents returns issues that depend on the given issue.
func (*Store) GetInlinePlan ¶ added in v0.7.0
GetInlinePlan returns the latest inline plan for an issue.
func (*Store) GetIssueByExternalRef ¶
func (s *Store) GetIssueByExternalRef(ctx context.Context, externalRef string) (*types.Issue, error)
GetIssueByExternalRef retrieves an issue by its external reference.
func (*Store) GetIssueDetails ¶
GetIssueDetails retrieves an issue with all its relational data.
func (*Store) GetIssueLabels ¶
GetIssueLabels returns all labels for an issue.
func (*Store) GetLabelsForIssues ¶
func (s *Store) GetLabelsForIssues(ctx context.Context, issueIDs []string) (map[string][]string, error)
GetLabelsForIssues fetches labels for multiple issues in a single query. Returns a map of issue_id -> []labels
func (*Store) GetLinkedIssues ¶ added in v0.7.0
GetLinkedIssues returns all issue IDs linked to a plan.
func (*Store) GetLinkedPlans ¶ added in v0.7.0
GetLinkedPlans returns all plans linked to an issue.
func (*Store) GetNextChildID ¶
GetNextChildID generates the next hierarchical child ID for a given parent. Returns formatted ID as parentID.{counter} (e.g., arc-a3f8e9.1)
func (*Store) GetPlanContext ¶ added in v0.7.0
GetPlanContext returns the complete plan context for an issue. This includes inline plan, parent plan (from parent-child deps), and shared plans.
func (*Store) GetPlanHistory ¶ added in v0.7.0
GetPlanHistory returns all plan versions for an issue.
func (*Store) GetReadyWork ¶
GetReadyWork returns issues that are ready to work on (not blocked).
func (*Store) GetStatistics ¶
GetStatistics returns aggregate statistics for a workspace.
func (*Store) GetWorkspace ¶
GetWorkspace retrieves a workspace by ID.
func (*Store) GetWorkspaceByName ¶
GetWorkspaceByName retrieves a workspace by name.
func (*Store) GetWorkspaceByPath ¶
GetWorkspaceByPath retrieves a workspace by its file system path.
func (*Store) LinkIssueToPlan ¶ added in v0.7.0
LinkIssueToPlan creates a link between an issue and a plan.
func (*Store) ListIssues ¶
ListIssues returns issues matching the filter.
func (*Store) ListLabels ¶
ListLabels returns all labels for a workspace.
func (*Store) ListWorkspaces ¶
ListWorkspaces returns all workspaces.
func (*Store) RemoveDependency ¶
func (s *Store) RemoveDependency(ctx context.Context, issueID, dependsOnID string, actor string) error
RemoveDependency removes a dependency between two issues.
func (*Store) RemoveLabelFromIssue ¶
RemoveLabelFromIssue removes a label from an issue.
func (*Store) ReopenIssue ¶
ReopenIssue reopens a closed issue.
func (*Store) SetInlinePlan ¶ added in v0.7.0
func (s *Store) SetInlinePlan(ctx context.Context, issueID, author, text string) (*types.Comment, error)
SetInlinePlan sets or updates an inline plan comment on an issue. If a plan already exists, a new version is created (preserving history).
func (*Store) UnlinkIssueFromPlan ¶ added in v0.7.0
UnlinkIssueFromPlan removes a link between an issue and a plan.
func (*Store) UpdateComment ¶
UpdateComment updates a comment's text.
func (*Store) UpdateIssue ¶
func (s *Store) UpdateIssue(ctx context.Context, id string, updates map[string]interface{}, actor string) error
UpdateIssue updates an issue with the given updates.
func (*Store) UpdateLabel ¶
UpdateLabel updates a label.
func (*Store) UpdatePlan ¶ added in v0.7.0
UpdatePlan updates a plan's title and content.