| Update ZstdNet and cover HTTP decompression |
2026-09-15 |
2026-09-15 |
2026-09-15 |
Updated ZstdNet from 1.4.5 to 1.5.7. Added an in-process loopback HTTP test that creates a Zstandard-compressed UTF-8 response and verifies status, headers, native decompression, and decoded content through SacsHttpClient. The focused test, all 137 Common tests, and downstream BusinessMgr validation pass. |
| Apply the next low-risk Common package updates |
2026-09-15 |
2026-09-15 |
2026-09-15 |
Updated MailKit from 4.17.0 to 4.18.0 and DocumentFormat.OpenXml from 3.3.0 to 3.5.1. Replaced the obsolete ASP.NET Core 2.3 Http and StaticFiles package references with the .NET 10 Microsoft.AspNetCore.App shared-framework reference. Added ten content-type regression cases; email, spreadsheet, all 136 Common tests, and downstream BusinessMgr validation pass. |
| Migrate Common tests from MSTest to NUnit |
2026-09-14 |
2026-09-14 |
2026-09-15 |
Replaced MSTest with NUnit 4.6.1, NUnit3TestAdapter 6.3.0, and NUnit.Analyzers 4.15.0. Converted all 27 fixtures and 126 tests to NUnit's constraint-style Assert.That model, removed unused MSTest TestContext template scaffolding, and brought every migrated fixture into line with the repository's section-comment convention. Full Common and downstream BusinessMgr validation, including coverage collection, passes. |
| Modernise Common test tooling and coverage collection |
2026-09-14 |
2026-09-14 |
2026-09-14 |
Updated Microsoft.NET.Test.Sdk from 16.5.0 to 18.10.0, MSTest adapter and framework from 2.1.0 to 4.4.0, and coverlet collector from 1.2.0 to 10.0.1 with private-assets metadata. Replaced legacy exception assertions, corrected the TestContext property, and fixed 39 reversed expected/actual assertions identified by the MSTest 4 analyzers. All 126 Common tests, 11 BusinessMgr Control tests, and 13 BusinessMgr Portal tests pass. The validation scripts offer -CollectCoverage, which verifies non-empty Cobertura reports across Common and both BusinessMgr suites. |
| Remove redundant Microsoft.Win32.Registry package |
2026-09-10 |
2026-09-14 |
2026-09-14 |
Removed the direct 5.0.0 package reference from SacsStandardDbas; .NET 10 supplies the required registry APIs. Common and BusinessMgr restore, build, and all 126 Common, 11 Control, and 13 Portal tests pass. The NU1510 warning no longer appears. |
| Apply low-risk Common package patches and regression coverage |
2026-09-14 |
2026-09-14 |
2026-09-14 |
Updated Microsoft.Data.SqlClient from 5.2.2 to 5.2.3, Newtonsoft.Json from 13.0.3 to 13.0.4, and SixLabors.ImageSharp from 3.1.11 to 3.1.12. Added 15 in-memory tests covering image recognition, encoding and resizing; JSON serialization, parsing, dynamic access, SysId conversion and deep copying; and SQL/ODBC provider selection and command parameters. The Common solution builds with zero errors; all 126 Common tests, 11 BusinessMgr Control tests, and 13 BusinessMgr Portal tests pass. Existing warnings are unchanged. |
| Make asynchronous Process Base execution awaitable and retain state after a stop timeout |
2026-09-08 |
2026-09-08 |
2026-09-08 |
RunAsync() returns Task; StopProcessAsync() reports success and leaves active state owned by a worker that has not stopped. |
| Remove cancellation callbacks from the Process Base lifecycle lock |
2026-09-08 |
2026-09-08 |
2026-09-08 |
Cancellation and task-data disposal use separate synchronization; worker cleanup detaches state before disposal. |
| Add Process Base lifecycle tests |
2026-09-08 |
2026-09-08 |
2026-09-08 |
Five focused MSTest cases cover completion, duplicate starts, stop timeout retention, cooperative cancellation, and cancellation callback lock behavior. |
| Capture the pre-migration Common build and test baseline |
2026-09-10 |
2026-09-10 |
2026-09-10 |
Using SDK 10.0.401, dotnet restore SaCommonVS.sln and the full Debug solution build succeeded. The build produced 110 warnings and no errors; most are repeated MAUI API obsolescence warnings across four targets, plus NETSDK1202 for out-of-support MAUI 9 Android and NU1902 for the moderate-severity MailKit 4.13.0 vulnerability. SacsCoreUnitTests passed 94 of 94 tests. |
| Pin the Common .NET 10 SDK |
2026-09-10 |
2026-09-10 |
2026-09-10 |
Added global.json for SDK 10.0.401 with latestPatch roll-forward and prerelease SDKs disabled. |
Isolate SacsMobileXamarin from the supported Common build |
2026-09-10 |
2026-09-10 |
2026-09-10 |
Removed the project from SaCommonVS.sln while retaining all source. Added SaCommonVS.LegacyXamarin.sln and docs/legacy-xamarin.md for reference-only access. The project is outside the supported .NET 10 migration scope. |
| Prepare Common libraries for the coordinated .NET 10 migration |
2026-09-10 |
2026-09-10 |
2026-09-10 |
SacsStandardBase, SacsStandardDbas, SacsStandardProc, SacsCoreWeb, SacsStandardAccounts, and SacsCoreUnitTests now target net8.0;net10.0. The supported solution builds both targets with no errors; 94 of 94 tests pass on each target. BusinessMgr continues to build successfully on .NET 8 against the temporary compatible outputs. New .NET 10 warnings are tracked separately. |
| Complete the Common .NET 10 migration |
2026-09-10 |
2026-09-11 |
2026-09-11 |
Removed the temporary .NET 8 targets from all supported non-MAUI libraries and tests. The full supported solution restores and builds with zero errors, and 94 of 94 tests pass on .NET 10. BusinessMgr rebuilds successfully with 8 of 8 Control and 13 of 13 Portal tests passing; Sandtrap and Sandalwood build successfully for Windows and Android. The isolated Xamarin reference project remains unchanged on .NET 8. |
| Update vulnerable MailKit and MimeKit dependencies |
2026-09-10 |
2026-09-11 |
2026-09-12 |
Updated the direct MailKit dependency from 4.13.0 to 4.17.0, which resolves MimeKit 4.17.0. NuGet reports no vulnerable packages for SacsStandardBase; the Common solution builds with zero errors and 101 of 101 tests pass. BusinessMgr builds with 8 of 8 Control and 13 of 13 Portal tests passing; Sandtrap and Sandalwood build successfully for Windows and Android. |
| Upgrade NPOI and override its vulnerable cryptography dependency |
2026-09-12 |
2026-09-12 |
2026-09-12 |
Updated NPOI from 2.6.2 to Apache-2.0 version 2.7.6 and added an explicit System.Security.Cryptography.Xml 10.0.12 reference. Adapted nullable date and indexed-colour APIs without changing the public wrapper behavior. NuGet reports no vulnerable packages for SacsStandardProc; all 10 spreadsheet tests and all 111 Common tests pass. The Common solution and BusinessMgr build successfully, with 8 of 8 Control and 13 of 13 Portal tests passing. BusinessMgr's separate vulnerable cryptography dependency through ASP.NET Core Identity 2.3.1 remains tracked in that repository. |
| Automate Common and downstream validation |
2026-09-12 |
2026-09-12 |
2026-09-12 |
Added eng/validate.ps1 as the repository-owned validation entry point. It performs a serial Common build, focused and full tests, the NPOI package audit, diff and changed-file line-ending checks, and downstream BusinessMgr validation. The complete workflow passes. |