Skip to content

Release 0.37.0 - #32

Merged
Dim145 merged 1 commit into
mainfrom
release/0.37.0
Sep 12, 2026
Merged

Dim145 merged 1 commit into
mainfrom
release/0.37.0

Conversation

@Dim145

@Dim145 Dim145 commented Sep 12, 2026

Copy link
Copy Markdown
Owner

Moderation, brought level with itself.

Trackarr has four moderation queues and they were not the same age. The
anti-cheat flags had a taxonomy, a priority, a typed verdict and bulk actions.
Tickets had case management. Reports had resolved_by and nothing else.
Pending uploads had three columns. This release brings the other three up to
where the first one already was, then closes the gaps that were left.

The queue stops asking you to judge cold

Deciding on a pending upload cost three pages: you left for the public torrent
page, left again for the uploader's profile, and came back to a queue that had
lost its place. The decision now happens beside the list — above 1080px the
panel docks to the right with no scrim, below it becomes a sheet — and a
decision advances to the next item instead of returning you to the top.

Every rejection reason was free text, so the same refusal was worded
differently by every moderator and none of it could be counted. Ten reason
codes now sit beside the message, which stays mandatory: the code is what you
count, the sentence is what the member reads.

And the queue handed over a name and a category while the database already
computed — and threw away — the uploader's accept/reject history, whether the
same content already exists, open anti-cheat flags, and the automated checks
on NFO, description and naming. All four are now a signals band. They inform;
none of them decides.

Also: claim an item so two moderators stop instructing the same dossier,
snooze without closing, order by priority rather than by date alone, warnings
as the rung between nothing and a ban, and a "my decisions" page — moderators
fill the staff register and could not read it.

Seven things that needed an administrator

  • The room's two emergency levers. Slow mode and scope lived behind
    requireAdminSession, while /slow was offered to all staff — a moderator
    could read the command, type it, and collect a 403 at the one moment a chat
    needs a hand. Both are now a button in the room header, on closed steps
    rather than a free integer, writing the same settings an administrator reads.
  • Renaming and moving a forum topic, which existed for nobody: the title
    and section were written once, by the insert that created the topic. A badly
    filed thread could only be deleted and reposted, which destroys the replies.
  • A member's warning history, on their profile, loaded for staff on open —
    it is what you read before deciding, not what you fetch once you doubt.
  • Editing a torrent comment. There was only delete, so one bad line in a
    long useful comment meant losing the whole thing. And the delete route had
    shipped with no button anywhere, for moderators or for authors.
  • Reports on comments and forum posts arrived as an unresolved id. They
    now carry an excerpt, their author, their date and a link that lands on the
    content — and say so plainly when it has been deleted since.

When staff rewrite your words, it says so

A moderator could already rewrite a member's forum post, and nothing marked
it: updated_at moves when an author re-reads themselves too, so it never
told the two apart. Both torrent comments and forum posts now carry who edited
them, shown beside the timestamp and notified to the member. A self-correction
stays unmarked — that is nobody's business.

Upholding a report no longer has to destroy the release

Resolving a torrent report always rejected the torrent. Half the report
categories are fixable rather than fatal — wrong label, bad metadata,
duplicate, dead — so a perfectly correct "the title says 1080p, the media info
says 720p" left the choice between killing a good release and telling the
reporter they were mistaken. Accepting now asks what the release deserves. Keep
it, and the reporter is thanked exactly the same way, the decision goes to the
torrent's moderation thread, and the uploader is left alone.

Fixes along the way

Defects that were already there, surfaced by the work above: the "no comments"
message showing underneath a full comment list; a report's reason column
collapsing to one character per line whenever a panel opened beside it; a raw
translation path rendered on the ban panel; six translation keys that never
existed, shown to members as key paths inside toasts; icon-button outlines
measured at 1.21:1 against WCAG's 3:1; and migrations 0077 and 0078 shipping
without a drizzle snapshot, which would have handed the next person to run
generate a migration re-creating what already exists.

Upgrading

Migrations 0077 and 0078 apply at API boot, as usual. No configuration
changes, no manual steps.

🤖 Generated with Claude Code

@Dim145
Dim145 merged commit a1b3ef7 into main Sep 12, 2026
11 checks passed
@Dim145
Dim145 deleted the release/0.37.0 branch September 12, 2026 20:34
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