feat(worker): resolve max-turns from task then list then global default
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -390,10 +390,13 @@ public sealed class TaskRunner
|
|||||||
SystemPrompt: string.IsNullOrWhiteSpace(instructions) ? null : instructions,
|
SystemPrompt: string.IsNullOrWhiteSpace(instructions) ? null : instructions,
|
||||||
AgentPath: task.AgentPath ?? listConfig?.AgentPath,
|
AgentPath: task.AgentPath ?? listConfig?.AgentPath,
|
||||||
ResumeSessionId: resumeSessionId,
|
ResumeSessionId: resumeSessionId,
|
||||||
MaxTurns: global.DefaultMaxTurns,
|
MaxTurns: ResolveMaxTurns(task.MaxTurns, listConfig?.MaxTurns, global.DefaultMaxTurns),
|
||||||
PermissionMode: global.DefaultPermissionMode);
|
PermissionMode: global.DefaultPermissionMode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal static int? ResolveMaxTurns(int? taskTurns, int? listTurns, int globalDefault)
|
||||||
|
=> taskTurns ?? listTurns ?? globalDefault;
|
||||||
|
|
||||||
public static string MergeInstructions(params string?[] parts)
|
public static string MergeInstructions(params string?[] parts)
|
||||||
{
|
{
|
||||||
var trimmed = parts
|
var trimmed = parts
|
||||||
|
|||||||
@@ -0,0 +1,19 @@
|
|||||||
|
using ClaudeDo.Worker.Runner;
|
||||||
|
using Xunit;
|
||||||
|
|
||||||
|
namespace ClaudeDo.Worker.Tests.Runner;
|
||||||
|
|
||||||
|
public class MaxTurnsResolutionTests
|
||||||
|
{
|
||||||
|
[Fact]
|
||||||
|
public void Task_override_wins()
|
||||||
|
=> Assert.Equal(5, TaskRunner.ResolveMaxTurns(taskTurns: 5, listTurns: 20, globalDefault: 100));
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void List_override_used_when_no_task_override()
|
||||||
|
=> Assert.Equal(20, TaskRunner.ResolveMaxTurns(taskTurns: null, listTurns: 20, globalDefault: 100));
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void Falls_back_to_global_default()
|
||||||
|
=> Assert.Equal(100, TaskRunner.ResolveMaxTurns(taskTurns: null, listTurns: null, globalDefault: 100));
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user