Review fixes: telemetry session id per login; Framework number text

F1: the telemetry session id is new at every login. The original made one per
load of its assembly and its loader reloaded it at every login; the backend
counts new kills per (session id, character), so reusing one id across a
relog under-counted kills until the reset counter passed the old total.

F5/F6: .NET Framework never wrote a negative zero, and its fixed-point
formats (F7, F2, F0) rounded at fifteen significant digits, half away from
zero. Spawn and portal coordinates, kills_per_hour and the !report line now
format that way; the round-trip converter maps -0 to 0.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Erik 2026-09-25 13:04:28 +02:00
parent 9b5371c2e4
commit 71f14473c6
10 changed files with 157 additions and 10 deletions

View file

@ -64,13 +64,13 @@ internal sealed class TelemetryStream : IMmFeature, IBackendConnectionListener
type = "telemetry",
character_name = _context.CharacterName,
char_tag = _context.Settings.Current.CharTag ?? "",
session_id = MmContext.ProcessSessionId,
session_id = _context.TelemetrySessionId,
timestamp = Wire.Timestamp(_context.Clock),
ew = coords.EW,
ns = coords.NS,
z = coords.Z,
kills = kills.TotalKills,
kills_per_hour = kills.KillsPerHour.ToString("F0", CultureInfo.CurrentCulture),
kills_per_hour = FrameworkNumberConverter.FrameworkFixed(kills.KillsPerHour, "F0", CultureInfo.CurrentCulture),
onlinetime = (_context.Clock.Now - kills.StatsStartTime).ToString(@"dd\.hh\:mm\:ss", CultureInfo.InvariantCulture),
deaths = kills.SessionDeaths.ToString(CultureInfo.CurrentCulture),
total_deaths = kills.TotalDeaths.ToString(CultureInfo.CurrentCulture),