From d961483920f6f4b295cc6334133ee14fbc04858d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Mar 2026 20:41:28 +0000 Subject: [PATCH 1/3] Bump GitHub.Copilot.SDK from 0.1.30 to 0.1.32 --- updated-dependencies: - dependency-name: GitHub.Copilot.SDK dependency-version: 0.1.32 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- src/Coralph/Coralph.csproj | 2 +- src/Coralph/packages.lock.json | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Coralph/Coralph.csproj b/src/Coralph/Coralph.csproj index 361cd31..983681f 100644 --- a/src/Coralph/Coralph.csproj +++ b/src/Coralph/Coralph.csproj @@ -43,7 +43,7 @@ - + diff --git a/src/Coralph/packages.lock.json b/src/Coralph/packages.lock.json index 59f333d..8b636c4 100644 --- a/src/Coralph/packages.lock.json +++ b/src/Coralph/packages.lock.json @@ -4,9 +4,9 @@ "net10.0": { "GitHub.Copilot.SDK": { "type": "Direct", - "requested": "[0.1.30, )", - "resolved": "0.1.30", - "contentHash": "fdk5Tvm1+9nQEQIqbvPn0KsVMus46aps/RLTXy2FkbrsNFfzEXo1gHCz6GchPHn4P7BShnxa8DxYrcUwjL0e0w==", + "requested": "[0.1.32, )", + "resolved": "0.1.32", + "contentHash": "NztOyKvGrepwNqRB+rcywN5wC2kYLMgzZx86T/5IAYW8G0lkTMMKuCY+3UsHGx4aja6zkpQfclI6P2s2XtBRYw==", "dependencies": { "Microsoft.Extensions.AI.Abstractions": "10.2.0", "Microsoft.Extensions.Logging.Abstractions": "10.0.2", From ec56ebd504cf3753ec0d170f16b735c6f1c70b87 Mon Sep 17 00:00:00 2001 From: Dariusz Parys Date: Tue, 10 Mar 2026 07:39:52 +0100 Subject: [PATCH 2/3] fix: use typed permission result kinds Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- src/Coralph.Tests/PermissionPolicyTests.cs | 48 +++++++++++++--------- src/Coralph/PermissionPolicy.cs | 4 +- 2 files changed, 31 insertions(+), 21 deletions(-) diff --git a/src/Coralph.Tests/PermissionPolicyTests.cs b/src/Coralph.Tests/PermissionPolicyTests.cs index 803a109..1abf7cf 100644 --- a/src/Coralph.Tests/PermissionPolicyTests.cs +++ b/src/Coralph.Tests/PermissionPolicyTests.cs @@ -14,7 +14,7 @@ public async Task HandleAsync_NoRestrictions_Approves() var result = await policy.HandleAsync(request, CreateInvocation()); - Assert.Equal("approved", result.Kind); + AssertApproved(result); } [Fact] @@ -26,7 +26,7 @@ public async Task HandleAsync_DenyListMatch_Denies() var result = await policy.HandleAsync(request, CreateInvocation()); - Assert.Equal("denied-interactively-by-user", result.Kind); + AssertDeniedByRules(result); } [Fact] @@ -38,7 +38,7 @@ public async Task HandleAsync_DenyListNoMatch_Approves() var result = await policy.HandleAsync(request, CreateInvocation()); - Assert.Equal("approved", result.Kind); + AssertApproved(result); } [Fact] @@ -50,7 +50,7 @@ public async Task HandleAsync_AllowListMatch_Approves() var result = await policy.HandleAsync(request, CreateInvocation()); - Assert.Equal("approved", result.Kind); + AssertApproved(result); } [Fact] @@ -62,7 +62,7 @@ public async Task HandleAsync_AllowListNoMatch_Denies() var result = await policy.HandleAsync(request, CreateInvocation()); - Assert.Equal("denied-interactively-by-user", result.Kind); + AssertDeniedByRules(result); } [Fact] @@ -74,7 +74,7 @@ public async Task HandleAsync_DenyTakesPrecedenceOverAllow() var result = await policy.HandleAsync(request, CreateInvocation()); - Assert.Equal("denied-interactively-by-user", result.Kind); + AssertDeniedByRules(result); } [Fact] @@ -86,7 +86,7 @@ public async Task HandleAsync_WildcardDeny_DeniesAll() var result = await policy.HandleAsync(request, CreateInvocation()); - Assert.Equal("denied-interactively-by-user", result.Kind); + AssertDeniedByRules(result); } [Fact] @@ -98,7 +98,7 @@ public async Task HandleAsync_WildcardAllow_ApprovesAll() var result = await policy.HandleAsync(request, CreateInvocation()); - Assert.Equal("approved", result.Kind); + AssertApproved(result); } [Fact] @@ -110,7 +110,7 @@ public async Task HandleAsync_PrefixWildcardMatch_Approves() var result = await policy.HandleAsync(request, CreateInvocation()); - Assert.Equal("approved", result.Kind); + AssertApproved(result); } [Fact] @@ -122,7 +122,7 @@ public async Task HandleAsync_PrefixWildcardNoMatch_Denies() var result = await policy.HandleAsync(request, CreateInvocation()); - Assert.Equal("denied-interactively-by-user", result.Kind); + AssertDeniedByRules(result); } [Fact] @@ -134,7 +134,7 @@ public async Task HandleAsync_CaseInsensitiveMatch_Approves() var result = await policy.HandleAsync(request, CreateInvocation()); - Assert.Equal("approved", result.Kind); + AssertApproved(result); } [Fact] @@ -146,7 +146,7 @@ public async Task HandleAsync_CommaSeparatedAllowList_Approves() var result = await policy.HandleAsync(request, CreateInvocation()); - Assert.Equal("approved", result.Kind); + AssertApproved(result); } [Fact] @@ -158,7 +158,7 @@ public async Task HandleAsync_CommaSeparatedDenyList_Denies() var result = await policy.HandleAsync(request, CreateInvocation()); - Assert.Equal("denied-interactively-by-user", result.Kind); + AssertDeniedByRules(result); } [Fact] @@ -170,7 +170,7 @@ public async Task HandleAsync_EmptyKind_NoAllowList_Approves() var result = await policy.HandleAsync(request, CreateInvocation()); - Assert.Equal("approved", result.Kind); + AssertApproved(result); } [Fact] @@ -182,7 +182,7 @@ public async Task HandleAsync_NullKind_NoAllowList_Approves() var result = await policy.HandleAsync(request, CreateInvocation()); - Assert.Equal("approved", result.Kind); + AssertApproved(result); } [Fact] @@ -194,7 +194,7 @@ public async Task HandleAsync_WhitespaceInEntries_Normalized() var result = await policy.HandleAsync(request, CreateInvocation()); - Assert.Equal("approved", result.Kind); + AssertApproved(result); } [Fact] @@ -206,7 +206,7 @@ public async Task HandleAsync_NullEntriesInList_Skipped() var result = await policy.HandleAsync(request, CreateInvocation()); - Assert.Equal("approved", result.Kind); + AssertApproved(result); } [Fact] @@ -218,7 +218,7 @@ public async Task HandleAsync_MultipleRulesInDenyList_FirstMatchWins() var result = await policy.HandleAsync(request, CreateInvocation()); - Assert.Equal("denied-interactively-by-user", result.Kind); + AssertDeniedByRules(result); } [Fact] @@ -230,7 +230,7 @@ public async Task HandleAsync_PrefixMatchCaseInsensitive_Approves() var result = await policy.HandleAsync(request, CreateInvocation()); - Assert.Equal("approved", result.Kind); + AssertApproved(result); } private static PermissionRequest CreateRequest(string kind) @@ -238,6 +238,16 @@ private static PermissionRequest CreateRequest(string kind) return new PermissionRequest { Kind = kind }; } + private static void AssertApproved(PermissionRequestResult result) + { + Assert.Equal(PermissionRequestResultKind.Approved, result.Kind); + } + + private static void AssertDeniedByRules(PermissionRequestResult result) + { + Assert.Equal(PermissionRequestResultKind.DeniedByRules, result.Kind); + } + private static PermissionInvocation CreateInvocation() { return new PermissionInvocation(); diff --git a/src/Coralph/PermissionPolicy.cs b/src/Coralph/PermissionPolicy.cs index bf2cc56..20a6068 100644 --- a/src/Coralph/PermissionPolicy.cs +++ b/src/Coralph/PermissionPolicy.cs @@ -46,8 +46,8 @@ internal Task HandleAsync(PermissionRequest request, Pe var decision = EvaluateDecision(candidates, out var matchedRule); var resultKind = decision == PermissionDecision.Allow - ? "approved" - : "denied-interactively-by-user"; + ? PermissionRequestResultKind.Approved + : PermissionRequestResultKind.DeniedByRules; EmitDecision(kind, toolName, candidates, decision, matchedRule); From e8c018361126e4e1b5d2c53847136d0449294ecd Mon Sep 17 00:00:00 2001 From: Dariusz Parys Date: Tue, 10 Mar 2026 07:47:49 +0100 Subject: [PATCH 3/3] chore: add package locks --- src/Coralph.Tests/packages.lock.json | 6 +++--- src/Coralph/packages.lock.json | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Coralph.Tests/packages.lock.json b/src/Coralph.Tests/packages.lock.json index 1497c8b..02c427d 100644 --- a/src/Coralph.Tests/packages.lock.json +++ b/src/Coralph.Tests/packages.lock.json @@ -41,8 +41,8 @@ }, "GitHub.Copilot.SDK": { "type": "Transitive", - "resolved": "0.1.29", - "contentHash": "CpzIZwcuo4vyn+Z5vKSKECkcAiF4K01kgBNlJYd9LmIh+dpBh0nFjemjY2MgMNoH8qu1rKqM+V8WNUzv1RZGAQ==", + "resolved": "0.1.32", + "contentHash": "NztOyKvGrepwNqRB+rcywN5wC2kYLMgzZx86T/5IAYW8G0lkTMMKuCY+3UsHGx4aja6zkpQfclI6P2s2XtBRYw==", "dependencies": { "Microsoft.Extensions.AI.Abstractions": "10.2.0", "Microsoft.Extensions.Logging.Abstractions": "10.0.2", @@ -377,7 +377,7 @@ "coralph": { "type": "Project", "dependencies": { - "GitHub.Copilot.SDK": "[0.1.29, )", + "GitHub.Copilot.SDK": "[0.1.32, )", "Hex1b": "[0.83.0, )", "Microsoft.Extensions.Configuration.Json": "[8.0.0, )", "Microsoft.Extensions.Options.ConfigurationExtensions": "[8.0.0, )", diff --git a/src/Coralph/packages.lock.json b/src/Coralph/packages.lock.json index 8b636c4..e1dd9c4 100644 --- a/src/Coralph/packages.lock.json +++ b/src/Coralph/packages.lock.json @@ -50,9 +50,9 @@ }, "Microsoft.NET.ILLink.Tasks": { "type": "Direct", - "requested": "[10.0.3, )", - "resolved": "10.0.3", - "contentHash": "0B6nZyCHWXnvmlB559oduOspVdNOnpNXPjhpWVMovLPAsDVG7A4jJR9rzECf67JUzxP8/ee/wA8clwIzJcWNFA==" + "requested": "[10.0.0, )", + "resolved": "10.0.0", + "contentHash": "kICGrGYEzCNI3wPzfEXcwNHgTvlvVn9yJDhSdRK+oZQy4jvYH529u7O0xf5ocQKzOMjfS07+3z9PKRIjrFMJDA==" }, "Serilog": { "type": "Direct",