Documentation
¶
Overview ¶
Package effort owns repository-local immutable effort residents and their memory.
Index ¶
- Constants
- Variables
- func ListDocument(records []Record) (presentation.Document, error)
- func RandomUUIDv4() (string, error)
- func ValidateCurrentOwner(path string, info os.FileInfo) error
- type CorruptError
- type Dependencies
- type FinishResidentState
- type FinishResult
- type NewInput
- type PartialFinishError
- type Record
- type RecoveryAction
- type RollbackResult
- type Service
- func (s *Service) Finish(ctx context.Context, slug string) (FinishResult, error)
- func (s *Service) List() ([]Record, error)
- func (s *Service) New(ctx context.Context, input NewInput) (Record, error)
- func (s *Service) RollbackCreation(ctx context.Context, identity Record) (RollbackResult, error)
- func (s *Service) Show(slug string) (Record, error)
Constants ¶
const SchemaVersion = 2
Variables ¶
var ErrManagedTopologyPresent = errors.New("managed topology present")
ErrManagedTopologyPresent classifies the restartable-finish refusal that managed Git topology for the slug still exists. Callers branch on errors.Is; the prose stays the user-facing protocol.
Functions ¶
func ListDocument ¶
func ListDocument(records []Record) (presentation.Document, error)
ListDocument maps active efforts in their store-defined slug order.
func RandomUUIDv4 ¶
RandomUUIDv4 is the production identity allocator. It is exported because the composition root, not this package, decides what allocates an effort's internal identity.
Types ¶
type CorruptError ¶
CorruptError identifies resident input that must be preserved byte-for-byte.
func (*CorruptError) Diagnostic ¶
func (e *CorruptError) Diagnostic() (presentation.Diagnostic, error)
Diagnostic maps a corrupt resident refusal into the common readable diagnostic.
func (*CorruptError) Error ¶
func (e *CorruptError) Error() string
func (*CorruptError) Unwrap ¶
func (e *CorruptError) Unwrap() error
type Dependencies ¶
type Dependencies struct {
Clock func() time.Time
UUID func() (string, error)
Worktrees func(context.Context) ([]awfgit.WorktreeRegistration, error)
BranchExists func(context.Context, string) (bool, error)
ValidateRef func(context.Context, string) (bool, error)
ExpectedArchiveMarker func() ([]byte, error)
// Fault is the durability-boundary hook the restartable-finish tests
// interrupt the service at. It is the one optional member: a nil Fault
// injects nothing, which is what production wants and what "no fault
// injection configured" means.
Fault func(stage string) error
}
Dependencies is everything the service reaches the outside world through: the clock, the identity allocator, the three Git questions it asks, and tree removal. Every one is supplied by the composition root, because a service that quietly substituted its own would make what a caller composed unverifiable from the call site.
The Git dependencies are stated as this package's own questions rather than as a repository object, so the service depends on what it asks and not on who answers. Each is bound to the checkout the service was opened against, so none of them names a root.
type FinishResidentState ¶ added in v0.33.0
type FinishResidentState string
FinishResidentState identifies the resident namespace proven at return.
const ( FinishStateActive FinishResidentState = "active" FinishStateReserved FinishResidentState = "reserved" FinishStateArchived FinishResidentState = "archived" )
type FinishResult ¶
type FinishResult struct {
State FinishResidentState
Reserved bool
Archived bool
DestinationSyncAvailable bool
SourceSyncAvailable bool
DestinationSynced bool
SourceSynced bool
ArchivePath string
}
FinishResult reports each observable namespace and durability boundary.
func (FinishResult) FinishMutation ¶
func (r FinishResult) FinishMutation(slug string) (presentation.Mutation, error)
FinishMutation maps a completed restartable finish into its effort-owned mutation identity, changed axes, and continuation action.
type NewInput ¶
NewInput carries the caller-selected immutable identity and independent descriptive title for one effort creation.
type PartialFinishError ¶
type PartialFinishError struct {
Result FinishResult
Cause error
Actions []RecoveryAction
}
PartialFinishError preserves a failed restartable finish's observed state, mechanism cause, and site-specific recovery actions.
func (*PartialFinishError) Diagnostic ¶
func (e *PartialFinishError) Diagnostic() (presentation.Diagnostic, error)
Diagnostic maps a partial finish without embedding recovery prose in Cause.
func (*PartialFinishError) Error ¶
func (e *PartialFinishError) Error() string
Error preserves the failed mechanism's message for legacy error callers.
func (*PartialFinishError) Unwrap ¶
func (e *PartialFinishError) Unwrap() error
Unwrap exposes the failed mechanism for identity-aware callers.
type Record ¶
type Record struct {
SchemaVersion int `json:"-"`
ID string `json:"id"`
Slug string `json:"slug"`
Title string `json:"title"`
CreatedAt time.Time `json:"createdAt"`
MemoryPath string `json:"memoryPath"`
}
Record is the public effort view. SchemaVersion belongs to the containing reply, while static state carries it directly.
func (Record) Detail ¶
func (r Record) Detail() (presentation.Detail, error)
Detail maps one resident record into its ordered readable facts.
func (Record) NewEffortMutation ¶
func (r Record) NewEffortMutation(mutation presentation.Mutation) (presentation.Mutation, error)
NewEffortMutation composes effort-owned identity with worktree-owned creation facts. The caller supplies a mutation already mapped by worktree.
type RecoveryAction ¶
type RecoveryAction struct{ Text string }
RecoveryAction is one independently executable ordered remedy for a failed effort operation. Its meaning remains model-owned until presentation maps it.
type RollbackResult ¶ added in v0.33.0
RollbackResult reports the narrow failed-creation deletion transition.
type Service ¶
type Service struct {
// contains filtered or unexported fields
}
Service owns immutable effort residents and restartable finish.
func Open ¶
func Open(roots awfgit.ControlRoots, deps Dependencies) (*Service, error)
Open resolves the resident paths owned by roots and composes the service over the dependencies it is given. The control roots arrive already resolved so one command resolves them once, and so the service and the worktree manager provably reason about the same repository identity.
func (*Service) RollbackCreation ¶ added in v0.33.0
RollbackCreation removes only the immutable resident created by a failed default worktree transaction. It is deliberately not a finish variant.