diff --git a/internal/tools/team_tasks_mutations.go b/internal/tools/team_tasks_mutations.go index b2320e76..54ca4133 100644 --- a/internal/tools/team_tasks_mutations.go +++ b/internal/tools/team_tasks_mutations.go @@ -322,6 +322,11 @@ func (t *TeamTasksTool) executeProgress(ctx context.Context, args map[string]any return ErrorResult("only the assigned task owner can update progress. As team lead, task results arrive automatically when members complete their work.") } + // Prevent progress regression — keep the higher value. + if percent < task.ProgressPercent { + percent = task.ProgressPercent + } + if err := t.manager.teamStore.UpdateTaskProgress(ctx, taskID, team.ID, percent, step); err != nil { return ErrorResult("failed to update progress: " + err.Error()) }