Bug report tool: follow submitted reports and notify the reporter (with a link) when we reply or the status changes #527

Closed
opened 2026-10-07 21:33:34 +00:00 by sky_line · 1 comment
Owner

Idea from the owner: reporters often never see our follow-up questions (e.g. #519 "please retest on Beta 9", #495 "which layout?"). Let the in-viewer bug report tool follow the tickets it filed and tell the reporter when we reply.

What

  • Remember submitted reports per viewer install: when the report relay (slipstream-website/relay/slipstream_report_relay.py) files an issue, it returns the issue number + URL to the viewer; the viewer stores them (per account, in the user's settings dir) with the last-seen comment id / update time.
  • "Receive updates on this report" checkbox in the report window (llfloaterreportbug.cpp, Report Bug / crash report). Off by default or on? -> default on for crash reports and bug reports, remembered.
  • Notify when something is added: when a maintainer (not the bot itself) comments, changes the status (needs-info, fixed in a release, closed), the viewer shows a notification: "Your bug report #NNN has an update" + a short line (e.g. "A developer replied: please test on 1.1.0 Beta 9") + Open button -> the issue URL in the web browser. Also list followed reports somewhere (e.g. a "My reports" tab in the report window) with status and links.
  • Stop following: per report, and automatically when closed (after showing the final update once).

How (privacy and load)

  • The viewer must not talk to Forgejo directly or hold tokens. Add a small relay endpoint, e.g. POST /updates with the list of (issue number, last seen id) the viewer follows, signed like the existing report submission; the relay answers with which ones changed (comment author is a maintainer / label or state change) and a short, safe summary + URL. Rate-limit per install; cap the list size.
  • Only issues created by the report bot (slipstream-reports) can be followed, and only by the install that filed them (store a random per-report follow token returned at filing time; the relay checks it), so nobody can watch arbitrary issues or learn who filed what.
  • Poll at login and then at most every few hours while running; no polling when nothing is followed.
  • Website-form reports: same follow token, shown as a link the reporter can bookmark (optional, later).

Done when

  • A report filed with the box checked shows a viewer notification with a working link after a maintainer comments.
  • Status changes (needs info / fixed in vX / closed) also notify.
  • Nothing is sent when the box is unchecked; the follow list is bounded; the relay endpoint is rate-limited and token-checked.
Idea from the owner: reporters often never see our follow-up questions (e.g. #519 "please retest on Beta 9", #495 "which layout?"). Let the in-viewer bug report tool follow the tickets it filed and tell the reporter when we reply. ## What - **Remember submitted reports per viewer install:** when the report relay (`slipstream-website/relay/slipstream_report_relay.py`) files an issue, it returns the issue number + URL to the viewer; the viewer stores them (per account, in the user's settings dir) with the last-seen comment id / update time. - **"Receive updates on this report" checkbox** in the report window (`llfloaterreportbug.cpp`, Report Bug / crash report). Off by default or on? -> default **on** for crash reports and bug reports, remembered. - **Notify when something is added:** when a maintainer (not the bot itself) comments, changes the status (needs-info, fixed in a release, closed), the viewer shows a notification: "Your bug report #NNN has an update" + a short line (e.g. "A developer replied: please test on 1.1.0 Beta 9") + **Open** button -> the issue URL in the web browser. Also list followed reports somewhere (e.g. a "My reports" tab in the report window) with status and links. - **Stop following:** per report, and automatically when closed (after showing the final update once). ## How (privacy and load) - The viewer must not talk to Forgejo directly or hold tokens. Add a small relay endpoint, e.g. `POST /updates` with the list of (issue number, last seen id) the viewer follows, signed like the existing report submission; the relay answers with which ones changed (comment author is a maintainer / label or state change) and a short, safe summary + URL. Rate-limit per install; cap the list size. - Only issues created by the report bot (`slipstream-reports`) can be followed, and only by the install that filed them (store a random per-report follow token returned at filing time; the relay checks it), so nobody can watch arbitrary issues or learn who filed what. - Poll at login and then at most every few hours while running; no polling when nothing is followed. - Website-form reports: same follow token, shown as a link the reporter can bookmark (optional, later). ## Done when - A report filed with the box checked shows a viewer notification with a working link after a maintainer comments. - Status changes (needs info / fixed in vX / closed) also notify. - Nothing is sent when the box is unchecked; the follow list is bounded; the relay endpoint is rate-limited and token-checked.
sky_line added this to the Slipstream project 2026-10-07 21:33:34 +00:00
Author
Owner

Verified end to end on 2026-10-10. A report filed from the viewer (#637) got a receipt and showed up under Report Bug > My Reports. A reply posted on the issue triggered the viewer's notification on the next status poll (90 s after login). Relay: receipts plus /api/report/status deployed on starswirl with RELAY_RECEIPT_KEY. Viewer: commit 750736d2f5, plus fix c617057cac (HTTP code read from the status type).

Verified end to end on 2026-10-10. A report filed from the viewer (#637) got a receipt and showed up under Report Bug > My Reports. A reply posted on the issue triggered the viewer's notification on the next status poll (90 s after login). Relay: receipts plus `/api/report/status` deployed on starswirl with `RELAY_RECEIPT_KEY`. Viewer: commit 750736d2f5, plus fix c617057cac (HTTP code read from the status type).
sky_line 2026-10-10 10:54:56 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
sky_line/Slipstream#527
No description provided.