remarkbox/docs/tickets/6.md
russell@unturf.com f1cffe2e79 Resolve all 14 tracked tickets (T0-T13)
High priority fixes:
- T0: Profile page now filters comments by namespace (was leaking cross-site)
- T1: URI hostnames and namespace names normalized to lowercase (was causing
  duplicate threads and "stock comments" bug). Includes merge script.
- T2: Thread detail API now paginated with SQL-side filtering (was 502 on
  267+ reply threads)

Features:
- T3: GDPR account deletion (tombstone user with scrubbed PII) and data export
- T4: Customizable button text and comment labels per namespace
- T5: Self-service namespace deletion for owners
- T6: @mention notifications with profile links
- T7: Webmention receiving endpoint with h-card extraction
- T8: Configurable max nesting depth and collapse depth per namespace
- T9: AJAX thread title search to prevent duplicates
- T10: Browser push notification support (VAPID/service worker)

Docs and housekeeping:
- T11: Documented thread_uri behavior when moving embeds
- T12/T13: Drafted community replies for resolved feature requests
- Collapse depth defaults to infinite (load-more disabled unless configured)

364 tests pass, 4 skipped.
2026-02-01 20:02:47 -05:00

1.4 KiB

T6: Mention notifications (@username)

Status: resolved Priority: low Source: meta b82332ce-b4cb-11e7-b510-040140774501 Filed: 2026-02-01

Problem

Users want to @mention other Remarkbox users in comments and have those users receive notifications. Currently only reply notifications exist (notify when someone replies to your comment).

Proposed Implementation

  1. Parse comment body for @username patterns on save
  2. Look up mentioned users and create notifications for them
  3. Render @mentions as links to the user's profile

Files

  • remarkbox/lib/mentions.py — new module: parse @mentions, resolve users, replace with links
  • remarkbox/lib/render.py — integrate mention resolution into markdown_to_html pipeline
  • remarkbox/models/node.py — pass dbsession through set_data() for mention resolution
  • remarkbox/lib/notify.py — add get_mentioned_user_watchers() for mention notifications
  • remarkbox/views/reply_node.py — pass dbsession to set_data()
  • remarkbox/views/new_thread.py — pass dbsession to set_data()
  • remarkbox/api/views.py — pass dbsession to set_data() in API endpoints
  • remarkbox/static/css/common.css — CSS for .mention class

Acceptance Criteria

  • @username in a comment triggers a notification to that user
  • Mentioned usernames are rendered as links
  • Non-existent usernames are left as plain text