From c7929f7491bccf4e9c112eadb483308e5eef7c34 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:22 +0000 Subject: [PATCH 1/2] Initial plan From 1dde7e9d43493b57ec0f0ed53fd10cb519658ab2 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 17 Mar 2026 21:43:02 +0000 Subject: [PATCH 2/2] Sync upstream claude-code v2.1.77: add --name flag, Opus/Sonnet 4.6 models, update submodule Co-authored-by: KSemenenko <4385716+KSemenenko@users.noreply.github.com> --- .../Unit/ClaudeExecTests.cs | 29 +++++++++++++++++++ ClaudeCodeSharpSDK/Execution/ClaudeExec.cs | 7 +++++ .../Execution/ClaudeExecArgs.cs | 2 ++ ClaudeCodeSharpSDK/Models/ClaudeModels.cs | 6 ++++ submodules/anthropic-claude-code | 2 +- 5 files changed, 45 insertions(+), 1 deletion(-) diff --git a/ClaudeCodeSharpSDK.Tests/Unit/ClaudeExecTests.cs b/ClaudeCodeSharpSDK.Tests/Unit/ClaudeExecTests.cs index 5928fa3..38dd4c7 100644 --- a/ClaudeCodeSharpSDK.Tests/Unit/ClaudeExecTests.cs +++ b/ClaudeCodeSharpSDK.Tests/Unit/ClaudeExecTests.cs @@ -34,6 +34,8 @@ public class ClaudeExecTests private const string HealthCheckInput = "Health check"; private const string HooksKey = "hooks"; private const string InputFormatFlag = "--input-format"; + private const string NameFlag = "--name"; + private const string SessionNameValue = "my-session"; private const string MaxBudgetFlag = "--max-budget-usd"; private const string MaxBudgetValue = "0.25"; private const string McpConfigFlag = "--mcp-config"; @@ -206,6 +208,33 @@ public async Task BuildCommandArgs_WithReservedAdditionalCliFlag_Throws() await Assert.That(exception!.Message).Contains(ReservedOutputFormatFlag); } + [Test] + public async Task BuildCommandArgs_WithSessionName_IncludesNameFlag() + { + var exec = new ClaudeExec(executablePath: TestConstants.ClaudeExecutablePath); + + var commandArgs = exec.BuildCommandArgs(new ClaudeExecArgs + { + Input = SummarizeInput, + SessionName = SessionNameValue, + }); + + await Assert.That(GetRequiredFlagValue(commandArgs, NameFlag)).IsEqualTo(SessionNameValue); + } + + [Test] + public async Task BuildCommandArgs_WithoutSessionName_DoesNotIncludeNameFlag() + { + var exec = new ClaudeExec(executablePath: TestConstants.ClaudeExecutablePath); + + var commandArgs = exec.BuildCommandArgs(new ClaudeExecArgs + { + Input = SummarizeInput, + }); + + await Assert.That(FindFlagIndex(commandArgs, NameFlag)).IsEqualTo(-1); + } + private static JsonObject CreateBaseSettings() { return new JsonObject diff --git a/ClaudeCodeSharpSDK/Execution/ClaudeExec.cs b/ClaudeCodeSharpSDK/Execution/ClaudeExec.cs index 6ca9a81..b6fc2c0 100644 --- a/ClaudeCodeSharpSDK/Execution/ClaudeExec.cs +++ b/ClaudeCodeSharpSDK/Execution/ClaudeExec.cs @@ -38,6 +38,7 @@ public sealed class ClaudeExec private const string ContinueFlag = "--continue"; private const string ResumeFlag = "--resume"; private const string SessionIdFlag = "--session-id"; + private const string NameFlag = "--name"; private const string ForkSessionFlag = "--fork-session"; private const string NoSessionPersistenceFlag = "--no-session-persistence"; private const string MaxBudgetUsdFlag = "--max-budget-usd"; @@ -227,6 +228,12 @@ internal IReadOnlyList BuildCommandArgs(ClaudeExecArgs args) commandArgs.Add(args.SessionId); } + if (!string.IsNullOrWhiteSpace(args.SessionName)) + { + commandArgs.Add(NameFlag); + commandArgs.Add(args.SessionName); + } + if (args.ForkSession) { commandArgs.Add(ForkSessionFlag); diff --git a/ClaudeCodeSharpSDK/Execution/ClaudeExecArgs.cs b/ClaudeCodeSharpSDK/Execution/ClaudeExecArgs.cs index 700bdcf..77a2ec7 100644 --- a/ClaudeCodeSharpSDK/Execution/ClaudeExecArgs.cs +++ b/ClaudeCodeSharpSDK/Execution/ClaudeExecArgs.cs @@ -47,6 +47,8 @@ public sealed record ClaudeExecArgs public string? SessionId { get; init; } + public string? SessionName { get; init; } + public bool ForkSession { get; init; } public bool NoSessionPersistence { get; init; } diff --git a/ClaudeCodeSharpSDK/Models/ClaudeModels.cs b/ClaudeCodeSharpSDK/Models/ClaudeModels.cs index 3ff7354..77adbbe 100644 --- a/ClaudeCodeSharpSDK/Models/ClaudeModels.cs +++ b/ClaudeCodeSharpSDK/Models/ClaudeModels.cs @@ -10,11 +10,13 @@ public static class ClaudeModels private const string ClaudeHaiku35DisplayName = "Claude Haiku 3.5"; private const string ClaudeHaiku35SnapshotDisplayName = "Claude Haiku 3.5 (2024-10-22)"; private const string ClaudeHaiku3DisplayName = "Claude Haiku 3"; + private const string ClaudeOpus46AliasDisplayName = "Claude Opus 4.6"; private const string ClaudeOpus45AliasDisplayName = "Claude Opus 4.5"; private const string ClaudeOpus45SnapshotDisplayName = "Claude Opus 4.5 (2025-11-01)"; private const string ClaudeOpus41AliasDisplayName = "Claude Opus 4.1"; private const string ClaudeOpus41SnapshotDisplayName = "Claude Opus 4.1 (2025-08-05)"; private const string ClaudeOpus40DisplayName = "Claude Opus 4"; + private const string ClaudeSonnet46AliasDisplayName = "Claude Sonnet 4.6"; private const string ClaudeSonnet45DisplayName = "Claude Sonnet 4.5"; private const string ClaudeSonnet45SnapshotDisplayName = "Claude Sonnet 4.5 (2025-09-29)"; private const string ClaudeSonnet40DisplayName = "Claude Sonnet 4"; @@ -34,6 +36,8 @@ public static class ClaudeModels public const string ClaudeSonnet45 = "claude-sonnet-4-5-20250929"; public const string ClaudeHaiku45Alias = "claude-haiku-4-5"; public const string ClaudeHaiku45 = "claude-haiku-4-5-20251001"; + public const string ClaudeOpus46Alias = "claude-opus-4-6"; + public const string ClaudeSonnet46Alias = "claude-sonnet-4-6"; public const string ClaudeOpus45Alias = "claude-opus-4-5"; public const string ClaudeOpus45 = "claude-opus-4-5-20251101"; public const string ClaudeOpus41Alias = "claude-opus-4-1"; @@ -56,6 +60,8 @@ public static class ClaudeModels new(Sonnet, Sonnet, LatestSonnetDescription, true), new(Opus, Opus, LatestOpusDescription, true), new(Haiku, Haiku, LatestHaikuDescription, true), + new(ClaudeOpus46Alias, ClaudeOpus46AliasDisplayName, null, true), + new(ClaudeSonnet46Alias, ClaudeSonnet46AliasDisplayName, null, true), new(ClaudeSonnet45Alias, ClaudeSonnet45DisplayName, null, true), new(ClaudeSonnet45, ClaudeSonnet45SnapshotDisplayName, null, true), new(ClaudeHaiku45Alias, ClaudeHaiku45DisplayName, null, true), 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