Shelving, failed fixes, and a report's whole comment history

Featurekamo-shared-library
Shipped
September 6, 2026 at 7:18 PM UTC
Author
Kamo
Commit
399d179

A report kept exactly one sentence. `system_bug.denial_reason` was overwritten by every subsequent status move, so a bug that was denied, explained, reopened, fixed and found still broken ended with one reason out of four and no way to read the rest. The obvious fix is a `system_bug_history` table with a note column. That table then has to grow threading, edit history, reactions, attachments, per-member mute and unread state — all of which the media-stream tables behind every chat and every support ticket already have. So a report gets a MediaSession instead, under a new `SYSTEM_BUG` type, exactly as `SupportTicket` already does: status changes are written in as system messages carrying the reason their author gave, comments as ordinary ones. Two statuses come with it. SHELVED is parked-not-refused, which `WONT_FIX` could not say — one is a queue position and the other is a decision, and a reporter told "we decided not to" about work that is merely waiting stops filing reports. ISSUE_PERSISTS is its counterweight: a shipped fix that did not hold. Both require a reason; a denial deliberately still does not, because forcing one there only teaches people to type a full stop. Membership on a bug thread does not mean what it means on a chat. The thread is readable by everybody the REPORT is visible to; `MediaSessionMember` rows mean "has taken part", and decide who is emailed and who has muted. That is why nothing here is served through MediaController, whose access rule IS membership. The status letter's audience follows: every participant minus the actor, rather than the reporter alone. The old "the reporter moved it, so send nothing" veto would have made Issue Persists notify nobody at all — least of all whoever wrote the fix that just failed.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing