- Join a site-wide workgroup (WORKGROUP=Tesla) at install time so every pod
shares one browse list for the mw4files / c shares.
- Enable SMB1 server as well as client: the pod hosts those shares and Win10/11
ship the SMB1-Server sub-feature off by default, so old SMB1 clients couldn't
reach them. Now enables SMB1Protocol + -Client + -Server.
- Refresh the stale asset-layout comment in the header.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Install the UltraVNC server component with the service tasks selected up front
(SetupType=custom, Components=ultravnc_server, Tasks=installservice,startservice)
and run the setup with start /wait + /loadinf so the pod comes up with the VNC
service registered and started for remote diagnostics.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Notifications: replace per-user HKCU tweaks (which only hit the admin running
the installer) with machine-wide HKLM Group Policy keys so they apply to the
auto-login kiosk account — no toasts, lock-screen notifications, cloud toasts,
tips/Spotlight/consumer content, or Defender health alerts.
- Shares (closed network): create C:\mw4files and share it as \host\mw4files,
and share C:\ as \host\c, both granted to Everyone. Idempotent (delete-then-
create); C:\mw4files also gets Everyone modify on NTFS so the grant is usable.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- assets/: replace old reference dumps with the three redist folders the
installer actually consumes (dx9201006/, openal/, UltraVNC/).
- build.bat: mirror each redist folder into the package root so install.bat's
%ROOT%\dx9201006, %ROOT%\openal, %ROOT%\UltraVNC paths resolve; bump header
to v4.11.4.1.
- install.bat: bump header to v4.11.4.1; write Winlogon auto-login regedits
for the Firestorm kiosk account (was manual instructions); fix UltraVNC
setup exe filename typo (UltraVNC_Setup_x64 -> UltraVNC_x64_Setup).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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>
Co-locate the two cockpit-pod projects into a single repository:
- Console/ : TeslaConsole, the net48 WinForms operator console (decompiled
reconstruction) plus its differential + catalog test suite.
- Launcher/ : TeslaLauncher, the net6 pod-side Service + Agent rewrite.
Adds a combined TeslaSuite.sln, root README documenting the shared wire
contract (and its current duplication, the main follow-up), and a root
.gitignore. Histories were not preserved per request; this is a fresh start
from the current working state of both projects.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>