fix(client): restore retail interaction parity
All checks were successful
CI / linux-portable (push) Successful in 3m27s
CI / windows-gate (push) Successful in 6m42s
CI / release (push) Successful in 2m12s

Harden keyboard and camera routing, inventory and vendor interactions, chat/emotes, relog portal flow, and paperdoll rendering. Add retail research, connected gate coverage, and release-gate validation.
This commit is contained in:
Erik 2026-08-26 20:45:11 +02:00
parent 0c699240e0
commit f6fe0f2a4f
151 changed files with 10162 additions and 1211 deletions

View file

@ -3,7 +3,8 @@
Runs the complete portable Release gate with bounded child processes.
.DESCRIPTION
Verifies that AcDream.slnx owns every project under src/, tests/, and tools/;
Verifies that AcDream.slnx owns every product project under src/, tests/,
and tools/ (deployment-only ACE server mods are intentionally separate);
performs a locked restore; builds that complete supported graph; discovers
every test project under tests/ that declares itself through
Microsoft.NET.Test.Sdk or IsTestProject; and then runs each test assembly in
@ -199,7 +200,13 @@ function Get-SolutionProjects {
foreach ($directoryName in @('src', 'tests', 'tools')) {
Get-ChildItem -LiteralPath (Join-Path $repoRoot $directoryName) -Recurse -Filter '*.csproj' -File
}
)
) | Where-Object {
# tools/ace-mods projects compile against a separately installed ACE
# server and are deployed into that server, not shipped as part of the
# portable acdream product graph.
$relative = [IO.Path]::GetRelativePath($repoRoot, $_.FullName).Replace('\', '/')
-not $relative.StartsWith('tools/ace-mods/', [StringComparison]::OrdinalIgnoreCase)
}
$solutionSet = [Collections.Generic.HashSet[string]]::new(
[StringComparer]::OrdinalIgnoreCase)
foreach ($project in $projects) {