Make failed-install issue intake truthful

Ask for the attempted release and installer provenance when Pulse never started, without forcing a false running-version attestation or a token-bearing command. Keep public triage guidance aligned and pin both forms in tests.

Contract-Neutral: Issue form provenance and wording change community intake only, not release promotion or artifact dispatch
Change-source: pulse-maintainer
This commit is contained in:
pulse-triage[bot]
2026-09-29 18:44:42 +01:00
parent 911cd43b6c
commit 5d39c8623f
5 changed files with 60 additions and 19 deletions
+13 -4
View File
@@ -7,7 +7,7 @@ body:
- type: markdown
attributes:
value: |
Report the version on the running instance where the bug occurs, not just the version you upgraded from. For container installs, include the running image tag or digest; for other installs, leave the image field blank.
Report the version on the running instance where the bug occurs, not just the version you upgraded from. If installation failed before Pulse could start, give the exact version you tried to install, or write "unknown" and identify the installer or helper below. For container installs, include the running image tag or digest; for other installs, leave the image field blank.
If your issue is connection- or data-related, include diagnostics from:
`Settings -> Diagnostics -> Export for GitHub (sanitized)`.
@@ -56,8 +56,8 @@ body:
id: pulse_version
attributes:
label: Pulse version
description: Exact version shown in the UI or logs.
placeholder: v6.x.y
description: Running version for an existing install; for a failed install, the exact version or release asset attempted, or "unknown" if it was not shown.
placeholder: v6.x.y, release asset name, or unknown
validations:
required: true
@@ -93,6 +93,15 @@ body:
validations:
required: true
- type: input
id: installer_source
attributes:
label: Installer or helper source
description: For a failed install, give the public installer/helper URL or command name, if known. Do not paste a command containing a token or other secret.
placeholder: Official Pulse installer, helper URL, or command name
validations:
required: false
- type: textarea
id: logs
attributes:
@@ -106,7 +115,7 @@ body:
attributes:
label: Confirmations
options:
- label: I checked the Pulse version on the running instance and, for a container install, its running image tag or digest.
- label: I gave the running Pulse version, or for an install that never started, the attempted version or "unknown"; for a running container I also gave its image tag or digest.
required: true
- label: I searched existing issues for duplicates.
required: true
+12 -3
View File
@@ -30,8 +30,8 @@ body:
id: pulse_version
attributes:
label: Pulse version
description: Exact version shown in the UI, logs, or release asset.
placeholder: v6.0.0-rc.N
description: Running version for an existing install; for a failed install, the exact version or release asset attempted, or "unknown" if it was not shown.
placeholder: v6.0.0-rc.N, release asset name, or unknown
validations:
required: true
@@ -68,6 +68,15 @@ body:
validations:
required: true
- type: input
id: installer_source
attributes:
label: Installer or helper source
description: For a failed install, give the public installer/helper URL or command name, if known. Do not paste a command containing a token or other secret.
placeholder: Official Pulse installer, helper URL, or command name
validations:
required: false
- type: input
id: environment
attributes:
@@ -144,7 +153,7 @@ body:
attributes:
label: Confirmations
options:
- label: I verified the exact version before filing this report.
- label: I gave the running version, or for an install that never started, the attempted version or "unknown".
required: true
- label: I searched existing issues and the pinned v6 pre-release feedback hub first.
required: true
@@ -264,6 +264,17 @@ test("every actionable issue form exposes the decomposition signal", () => {
}
});
test("bug and pre-release forms accept truthful evidence for installs that never started", () => {
const templateDir = path.resolve(__dirname, "../ISSUE_TEMPLATE");
for (const name of ["bug_report.yml", "v6_rc_feedback.yml"]) {
const form = fs.readFileSync(path.join(templateDir, name), "utf8");
assert.match(form, /id: pulse_version[\s\S]*?failed install[\s\S]*?"unknown"/);
assert.match(form, /id: installer_source[\s\S]*?Installer or helper source[\s\S]*?required: false/);
assert.match(form, /Do not paste a command containing a token or other secret/);
assert.match(form, /for an install that never started/);
}
});
test("older-version reports cannot trigger event or scheduled retest posting", async () => {
const issue = {
number: 1200,