v8: Schema - author_email, comment_holds, comment_bans #21

Open
opened 2026-06-22 23:54:52 +00:00 by rbrooks · 0 comments
Owner

Migration for the moderation layer.

  • comments.author_email text (nullable, stored hashed; never exposed in any API response)
  • comment_holds table: comment_id, hold_reason (enum: first_comment | keyword | url | ai_score | timing | manual), ai_score numeric, held_at
  • comment_bans table: id, scope (enum: motif | global), ban_type (enum: ip | ip_cidr | name_pattern | email_domain), value text, created_by uuid, created_at
  • Moderation log reuses audit_log with entity_type = 'comment' - no new table

Imported from ROADMAP.md.

Migration for the moderation layer. - [ ] `comments.author_email text` (nullable, stored hashed; never exposed in any API response) - [ ] `comment_holds` table: `comment_id`, `hold_reason` (enum: `first_comment | keyword | url | ai_score | timing | manual`), `ai_score numeric`, `held_at` - [ ] `comment_bans` table: `id`, `scope` (enum: `motif | global`), `ban_type` (enum: `ip | ip_cidr | name_pattern | email_domain`), `value text`, `created_by uuid`, `created_at` - [ ] Moderation log reuses `audit_log` with `entity_type = 'comment'` - no new table --- _Imported from `ROADMAP.md`._
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
rbrooks/TeaLeaves#21
No description provided.