Conversation
Verbatim copy of EF Core source committed at the repo root in the net10 WIP commit; not referenced by any project. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
SDI 2026.05.1464 / SDE 12.4.1.1005: - Synergex.SynergyDE.Build 25.10.2527 -> 26.5.1464 in all SDK-style projects (TraditionalBridge.Models: 22.11.1340 -> 26.5.1464) - Synergex.SynergyDE.synrnt/ddlib/synxml 12.4.1.1003 -> 12.4.1.1005, including nuspec dependency lower bounds - cli-tool-versions.json: 10.0.1 entry only; released 8.0.118 entry untouched The 26.5.1464 toolchain also fixes DBL-E-AMBSYM on params calls (string.Format/Join span overloads) when targeting net10. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Picks up Synergex/CodeGen PR #45 (6b2d6994): HarmonyCoreCodeGen.Core targets net10.0 (satisfies the Harmony.Core.Codegen.nuspec lib/net10.0 paths, no TargetFrameworkOverride needed), dependency projects retargeted to netstandard2.0, Synergy 2026.05 packages. .gitmodules: branch corrected hcnet6 -> hc_version_upgrade; vestigial Terminal.Gui entry removed (no gitlink existed in the tree). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Manual-only test branch: runs on a configurable pool/agents, builds a Linux agent container for the linux64 test leg, nuget push disabled. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This reverts commit 8548deb.
… this run's packages
…y and fix lexical version compare in regen-required check
playlend
marked this pull request as ready for review
August 28, 2026 04:40
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.
Migrating Harmony Core Projects to .NET 10
Harmony Core now targets .NET 10, building against EF Core 10 and ASP.NET Core 10. The
update also carries two dependency security fixes —
SSH.NET2026.0.0 and aMessagePack≥ 2.5.301 floor — and two
harmonycoreCLI upgrade-flow fixes. What follows is a migrationguide for existing projects: each issue was hit in practice while migrating Harmony Core
itself and its sample projects, and error messages are quoted verbatim so they can be found
by searching.
Required versions
Harmony.Core,.EF,.OData,.AspNetCore)Synergex.SynergyDE.BuildSTATUS_STACK_OVERFLOW)Synergex.SynergyDE.synrntSSH.NETupgrade-lateststamps itImportant
Do not mix versions. A project targeting
net10.0that still references net8-eraHarmony packages builds cleanly and then fails on the first EF query at runtime with
System.TypeInitializationException. Upgrade the target framework and every packagetogether —
harmonycore upgrade-latestdoes exactly that.Tip
SSH.NET2026.0.0 can be adopted early, while still on .NET 8 — it targetsnet8.0, andthe published 8.x
Harmony.Coreplaces no upper bound on it (>= 2024.1.0) — clearing theNU1903high-severity audit warnings that projects created from the 8.x templates produce.The 8.x-era
upgrade-latestwill stamp it back down to its own pinned version (2025.0.0today), so re-apply the bump if you run the old tool afterwards.
Recommended upgrade procedure
Install the .NET 10 SDK.
Run
harmonycore upgrade-latestwith the Harmony Core 10 release. This restampsTargetFrameworktonet10.0and updates all package pins, including the Synergy compilerpackage, in every project.
If you run this with the 8.x-era tool, it shows a spurious acknowledgment —
... requires you to regenerate from codegen template— even though 10.x is well past everyregen boundary (the old tool compared version strings lexically, ranking
10.xbelow3.x/8.x). AnswerYESand continue; you regenerate in the next step anyway. The 10.xtool fixes the comparison, so the prompt appears only for genuinely pre-boundary projects.
Run
harmonycore regen -pto regenerate code from the current templates.Rebuild and work through the compiler/code issues below — they only affect hand-written
DBL code; generated code is already updated.
Compiler changes (Synergex.SynergyDE.Build 26.8.x)
The 26.8 compiler is stricter than 26.5. Three patterns that compiled before now error:
1. Unimplemented partial methods with output parameters
An optional (declaration-only)
partial methodmay no longer haveout/inoutparameters.Either implement the method, or change the parameter to
inand have the caller pre-create theobject. Example from Harmony Core itself:
AddCustomMimeTypeschanged fromout provider, @FileExtensionContentTypeProvidertoinwith the caller constructing theprovider before the call.
2. Inline continued block lambdas
An
&-continuedbegin ... endlambda body inline in an argument list is rejected. Use eithera single-line brace lambda —
lambda(x) { x.DoThing().DoOther() }— or declare a named blocklambda on its own lines and pass it by name.
3. Stricter ambiguity checking
Calls that resolve against multiple overloads (commonly
string.Formatwith several arguments)may now need an explicit cast to disambiguate, e.g. passing an
(object[])for the paramsarray.
Hand-written code: removed ASP.NET Core hosting APIs
.NET 10 removed the long-obsolete
IHostingEnvironmentfamily and its extension-method surfacefrom the
Microsoft.AspNetCore.Hostingnamespace. The generatedStartup.dblnow declares theenvironment as
IWebHostEnvironment, whoseIsDevelopment()/IsProduction()/IsStaging()extensions live in theMicrosoft.Extensions.Hostingnamespace.Custom code such as
StartupCustom.dblthat calls these fails with:Fix: add one line to the file's imports:
The import is harmless on .NET 8, so it can be added before migrating.
Custom authentication (JWT)
Harmony Core 10's code generator seeds default values for the JWT user tokens
(
CUSTOM_JWT_ISSUER,CUSTOM_JWT_AUDIENCE,CUSTOM_JWT_GETKEY), so enabling"CustomAuthentication": truenow generates a workingAuthenticationToolsout of the box.Previously (since early 2025), enabling it without manually defining those three tokens
produced an uncompilable project:
because the
AuthenticationToolstemplate was silently skipped while the controller thatcalls it still generated. That defect is fixed in Harmony Core 10.
Warning
The default
CUSTOM_JWT_GETKEYis a clearly-marked development-only signing key. Beforedeploying, set your own values (via the
UserTokenssection ofHarmony.Core.CodeGen.json— user-defined tokens override the defaults) and follow the generated code's TODO about
sourcing the key from secure storage.
Test projects (MSTest / Microsoft.Testing.Platform)
MSTest 3.6+ brings in Microsoft.Testing.Platform, whose MSBuild targets generate entry-point
and extension-registration source files — in C#, VB, or F# only. Synergy test projects fail
with:
Fix: the project supplies its own main, so opt out in the
.synproj:Projects scaffolded by
harmonycore features --add-unit-testsfrom the Harmony Core 10templates already contain these; test projects created earlier need them added by hand.
Additionally, a helper project that calls into the test project (such as
Services.Test.GenerateValuesinvokingAssemblyInitialize, whose signature uses MSTest'sTestContext) needs its own directMSTest.TestFrameworkpackage reference. dblnetresolves types that appear in a referenced project's public signatures only from the
consuming project's direct references — the transitive flow through the project reference is
not sufficient — so without it the compile fails with:
This is a general rule worth remembering when a
DBL-E-NVTREFnames a type from a NuGetpackage your project doesn't reference directly: add the package to the failing project.
Traditional unit tests:
dotnet testwith.elbcontainersThe .NET 10 SDK changed how
dotnet testdecides between "build a project" and "run a testcontainer": only a bare argument ending in
.dll/.exeselects container (VSTest) mode.The value of
--test-adapter-pathno longer counts (it did, accidentally, on .NET 8), so theold invocation now tries to parse the
.elbas a project file:Fix: pass the adapter DLL as an explicit additional argument (VSTest skips it as a test
source with an informational message):
Handled inside Harmony Core 10 (no action needed, listed for awareness)
IgnoreQueryFiltersoverloads, value-generation requirements, LINQ surface changes). Harmony Core's EF provider
absorbs all of it — these appear as runtime failures only when net10 apps run against
pre-10 Harmony packages.
Required/Optional). Avoid asserting onToString()of EF metadata in tests.Harmony.Core10 packages floorMessagePackat 2.5.301: StreamJsonRpc 2.22.x otherwisepulls in 2.5.192, which carries advisories GHSA-vh6j-jc39-fggf / GHSA-2f33-pr97-265q — so
those NuGet audit warnings disappear once on the 10.x packages.
spurious "requires you to regenerate" acknowledgment (see the upgrade procedure above), and
its versions cache taking precedence over a
cli-tool-versions.jsonplaced next to thesolution (the local file now always wins).