From 92cf19210323458d64ee809e589aa2ba6b26cfb3 Mon Sep 17 00:00:00 2001 From: "pulse-triage[bot]" <249995291+pulse-triage[bot]@users.noreply.github.com> Date: Sat, 10 Oct 2026 03:12:03 +0100 Subject: [PATCH] Preserve explicitly shared server and agent versions in legacy reports The complete live-backlog comparison caught the existing report #1788's shared server + pulse-agent v6.3.2 declaration. Keep that explicit field value rather than marking supplied evidence unknown; retain unknown and adjacent-field boundaries. Add a regression for the real report's version format. Change-source: pulse-maintainer Contract-Neutral: Preserves valid input compatibility in the existing silent issue metadata parser; no form, label, contact, product API or subsystem contract change. --- .github/scripts/issue-version-triage.cjs | 4 ++-- .github/scripts/issue-version-triage.test.cjs | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/.github/scripts/issue-version-triage.cjs b/.github/scripts/issue-version-triage.cjs index 0088c86ce5..1c652232c7 100644 --- a/.github/scripts/issue-version-triage.cjs +++ b/.github/scripts/issue-version-triage.cjs @@ -69,9 +69,9 @@ function normalizeVersion(value) { function normalizeLegacyVersionValue(value) { const visible = String(value).trim().replace(/^[`*_]+/, ""); - // Recognise conventional version, image and release-asset values, without + // Keep an explicitly shared server/agent version (as in #1788), without // mining a sentence such as "unknown; agent version 6.5.0" for a number. - return /^(?:v?\d+\.\d+\.\d+\b|(?:[a-z0-9._/-]+\/)?pulse:|pulse[-_])/i.test(visible) + return /^(?:v?\d+\.\d+\.\d+\b|server(?:[ \t]*\+[ \t]*pulse-agent)?[ \t]+v?\d+\.\d+\.\d+\b|(?:[a-z0-9._/-]+\/)?pulse:|pulse[-_])/i.test(visible) ? normalizeVersion(visible) : null; } diff --git a/.github/scripts/issue-version-triage.test.cjs b/.github/scripts/issue-version-triage.test.cjs index ebc34375d2..271801bf29 100644 --- a/.github/scripts/issue-version-triage.test.cjs +++ b/.github/scripts/issue-version-triage.test.cjs @@ -606,6 +606,14 @@ test("legacy version formats still classify actual version values", () => { } }); +test("legacy joint server-agent versions remain reporter evidence", () => { + const { extractPulseVersion } = triage.internals; + const body = "**Pulse version:** server + pulse-agent v6.3.2 (Docker, `rcourtman/pulse:v6.3.2`)\n**Host OS:** Unraid 7.3.2\n**Agent:** Unified Agent v6.3.2, x86_64"; + assert.equal(extractPulseVersion("[Bug]: Unraid missing disks", body), "6.3.2"); + assert.equal(extractPulseVersion("Bug", "Pulse version: server V6.5.0"), "6.5.0"); + assert.equal(extractPulseVersion("Bug", "Pulse version: unknown; server + pulse-agent v6.3.2"), null); +}); + test("legacy unknown-version sync cannot fabricate release evidence or contact", async () => { for (const body of [ "Pulse version: unknown\n### Agent version\n6.5.0",