Flag#action! / Flag#dismiss! β close sugar, incl. dismissing flags for superseded content#4
Merged
Merged
Conversation
β¦t be dismissable Reports had resolve!/dismiss! model sugar; Flags forced hosts to hand-write status/reviewed_by/resolution_note/reviewed_at updates. Found while fixing a real host bug (CarHey): an AI avatar-quality adapter files :flag-mode flags, the user replaces the photo, and the still-pending flag keeps flagged? true forever β gluing a 'pending review' banner (worse: an offensive-material banner) onto the NEW, good photo. The missing affordance was a first-class way to close a flag whose content no longer exists. - action!(note:, by: nil) β closed as actioned (someone took action) - dismiss!(note:, by: nil) β closed with no action; canonical automated use is superseded content - by: defaults to nil so automated closes don't fake a human reviewer (DSA statements of reasons read these rows) - shared close! uses update! on purpose: the resolution_note-presence validation is the guard that every closed flag explains itself 205 tests green. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UMa8bEvYfi9Dr8RYhhfKze
rameerez
added a commit
that referenced
this pull request
Jul 10, 2026
CHANGELOG: fold the since-beta1 deltas (#3 async-adapter routing fix + Active Storage attachment filtering, #4 Flag close sugar) into a proper [1.0.0.beta2] section; bump Moderate::VERSION. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UMa8bEvYfi9Dr8RYhhfKze
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.
Reports have
resolve!/dismiss!model sugar; Flags made hosts hand-writestatus/reviewed_by/resolution_note/reviewed_atupdates.Found while fixing a real host bug (CarHey): an AI avatar-quality adapter files
:flag-mode flags; the user then replaces the photo; the still-pending flag keepsflagged?true forever β gluing a "pending review" banner onto the NEW, good photo. The missing affordance: a first-class way to close a flag whose content no longer exists.action!(note:, by: nil)β closed as actioned (someone took action on the content)dismiss!(note:, by: nil)β closed, no action; the canonical automated use is superseded content (text edited, photo replaced/reverted)by:defaults tonilso automated closes don't fake a human reviewer β DSA statements of reasons read these rowsclose!goes throughupdate!on purpose: theresolution_note-presence validation is exactly the guard that every closed flag explains itselfTests: 3 new (reviewer/note/timestamp stamping, nil-reviewer automated close releasing
flagged?, note-less close refused). Full suite 205 runs green.Sibling of #3 (async adapters) β independent, either merges first.
π€ Generated with Claude Code
https://claude.ai/code/session_01UMa8bEvYfi9Dr8RYhhfKze