Skip to content

feat: report a bug from Settings, and add issue templates - #17

Merged
SealinGp merged 1 commit into
mainfrom
feat/bug-report-flow
Oct 7, 2026
Merged

SealinGp merged 1 commit into
mainfrom
feat/bug-report-flow

Conversation

@SealinGp

@SealinGp SealinGp commented Oct 7, 2026

Copy link
Copy Markdown
Owner

Summary

Issue #14 was a model report, and its author had to hand-type everything the panel already knows: panel version, package architecture, host, kernel, service backend, core version. This makes that the default.

Issue templates (.github/ISSUE_TEMPLATE/)

  • bug_report.yml: description, steps to reproduce, panel version, sing-box version, environment, browser, logs. Labels are in English and Chinese. It warns against pasting subscription URLs, passwords, UUIDs or the Clash API secret.
  • feature_request.yml: problem, proposal, alternatives.
  • config.yml: blank issues stay available.

Settings → About

  • Report a bug opens the bug form with panel version, sing-box version, environment and browser pre-filled. GitHub issue forms accept a value for any field through a query parameter named after the field's id.
  • Copy diagnostics copies the same block as text, for an existing issue or a chat.

The panel sends nothing itself. The link opens GitHub in the operator's browser; they review the form and submit it under their own account. No token is involved.

What is never included

The hostname, any address, and anything from config.json. An issue is public and permanent.

Notes

  • The form's field ids are a contract with frontend/src/utils/bugReport.ts. A test reads bug_report.yml and fails if a field the panel pre-fills is missing from it.
  • The install method is read from the raw update status, not the composable's defaulted value, so a report never states "tarball" when the backend has not answered.
  • Values are clipped to 300 characters and newlines flattened, so one oversized or odd value cannot produce a URL GitHub rejects or inject extra lines into the environment block.

Test plan

  • bun test (12 new tests for the link builder; full suite passes) and bun run build
  • After merge: Settings → About → Report a bug opens the form with the fields filled in (templates only take effect once on the default branch, so this could not be checked before merge)
  • After merge: opening a new issue on GitHub shows the template chooser
  • Buttons render correctly in the About card, light and dark
  • Copy diagnostics on a plain-HTTP LAN address

Add GitHub issue forms for bug reports and feature requests. The bug form
asks for what issue #14's reporter typed out by hand: panel and sing-box
versions, system, platform, kernel, service manager and install method.

The About card gains "Report a bug", which opens that form with those
fields pre-filled through URL parameters named after the form's field
ids, and "Copy diagnostics", which copies the same block as text. The
panel sends nothing itself: the operator reviews and submits the issue
on GitHub as themselves. The hostname, addresses and config are never
included.

A test reads the template and fails if a field the panel pre-fills is
missing from it.
@SealinGp
SealinGp merged commit 5dd2ba7 into main Oct 7, 2026
1 of 2 checks passed
@SealinGp
SealinGp deleted the feat/bug-report-flow branch October 7, 2026 12:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant