Files
orca/.github
Jinjing c75b43bc86 Improve bug report template for desktop, remote, and mobile (#11140)
* Improve bug report template for desktop, remote, and mobile

Capture where users hit the bug (local desktop, SSH, remote server, WSL, mobile, web) without extra host jargon, and collect remote OS when relevant. Extend the OS labeler for mobile.

* Reconcile OS and mobile labels from the bug form's current state

Form: one "Where were you using Orca?" choice (Desktop only, + SSH host,
+ Orca server, + WSL, Mobile app, Web browser, Other), device OS with iOS
and Android, optional remote host OS, shorter help copy and per-platform
version instructions. Main's English request is kept.

Labeler: read the issue as it is now instead of the webhook snapshot,
recognize only a bug form at the very start of the body (optionally after
the exact machine-translation note line), and stop at the free-text
heading. Unknown, repeated, out-of-order or multi-line metadata leaves
labels untouched. Only os:macos, os:Windows, os:linux, os:mobile and
mobile are ever added or removed, one label at a time, so labels added
concurrently by people or other workflows survive. Each pass is verified
by a re-read and retried up to three times; runs are serialized per issue.

Fixes stale mobile labels after an edit to desktop, stale OS labels after
an edit to Other or blank, empty sections reading the next heading as a
value, quoted form sections relabeling unrelated issues, and prototype
names such as "constructor" being sent as labels. Retired Where option
strings and the Client / Host operating system headings keep working for
open issues.

Tests run the workflow's inline script against a stateful mock of the
issues API.

* Trim OS labeler tests to behaviour that fails when the fix is reverted

Review finding F11140-C1-1: several added tests pinned form copy, option
inventories, schema keys, workflow constants or script source, and kept
passing with the production change reverted.

- Delete bug-report-issue-form.test.mjs (schema keys, copy, option lists,
  About-menu source regexes). The form/labeler contract is kept as one
  behavioural case: every option the shipped form offers is recognised.
- Drop the workflow-constant and script-source regex tests, the log-copy
  assertion, the note-length check and the plain-string label case.
- Replace the Where x OS matrix (with its test-side oracle) and the other
  Cartesian tables with one literal case per distinct behaviour.
- Point negative fixtures at an OS the old script would label, so each
  kept case fails against the reverted workflow rather than passing because
  the old script skipped iOS.

220 -> 59 tests; all 59 fail with only the workflow reverted to main.
Test-only change; no runtime path changed.

* Keep the shadowed legacy value case in the heading-presence test

It covers a distinct rule (an invalid legacy value is ignored when the
current heading is present) and was dropped by mistake in the trim.
2026-11-12 19:23:31 -08:00
..