Initial commit: TeslaSuite monorepo (TeslaConsole + TeslaLauncher)
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>
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
# TeslaSuite
|
||||
|
||||
The Tesla cockpit-pod software, in one repository:
|
||||
|
||||
| Folder | What it is | Target |
|
||||
|--------|------------|--------|
|
||||
| [`Console/`](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/`](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).
|
||||
Reference in New Issue
Block a user