fix(telemetry): normalize version string to always carry v prefix (#387)
The telemetry dashboard was showing duplicate rows for the same release (e.g. `0.22.0` and `v0.22.0`) because `telemetry.go` emitted whatever `s.version` contained without normalization. Official mcpproxy releases embed `v`-prefixed versions, but third-party builds using custom Dockerfiles with `--build-arg VERSION=0.22.0` drop the prefix, splitting the cohort. Add a `normalizeVersion` helper that prepends `v` when the bare string is a valid semver, leaves already-prefixed strings alone, and passes through invalid values like `dev` / `development` / `""` unchanged so the downstream `isValidSemver` gate can still filter them out and debug logs retain the original garbage. Apply normalization at the single central point (the `New` constructor) so every consumer of `s.version` — heartbeat payloads, the upgrade funnel cursor, the `telemetry show-payload` command — sees the same normalized form. Co-authored-by: Claude Code <noreply@anthropic.com>
D
Dumbris committed
f7b7b0134f036465de994242c26a9f10a7feabe8
Parent: 77c2b37
Committed by GitHub <noreply@github.com>
on 4/13/2026, 5:09:35 PM