CydandClaude Opus 4.8 b9d8027cf6 Extract shared contract, drop BinaryFormatter wire, modernize to net8/x64
Make the Console<->Launcher system source-built and modern now that the console
is under our control and the WinXP-era pods are gone.

Contract extraction (Contract/Tesla.Contract.csproj):
- One multi-targeted (net48;net8.0-windows) source project for the RPC contract,
  replacing the vendored TeslaConsoleLaunchLib.dll and the hand-synced Tesla.Net
  replica in Launcher/LaunchModels_Shared.cs. Emits assembly TeslaConsoleLaunchLib.

SecureConfig extraction (SecureConfig/Tesla.SecureConfig.csproj):
- net48 source of the first-boot provisioning protocol (UDP beacons, OFB crypto,
  RSA key exchange), replacing the vendored TeslaSecureConfiguration.dll.

Remove BinaryFormatter from the wire (RCE sink + the reason net6 was pinned):
- Console<->Launcher RPC is now length-prefixed System.Text.Json frames
  (Contract/PodRpcProtocol.cs) over the unchanged OFB transport; dispatch by
  method name. Deleted the SerializationBinder / MethodInfoProxy machinery.
- Console-local BinaryFormatter (Site config, mission replays) intentionally
  retained: local net48 file I/O, not the network surface.

Runtime modernization:
- Launcher Service + Agent: net6 -> net8, win-x86 -> win-x64 (all pods are
  64-bit Win10). Kept the SHA1-default PBKDF2 (Console key-derivation compat)
  with SYSLIB0041 suppressed and documented.

Tests: differential suite now 73 green. Added SecureConfigCompatTests (OFB
ciphertext byte-identical to the vendored DLL) and PodRpcProtocolTests (JSON
round-trip of every request/response shape); removed the now-obsolete
BinaryFormatter byte-identity guard.

Build hygiene: per-project obj dirs (Launcher/Directory.Build.props) fix a
NuGet restore collision between the two Launcher projects sharing one folder.

NOT runtime-verified against a live pod.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-30 08:15:17 -05:00

TeslaSuite

The Tesla cockpit-pod software, in one repository:

Folder What it is Target
Console/ TeslaConsole — the operator console (WinForms) that configures and drives the pods. A faithful decompiled reconstruction of the original TeslaConsole.exe, with a differential test suite that pins it to the original baseline. .NET Framework 4.8
Launcher/ TeslaLauncher — the pod-side Service (Session 0 RPC listener) + Agent (user-session app launcher). A clean .NET 6 rewrite of the original launcher. .NET 6 (windows, x86)

The console and the launcher talk over TCP 53290 using an OFB-encrypted BinaryFormatter RPC. They share a wire contract (Tesla.Net types + ILauncherService/IPodManagerConnection signatures) that must stay byte-for-byte compatible.

⚠️ Known duplication (intentional, for now): that shared contract currently lives in two places — the console consumes it as the compiled Console/lib/TeslaConsoleLaunchLib.dll, and the launcher hand-replicates the same types in Launcher/LaunchModels_Shared.cs. They must match exactly. Consolidating this into a single multi-targeted Tesla.Contract source project is the main follow-up this monorepo is meant to enable.

Building

Each side has its own toolchain; the combined solution builds both:

dotnet build TeslaSuite.sln -c Release

Or individually:

dotnet build Console/TeslaConsole.csproj -c Release          # the console
dotnet test  Console/tests/TeslaConsole.DiffTests            # differential + catalog tests
dotnet build Launcher/TeslaLauncher.sln -c Release           # service + agent

The launcher also has its original Launcher/build.bat / Launcher/install.bat for producing and deploying the self-contained pod build.

Layout notes

  • Console/original/TeslaConsole.exe is the reference baseline the differential tests compare against — keep it.
  • Console/lib/*.dll are the proprietary binary dependencies the console still references (TeslaConsoleLaunchLib, TeslaSecureConfiguration, Munga Net, BitmapLibrary, WeifenLuo docking).
  • Console/RedPlanet/Apps.xml is the data-driven product catalog (see the console's Site Management → Add Product / Register Product on Pods).
S
Description
No description provided
Readme
151 MiB
Languages
C# 94.9%
Batchfile 2.6%
Python 2.2%
C++ 0.2%
PowerShell 0.1%