Forums Feature Requests Thread

[New] Admin deep-dive (trust/safety): Reports cannot be assigned/claimed to a specific moderator — no ownership

Patrick Bass · Jun 6 · 16 · 1 Locked
[High Priority] [New Feature] [Deployed to Production]
🚀 OP Jun 6, 2026 8:20pm

Area: Admin deep-dive (trust/safety) (audit p15a) · Surface: /admin/moderation (AdminModerationController) · Dimension: Competitor-gap feature (#2) · Severity: major

Zendesk, Intercom, and Help Scout center their whole workflow on assignment — a ticket has an owner, so two agents never duplicate work and you can route by expertise. Discourse's review queue shows who's claimed an item. Without per-report ownership, a Mobieus mod team either silently double-handles reports or coordinates out-of-band in chat. The 'in_progress' status is a tenant-wide flag, not 'mine vs theirs', so it doesn't prevent collisions. This becomes painful exactly when a tenant has more than one moderator — which is the configuration our mod-assignment system (AdminModsController, four scopes) is built to encourage.

Evidence

The only 'claim' in the controller is bulkMarkInProgress (AdminModerationController.php:643), which flips status to 'in_progress' tenant-wide with no owner column. `grep -in 'assigned_to|assignee|assigned_mod' AdminModerationController.php` finds nothing; reports schema (schema.sql:6753-6779) has resolved_by but no assigned_to. Two mods can both open the same in-progress report with no indication either is already on it.

Suggested fix. Add reports.assigned_to (nullable FK to users) + a Claim/Reassign action; show an 'assigned to @x' badge in the queue; optionally auto-claim on first action. Reuse the existing CAS pattern from escalate() (lines 1197-1212) to make claim race-free.

Filed by the automated tenant-app audit and adversarially evidence-verified. Status: verified. Open — not yet actioned.


Patrick Bass
@mobieus

🚀 Jun 7, 2026 12:31pm

Shipped and deployed to production. Commit 34575952ac.

Report assignment: reports.assigned_to column + POST /admin/moderation/{id}/assign + moderator dropdown on detail page + assigned-to column in queue list.

Closed as: deployed.


Patrick Bass
@mobieus

Log in or register to reply to this thread.