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
+2 -2
View File
@@ -8,9 +8,9 @@ using System.Runtime.InteropServices;
[assembly: AssemblyCopyright("Copyright © 2009")]
[assembly: AssemblyConfiguration("")]
[assembly: Guid("581ca4b6-a91c-4d24-b9b5-207f3b5da379")]
[assembly: AssemblyFileVersion("4.11.3.0")]
[assembly: AssemblyFileVersion("4.11.4.1")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: AssemblyTitle("Tesla Console")]
[assembly: AssemblyDescription("All code and UI property of Virtual World Entertainment.\r\n\r\nDeveloped by Elsewhen Studios, LLC in association with VGCorps, LLC.\r\n\r\nElsewhen Studios and the Elsewhen Wormhole are trademarks of Elsewhen Studios, LLC\r\n\r\nIncludes the WeifenLuo DockingPane library. Copyright © 2007 Weifen Luo (email: weifenluo@yahoo.com). Licensed under the MIT License - details can be found in WeifenLuo.txt included in this installation.")]
[assembly: AssemblyVersion("4.11.3.37076")]
[assembly: AssemblyVersion("4.11.4.1")]
@@ -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; " +
+2 -1
View File
@@ -299,7 +299,8 @@ namespace Tesla.Launcher.Agent
private void BuildTrayIcon()
{
_trayMenu = new ContextMenuStrip();
_trayMenu.Items.Add("Tesla Launcher Agent", null, null).Enabled = false;
var version = typeof(AgentApplication).Assembly.GetName().Version;
_trayMenu.Items.Add($"Tesla Launcher Agent v{version}", null, null).Enabled = false;
_trayMenu.Items.Add(new ToolStripSeparator());
_trayMenu.Items.Add("Reload Config", null, (s, e) => LoadLaunchApps());
_trayMenu.Items.Add("Kill All Apps", null, (s, e) => CmdKillAllApps());
+1 -1
View File
@@ -7,7 +7,7 @@
<Nullable>disable</Nullable>
<ImplicitUsings>disable</ImplicitUsings>
<WarningsAsErrors></WarningsAsErrors>
<Version>0.1.0</Version>
<Version>4.11.4.1</Version>
<ApplicationIcon>app.ico</ApplicationIcon>
<AssemblyName>TeslaLauncherAgent</AssemblyName>
<RootNamespace>Tesla.Launcher.Agent</RootNamespace>
+1 -1
View File
@@ -6,7 +6,7 @@
<ImplicitUsings>disable</ImplicitUsings>
<WarningsAsErrors></WarningsAsErrors>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<Version>0.1.0</Version>
<Version>4.11.4.1</Version>
<ApplicationIcon>app.ico</ApplicationIcon>
<AssemblyName>TeslaLauncherService</AssemblyName>
<RootNamespace>Tesla.Launcher.Service</RootNamespace>