feat: outbound Delete, visibility addressing, CW/sensitive, polls, Flag reports (v2.10.0)

- Outbound Delete: broadcastDelete() + POST /admin/federation/delete route
- Visibility: unlisted + followers-only addressing via defaultVisibility config
- Content Warning: outbound sensitive flag + summary as CW text
- Polls: inbound Question/poll parsing with progress bar rendering
- Flag: inbound report handler with ap_reports collection + Reports tab
- Includes DM support files from v2.9.x (messages controller, storage, templates)
- Includes coverage audit and high-impact gaps implementation plan

Confab-Link: http://localhost:8080/sessions/cc343b15-8d10-43cd-a48f-ca912eb79b83
This commit is contained in:
Ricardo
2026-03-14 08:51:44 +01:00
parent a266b6d9ba
commit 1dc42ad5e5
25 changed files with 4780 additions and 18 deletions

View File

@@ -15,7 +15,7 @@
{% endif %}
<span class="ap-notification__avatar ap-notification__avatar--default" aria-hidden="true">{{ item.actorName[0] | upper if item.actorName else "?" }}</span>
<span class="ap-notification__type-badge">
{% if item.type == "like" %}❤{% elif item.type == "boost" %}🔁{% elif item.type == "follow" %}👤{% elif item.type == "reply" %}💬{% elif item.type == "mention" %}@{% endif %}
{% if item.type == "like" %}❤{% elif item.type == "boost" %}🔁{% elif item.type == "follow" %}👤{% elif item.type == "reply" %}💬{% elif item.type == "mention" %}@{% elif item.type == "dm" %}✉{% elif item.type == "report" %}⚑{% endif %}
</span>
</div>
@@ -36,6 +36,10 @@
{{ __("activitypub.notifications.repliedTo") }}
{% elif item.type == "mention" %}
{{ __("activitypub.notifications.mentionedYou") }}
{% elif item.type == "dm" %}
{{ __("activitypub.messages.sentYouDM") }}
{% elif item.type == "report" %}
{{ __("activitypub.reports.sentReport") }}
{% endif %}
</span>
@@ -60,6 +64,12 @@
💬 {{ __("activitypub.notifications.viewThread") }}
</a>
</div>
{% elif item.type == "dm" %}
<div class="ap-notification__actions">
<a href="{{ mountPath }}/admin/reader/messages?partner={{ item.actorUrl | urlencode }}" class="ap-notification__thread-btn" title="{{ __('activitypub.messages.title') }}">
✉ {{ __("activitypub.messages.viewMessage") }}
</a>
</div>
{% endif %}
</div>