MCPcopy Create free account
hub / github.com/compozy/agh / reconcileTaskWithStore

Method reconcileTaskWithStore

internal/task/manager.go:2821–2858  ·  view source on GitHub ↗
(
	ctx context.Context,
	store DeleteTaskMutationStore,
	taskID string,
)

Source from the content-addressed store, hash-verified

2819}
2820
2821func (m *Service) reconcileTaskWithStore(
2822 ctx context.Context,
2823 store DeleteTaskMutationStore,
2824 taskID string,
2825) (Task, error) {
2826 record, err := store.GetTask(ctx, taskID)
2827 if err != nil {
2828 return Task{}, err
2829 }
2830 dependencies, err := store.ListDependencies(ctx, taskID)
2831 if err != nil {
2832 return Task{}, err
2833 }
2834 runs, err := store.ListTaskRuns(ctx, RunQuery{TaskID: taskID})
2835 if err != nil {
2836 return Task{}, err
2837 }
2838
2839 canonicalStatus, err := m.canonicalTaskStatusWithStore(ctx, store, record, dependencies, runs)
2840 if err != nil {
2841 return Task{}, err
2842 }
2843 if record.Status.Normalize() == canonicalStatus.Normalize() {
2844 return record, nil
2845 }
2846
2847 record.Status = canonicalStatus
2848 record.UpdatedAt = m.now().UTC()
2849 if isTerminalTaskStatus(record.Status) {
2850 record.ClosedAt = record.UpdatedAt
2851 } else {
2852 record.ClosedAt = time.Time{}
2853 }
2854 if err := store.UpdateTask(ctx, record); err != nil {
2855 return Task{}, err
2856 }
2857 return record, nil
2858}
2859
2860func (m *Service) reconcileTaskCascade(ctx context.Context, taskID string) (Task, error) {
2861 return m.reconcileTaskCascadeWithStore(ctx, m.store, taskID)

Calls 8

isTerminalTaskStatusFunction · 0.85
GetTaskMethod · 0.65
ListDependenciesMethod · 0.65
ListTaskRunsMethod · 0.65
UpdateTaskMethod · 0.65
NormalizeMethod · 0.45
nowMethod · 0.45

Tested by

no test coverage detected