Documentation
¶
Overview ¶
Package worktrees creates and validates the isolated Git worktrees used for human and agent development. Canonical clones remain clean, current mirrors of their base branches; all feature work lives below .wb/worktrees.
Index ¶
- func DefaultCleanupReportDir(projectsRoot string, now time.Time) string
- func OriginSlug(ctx context.Context, path string) (string, error)
- type CleanupOptions
- type CleanupOutcome
- type CleanupResult
- type CreateOptions
- type CreateResult
- type GuardOptions
- type GuardResult
- type ListOptions
- type ListResult
- type PullRequest
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DefaultCleanupReportDir ¶ added in v0.18.0
DefaultCleanupReportDir returns the durable audit directory for one apply.
Types ¶
type CleanupOptions ¶ added in v0.18.0
type CleanupOptions struct {
ProjectsRoot string
Task string
Base string
AllMerged bool
Apply bool
DeleteRemote bool
OlderThan time.Duration
ReportDir string
Now func() time.Time
}
CleanupOptions controls planning and removal of merged WB tasks.
type CleanupOutcome ¶ added in v0.18.0
type CleanupOutcome struct {
Results []CleanupResult `json:"results"`
ReportPath string `json:"report_path,omitempty"`
}
CleanupOutcome contains the decisions plus the durable audit report written before any destructive apply.
func Cleanup ¶ added in v0.18.0
func Cleanup(ctx context.Context, options CleanupOptions) (CleanupOutcome, error)
Cleanup plans or applies cleanup for one task or every safely merged task. A coordinated task is all-or-nothing: one unsafe repository blocks all of its worktrees.
type CleanupResult ¶ added in v0.18.0
type CleanupResult struct {
ListResult
Eligible bool `json:"eligible"`
Applied bool `json:"applied"`
RemoteDeleted bool `json:"remote_deleted"`
Reason string `json:"reason,omitempty"`
}
CleanupResult records one repository's cleanup decision and outcome.
type CreateOptions ¶
type CreateOptions struct {
ProjectsRoot string
Operation string
Branch string
Base string
Resume bool
}
CreateOptions controls one coordinated worktree creation operation.
type CreateResult ¶
type CreateResult struct {
Repository string `json:"repository"`
CanonicalDir string `json:"canonical_dir"`
WorktreeDir string `json:"worktree_dir"`
Branch string `json:"branch"`
Base string `json:"base"`
Action string `json:"action"`
}
CreateResult identifies the isolated checkout prepared for one repository.
func Create ¶
func Create(ctx context.Context, repositories []string, options CreateOptions) ([]CreateResult, error)
Create synchronizes each clean canonical base branch with origin, then creates (or explicitly resumes) the corresponding isolated worktree.
Synchronization happens before any branch is created. This is deliberate: every new feature branch must be based on the latest remote base, while an unsafe canonical clone causes the whole request to fail before feature work starts.
type GuardOptions ¶
GuardOptions defines the local checkout policy checked by hooks and agents.
type GuardResult ¶
type GuardResult struct {
Path string `json:"path"`
CanonicalDir string `json:"canonical_dir"`
WorktreesRoot string `json:"worktrees_root"`
Branch string `json:"branch"`
Kind string `json:"kind"`
}
GuardResult describes a checkout that satisfies the worktree policy.
func Guard ¶
func Guard(ctx context.Context, path string, options GuardOptions) (GuardResult, error)
Guard verifies that path is either a clean canonical checkout of the base branch or a non-base linked worktree in WB's central worktree hierarchy.
type ListOptions ¶ added in v0.18.0
ListOptions selects WB-managed task worktrees and optional GitHub PR state.
type ListResult ¶ added in v0.18.0
type ListResult struct {
Task string `json:"task"`
Repository string `json:"repository"`
CanonicalDir string `json:"canonical_dir"`
WorktreeDir string `json:"worktree_dir"`
Branch string `json:"branch"`
Base string `json:"base"`
HeadSHA string `json:"head_sha"`
RemoteHeadSHA string `json:"remote_head_sha,omitempty"`
Clean bool `json:"clean"`
LocallyMerged bool `json:"locally_merged"`
Locked bool `json:"locked"`
LastCommit time.Time `json:"last_commit"`
OpenPullRequest *PullRequest `json:"open_pull_request,omitempty"`
MergedPullRequest *PullRequest `json:"merged_pull_request,omitempty"`
}
ListResult describes one linked checkout below the WB task hierarchy.
func List ¶ added in v0.18.0
func List(ctx context.Context, options ListOptions) ([]ListResult, error)
List inspects real Git worktrees. It stays local unless GitHub is requested.
type PullRequest ¶ added in v0.18.0
type PullRequest struct {
Number int `json:"number"`
URL string `json:"url"`
State string `json:"state"`
Base string `json:"base"`
HeadSHA string `json:"head_sha"`
Merged *time.Time `json:"merged_at,omitempty"`
}
PullRequest is the GitHub evidence used to decide whether a branch is safe to clean up. HeadSHA must match the current branch tip.