Spike: net48-only launcher (evaluate size vs net8 self-contained)
Converts the Launcher Service + Agent from net8/win-x64 self-contained to net48 framework-dependent, and makes Tesla.Contract net48-only (drops multi-targeting). Both consumers (Console + Launcher) are now a single TFM. Code changes for net48 (the only net8/netstandard2.1 APIs in use): - RandomNumberGenerator.Fill -> RandomNumberGenerator.Create().GetBytes (3x) - TcpListener.AcceptTcpClientAsync(ct) -> AcceptTcpClientAsync() + stop-on-cancel - byte[].AsSpan().SequenceEqual -> Linq SequenceEqual (no System.Memory) (2x) - PipeStream.Write(byte[]) / WriteAsync(byte[],ct) -> explicit (buf,0,len[,ct]) - Math.Clamp -> Math.Max/Min The generic host (Microsoft.Extensions.Hosting 8.x + UseWindowsService) runs on net48 unchanged. build.bat/install.bat updated for the folder-of-DLLs deploy; solution platform reverted x64 -> AnyCPU. RESULT — package size: ~3.7 MB on disk / 1.58 MB zipped, vs ~213 MB / 91 MB for the net8 self-contained build (~50-58x smaller). net48 ships in Win10/11 so no runtime prerequisite. 73 tests green; NOT re-validated on a live pod. Spike branch for evaluation — do not merge without a pod re-test. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -422,8 +422,8 @@ namespace Tesla.Launcher.Agent
|
||||
}
|
||||
|
||||
var resBytes = Encoding.UTF8.GetBytes(JsonSerializer.Serialize(response));
|
||||
pipe.Write(BitConverter.GetBytes(resBytes.Length));
|
||||
pipe.Write(resBytes);
|
||||
pipe.Write(BitConverter.GetBytes(resBytes.Length), 0, 4);
|
||||
pipe.Write(resBytes, 0, resBytes.Length);
|
||||
pipe.Flush();
|
||||
}
|
||||
|
||||
@@ -672,7 +672,7 @@ namespace Tesla.Launcher.Agent
|
||||
var scalar = parms[0].ValueKind == JsonValueKind.Number
|
||||
? (float)parms[0].GetDouble()
|
||||
: throw new Exception("Invalid volume value");
|
||||
SetMasterVolume(Math.Clamp(scalar, 0f, 1f));
|
||||
SetMasterVolume(Math.Max(0f, Math.Min(1f, scalar)));
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user