Release 0.37.0 - #32
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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_byand 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
requireAdminSession, while/slowwas offered to all staff — a moderatorcould 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.
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.
it is what you read before deciding, not what you fetch once you doubt.
long useful comment meant losing the whole thing. And the delete route had
shipped with no button anywhere, for moderators or for authors.
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_atmoves when an author re-reads themselves too, so it nevertold 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
generatea 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