From 02a3bb4c790adcdd7c5e2abb28f3315f9506142e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 17 Mar 2026 21:20:20 +0000 Subject: [PATCH 1/2] Initial plan From 4398dd895b76694a28073849fcf3f99541980d76 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 17 Mar 2026 21:36:22 +0000 Subject: [PATCH 2/2] feat: sync Claude Code upstream changes da80366 -> 079dc85 (v2.1.77); add --name flag Co-authored-by: KSemenenko <4385716+KSemenenko@users.noreply.github.com> --- .../Unit/ClaudeExecTests.cs | 29 +++++++++++++++++++ ClaudeCodeSharpSDK/Execution/ClaudeExec.cs | 7 +++++ .../Execution/ClaudeExecArgs.cs | 2 ++ submodules/anthropic-claude-code | 2 +- 4 files changed, 39 insertions(+), 1 deletion(-) diff --git a/ClaudeCodeSharpSDK.Tests/Unit/ClaudeExecTests.cs b/ClaudeCodeSharpSDK.Tests/Unit/ClaudeExecTests.cs index 5928fa3..a287b6f 100644 --- a/ClaudeCodeSharpSDK.Tests/Unit/ClaudeExecTests.cs +++ b/ClaudeCodeSharpSDK.Tests/Unit/ClaudeExecTests.cs @@ -72,6 +72,8 @@ public class ClaudeExecTests private const string TmpDirectory = "/tmp"; private const string UserProjectSettingSources = "user,project"; private const string VerboseFlag = "--verbose"; + private const string NameFlag = "--name"; + private const string SessionDisplayName = "My review session"; private const string WriteToolName = "Write"; private static readonly string[] AdditionalDirectories = [RepoDirectory, TmpDirectory]; private static readonly string[] AllowedTools = [ReadToolName, WriteToolName]; @@ -159,6 +161,33 @@ public async Task BuildCommandArgs_RepeatsVarArgFlagsWithoutCommaPacking() await Assert.That(GetAllFlagValues(commandArgs, BetasFlag)).IsEquivalentTo(BetaFlags); } + [Test] + public async Task BuildCommandArgs_WithSessionName_IncludesNameFlag() + { + var exec = new ClaudeExec(executablePath: TestConstants.ClaudeExecutablePath); + + var commandArgs = exec.BuildCommandArgs(new ClaudeExecArgs + { + Input = SummarizeInput, + SessionName = SessionDisplayName, + }); + + await Assert.That(GetRequiredFlagValue(commandArgs, NameFlag)).IsEqualTo(SessionDisplayName); + } + + [Test] + public async Task BuildCommandArgs_WithoutSessionName_OmitsNameFlag() + { + var exec = new ClaudeExec(executablePath: TestConstants.ClaudeExecutablePath); + + var commandArgs = exec.BuildCommandArgs(new ClaudeExecArgs + { + Input = SummarizeInput, + }); + + await Assert.That(commandArgs.Contains(NameFlag)).IsFalse(); + } + [Test] public async Task BuildEnvironment_IncludesAnthropicOverrides() { diff --git a/ClaudeCodeSharpSDK/Execution/ClaudeExec.cs b/ClaudeCodeSharpSDK/Execution/ClaudeExec.cs index 6ca9a81..bdd6cb2 100644 --- a/ClaudeCodeSharpSDK/Execution/ClaudeExec.cs +++ b/ClaudeCodeSharpSDK/Execution/ClaudeExec.cs @@ -51,6 +51,7 @@ public sealed class ClaudeExec private const string BetasFlag = "--betas"; private const string AgentsFlag = "--agents"; private const string VerboseFlag = "--verbose"; + private const string NameFlag = "--name"; private const string StreamJsonFormat = "stream-json"; private const string TextFormat = "text"; @@ -284,6 +285,12 @@ internal IReadOnlyList BuildCommandArgs(ClaudeExecArgs args) commandArgs.Add(JsonSerializer.Serialize(inlineAgents, ClaudeJsonSerializerContext.Default.DictionaryStringInlineAgentDefinition)); } + if (!string.IsNullOrWhiteSpace(args.SessionName)) + { + commandArgs.Add(NameFlag); + commandArgs.Add(args.SessionName); + } + if (args.AdditionalCliArguments is not null) { foreach (var argument in args.AdditionalCliArguments) diff --git a/ClaudeCodeSharpSDK/Execution/ClaudeExecArgs.cs b/ClaudeCodeSharpSDK/Execution/ClaudeExecArgs.cs index 700bdcf..d25ba66 100644 --- a/ClaudeCodeSharpSDK/Execution/ClaudeExecArgs.cs +++ b/ClaudeCodeSharpSDK/Execution/ClaudeExecArgs.cs @@ -75,6 +75,8 @@ public sealed record ClaudeExecArgs public bool ReplayUserMessages { get; init; } + public string? SessionName { get; init; } + public IReadOnlyList? AdditionalCliArguments { get; init; } public CancellationToken CancellationToken { get; init; } = CancellationToken.None; diff --git a/submodules/anthropic-claude-code b/submodules/anthropic-claude-code index da80366..079dc85 160000 --- a/submodules/anthropic-claude-code +++ b/submodules/anthropic-claude-code @@ -1 +1 @@ -Subproject commit da80366c484698e6370ad9e8abf121f33f8f79e0 +Subproject commit 079dc856c6c990de5be28e288939293905c154c1