Merge claudedo/5d627df8 — #12 planning permission-mode default
This commit is contained in:
@@ -80,7 +80,9 @@ public sealed class WindowsTerminalLauncherTests
|
||||
Assert.Equal("--model", args[0]);
|
||||
var permIdx = args.ToList().IndexOf("--permission-mode");
|
||||
Assert.True(permIdx >= 0);
|
||||
Assert.Equal("plan", args[permIdx + 1]);
|
||||
// Default mode, NOT plan mode: plan mode gates every MCP tool call regardless of the
|
||||
// allowlist, which would prompt on the first CreateChildTask.
|
||||
Assert.Equal("default", args[permIdx + 1]);
|
||||
Assert.Contains("--allowedTools", args);
|
||||
Assert.Contains(ctx.Files.SessionDirectory, args);
|
||||
Assert.Contains(ctx.Files.SystemPromptPath, args);
|
||||
@@ -89,10 +91,16 @@ public sealed class WindowsTerminalLauncherTests
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void BuildPlanningResumeArgs_PinsPlanModeAndResume()
|
||||
public void BuildPlanningResumeArgs_DefaultModeAllowlistsMcpAndResumes()
|
||||
{
|
||||
var args = WindowsTerminalLauncher.BuildPlanningResumeArgs("sess-9");
|
||||
Assert.Equal(new[] { "--permission-mode", "plan", "--resume", "sess-9" }, args);
|
||||
Assert.Equal("--permission-mode", args[0]);
|
||||
Assert.Equal("default", args[1]);
|
||||
Assert.Equal("--allowedTools", args[2]);
|
||||
// The MCP planning tools must be re-allowlisted on resume: the CLI does not restore
|
||||
// --allowedTools across a --resume, so without it CreateChildTask would prompt again.
|
||||
Assert.Contains("mcp__claudedo__", args[3]);
|
||||
Assert.Equal(new[] { "--resume", "sess-9" }, args.Skip(4).ToArray());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
||||
@@ -361,7 +361,8 @@ public sealed class InteractiveLaunchSpecServiceTests : IDisposable
|
||||
Assert.Equal(_worktreeDir, spec.Cwd);
|
||||
Assert.Equal(_claudeStubPath, spec.Exe);
|
||||
Assert.Contains("--permission-mode", spec.Args);
|
||||
Assert.Contains("plan", spec.Args);
|
||||
// Default mode, not plan mode -- plan mode would gate the MCP planning tools.
|
||||
Assert.Contains("default", spec.Args);
|
||||
Assert.Equal("tok-1", spec.Env["CLAUDEDO_PLANNING_TOKEN"]);
|
||||
Assert.Equal("20000", spec.Env["MAX_THINKING_TOKENS"]);
|
||||
}
|
||||
@@ -375,7 +376,11 @@ public sealed class InteractiveLaunchSpecServiceTests : IDisposable
|
||||
|
||||
var spec = BuildService().BuildPlanningResume(ctx);
|
||||
|
||||
Assert.Equal(new[] { "--permission-mode", "plan", "--resume", "sess-42" }, spec.Args);
|
||||
Assert.Equal("--permission-mode", spec.Args[0]);
|
||||
Assert.Equal("default", spec.Args[1]);
|
||||
Assert.Equal("--allowedTools", spec.Args[2]);
|
||||
Assert.Contains("mcp__claudedo__", spec.Args[3]);
|
||||
Assert.Equal(new[] { "--resume", "sess-42" }, spec.Args.Skip(4).ToArray());
|
||||
Assert.Equal("tok-2", spec.Env["CLAUDEDO_PLANNING_TOKEN"]);
|
||||
Assert.Equal(_worktreeDir, spec.Cwd);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user