Commit Graph
3 Commits
Author SHA1 Message Date
CydandClaude Opus 4.8 4a61a9f8c3 Fix pod reconfigure timeout; add console installer + package
Reconfigure timeout (launcher reinstall of an already-configured pod):
- The console pings each configured pod and connects on success, on a loop, and
  never tore that down — so it kept hammering the pod's old IP with a stale
  connection while SecureConfig tried to bring the pod up on that address, which
  timed out. Only a console restart (closing all sockets) cleared it.
- DeletePod now Disconnect()s the pod's connection (closes the lingering socket)
  so delete-to-reconfigure works WITHOUT a console restart.
- Reconfiguring a known pod in place now pauses that pod's ping/connect loop
  (OperationInProgress) and drops its stale connection before SecureConfig, and
  resumes on completion (success or failure) so it reconnects with the new key.
  (StopPing kills the ping thread irreversibly, so pause via OperationInProgress.)
  Note: PodInfo's static mPods registry is dead code (nothing registers), so the
  real fix is the disconnect, not an unregister.

Console deployment:
- Console/install.bat: installs the console to C:\Program Files\TeslaConsole,
  preps the %ProgramData%\Tesla Console data dir (Users: modify), creates a Start
  Menu shortcut, and adds a per-program inbound firewall rule so it can receive
  pod discovery beacons. net48 is in-box, no runtime install.
- Console/build-package.bat: publishes the console (net48 framework-dependent) to
  dist\TeslaConsole\App and assembles the package with install.bat.

74 tests green; the pod-config fix is UI/network behavior, validate on a pod.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-30 19:26:28 -05:00
CydandClaude Opus 4.8 a7aafaa9e9 Fix Launcher packaging for net8/x64; doc + gitignore updates
build.bat was broken by the contract extraction: it staged the loose Launcher
.cs files into temp folders and published from there, but the projects now have
a ProjectReference to ..\Contract\Tesla.Contract.csproj which cannot resolve from
a temp dir. Publish the projects IN PLACE instead, and target net8 / win-x64
(self-contained single-file) to match the runtime/arch uplift. The resulting
TeslaLauncher\ package (Service\ + Agent\ + install.bat) installs on a pod with
no .NET runtime prerequisite.

- Launcher/README.md: correct net6->net8, x86->x64, BinaryFormatter->framed JSON,
  and note wire types now come from ../Contract.
- Launcher/.gitignore: ignore the TeslaLauncher-*.zip deployment package.
- Console/.gitignore: ignore the published TeslaConsole-app\ package + its zip
  (framework-dependent net48 console build for running against a test pod).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-30 08:30:13 -05:00
CydandClaude Opus 4.8 548550b312 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>
2026-06-29 14:43:28 -05:00