docs(safety): record S11-S14 and the user-safety core, MODULE_API 1.21.0
USER_SAFETY.md: S11-S14 (asked while building the core), §3 corrected (the chat feed is already read per viewer), §4 rewritten to match what was built, §7 step 2 recorded as built and walked. MODULE_API.md: 1.21.0 (registerReportTargets, registerGameIdentities, ctx.safety). BACKEND_DESIGN.md: user_blocks / user_hidden_items, the content_reports snapshot and actioned_with, the new routes, the folder map. TEAMS.md §5.6 amended. README row updated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
This commit is contained in:
@@ -1467,6 +1467,24 @@ as `null` and the report still lists: "somebody reported this and by the time we
|
||||
is a fact a moderator needs, and dropping the row would hide the pattern of a member deleting their
|
||||
own content the moment it is reported.
|
||||
|
||||
> **Amended 2026-10-30 (`USER_SAFETY.md`, MODULE_API 1.21.0).** Four changes, none to the rules above:
|
||||
>
|
||||
> - **A game module's content is reportable too.** The first is a Rust chat line, `rust.chat`, which
|
||||
> the module registers with `api.registerReportTargets`. A second filing route,
|
||||
> `POST /api/v1/player/reports { targetType, targetId, reason, detail? }`, takes any type; the forum
|
||||
> route above keeps working and calls the same model. Who may see the target is asked of one resolver
|
||||
> (`model/safety/targets.js`) for every type, so the new route needs no Team and still answers 404
|
||||
> for an item the reporter cannot see.
|
||||
> - **`content_reports.snapshot JSON`** keeps what the item said when it was reported, so a pruned
|
||||
> chat line or an edited post still shows staff what was reported. Reports filed before it have none.
|
||||
> - **The queue gains *Hide for everyone*** (`POST /api/v1/admin/moderation/reports/:id/hide`). It is
|
||||
> staff's, not the reporter's, so "reporting is not a moderation action" still holds: it hides the
|
||||
> item through the forum's own moderation (a `staff` row in §5.3's ledger) or the module's `hide`,
|
||||
> and actions the report with `actioned_with = 'hide'`.
|
||||
> - **Members can hide an item for themself and block an author**, which are not reports and file
|
||||
> none. Signed-in forum reads leave those out on the server, and each thread and post carries
|
||||
> `canBlock`.
|
||||
|
||||
Mounted under the **existing** admin moderation section rather than under Teams: a staffer working a
|
||||
queue should have one place to work, and a report about a forum post is the same job as a report about
|
||||
anything else.
|
||||
|
||||
Reference in New Issue
Block a user