From 45dc9de2232e64b234b8016e64e7b281b613e6f9 Mon Sep 17 00:00:00 2001 From: Stevan Freeborn Date: Wed, 15 Jul 2026 10:11:52 -0500 Subject: [PATCH 1/8] feat: upgrade to .NET 10 --- .../BGR.Console.Tests.csproj | 11 +++++----- src/BGR.Console.Tests/Unit/OnnxTensorTests.cs | 2 -- .../Unit/RemovalCommandTests.cs | 5 ++--- src/BGR.Console/BGR.Console.csproj | 20 +++++++++---------- src/BGR.Console/Removal/Onnx/OnnxTensor.cs | 2 +- src/BGR.Console/Removal/RemovalCommand.cs | 16 ++++++++++++--- src/Directory.Build.props | 3 ++- 7 files changed, 34 insertions(+), 25 deletions(-) diff --git a/src/BGR.Console.Tests/BGR.Console.Tests.csproj b/src/BGR.Console.Tests/BGR.Console.Tests.csproj index 34e37a0..04da64e 100644 --- a/src/BGR.Console.Tests/BGR.Console.Tests.csproj +++ b/src/BGR.Console.Tests/BGR.Console.Tests.csproj @@ -2,25 +2,26 @@ false + 1591; - + runtime; build; native; contentfiles; analyzers; buildtransitive all runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all - - + + - + runtime; build; native; contentfiles; analyzers; buildtransitive all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/BGR.Console.Tests/Unit/OnnxTensorTests.cs b/src/BGR.Console.Tests/Unit/OnnxTensorTests.cs index aaddc61..a6cf86a 100644 --- a/src/BGR.Console.Tests/Unit/OnnxTensorTests.cs +++ b/src/BGR.Console.Tests/Unit/OnnxTensorTests.cs @@ -1,5 +1,3 @@ -using BGR.Console.Removal.Onnx; - using Microsoft.ML.OnnxRuntime.Tensors; namespace BGR.Console.Tests.Unit; diff --git a/src/BGR.Console.Tests/Unit/RemovalCommandTests.cs b/src/BGR.Console.Tests/Unit/RemovalCommandTests.cs index a65ca11..5c5e732 100644 --- a/src/BGR.Console.Tests/Unit/RemovalCommandTests.cs +++ b/src/BGR.Console.Tests/Unit/RemovalCommandTests.cs @@ -1,6 +1,4 @@ -using Microsoft.Extensions.Logging; - -using Spectre.Console.Cli; +using System.Diagnostics.CodeAnalysis; namespace BGR.Console.Tests.Unit; @@ -28,6 +26,7 @@ public class RemovalCommandTests : IDisposable [Theory] [InlineData("output.png", false)] [InlineData("", true)] + [SuppressMessage("Reliability", "CA2025:Do not pass 'IDisposable' instances into unawaited tasks", Justification = "Matching invocations")] public async Task ExecuteAsync_WhenCalled_ItShouldProcessImage(string outputPath, bool includeMask) { var imagePath = $"{Guid.NewGuid()}.png"; diff --git a/src/BGR.Console/BGR.Console.csproj b/src/BGR.Console/BGR.Console.csproj index 96c018c..a3c7715 100644 --- a/src/BGR.Console/BGR.Console.csproj +++ b/src/BGR.Console/BGR.Console.csproj @@ -38,17 +38,17 @@ - - - - - - + + + + + + - - - - + + + + diff --git a/src/BGR.Console/Removal/Onnx/OnnxTensor.cs b/src/BGR.Console/Removal/Onnx/OnnxTensor.cs index 512704a..eab4212 100644 --- a/src/BGR.Console/Removal/Onnx/OnnxTensor.cs +++ b/src/BGR.Console/Removal/Onnx/OnnxTensor.cs @@ -1,6 +1,6 @@ namespace BGR.Console.Removal.Onnx; -public class OnnxTensor : ITensor +internal class OnnxTensor : ITensor { private readonly Tensor _tensor; diff --git a/src/BGR.Console/Removal/RemovalCommand.cs b/src/BGR.Console/Removal/RemovalCommand.cs index c7c6bee..49d21a6 100644 --- a/src/BGR.Console/Removal/RemovalCommand.cs +++ b/src/BGR.Console/Removal/RemovalCommand.cs @@ -1,5 +1,3 @@ -using System.Diagnostics; - namespace BGR.Console.Removal; internal class RemovalCommand( @@ -16,7 +14,19 @@ internal class RemovalCommand( private readonly IAnsiConsole _console = console; private readonly ILogger _logger = logger; - public override async Task ExecuteAsync(CommandContext context, Settings settings) + public async Task ExecuteAsync( + CommandContext context, + Settings settings + ) + { + return await ExecuteAsync(context, settings, CancellationToken.None); + } + + protected override async Task ExecuteAsync( + CommandContext context, + Settings settings, + CancellationToken cancellationToken + ) { await _console.Status() .Spinner(Spinner.Known.Dots) diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 141c0c3..fc63d4f 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -1,6 +1,6 @@ - net9.0 + net10.0 enable enable latest @@ -8,6 +8,7 @@ true true true + true From 51abe75e07ec186d20664f68291d914be3af91d9 Mon Sep 17 00:00:00 2001 From: Stevan Freeborn Date: Wed, 15 Jul 2026 10:47:26 -0500 Subject: [PATCH 2/8] chore: add repo specific global.json --- global.json | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 global.json diff --git a/global.json b/global.json new file mode 100644 index 0000000..9955c47 --- /dev/null +++ b/global.json @@ -0,0 +1,5 @@ +{ + "sdk": { + "rollForward": "latestFeature" + } +} From e099144127ae719f85f3375be8be72fe3b5914c6 Mon Sep 17 00:00:00 2001 From: Stevan Freeborn Date: Wed, 15 Jul 2026 10:48:38 -0500 Subject: [PATCH 3/8] feat: improve background removal feathering - replace hard binary thresholding with smooth linear alpha mapping to reduce halos around foreground edges especially in low resolution images - normalize now uses a quadratic curve instead of hard binarization so that gradient info from the model output is preserved - removebackgroundasync applies a configurable linear interpolation between the set min and max feathering thresholds so you have partial transparency at the edges --- .../Unit/ImageSharpProcessorTests.cs | 36 ++++++++++++++++++- .../Unit/RemovalCommandTests.cs | 4 +-- src/BGR.Console/Removal/ImageProcessor.cs | 2 +- .../Removal/ImageSharp/ImageSharpProcessor.cs | 29 +++++++-------- src/BGR.Console/Removal/RemovalCommand.cs | 10 +++++- 5 files changed, 62 insertions(+), 19 deletions(-) diff --git a/src/BGR.Console.Tests/Unit/ImageSharpProcessorTests.cs b/src/BGR.Console.Tests/Unit/ImageSharpProcessorTests.cs index 7675f08..e55e35a 100644 --- a/src/BGR.Console.Tests/Unit/ImageSharpProcessorTests.cs +++ b/src/BGR.Console.Tests/Unit/ImageSharpProcessorTests.cs @@ -183,7 +183,10 @@ public class ImageSharpProcessorTests : IDisposable await mask.SaveAsPngAsync(maskStream); maskStream.Position = 0; - var result = await _sut.RemoveBackgroundAsync(imageStream, maskStream); + const byte featherMin = 70; + const byte featherMax = 117; + + var result = await _sut.RemoveBackgroundAsync(imageStream, maskStream, featherMin, featherMax); result.ShouldNotBeNull(); result.Length.ShouldBeGreaterThan(0); @@ -203,6 +206,37 @@ public class ImageSharpProcessorTests : IDisposable resultImage[1, 1].A.ShouldBe((byte)255); } + [Fact] + public async Task RemoveBackgroundAsync_WithMidRangeMaskValue_ShouldApplyPartialAlpha() + { + using var imageStream = new MemoryStream(); + using var image = new Image(1, 1); + image[0, 0] = new Rgba32(100, 150, 200, 255); + await image.SaveAsPngAsync(imageStream); + imageStream.Position = 0; + + using var maskStream = new MemoryStream(); + using var mask = new Image(1, 1); + mask[0, 0] = new Rgba32(100, 100, 100, 255); + await mask.SaveAsPngAsync(maskStream); + maskStream.Position = 0; + + const byte featherMin = 70; + const byte featherMax = 117; + + var result = await _sut.RemoveBackgroundAsync(imageStream, maskStream, featherMin, featherMax); + + result.Position = 0; + using var resultImage = await Image.LoadAsync(result); + + resultImage[0, 0].R.ShouldBe((byte)100); + resultImage[0, 0].G.ShouldBe((byte)150); + resultImage[0, 0].B.ShouldBe((byte)200); + + var expectedAlpha = (byte)((100 - 70) / (float)(117 - 70) * 255f); + resultImage[0, 0].A.ShouldBe(expectedAlpha); + } + [Fact] public async Task SaveImageAsync_WhenCalled_ItShouldSaveImageToDiskAtProvidedPath() { diff --git a/src/BGR.Console.Tests/Unit/RemovalCommandTests.cs b/src/BGR.Console.Tests/Unit/RemovalCommandTests.cs index 5c5e732..0f049f6 100644 --- a/src/BGR.Console.Tests/Unit/RemovalCommandTests.cs +++ b/src/BGR.Console.Tests/Unit/RemovalCommandTests.cs @@ -72,7 +72,7 @@ public class RemovalCommandTests : IDisposable .ReturnsAsync(maskStream); _imageProcessorMock - .Setup(p => p.RemoveBackgroundAsync(image.Data, maskStream)) + .Setup(p => p.RemoveBackgroundAsync(image.Data, maskStream, It.IsAny(), It.IsAny())) .ReturnsAsync(outputStream); var commandContext = new CommandContext( @@ -91,7 +91,7 @@ public class RemovalCommandTests : IDisposable _imageProcessorMock.Verify(p => p.CreateTensorInputAsync(image.Data, model), Times.Once); _inferenceRunnerMock.Verify(r => r.Run(model.Bytes, inputTensor), Times.Once); _imageProcessorMock.Verify(p => p.GenerateMaskAsync(outputTensor, image.Width, image.Height), Times.Once); - _imageProcessorMock.Verify(p => p.RemoveBackgroundAsync(image.Data, maskStream), Times.Once); + _imageProcessorMock.Verify(p => p.RemoveBackgroundAsync(image.Data, maskStream, It.IsAny(), It.IsAny()), Times.Once); _imageProcessorMock.Verify(p => p.SaveImageAsync(outputStream, It.IsAny()), Times.AtLeastOnce); File.Delete(imagePath); diff --git a/src/BGR.Console/Removal/ImageProcessor.cs b/src/BGR.Console/Removal/ImageProcessor.cs index e864234..2ba5a00 100644 --- a/src/BGR.Console/Removal/ImageProcessor.cs +++ b/src/BGR.Console/Removal/ImageProcessor.cs @@ -8,7 +8,7 @@ internal abstract class ImageProcessor public abstract Task GenerateMaskAsync(ITensor maskTensor, int width, int height); - public abstract Task RemoveBackgroundAsync(Stream image, Stream mask); + public abstract Task RemoveBackgroundAsync(Stream image, Stream mask, byte featherMin, byte featherMax); public abstract Task SaveImageAsync(Stream image, string path); diff --git a/src/BGR.Console/Removal/ImageSharp/ImageSharpProcessor.cs b/src/BGR.Console/Removal/ImageSharp/ImageSharpProcessor.cs index dca520e..1a88cf6 100644 --- a/src/BGR.Console/Removal/ImageSharp/ImageSharpProcessor.cs +++ b/src/BGR.Console/Removal/ImageSharp/ImageSharpProcessor.cs @@ -67,7 +67,7 @@ internal class ImageSharpProcessor : ImageProcessor return stream; } - public override async Task RemoveBackgroundAsync(Stream image, Stream mask) + public override async Task RemoveBackgroundAsync(Stream image, Stream mask, byte featherMin, byte featherMax) { image.Position = 0; mask.Position = 0; @@ -76,19 +76,14 @@ internal class ImageSharpProcessor : ImageProcessor var maskImage = await Image.LoadAsync(mask); using var imageWithBgRemoved = new Image(imageWithBg.Width, imageWithBg.Height); - const byte alphaThreshold = 20; - var transparentPixel = new Rgba32(0, 0, 0, 0); - WalkImage(imageWithBg.Height, imageWithBg.Width, (x, y) => { var sourcePixel = imageWithBg[x, y]; var maskPixel = maskImage[x, y]; - var alpha = maskPixel.R; + var alpha = AdjustAlpha(maskPixel.R, featherMin, featherMax); - imageWithBgRemoved[x, y] = alpha > alphaThreshold - ? new Rgba32(sourcePixel.R, sourcePixel.G, sourcePixel.B, sourcePixel.A) - : transparentPixel; + imageWithBgRemoved[x, y] = new Rgba32(sourcePixel.R, sourcePixel.G, sourcePixel.B, alpha); }); var result = new MemoryStream(); @@ -107,12 +102,7 @@ internal class ImageSharpProcessor : ImageProcessor private static float Normalize(float value) { - const float binarizationThreshold = 0.5f; - const float normalizationFactor = 2f; - - return value > binarizationThreshold - ? (value - binarizationThreshold) * normalizationFactor - : 0f; + return value * value; } private static byte ConvertToGreyscale(float value) @@ -129,4 +119,15 @@ internal class ImageSharpProcessor : ImageProcessor return sigmoidScale / (sigmoidShift + MathF.Exp(sigmoidDivisor * x)); } + + private static byte AdjustAlpha(byte maskValue, byte minVal, byte maxVal) + { + if (maskValue <= minVal) + return 0; + if (maskValue >= maxVal) + return 255; + + float proportion = (maskValue - minVal) / (float)(maxVal - minVal); + return (byte)(proportion * 255f); + } } \ No newline at end of file diff --git a/src/BGR.Console/Removal/RemovalCommand.cs b/src/BGR.Console/Removal/RemovalCommand.cs index 49d21a6..685fce0 100644 --- a/src/BGR.Console/Removal/RemovalCommand.cs +++ b/src/BGR.Console/Removal/RemovalCommand.cs @@ -66,7 +66,7 @@ internal class RemovalCommand( ctx.Status("Removing background..."); var output = await _logger.TimeAndLogActionAsync( "Removing background", - async () => await _imageProcessor.RemoveBackgroundAsync(image.Data, mask) + async () => await _imageProcessor.RemoveBackgroundAsync(image.Data, mask, settings.FeatherMin, settings.FeatherMax) ); if (settings.IncludeMask) @@ -115,6 +115,14 @@ internal class RemovalCommand( [Description("Path to output image without background to. File extension will always be .png")] public string Output { get; init; } = string.Empty; + [CommandOption("--feather-min")] + [Description("Minimum mask value below which pixels become fully transparent (default: 70)")] + public byte FeatherMin { get; init; } = 70; + + [CommandOption("--feather-max")] + [Description("Maximum mask value above which pixels become fully opaque (default: 117)")] + public byte FeatherMax { get; init; } = 117; + public string ResourceName => Models[Model]; public string MaskPath => GetOutputPath("_mask"); From e06d77c1d27f0f46d558f152912e56cb3bde6581 Mon Sep 17 00:00:00 2001 From: Stevan Freeborn Date: Wed, 15 Jul 2026 10:53:34 -0500 Subject: [PATCH 4/8] docs: updated README.md to include info about feathering options --- README.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/README.md b/README.md index 4a14199..5ebe0a1 100644 --- a/README.md +++ b/README.md @@ -34,6 +34,21 @@ bgr --help ![Output Image](examples/output.png) +### Feathering Options + +By default, BGR applies feathering to create smooth transitions between the foreground and background, reducing harsh edges and halos. You can control the feathering range using two options: + +- `--feather-min` - Mask values below this threshold become fully transparent. Default: `70` +- `--feather-max` - Mask values above this threshold become fully opaque. Default: `117` + +Values between `feather-min` and `feather-max` are linearly scaled to produce partial transparency, creating a smooth gradient at edges. + +```pwsh +bgr /path/to/image.jpg --feather-min 60 --feather-max 130 +``` + +A wider range (e.g., `50` to `150`) produces softer edges, while a narrower range (e.g., `90` to `100`) produces sharper edges. + ## Issues If you encounter any issues while using the app, please open an issue on the repository. If you have any suggestions or feature requests, feel free to open an issue as well. From 6d03eefe45306364a713d770cb2a83d437dde075 Mon Sep 17 00:00:00 2001 From: Stevan Freeborn Date: Wed, 15 Jul 2026 10:55:20 -0500 Subject: [PATCH 5/8] style: correct code style --- src/BGR.Console/Removal/ImageSharp/ImageSharpProcessor.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/BGR.Console/Removal/ImageSharp/ImageSharpProcessor.cs b/src/BGR.Console/Removal/ImageSharp/ImageSharpProcessor.cs index 1a88cf6..64ec5b2 100644 --- a/src/BGR.Console/Removal/ImageSharp/ImageSharpProcessor.cs +++ b/src/BGR.Console/Removal/ImageSharp/ImageSharpProcessor.cs @@ -123,11 +123,17 @@ internal class ImageSharpProcessor : ImageProcessor private static byte AdjustAlpha(byte maskValue, byte minVal, byte maxVal) { if (maskValue <= minVal) + { return 0; + } + if (maskValue >= maxVal) + { return 255; + } + + var proportion = (maskValue - minVal) / (float)(maxVal - minVal); - float proportion = (maskValue - minVal) / (float)(maxVal - minVal); return (byte)(proportion * 255f); } } \ No newline at end of file From 6160bf05d40322c99fdd8ed343336f1746ef30e7 Mon Sep 17 00:00:00 2001 From: Stevan Freeborn Date: Wed, 15 Jul 2026 11:31:42 -0500 Subject: [PATCH 6/8] chore: update workflows to proper versions --- .github/workflows/publish.yml | 22 +++++++++++----------- .github/workflows/pull_request.yml | 28 ++++++++++++++-------------- 2 files changed, 25 insertions(+), 25 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 909f5b6..a6a80bf 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -16,14 +16,14 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v7 with: fetch-depth: 0 token: ${{ secrets.ACTIONS_PAT }} - - name: Setup .NET 9 - uses: actions/setup-dotnet@v4 + - name: Setup .NET 10 + uses: actions/setup-dotnet@v5 with: - dotnet-version: 9.x + dotnet-version: 10.x - name: Install versionize run: dotnet tool install --global Versionize - name: Setup git @@ -36,7 +36,7 @@ jobs: continue-on-error: true - name: Upload changelog if: steps.versionize.outcome == 'success' - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: change-log path: src/BGR.Console/CHANGELOG.md @@ -55,15 +55,15 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v7 with: fetch-depth: 0 ref: ${{ github.ref }} token: ${{ secrets.ACTIONS_PAT }} - - name: Setup .NET 9 - uses: actions/setup-dotnet@v4 + - name: Setup .NET 10 + uses: actions/setup-dotnet@v5 with: - dotnet-version: 9.x + dotnet-version: 10.x - name: Build run: dotnet build src - name: Publish for mac-os @@ -84,12 +84,12 @@ jobs: with: proj-path: src/BGR.Console/BGR.Console.csproj - name: Download changlog - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: change-log path: src/BGR.Console - name: Create release - uses: softprops/action-gh-release@v1 + uses: softprops/action-gh-release@v3 with: token: ${{ secrets.ACTIONS_PAT }} name: bgr v${{ steps.get-version.outputs.version }} diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 6b7e30d..6d9dd6e 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -18,14 +18,14 @@ jobs: contents: write steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v7 with: fetch-depth: 0 token: ${{ secrets.ACTIONS_PAT }} - - name: Setup .NET - uses: actions/setup-dotnet@v4 + - name: Setup .NET 10 + uses: actions/setup-dotnet@v5 with: - dotnet-version: 9.x.x + dotnet-version: 10.x.x - name: Format project run: dotnet format src --verbosity normal - name: Commit Changes @@ -49,14 +49,14 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v7 with: fetch-depth: 0 token: ${{ secrets.ACTIONS_PAT }} - - name: Setup .NET 9 - uses: actions/setup-dotnet@v4 + - name: Setup .NET 10 + uses: actions/setup-dotnet@v5 with: - dotnet-version: 9.x + dotnet-version: 10.x - name: Install report generator run: dotnet tool install --global dotnet-reportgenerator-globaltool - name: Restore dependencies @@ -68,7 +68,7 @@ jobs: - name: Rename test coverage report run: mv src/BGR.Console.Tests/TestResults/Coverage/coverage.cobertura.xml src/BGR.Console.Tests/TestResults/Coverage/${{ matrix.os }}-coverage.cobertura.xml - name: Upload test coverage report for ${{ matrix.os }} - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: test-coverage-${{ matrix.os }} path: src/BGR.Console.Tests/TestResults/Coverage/${{ matrix.os }}-coverage.cobertura.xml @@ -78,26 +78,26 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v7 with: fetch-depth: 0 token: ${{ secrets.ACTIONS_PAT }} - name: Download ubuntu-latest report - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: test-coverage-ubuntu-latest path: ./coverage - name: Download windows-latest report - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: test-coverage-windows-latest path: ./coverage - name: Download macos-latest report - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: test-coverage-macos-latest path: ./coverage - name: Upload test coverage reports - uses: codecov/codecov-action@v4 + uses: codecov/codecov-action@v7 with: token: ${{ secrets.CODECOV_TOKEN }} From b2bdc1d862feabc0807f438aceaa9090b04205b2 Mon Sep 17 00:00:00 2001 From: Stevan Freeborn Date: Wed, 15 Jul 2026 11:39:31 -0500 Subject: [PATCH 7/8] chore: add diagnostic to workflows --- .github/workflows/pull_request.yml | 7 +++++++ src/BGR.Console/BGR.Console.csproj | 6 +++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 6d9dd6e..49aa22e 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -63,6 +63,13 @@ jobs: run: dotnet restore src - name: Build on ${{ matrix.os }} run: dotnet build --no-restore src + - name: Diagnose downloaded model files + run: | + echo "=== Model file sizes ===" + dir src/BGR.Console\Resources\Files\*.onnx 2>/dev/null || ls -la src/BGR.Console/Resources/Files/*.onnx 2>/dev/null || echo "No model files found" + echo "" + echo "=== File types ===" + file src/BGR.Console/Resources/Files/*.onnx 2>/dev/null || echo "file command not available" - name: Test on ${{ matrix.os }} run: dotnet test src --no-build --verbosity normal - name: Rename test coverage report diff --git a/src/BGR.Console/BGR.Console.csproj b/src/BGR.Console/BGR.Console.csproj index a3c7715..36143c8 100644 --- a/src/BGR.Console/BGR.Console.csproj +++ b/src/BGR.Console/BGR.Console.csproj @@ -21,11 +21,11 @@ - + - + - + From 8269f21f558db0c0a7101c4a2d6242479c98bbf5 Mon Sep 17 00:00:00 2001 From: Stevan Freeborn Date: Wed, 15 Jul 2026 11:50:27 -0500 Subject: [PATCH 8/8] chore: revert workflow troubleshooting --- .github/workflows/pull_request.yml | 7 ------- src/BGR.Console/BGR.Console.csproj | 6 +++--- 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 49aa22e..6d9dd6e 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -63,13 +63,6 @@ jobs: run: dotnet restore src - name: Build on ${{ matrix.os }} run: dotnet build --no-restore src - - name: Diagnose downloaded model files - run: | - echo "=== Model file sizes ===" - dir src/BGR.Console\Resources\Files\*.onnx 2>/dev/null || ls -la src/BGR.Console/Resources/Files/*.onnx 2>/dev/null || echo "No model files found" - echo "" - echo "=== File types ===" - file src/BGR.Console/Resources/Files/*.onnx 2>/dev/null || echo "file command not available" - name: Test on ${{ matrix.os }} run: dotnet test src --no-build --verbosity normal - name: Rename test coverage report diff --git a/src/BGR.Console/BGR.Console.csproj b/src/BGR.Console/BGR.Console.csproj index 36143c8..a3c7715 100644 --- a/src/BGR.Console/BGR.Console.csproj +++ b/src/BGR.Console/BGR.Console.csproj @@ -21,11 +21,11 @@ - + - + - +