Bump version to 4.11.4.1; show version in Agent tray menu

- Console AssemblyVersion/AssemblyFileVersion 4.11.3.37076 -> 4.11.4.1. The
  recovered console is no longer a byte-faithful copy of the original baseline;
  it is the modernized 4.11.4.x line.
- Launcher Service + Agent Version -> 4.11.4.1 (unified suite version). The Agent
  tray menu header now shows the running version ("Tesla Launcher Agent  v4.11.4.1").
- Differential tests: the identity guard now expects the original at 4.11.3.37076
  and the recovered at 4.11.4.1 (not identical); the public-member surface check
  strips Version= stamps before comparing, since generic-argument signatures embed
  the assembly version (we compare type names, not versions). 73 tests green.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Cyd
2026-06-30 10:02:39 -05:00
co-authored by Claude Opus 4.8
parent 477f20b24c
commit 78bf297824
6 changed files with 24 additions and 10 deletions
@@ -39,11 +39,15 @@ namespace TeslaConsole.DiffTests
}
[Fact]
public void Loaded_Assemblies_Share_Identity()
public void Loaded_Assemblies_Are_The_Expected_Builds()
{
// Both must really be TeslaConsole 4.11.3.37076 — guards against testing the wrong files.
Assert.Equal(_fx.Original.AssemblyFullName, _fx.Recovered.AssemblyFullName);
// The original is the untouched 4.11.3.37076 baseline; the recovered build is
// the modernized line, intentionally bumped to 4.11.4.x (same assembly name,
// new version). Both must be TeslaConsole — guards against testing the wrong files.
Assert.Contains("TeslaConsole", _fx.Original.AssemblyFullName);
Assert.Contains("TeslaConsole", _fx.Recovered.AssemblyFullName);
Assert.Contains("4.11.3.37076", _fx.Original.AssemblyFullName);
Assert.Contains("4.11.4.1", _fx.Recovered.AssemblyFullName);
}
// ---- RPStrings.GetTimeString: mm:ss formatting with 0.5s rounding ----
@@ -1,4 +1,5 @@
using System.Linq;
using System.Text.RegularExpressions;
using Xunit;
namespace TeslaConsole.DiffTests
@@ -37,11 +38,19 @@ namespace TeslaConsole.DiffTests
string.Join("\n ", missing));
}
// The recovered build is intentionally a newer assembly version than the
// original baseline. A member signature that references a TeslaConsole type as a
// generic argument embeds that type's assembly-qualified name — including the
// version — so strip Version= stamps before comparing. We compare type NAMES,
// not versions.
private static string StripVersion(string sig)
=> Regex.Replace(sig, @", Version=\d+\.\d+\.\d+\.\d+", "");
[Fact]
public void Recovered_Exposes_All_Original_Public_Members()
{
var original = _fx.Original.GetPublicMemberSignatures();
var recovered = _fx.Recovered.GetPublicMemberSignatures();
var original = _fx.Original.GetPublicMemberSignatures().Select(StripVersion).ToArray();
var recovered = _fx.Recovered.GetPublicMemberSignatures().Select(StripVersion).ToArray();
Assert.True(original.Length > 100,
"Only " + original.Length + " public members enumerated from the original; " +