Repository navigation
Conversation
…ilities - Target net10.0 in all projects; global.json requires SDK 10.0.100+ (rollForward latestFeature); CI uses 10.0.x - Docker: sdk/aspnet 10.0-noble images; TaskEngine uses libasound2t64 and no longer needs the libssl1.1 workaround (Speech SDK 1.53 works with OpenSSL 3) - Bump Microsoft/EF Core packages to 10.0.14, Npgsql EF to 10.0.3, RestSharp 114, Speech SDK 1.53, Box.V2.Core 6.20.2, Swashbuckle 9.0.6, Microsoft.OpenApi 1.6.31, Protobuf/Grpc.Tools, CsvHelper 33 and test packages - Remove unused packages that pulled in vulnerable dependencies: EntityFrameworkCore.SqlServer, VisualStudio.Web.CodeGeneration.Design, Extensions.Hosting (now part of the shared framework), EntityFramework 6 (UnitTests) - Npgsql 9+ reads "timestamp without time zone" as DateTimeKind.Unspecified (Npgsql 8 legacy mode returned Utc); add an EF value converter so DateTimes read from the DB are Utc again and API JSON keeps its trailing 'Z' `dotnet list package --vulnerable --include-transitive` is now clean for all projects. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Collaborator
Author
Adversarial review (GLM-5.3 via opencode) and follow-up checksGLM-5.3 reviewed this change read-only and found no confirmed functional regressions. It independently confirmed the DateTime converter is correct: Npgsql v8's legacy converter decoded
🤖 Generated with Claude Code |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
.NET 8 reaches end of support on 2026-11-10. This moves WebAPI to .NET 10 (LTS) and updates NuGet packages so that
dotnet list package --vulnerable --include-transitiveis clean for every project. Before: 13 vulnerable packages, including 1 critical (NuGet.Packaging) and several high (Npgsql, Microsoft.OpenApi.Readers, Microsoft.Data.SqlClient, Microsoft.Extensions.Caching.Memory).The previous attempt (#497, reverted in #501) only changed the Docker base images. It left the projects on
net8.0withglobal.jsonpinned to 8.0. This PR moves the framework, SDK, packages, Dockerfiles and CI together.Changes
net10.0in all projects.global.jsonrequires SDK 10.0.100+ (rollForward: latestFeature). CI uses10.0.x.sdk:10.0-noble/aspnet:10.0-noble. TaskEngine useslibasound2t64and drops the libssl1.1 .deb workaround: Speech SDK 1.53 works with the system OpenSSL 3.EntityFrameworkCore.SqlServer,VisualStudio.Web.CodeGeneration.Design,Extensions.Hosting(now part of the shared framework), EF6EntityFramework(UnitTests).timestamp without time zonecolumns asDateTimeKind.Utc; Npgsql 9+ reads them asUnspecified. Without a fix, API JSON loses the trailingZand clients would treat UTC times as local time. A value converter inCTDbContext.ConfigureConventionsrestoresUtcon read. It doesn't change the schema, and migrations still apply with no pending model changes.Deliberately not upgraded (no known vulnerabilities; upgrading means code changes): RabbitMQ.Client 7 (async rewrite), Swashbuckle 10 / Microsoft.OpenApi 2, ApplicationInsights 3, NEST → Elastic.Clients.Elasticsearch, xunit v3.
Testing
sdk:10.0. UnitTests: 193/193 pass.classtranscribe/api:stagingimage next to the new one against the same database and crawled every GET route in the swagger spec as the test user. 294 normalized responses are identical; the only difference is/api/Admin/GetVersionbuild info. The swagger spec has the same 127 routes; the differences are cosmetic ("OK" instead of "Success", TimeSpan now documented as a string).🤖 Generated with Claude Code